Go, often referred to as Golang, is a modern programming language developed by Google. Thanks to its efficiency, simplicity, and robust support for| Golang Docs
本文永久链接 – https://tonybai.com/2025/08/31/the-simplest-thing-that-could-possibly-work 大家好,我是Tony Bai。 在我们解读了Github工程师Sean Goedecke关于“无聊即可靠”的系统设计和API设计理念之后,他再次带来了一篇精彩的的文章——《Do the simplest thing that could possibly work》。这既是对前两篇文章思想的延续,更是将其核心哲学提炼为一条终极黄金法则:在软件设计的每一个环节,都应“...| Tony Bai
本文永久链接 – https://tonybai.com/2025/08/30/python-an-origin-story 大家好,我是Tony Bai。 在编程语言的星空中,很少有哪颗星像Python一样,以如此温和而坚定的姿态,从一个不起眼的个人项目,成长为照亮地球未来的科技灯塔。如今,当我们谈论数据科学、人工智能时,Python几乎是绕不开的默认选项。但这一切的起点,竟源于一位程序员在阿姆斯特丹的圣诞假期里,为了“打发时间...| Tony Bai
本文永久链接 – https://tonybai.com/2025/08/29/good-api-design 大家好,我是Tony Bai。 在解读《Everything I know about good system design》一文时,我们曾提炼出一个核心观点:“无聊即可靠”。这个看似反直觉的法则,在追求创新与复杂的软件工程世界里,如同一股清流。现在,这个“无聊”哲学将从宏观的系统设计,延伸至微观但至关重要的领域——API设计。 Sean Goedecke在其后续力作《Every...| Tony Bai
本文永久链接 – https://tonybai.com/2025/08/27/go-interface-embrace-data 大家好,我是Tony Bai。 在 Go 语言的世界里,接口(interface)一直被视为其设计哲学的基石之一——它只关心一个类型能做什么(行为),而不关心它是什么(结构)。这种基于方法集的鸭子类型,赋予了 Go 独一无二的灵活性和解耦能力。然而,随着 Go 1.18 泛型的到来,一个深刻的问题被摆上了台面:当我们需要编...| Tony Bai
New Kratix Promise-writing SDKs in Python and Golang| docs.kratix.io
本文永久链接 - https://tonybai.com/2025/08/06/go-new-engine-of-old-languages 大家好,我是Tony Bai。 我先来描述一种编程语言生态,请你猜猜它是谁: 它诞生于 1995 年,旨在为当时一个叫“万维网”的新| tonybai.com
Have you ever wondered what happens with the variables you define in your Golang (Go) programs? Do they exist forever, or are they recycled at some point? Where do they live in memory and how are they managed?| blog.allegro.tech
Using mise-en-place| Field Notes
Operating systems expose a wall clock that can leap or slew with NTP and a monotonic clock that never runs backward. In Go, only time.Now (might) carries both readings, while values from time.Parse, time.Date, etc., are wall-clock-only—so naïve equality checks or time.Since on those can mislead when the system clock shifts.| VictoriaMetrics
本文永久链接 - https://tonybai.com/2025/07/22/cedardb-choose-cpp-rather-than-rust 大家好,我是Tony Bai。 近年来,Rust 语言无疑是技术圈最炙手可热的明星。它以“内存安全”的核心承诺,向统治了系统编程领| tonybai.com
本文永久链接 - https://tonybai.com/2025/07/19/go-understand-the-zen-of-python-better-than-python 大家好,我是Tony Bai。 最近,在国外的 Go 语言社区(Reddit r/golang)上,一个帖子引发了热烈的讨论。| tonybai.com
Previous posts Why Go is not my favourite language and Go programs are not portable have me critiquing Go for over a decade.| blog.habets.se
Some members from http://guayahack.co came up with the idea for us to practise and discuss some code katas together and I couldn’t resist.| Jayson Salazar Rodriguez | @jdsalaro | Blog
In the best spirit of over-engineering for fun, this minimalistic post documents the way my snippets land over at https://github.com/jdsalaro/jdsalaro.com/tree/main/snippet.| Jayson Salazar Rodriguez | @jdsalaro | Blog
The Largest Collection of Pre-Compiled Go Static Binaries| Package Forge
A blog about computers, functional languages, Lisp, and Scheme.| funcall.blogspot.com
本文永久链接 - https://tonybai.com/2025/07/08/typed-struct-tags 大家好,我是Tony Bai。 Go 语言的结构体标签(Struct Tag)自诞生以来,一直是其强大反射能力的重要组成部分,广泛应用于 encoding/json、OR| tonybai.com
本文永久链接 - https://tonybai.com/2025/06/26/non-deterministic-abstraction 大家好,我是Tony Bai。 在软件开发领域,Martin Fowler 的名字几乎等同于思想的灯塔。他的每一篇文章、每一次演讲,都能为我们| tonybai.com
An overview of GoToSocial: a fast, lightweight, security-focused server that makes self-hosting on the Fediverse easy| Elena Rossini
A sleek, modern take on 'ls'| Xer0x's Underground
Today we're going to continue exploration of Conflict-free Replicated Data Types domain. This time we'll start designing protocols that focus on a security aspects as first class citizens. Managing security and permissions in peer-to-peer systems may be quite cumbersome as often there's no single| Bartosz Sypytkowski
JSer.info #736 - TypeSciptのGo言語でのネイティブ実装である@typescript/native-previewが公開されました。 Announcing TypeScript Native Previews - TypeScript TypeScriptをGo言語に移植した実装で、コンパイラであるtsgoと合わせてVSCode拡張などもリリースされています。 TypeScriptネイティブ移植観察レポート TSKaigi 2025 - Speaker Deck --- Firefox 139がリリースされました。 Firefox 139.0, See All New Features, Updates a...| JSer.info
Modernize your app's observability on Heroku Fir. OpenTelemetry integration provides seamless monitoring, troubleshooting, and performance insights.| Heroku
This is a short collection of tips and tricks showing how Docker can be useful when working with Go code. For instance, I’ll show you how to compile Go code with different versions of the Go toolchain, how to cross-compile to a different platform (and test the result!), or how to produce really small container images. The following article assumes that you have Docker installed on your system. It doesn’t have to be a recent version (we’re not going to use any fancy feature here). Go wit...| Play with Docker classroom
Hello, friends! I’ve been doing software development professionally for a few years now, and I’m noticing a trend in newer languages that I’m really liking: putting errors front a…| Shaffan's Blog
Go applications can implement graceful shutdown by handling termination signals (SIGTERM, SIGINT) via os/signal or signal.NotifyContext. Shutdown must complete within a specified timeout (e.g., Kubernetes’ terminationGracePeriodSeconds)…| VictoriaMetrics
Last week I shared an interview question I've used successfully at Network Next. In this article I share the solution.| Más Bandwidth
In this article I share an interview question I've used for years at Network Next. How to implement a highly scalable backend in UDP. Can you solve it?| Más Bandwidth
Database migrations are fundamental to modern software development, allowing teams to evolve their database schema in a| atlasgo.io
看到一个 Golang 的模式,用一个 function 来实现一个 interface,function 本身就是 interface 的实现。初次看到看了好久才想明白。在这里记录一下。| www.kawabangga.com
| Thomas Hunter II
| Thomas Hunter II
| Thomas Hunter II
| Thomas Hunter II
| Thomas Hunter II
Using version managers| Field Notes
Zero-downtime deployments on Kubernetes on AWS EKS utilizing Pod Readiness Gates, graceful application shutdown and termination delays with code examples in Go| Glasskube Blog
Go is designed to be able to build untrusted packages safely without running any code from them. Unfortunately, this is easier said than done.| Tempus Ex
Generics in Go have come much closer to becoming a reality. Here's what the latest design looks like and how you can try out generics yourself.| Tempus Ex
I always told people memory is cheap, black magic is OK and efficiency doesn't matter, but I was wrong.| Glasskube Blog
この記事はIPFactory Advent Calendar 2021 25日目の記事です。 qiita.com こんにちは、futabatoです。 先日、MBSD Cybersecurity Challenges 2021の最終審査会を終えました。 setten.sgec.or.jp y0d3n, okodayon, l7elVliと出場したチーム「After_the_CM」は第三位でした。 MBSD Cybersecurity Challenges 2021 第3位でした。ひよってばかりの僕に背中を押してくれたチームメイトにはとても感謝しています。幸せな5ヶ月...| アルゴリズム弱太郎
本文永久链接 - https://tonybai.com/2025/02/08/personal-idea-about-using-question-mark-operator-in-go-error-handling-new-proposal 0. 背景 Ian Taylor在关闭了旨在消除Go错误处理样板代码的issue之后,又| tonybai.com
About 2 months ago, I've released Evilginx 2. Since then, a lot of you reported issues or wished for specific features. Your requests have been heard! I've finally managed to find some time during the weekend to address the most pressing matters. [>> Download Evilginx| BREAKDEV
KES is a stateless and distributed key-management system for high-performance applications. We built KES as the bridge between modern applications - running as containers on Kubernetes - and centralized KMS solutions. Therefore, KES has been designed to be simple, scalable and secure by default.| MinIO Blog
I had the privilege of attending GopherCon UK last week, and among the many captivating talks, one that stood out to me was "Structured Logging for the Standard Library" presented by Jonathan Amsterdam.| Dusted Codes
Hitless TLS certificate rotation is critical to continue our quest of reducing certificate expiration times, while keeping our sanity intact.| Diogo Mónica
我和我的同事们排查网路问题非常喜欢 MTR,它是 traceroute 和 ping 的结合,可以快速告诉我们一个网络包的路径。是哪一跳丢包,或者延迟太高。| www.kawabangga.com
Go 1.18 just came out, so I’m looking over the new features.| fREW Schmidt's Foolish Manifesto
Go 1.18 will be adding Go’s version of generics pretty soon. I wanted to get a feel for how I might use them. Read on for a concrete example.| fREW Schmidt's Foolish Manifesto
I wrote a weird little tool to draw stuff with code. It was fun!| fREW Schmidt's Foolish Manifesto
本文永久链接 - https://tonybai.com/2024/12/05/exploring-nat-mapping-assignment-and-filtering-behavior-of-docker-default-network 在《WebRTC第一课:网络架构与NAT工作原理》一文中,我们对WebRTC的网路架| tonybai.com
本文永久链接 - https://tonybai.com/2024/11/27/webrtc-first-lesson-network-architecture-and-how-nat-work 2023年下旬,OpenAI与Livekit的合作在科技圈引起了不小的轰动。这两家公司联手,通过WebRTC技术和大| tonybai.com
Join us as we explore seemingly safe but deceptively tricky ground in Elixir, Python, and the Golang standard library. We cover officially documented, or at least previously discussed, code functionality that could unexpectedly introduce vulnerabilities. Well-documented behavior is not always what it appears!| Include Security Research Blog
In high-performance applications, managing tasks concurrently can help maximize efficiency and reduce execution time. One common concurrency pattern for task processing is the Worker Pool. A worker pool is a mechanism where multiple tasks are distributed among a fixed number of workers that process them concurrently. In Go, with its lightweight goroutines, creating a worker […]| Golang Docs
Go 1.22 was released on February 6, 2024. This version introduces several language and performance improvements, including a fix for loop variable scope| Golang Docs
eBPFs are fun. They present an easy way to insert pieces of code in the kernel which are compiled to opcodes which are guaranteed to not crash it: The instructions allowed are limited, backward jumps are not allowed (so no indefinite looping!) and you can’t dereference pointers, but can instead do checked reads from pointers which can fail without panicking the entire system. You can attach an eBPF to thousands of hooks in the Linux kernel - uprobes, kprobes, tracepoints, even things like p...| nikofil’s blog
A good excuse to play around with some interesting tools| Luca Pette
I have been using Go long enough to form opinions around it| Luca Pette
A quick overview of deloominator tech stack| Luca Pette
deloominator is a Go/React application I’ve been working in the past few months and it’s time to open-source it| Luca Pette
how I do end-to-end testing of Go CLI applications| Luca Pette
A short tale about my first steps with go and docker| Luca Pette
Learn how Alex bought a set of chisels by monitoring the price using HTML scraping and a cron job with OpenFaaS. You can apply the same technique for things you’d like to buy or monitor.| OpenFaaS - Serverless Functions Made Simple
This post describes how to apply HTMX functionality with the Raku Cro web framework. I have already shared a couple of precursor posts that explain separately Why HTMX? and Why Cro?. Why HTMX and C…| Open::Journey
Long time no see friends! Despite this break period ended up not being as long as I hoped| evilsocket
After my last post and generally the kind of indirect advertising I’m doing to the Go programming language for a few months now, I heard about and talked with a lot of people who started being interested in the language, so for once I decided to write what I don’t like about it instead, to provide a more balanced perspective of what’s my experience so far and maybe let some of those people realize that Go is not the right choice for their projects after all. NOTE 1 It’s important to s...| evilsocket
It’s with immense pleasure that I announce the release of the second generation of bettercap, a complete reimplementation of the most complete and advanced Man-in-the-Middle attack framework. This release not only brings MITM attacks to the next level, but it aims to be the reference framework for network monitoring (we <3 blueteams too), 802.11, BLE attacks and more! :D ベッターキャップ!| evilsocket
For the last few days I’ve been working on a new project which I developed for very specific needs and reasons: I need to store safely (encrypted) my passwords, sensitive files, notes, etc. I need to access them from anywhere, with every possible device ( desktop, mobile, terminal ). I need those objects to be syncronized accros all my devices. I don’t want to use “the cloud”. I don’t want to pay for a server. I don’t want to enable port forwarding and host it myself with DynDNS o...| evilsocket
JetBrains has updated its IDEs with the 2024.2 release, containing many new features including a radical change to […]| DEVCLASS
本文永久链接 - https://tonybai.com/2024/08/04/gopherdaily-add-feed-support 在《Russ Cox“退位”,Go语言将迎来新领袖,未来将如何发展》一文的评论区,有Gopher问及gopher-daily.com的HTTPS证书过期的问题,| tonybai.com
Honeycomb engineers provide an early look into Amazon’s newly released R8g instances powered by the AWS Graviton4 processor.| Honeycomb
Although I work for a mostly remote work company, a couple of times a year we meet together for a week in some nice location of the world. When that happens, multiple meetings across people in different teams are organized. Sometimes the number of requested sessions gets out of hands and the scheduling team is … Continue reading "How to schedule meetings in the minimal number of time slots"| Alfonso Sánchez-Beato's blog
本文永久链接 - https://tonybai.com/2024/06/22/how-things-get-done-on-the-go-team 在Go 1.23版本即将发布(2024.8)之前,在GopherCon 2024开幕(2024.7)之前,Go团队成员Cameron Balahan(Go产品负责人)、 Samee| tonybai.com
お久しぶりです、ANDPADボードの tomtwinkle です。 この記事はGoの go:linkname 騒動は 6/18に行われた Go Bash で話した内容を要約したものです。 そもそも go:linkname とは何かといえば internal packageやprivate var/funcなど普通はアクセスできないオブジェクトシンボルをエイリアス出来るようCompilerに指示して、アクセス可能にするcompiler directiveです。 go:linkname はprivateな変数へアクセ...| ANDPAD Tech Blog
こんにちは、SWEの小島です。 2024年6月8日(土)に開催されたGo Conference 2024 で「Mapのパフォーマンス向上のために検討されているSwissTableを理解する」というタイトルで登壇してきました! Go Conference 2024 について gocon.jp Go Conference は年に1回開催されるGo言語に関するカンファレンスで2024年は久しぶりのオフラインでの開催となりました。 自分がGo Conferenceに参加し始めたの...| ANDPAD Tech Blog
The beauty of the jorge serve command was that I could start with a naive implementation and iterate towards the ideal one, keeping it functional at every step of the way. This post summarizes that process.| jorge
Dumping some notes I took while I was setting up my environment and reading the bare minimum to get started with Go programming.| jorge
... so if you imagine f is the computation you want to remain the same regardless of whether it's operating on a base64'd input or not, and g is the base64 function, and x is a not-base64'd input, then f(g(x)) = g(f(x)) ... Oooooohhhhh yes so f = user reads the word 'example', g = base64| SequentialRead
TL;DR In this post, I explain how Tetragon detects process creation and termination using eBPF.🐝 Introduction I was really impressed when I used Tetragon for the first time. Just after deploying Tetragon, it automatically collected process lifecycle events like: I’ve been reading Tetraon’s code to understand its implementaion in kernel-space and user-space programs. Now that… Continue reading Tetragon Process Lifecycle Observation: eBPF Part→| Yuki Nakamura's Blog
こんにちは、SWEの小島です。 2024年6月8日(土)に開催されるGo Conference 2024 にて「Mapのパフォーマンス向上のために検討されているSwissTableを理解する」というタイトルで登壇します! 個人的には去年のGo Conference 2023・Go Conference mini 2023 Winter IN KYOTOに続き3回連続で発表する機会をいただけて嬉しく思っています。 また、アンドパッドとしてもBronzeスポンサーとして協賛しま...| ANDPAD Tech Blog
Once you get used to working with gofmt on a daily basis, you want to have it everywhere. I have been writing a good amount of assembler for Go, and I was getting annoyed by not having similar functionality for assembler. This lead to having to manually align and re-align comments. I also often encountered...| defer time.Sleep()
Continous Integration tests are an important part of maintaining package stability. Since Travis has recently made it possible to run tests on OSX and with AppVeyor having Windows support, we now can create free CI tests for all the major desktop platforms. For my various packages, I find that I commonly copy+paste my CI tests,...| defer time.Sleep()
This post will introduce the concept of deduplication and a Go package I have written to help you implement it. It is inspired by the work on the zpaq journaling archiver done by Matt Mahoney. If you are looking for a pure commandline tool, I can also recommend SuperRep by Bulat Ziganshin. This will however provide you...| defer time.Sleep()
After looking at some rare poor performance in rclone, I have created a package for read-ahead functionality, which I have implemented a few times in different contexts. This gave me the opportunity to create a solid implementation with solid tests to make sure it works with good performance. For the impatient here is the package:...| defer time.Sleep()
Yesterday I got a strange race condition reported after I wrote some additional tests for pgzip. At first I couldn’t really work out why I was getting the race reported, and I suspected that the race detector was reporting wrong line numbers. The race reported was boiled down like this: type Writer struct { prevTail...| defer time.Sleep()
Last week I gave myself the challenge to create something in a week. Not a mockup, but a complete usable solution with documentation and enough tests to make it feel solid. I have been looking at DigitalOcean for some time, and while browsing their documentation I came across a sample script that would help you set...| defer time.Sleep()
Lately I have been working a bit with various backup/file tools written in Go, mainly rclone and restic. I noticed that both of them has issues when dealing with long Windows paths, which is quite unfortunate for backup utilities, so I figured that might be a good thing to cover on my blog. This issue...| defer time.Sleep()
I have written a Discussion Piece about how it could be possible to implement assembler intrinsics in Go based on an experiment I have been working on the past week. The goal of the experiment was to see if intrinsics are feasible within the Go language without breaking the language. It is my impression that…| defer time.Sleep()
| The Grumpy Troll: The Grumpy Troll
| The Grumpy Troll: The Grumpy Troll
| The Grumpy Troll: The Grumpy Troll
| The Grumpy Troll: The Grumpy Troll
| The Grumpy Troll: The Grumpy Troll
Use go clean -modcache to clean up all the old auto-downloaded Go| A Scripter's Notes