84 million requests a second means even rare bugs appear often. We'll reveal how we discovered a race condition in the Go arm64 compiler and got it fixed.| The Cloudflare Blog
Letting Go Quotes: Let these quotes about letting go of the past assist you in moving on with your life, since clinging to the past will only serve to make your future more difficult. It is not always easy to let go of things that were very important to us, but if we want to...| TailPic
September 27, 2025 at 05:54| eli.thegreenplace.net
rqlite is a lightweight, open-source distributed relational database implemented in Go, and which uses SQLite as its storage engine. It has reached a new milestone in the open-source community by surpassing 17,000 stars on GitHub. Thanks to everyone for the ongoing support.| Vallified
If you’re looking for the ultimate fall family adventure that’s […] The post Pumpkins at Kentucky Kingdom: Rides, Lights & Fall Magic appeared first on Indy with Kids.| Indy with Kids
本文永久链接 – https://tonybai.com/2025/09/30/good-taste-in-software-engineering 大家好,我是Tony Bai。 在软件工程领域,我们习惯于用“技术能力”(Technical Skill)来衡量一位工程师的优劣。他是否精通并发模型?能否写出高性能的代码?对底层原理的理解有多深?这些能力可以通过学习和重复练习来获得,是我们评价体系中的“硬通货”。 然而,github工程师Sean Goedecke在他最新的博文...| Tony Bai
本文永久链接 – https://tonybai.com/2025/09/29/synctest-bugs-in-go-1-25 大家好,我是Tony Bai。 Go 1.25的发布,为我们带来了一个期待已久的“并发测试神器”—— testing/synctest。这个在Go 1.24中作为实验性功能首次亮相的包,承诺将我们从time.Sleep、channel和各种脆弱的同步技巧中解放出来,让我们能够编写出快速、可靠、确定性的并发测试。 然而,任何强大的新工具在投入真实世界的熔炉...| Tony Bai
本文永久链接 – https://tonybai.com/2025/09/27/direct-ref-to-embedded-fields-in-struct-literals 大家好,我是Tony Bai。 在 Go 语言中,结构体嵌入 (Embedding) 是一个强大而独特的特性,它为我们提供了一种优雅的“垂直组合”方式。然而,多年来,它的使用体验中一直存在一个广为人知的“反直觉”之处,一个让无数开发者(包括 Go 核心团队成员自己)都曾踩过的坑。 近日,一个旨在解决此问...| Tony Bai
本文永久链接 – https://tonybai.com/2025/09/23/go-maphash-portability-costs-and-runtime-boundaries 大家好,我是Tony Bai。 对于大多数Go开发者来说,标准库似乎是一个浑然天成的整体。我们理所当然地使用着fmt、net/http和encoding/json,很少去思考它们内部的依赖关系和架构边界。然而,在标准库光鲜的外表之下,一场关于其核心架构的深刻变革正在悄然发生,而hash/maphash这个看似不起眼的包,...| Tony Bai
The speed and efficiency of the Go programming language make it popular for backend development. Combine Go with the Gin framework —which offers a fast and minimalistic approach to building web applications—and developers can easily create high-performance APIs and web services. Whether you’re working on a personal project or building a production-ready application, Go and Gin make for an attractive stack perfectly suited for lightweight, scalable web development. Creating a Go/Gin appl...| Heroku
前書き 黒魔術のざっくり概要 黒魔術をどうやって使うか 黒魔術の副作用 黒魔術に対する防衛術 ~Defence Against the Go's dark Arts~ インターフェース適合アサーション 標準的な構文 動作メカニズム 主な用途 実装例 配列長アサーション 標準的な構文 動作メカニズム 主な用途 実装例 定数演算と型定義によるアサーション 標準的な構文 動作メカニズム 主な用途 実装例 マ...| ANDPAD Tech Blog
An interesting little change recently landed in the development| utcc.utoronto.ca
Go 1.25 introduces a new tool in the diagnostic toolbox, flight recording.| go.dev
Security, Systems, Network & Electrical Automation| Jakub Jarosz
Gerrit Code Review| go-review.googlesource.com
The Day the Linter Broke My Code| Fillmore Labs Blog
XTX Markets is a leading algorithmic trading firm which uses state-of-the-art machine learning technology to produce price forecasts for over 50,000 financial instruments across equities, fixed income, currencies, commodities and crypto. It uses those forecasts to trade on exchanges and alternative trading venues, and to offer differentiated liquidity directly to clients worldwide. The firm trades over $250bn a day across 35 countries and has over 250 employees based in London, Singapore, New...| www.xtxmarkets.com
This is a quick note on how to change the log output level in Terraform. Introduction Outputting DEBUG-Level Logs in Terraform Setting Log Levels Separately for Terraform and Providers Appendix: Reading Terraform's Source Code Conclusion References Introduction When troubleshooting, logs are an impo…| BioErrorLog Tech Blog (en)
A quick overview of the Functional Options Pattern in Go. Introduction Functional Options Pattern in Go Conclusion References Introduction While using a Go-based library, I came across the Functional Options Pattern. Here's a brief note on what the Functional Options Pattern is in Go. Note: This art…| BioErrorLog Tech Blog (en)
This is a memo on how to implement an MCP server using Golang. Introduction Prerequisite: Is there an official Go MCP SDK? Implementing an MCP Server in Go The Target MCP Server Implementing the MCP server in Go Implementing the Tool Implementing the Resource Implementing the Prompt Testing the Serv…| BioErrorLog Tech Blog (en)
Learn the basics of the Go-based game engine Ebitengine by implementing a Boids Flocking simulation. Introduction What is Ebitengine? What I built: Boids Flocking Implementing Boids Flocking Minimum setup: Hello, World! Directory structure Implementing Game Logic Implementing the Boids Flocking Logi…| BioErrorLog Tech Blog (en)
A follow up to what is the go proxy even doing? now with more answers. Russ Cox (rsc) and I traded a few emails trying to work out what was going on. They’re going to make a few changes, and I also learned a few things it would have been helpful to know. | flak.tedunangst.com
An often overlooked part of the Rust license is that within a year of usage, users are required to make a comparison to their (previously) favorite language. While I am a bit late, I am ready to pay my dues. Given the overabundance of Rust vs X content, I'll try to cover only areas that haven't been discussed to death. Lifetimes and Borrows Did I say I wouldn't cover areas everyone has already talked about? I lied!| howardjohn's blog
At Grab, our decade-old Go monorepo had become a 214GB monster with 13 million commits, causing 4-minute replication delays and crippling developer productivity. Through custom migration tooling and strategic history pruning, we achieved a 99.9% reduction in commits while preserving all critical functionality. The result? 36% faster clones, eliminated single points of failure, and a 99.4% improvement in replication performance—transforming our biggest infrastructure bottleneck into a develo...| Grab Tech
After years of comfortable cruising through the Ruby nebula, I discovered something that changed everything. This is the story of why a die-hard Rubyist decided to learn Go—and what I found on the other side.| Seuros Blog
本文永久链接 - https://tonybai.com/2025/09/09/the-power-of-ten-in-go 大家好,我是Tony Bai。 在软件工程领域,有些智慧是永恒的。 2006 年,NASA/JPL(喷气推进实验室)的 Gerard J. Holzmann 公布了其团| tonybai.com
An introduction to Centrifuge – real-time messaging with Go| centrifugal.dev
Learn structured logging fundamentals in Go advanced patterns performance tradeoffs and how to avoid critical production pitfalls| www.dash0.com
Think you know GoLand? Discover ten secret superpowers that can save you time and help you move faster, write better code, and scale with confidence.| The JetBrains Blog
Go 1.25 introduces experimental support for encoding/json/jsontext and encoding/json/v2 packages.| go.dev
ANDPADでGoを利用して諸々のプロダクトを作っているtomtwinkleです。 2025年6月18日(水)、「golang.tokyo #39」が、弊社アンドパッドのオフィスで開催されました! アンドパッドにとってGo関連イベントの会場提供は初めての試み。運営メンバーとして「皆さんに楽しんでいただけるだろうか…」 とドキドキしていましたが、当日は多くの方にお集まりいただき、大盛況のうちに...| ANDPAD Tech Blog
Errors in Go are like the STOP sign. They send a strong signal to avoid disasters. Just like the Go error yelling don’t trust returned value, don’t use it.| Jakub Jarosz
What Is the Principle Behind Go's GMP Scheduler| en.smallyu.net
In an attempt to use Go in the context of AWS, I wanted to see how Go would work with AWS Lambda. I decided to create a small project where the function would take an image and convert it to an ASCII art. Using Go for serverless functions Using Go for serverless functions makes a lot of sense. Speed of execution keeps the costs down and delivers the results quickly. When you are getting charged by the amount of resources you consume and the time it takes to complete your function, using a tec...| Evgenii Pendragon
本文永久链接 - https://tonybai.com/2025/08/28/go-primer-published 大家好,我是Tony Bai。 前不久,在知乎上看到一个关于 Go 社区的帖子,其中一条评论让我感慨良多: “GopherChina 都没了,国内还有几| tonybai.com
A discussion of testing asyncronous code and an exploration of the `testing/synctest` package. Based on the GopherCon Europe 2025 talk with the same title.| go.dev
August 26, 2025 at 20:38| eli.thegreenplace.net
"I have two news for you, bad and worse," said the mechanic. "The battery is dead and I won't get a new one until Monday. Forget about your annual inspection today," he continued. "But..." you started. "There is no but." he cut short. No setup, no testing. Just like in your Go program.| Jakub Jarosz
This morning a one line change had several of us tearing up the fabric of reality trying to understand why a failing test wasn’t failing, or, in fact, being run at all. Increasingly frantic efforts to upgrade/downgrade Go, run the tests on another machine, run the tests in CI, all served to only unnerve us […]| Dave Cheney
Today’s post comes from a recent Go pop quiz. Consider this benchmark fragment. A convenience wrapper around sort.Sort(sort.StringSlice(s)), sort.Strings sorts the input in place, so it isn’t expected to allocate (or at least that’s what 43% of the tweeps who responded thought). However it turns out that, at least in recent versions of Go, each […]| Dave Cheney
The Go compiler’s SSA backend contains a facility to produce HTML debugging output of the compilation phases. This post covers how to print the SSA output for function and methods. Let’s start with a sample program which contains a function, a value method, and a pointer method: Control of the SSA debugging output is via […]| Dave Cheney
Per the overlapping interfaces proposal, Go 1.14 now permits embedding of interfaces with overlapping method sets. This is a brief post explain what this change means: Let’s start with the definition of the three key interfaces from the io package; io.Reader, io.Writer, and io.Closer: Just as embedding a type inside a struct allows the embedded type’s […]| Dave Cheney
A few days ago Fatih posted this question on twitter. I’m going to attempt to give my answer, however to do that I need to apply some simplifications as my previous attempts to answer it involved a lot of phrases like a pointer to a pointer, and other unhelpful waffling. Hopefully my simplified answer can […]| Dave Cheney
Conventional wisdom dictates that the larger the number of types declared in a Go program, the larger the resulting binary. Intuitively this makes sense, after all, what’s the point in defining a bunch of types if you’re not going to write code that operates on them. However, part of the job of a linker is […]| Dave Cheney
Programmers have a tendency to be superstitious. Particularly, when a programmer hears that copies are expensive, they start to see them everywhere, especially when they learn that, in Go, every assignment is a copy. Consider this code; x is three orders of magnitude larger than y, is the assignment of x to a more expensive […]| Dave Cheney
This article was derived from my GopherCon Israel 2020 presentation. It’s also quite long. If you’d prefer a shorter version, head over to the-zen-of-go.netlify.com. A recording of the presentation is available on YouTube. How should I write good code? Something that I’ve been thinking about a lot recently, when reflecting on the body of my […]| Dave Cheney
This is a thought experiment in API design. It starts with the classic Go unit testing idiom: func TestOpenFile(t *testing.T) { f, err := os.Open("notfound") if err != nil { t.Fatal(err) } // ... } What’s the problem with this code? The assertion. if err != nil { ... } is repetitive and in the […]| Dave Cheney
APIs should be easy to use and hard to misuse. — Josh Bloch A good example of a simple looking, but hard to use correctly, API is one which takes two or more parameters of the same type. Let’s compare two function signatures: What’s the difference between these functions? Obviously one returns the maximum of […]| Dave Cheney
This is a post about performance. Most of the time when worrying about the performance of a piece of code the overwhelming advice should be (with apologies to Brendan Gregg) don’t worry about it, yet. However there is one area where I counsel developers to think about the performance implications of a design, and that is API design.| Dave Cheney
A few weeks ago Anton Zhiyanov published the blog post Expressive tests without testify/assert. It's a good and well thought-out post, and I recommend giving it a read if you haven't already. In the post, Anton makes the argument for not using packages like testify/assert for your test assertions, and instead creating your own minimal set of assertion helpers to use in your tests. In fact, so minimal that there are only 3 helpers he uses: AssertEqual, AssertErr and AssertTrue.| www.alexedwards.net
Goroutines Are Cheap, but Not Free| Fillmore Labs Blog
Understanding Go Error Types: Pointer vs. Value| Fillmore Labs Blog
New GOMAXPROCS defaults in Go 1.25 improve behavior in containers.| go.dev
If you’ve ever worked with Rust, you’d know it feels like talking straight to your computer’s core. It’s a system programming language known for its direct line to hardware—no middleman required. And why does this matter? Well, the programming language you pick can set the course for your entire project. Deciding which language to use […] The post Rust vs Alternative Programming Languages: How Do They Compare? appeared first on K&C. The post Rust vs Alternative Programming Languag...| K&C
I used to use the go log package, then I switched to the slog package, and it’s been a bumpy ride.| flak.tedunangst.com
The go module proxy caches requests from users, so everyone has a consistent and reliable experience regardless of upstream host. But what if the go proxy is contributing to the instability of the upstream host? There have been other complaints about the go proxy, that’s just the way it works, but I collected a few minutes of logs to examine that may be interesting.| flak.tedunangst.com
本文永久链接 - https://tonybai.com/2025/08/06/go-new-engine-of-old-languages 大家好,我是Tony Bai。 我先来描述一种编程语言生态,请你猜猜它是谁: 它诞生于 1995 年,旨在为当时一个叫“万维网”的新| tonybai.com
Vendoring. Generics. These are seen as big issues in the Go community but there’s another issue that’s rarely mentioned — application package layout. Every Go application I’ve ever worked on appears to have a different answer to the question, how should I organize my code? Some applications push| Go Beyond
Using eBPF to record your programs dying breathes| Discover the Performance Engineer in you. | Polar Signals
Why Go is a compelling choice for building CLI tooling| Kartones' Blog
Viewstamped replication(VR) is a replication technique that takes care of failures when one or more nodes end up crashing in a cluster. It works as a wrapper on top of a non-distributed system & allows the underlying business logic to be applied independently while the protocol itself takes care of replication. The protocol was introduced in the paper and then was revised with a set of optimizations under a new paper known as Viewstamped replication revisited. | Distributed Computing Musings
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
本文永久链接 - https://tonybai.com/2025/07/25/go-vs-rust-vs-cpp-in-complexity) 大家好,我是Tony Bai。 最近,一张关于编程语言规范词数统计的图表,在技术圈广为流传。它以一种极其直观、甚至有些残酷的方| tonybai.com
rqlite is a lightweight, user-friendly, open-source, distributed relational database. It’s written in Go and uses SQLite as its storage engine. Recent versions—8.38.0 through 8.42.0—introduce several notable improvements, including Google Cloud Storage support, new HTTP APIs for cluster control, and improvements to Backup support. New Features and Enhancements Leader Stepdown API and CLI SupportVersions 8.40.0 through…| Vallified
Test coverage of delicate Go cryptographic assembly through a new mutation testing framework.| words.filippo.io
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
Jacob_Ray_Pehringer| Jacob_Ray_Pehringer
Memory safety is all the rage these days. But what does the term even mean? That turns out to be harder to nail down than you may think. Typically, people use this term to refer to language...| www.ralfj.de
本文永久链接 - 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
I wanted to learn more about blockchain and how it works for a while now. Like many others, I have heard plenty about the applications of blockchain from cryptocurrency to NFT to healthcare ledgers. In this post, we will explore a simple blockchain application which will showcase one the main features of blockchain - the chaining itself. This application builds a chain of blocks that contain some simple transaction data which comprise a simple ledger application.| Evgenii Pendragon
Go 1.24's Swiss Tables cut our map memory usage by up to 70% in high-traffic workloads. Here's how we profiled the savings and improved performance.| Datadog
Discover GORM's powerful features for seamless database management in Go with practical examples and advanced techniques.| DEV Community
Historically I have worked on many projects related to high-performance Protobuf, be that on the C++ runtime, on the Rust runtime, or on integrating UPB, the fastest Protobuf runtime, written by my colleague Josh Haberman. I generally don’t post directly about my current job, but my most recent toy-turned-product is something I’m very excited to write about: hyperpb.| mcyoung.xyz
Hello, there! 👋 Creating content I decided to start a blog to write on topics that are interesting to me or something that I would like to explore. The topics in this blog should cover tech, software development, cybersecurity, AI, business, recent news, and occasional book reviews. Hopefully the learnings that will be discovered in this blog will be useful to many more people. Building a brand Building a personal or a professional brand is important these days. Brand is associated with tr...| Evgenii Pendragon
Learn how to build your first Model Context Protocol (MCP) server by connecting a local LLM to the Google Maps API step by step.| workingsoftware.dev
TL;DR:| Plakar - Effortless backup
tl:dr star is a python(ish) programming environment that lets you call Go library functions. click down to the repl if you’d just like to play around Starlark is Google’s custom subset of Python that it uses as a configuration language with Bazel. I started looking into it a little because it has some interesting characteristics. It’s not turing complete (no unbounded loops), it doesn’t have classes or higher level abstractions, it’s also deterministic and is somewhat safe to run un...| Max McDonnell
本文永久链接 - https://tonybai.com/2025/07/10/mcp-official-go-sdk 大家好,我是Tony Bai。 随着大型语言模型(LLM)的能力边界不断扩展,“function calling”或“tool use”已成为释放其潜力的关键。MCP(Model| tonybai.com
Most people don’t know that Go has special syntax for directives. Unfortunately, it’s not real syntax, it’s just a comment. For example, //go:noinline causes the next function declaration to never get inlined, which is useful for changing the inlining cost of functions that call it.| mcyoung.xyz
I’ve had a few conversations about async code recently (and not so recently) and seen some code that seems to make wrong assumptions about async, so I figured out it was time to have a serious chat about async, what it’s for, what it guarantees and what it doesn’t.| Il y a du thé renversé au bord de la table !
Adding type parameters to interface types is surprisingly powerful| go.dev
本文永久链接 - https://tonybai.com/2025/07/05/go-is-8020-language 大家好,我是Tony Bai。 如果你写了一段时间的 Go,你可能会有一种独特的感觉。一方面,它简洁、高效、可靠;另一方面,你又会时常觉得它“| tonybai.com
When I'm building a web application in Go, I prefer to use command-line flags to pass configuration settings to the application at runtime. But sometimes, the client I'm working with wants to use environment variables to store configuration settings, or the nature of the project means that storing settings in a TOML, YAML or JSON file is a better fit. And of course that's OK — it makes sense to be flexible and vary how configuration is managed based on the specific needs of a project and/or...| www.alexedwards.net
Go is the most hated programming language. Compared to other languages, it provides 80% of utility with 20% of complexity. The hate comes from people who want 81% of utility, or 85% or 97%.| blog.kowalczyk.info
Building a Lua interpreter in Go| www.zombiezen.com
One of the perks of being a Google Developer Expert is the incredible opportunities it provides.| eltonminetto.dev
An introduction to Wirego, a tool for Wireshark plugin development| Quarkslab's blog
Version 1.0.0 of python-starlark-go is now available on PyPI.| Jordan Webb's blog
Navigating Google Cloud Platform, or any cloud platform for that matter, can be draining, primarily when you work with cloud services every day. If you manage multiple projects, just accessing the right resource can feel like a nightmare because of the number of clicks involved.| dineshgowda
Go team plans around error handling support| go.dev
Go言語におけるFunctional Options Patternを簡単に整理します。 はじめに Go言語でFunctional Options Pattern おわりに 参考 はじめに あるGo製ライブラリを使っていたところ、Functional Options Patternに遭遇しました。 Go言語におけるFunctional Options Patternとは何か、メモします。 The English translation of this post is here. Go言語でFunctional Options Pattern Functional Options Pattern…| BioErrorLog Tech Blog
Go言語でMCPサーバーを実装する方法の備忘録です。 はじめに 前提: Go言語の公式MCP SDKはあるのか? MCPサーバーをGoで実装する 実装するMCPサーバー GoでのMCPサーバー実装 Toolの実装 Resourceの実装 Promptの実装 MCP InspectorでMCPサーバーをテスト実行する おわりに 参考 はじめに MCPサーバーをGoで実装したくなりました。 やり方のメモを残します。 # 作業環境 $ go version go version ...| BioErrorLog Tech Blog
本文永久链接 - https://tonybai.com/2025/05/15/go-json-v2 大家好,我是Tony Bai。 Go 语言标准库中的 encoding/json 包,无疑是我们日常开发中使用频率最高的包之一。它为 Go 社区服务了十多年,几乎无处不在| tonybai.com
Use the new IANA-registered tag to preserve JSON numbers represented as strings when encoding in Concise Binary Object Representation.| Just a Theory
While full Pact specification v3 support is still a while off, you can now verify pacts that use multiple provider states and provider state params from the v3 compliant implementations (eg. JVM and Rust)| Pact Docs Blog