golang 每日一庫之 redsync
redsync 是一個用 Go 編寫的分佈式互斥鎖(Distributed Mutex)庫,基於 Redis 實現。其主要目標是在分佈式系統中爲多個進程或服務之間提供互斥訪問的機制,確保同一時間內只有一個客戶端可以訪問共享資源。核心功能—-redsync 實現了 Redlock 算法(由 Redis 創始人 antirez 提出),該算法旨在在分佈式環境中實現安全、健壯的鎖。基本原理使用多個獨 ⌘ Read more
Goreleaser: 快速創建 Golang 項目發佈頁面
原文鏈接: https://typonotes.com/posts/2025/05/19/goreleaser-release-app-in-github/項目可以通過 renovate-bot 進行以來變更管理, 當依賴內容變化後, 可以幫助我們創建 PR。https://github.com/tangxin/k8s-image-syncer/pullsgoreleaser 可以爲 go 項 ⌘ Read more
Goreleaser: 快速創建 Golang 項目發佈頁面
原文鏈接: https://typonotes.com/posts/2025/05/19/goreleaser-release-app-in-github/項目可以通過 renovate-bot 進行以來變更管理, 當依賴內容變化後, 可以幫助我們創建 PR。https://github.com/tangxin/k8s-image-syncer/pullsgoreleaser 可以爲 go 項 ⌘ Read more
在 Go 中如何使用有限狀態機優雅解決程序中狀態轉換問題
在編程中,有限狀態機(FSM)是管理複雜狀態流轉的優雅工具,其核心在於通過明確定義狀態、事件和轉換規則,將業務邏輯模塊化。本文將探討在 Go 中如何使用有限狀態機。有限狀態機在介紹有限狀態機之前,我們可以先來看一個示例程序: https://github.com/jianghushinian/blog-go-example/blob/main/fsm/main.gopackage mainimp ⌘ Read more
在 Go 中如何使用有限狀態機優雅解決程序中狀態轉換問題
在編程中,有限狀態機(FSM)是管理複雜狀態流轉的優雅工具,其核心在於通過明確定義狀態、事件和轉換規則,將業務邏輯模塊化。本文將探討在 Go 中如何使用有限狀態機。有限狀態機在介紹有限狀態機之前,我們可以先來看一個示例程序: https://github.com/jianghushinian/blog-go-example/blob/main/fsm/main.gopackage mainimp ⌘ Read more
prologic@JamessMacStudio
Sun May 25 21:44:41
~/tmp/neurog
(main) 130
$ go build ./cmd/ttt/... && ./ttt
Generation 27 | Fitness: 0.486111 | Nodes: 44 | Conns: 82
… experimenting with building and training a tic-tac-toe game, which evolves a. neural net that learn to paly the game against the best evolved champions 😅
10 Games Milked for All Their Worth
Sticking with what works is nothing new, especially in gaming. New stories, characters, and mechanics are increasingly rare. Long development times and ballooning budgets only compound the issue, as studios must take a larger gamble with every project. Why take that risk when going with a guaranteed success is safer? That mindset prompts developers to […]
The post [10 Games Milked for All Their Worth](https://listverse.com/2025/05/25/10-games-milked-for-all-th … ⌘ Read more
@prologic@twtxt.net I remember going through your “introduction to Golang”, I don’t remember the URL, but I vividly remember going through it, and I was lost at chapter one. So, about that “mastering” the core in hours, “I don’t believe you.” (insert I don’t believe you meme animated GIF here). LOL.
Ultimately, Go sits in the sweet spot on the complexity vs performance chart:
- Minimal syntax & concepts → low learning curve
- Compiled speed → high throughput
- Built-in CSP concurrency → scalable by default
See Rob Pyke’s presentation on Expressiveness of Go
One of the nicest things about Go is the language itself, comparing Go to other popular languages in terms of the complexity to learn to be proficient in:
- Go:
25keywords (Stack Overflow); CSP-style concurrency (goroutines & channels)
- Python 2:
30keywords (TutorialsPoint); GIL-bound threads & multiprocessing (Wikipedia)
- Python 3:
35keywords (Initial Commit); GIL-bound threads,asyncio& multiprocessing (Wikipedia, DEV Community)
- Java:
50keywords (Stack Overflow); threads +java.util.concurrent(Wikipedia)
- C++:
82keywords (Stack Overflow);std::thread, atomics & futures (en.cppreference.com)
- JavaScript:
38keywords (Stack Overflow); single-threaded event loop &async/await, Web Workers (Wikipedia)
- Ruby:
42keywords (Stack Overflow); GIL-bound threads (MRI), fibers & processes (Wikipedia)
@bender@twtxt.net Here’s a short-list:
- Simple, minimal syntax—master the core in hours, not months.
- CSP-style concurrency (goroutines & channels)—safe, scalable parallelism.
- Blazing-fast compiler & single-binary deploys—zero runtime dependencies.
- Rich stdlib & built-in tooling (gofmt, go test, modules).
- No heavy frameworks or hidden magic—unlike Java/C++/Python overhead.
@kat@yarn.girlonthemoon.xyz I don’t like Golang much either, but I am not a programmer. This little site, Go by example might explain a thing or two.
@movq@www.uninformativ.de i feel like when i read go code i’m reading some algebra shit where every part is 1-5 letters long and then there’s weird symbols like := and it’s just infinitely harder for me to parse and infer meaning from lol. it’s such a me problem
i wish it was realistic for me to learn golang but every single time i try to comprehend any go code i’m like What the fuck am i looking at. why is all of this so short and condensed GIVE ME VERBOSE CODE
Goodbye Koeka, I’m going to miss you little girl😭. ?-04-2007 - 23-05-2025 ⌘ Read more
This is one of my attempts: 
$ go build ./cmd/xor/... && ./xor
Generation 95 | Fitness: 0.999964 | Nodes: 9 | Conns: 19
Target reached!
Best network performance:
[0 0] → got=0 exp=0 (raw=0.000) ✅
[0 1] → got=1 exp=1 (raw=0.990) ✅
[1 0] → got=1 exp=1 (raw=0.716) ✅
[1 1] → got=0 exp=0 (raw=0.045) ✅
Overall accuracy: 100.0%
Wrote best.dot – render with `dot -Tpng best.dot -o best.png`
一文了解 JWT Token
在實際開發中,使用令牌認證,還有其他很多好處。掌握令牌認證的原理和實現方法,是 Go 語言開發者,必備的核心技能之一。由於 miniblog 使用 JWT Token 進行身份認證,爲了降低學習難度併爲後續代碼實現奠定基礎,本節課將介紹 JWT 的核心內容。JWT 認證流程——–學習 JWT 的最佳方式是通過其認證流程理解其原理。認證流程如下圖所示。上圖展示了 JWT 的認證流程,具體流 ⌘ Read more
API 設計的 “Go 境界”:Go 團隊設計 MCP SDK 過程中的取捨與思考
大家好,我是 Tony Bai。作爲開發者,我們每天都在與 API 打交道——調用它們,設計它們,有時也會爲糟糕的 API 設計而頭痛不已。一個優秀的 API,如同一位技藝精湛的嚮導,能清晰、高效地引領我們通往復雜功能的彼岸;而一個蹩腳的 API,則可能像一座佈滿陷阱的迷宮,讓我們步履維艱。那麼,在 Go 語言的世界裏,一個 “好” 的 API 應該是什麼樣子的?它應該如何體現 Go 語言簡潔、高 ⌘ Read more
API 設計的 “Go 境界”:Go 團隊設計 MCP SDK 過程中的取捨與思考
大家好,我是 Tony Bai。作爲開發者,我們每天都在與 API 打交道——調用它們,設計它們,有時也會爲糟糕的 API 設計而頭痛不已。一個優秀的 API,如同一位技藝精湛的嚮導,能清晰、高效地引領我們通往復雜功能的彼岸;而一個蹩腳的 API,則可能像一座佈滿陷阱的迷宮,讓我們步履維艱。那麼,在 Go 語言的世界裏,一個 “好” 的 API 應該是什麼樣子的?它應該如何體現 Go 語言簡潔、高 ⌘ Read more
自制 ResponseWriter:Go 安全 HTTP
Go 的 http.ResponseWriter 會直接向套接字(socket)寫入數據,這可能會導致一些隱蔽的 bug,例如忘記設置狀態碼,或是在爲時已晚的時候意外修改了響應頭(header)。本文將展示如何通過包裝 ResponseWriter 來強制執行自定義規則,例如要求 WriteHeader() 以及在出錯後阻止寫入操作,從而讓你的處理器(handler)更安全、也更易於梳理邏輯。我用 ⌘ Read more
自制 ResponseWriter:Go 安全 HTTP
Go 的 http.ResponseWriter 會直接向套接字(socket)寫入數據,這可能會導致一些隱蔽的 bug,例如忘記設置狀態碼,或是在爲時已晚的時候意外修改了響應頭(header)。本文將展示如何通過包裝 ResponseWriter 來強制執行自定義規則,例如要求 WriteHeader() 以及在出錯後阻止寫入操作,從而讓你的處理器(handler)更安全、也更易於梳理邏輯。我用 ⌘ Read more
Go 語言實現優雅關機和重啓的示例很詳細
在生產環境中,服務的更新和維護是不可避免的。粗暴地終止服務會導致:正在處理的請求被中斷 數據庫事務未完成 緩存數據丟失 客戶端連接異常 本文將深入探討如何使用 Go 語言實現:優雅關機 :等待現有請求完成後再關閉服務 優雅重啓 :無縫切換新舊進程,實現零停機更新 優雅關機實現核心機制完整實現代碼package mainimport(” ⌘ Read more
Go 語言實現優雅關機和重啓的示例很詳細
在生產環境中,服務的更新和維護是不可避免的。粗暴地終止服務會導致:正在處理的請求被中斷 數據庫事務未完成 緩存數據丟失 客戶端連接異常 本文將深入探討如何使用 Go 語言實現:優雅關機 :等待現有請求完成後再關閉服務 優雅重啓 :無縫切換新舊進程,實現零停機更新 優雅關機實現核心機制完整實現代碼package mainimport(” ⌘ Read more
Gin 服務性能提升的最佳實踐
Gin 框架是在 Go 中構建網絡服務的首選。隨着應用程序複雜性和流量的增加,性能成爲不能忽視的因素。本文將介紹一系列使用 Gin 構建服務的有效技巧,涵蓋從路由優化到內存重用、請求和響應優化、異步處理以及性能分析,幫助你創建更穩定高效的 Web 服務。路由註冊優化:避免循環引用————-Gin 的路由器使用基於樹的高效路由實現,可以快速匹配請求路徑。但是,如果路由註冊不當,例如嵌 ⌘ Read more
Gin 服務性能提升的最佳實踐
Gin 框架是在 Go 中構建網絡服務的首選。隨着應用程序複雜性和流量的增加,性能成爲不能忽視的因素。本文將介紹一系列使用 Gin 構建服務的有效技巧,涵蓋從路由優化到內存重用、請求和響應優化、異步處理以及性能分析,幫助你創建更穩定高效的 Web 服務。路由註冊優化:避免循環引用————-Gin 的路由器使用基於樹的高效路由實現,可以快速匹配請求路徑。但是,如果路由註冊不當,例如嵌 ⌘ Read more
Streamlining application deployment on Kubernetes at RBC Capital Markets: A journey with FluxCD
As we learned from the first blog in our series, RBC has taken a holistic approach on our cloud journey, as it enables technologies across our enterprise. In today’s post, we’re going to share how Capital Markets… ⌘ Read more
代碼覆蓋率新玩法:Russ Cox 教你用差異化分析加速 Go 調試
大家好,我是 Tony Bai。調試,尤其是調試並非自己編寫的代碼,往往是軟件開發中最耗時的環節之一。面對一個失敗的測試用例和龐大的代碼庫,如何快速有效地縮小問題範圍?Go 團隊的前技術負責人 Russ Cox 近期分享了一個雖然古老但極其有效的調試技術——差異化覆蓋率 (Differential Coverage)。該技術通過比較成功和失敗測試用例的代碼覆蓋率,巧妙地 “高亮” 出最可能包含 B ⌘ Read more
代碼覆蓋率新玩法:Russ Cox 教你用差異化分析加速 Go 調試
大家好,我是 Tony Bai。調試,尤其是調試並非自己編寫的代碼,往往是軟件開發中最耗時的環節之一。面對一個失敗的測試用例和龐大的代碼庫,如何快速有效地縮小問題範圍?Go 團隊的前技術負責人 Russ Cox 近期分享了一個雖然古老但極其有效的調試技術——差異化覆蓋率 (Differential Coverage)。該技術通過比較成功和失敗測試用例的代碼覆蓋率,巧妙地 “高亮” 出最可能包含 B ⌘ Read more
Jwno: a highly customisable tiling WM for Windows built with Janet
Jwno is a highly customizable tiling window manager for Windows 10/11, built with Janet and ❤️. It brings to your desktop magical parentheses power, which, I assure you, is not suspicious at all, and totally controllable. ↫ Jwno documentation Yes, it’s a Lisp system, so open your bag of spare parentheses and start configuring and customising it, because you’re going to need it if you want to use Jwno … ⌘ Read more
@bender@twtxt.net @prologic@twtxt.net Jokes aside, I don’t think that’s the right approach either. We had spell checkers, since I can remember, as well as other tools, like the smart image select, used mostly to remove backgrounds. These are tools, that just simplify the process of either opening up a dictionary and looking up a word, you can’t remember the spelling of, or the process of placing a billion little dots around the part of an image you want to select - none of these are creative or enjoyable tasks, we already had tools for them, decades before AI. I don’t think we need to go back to cave paintings, to be free of AIs influence on our creative work.
6 Super Useful Continuity Features for Mac, iPhone, & iPad, You Should Be Using
Continuity is a broad set of features for Mac, iPhone, and iPad, that make using all three of the devices together as seamless and easy as possible. Many of the Continuity features also will undoubtedly improve your workflow, making using MacOS, iOS, and iPadOS even better together. We’re going to focus on six of the … [Read More](https://osxdaily.com/2025/05/19/6-super-usefu … ⌘ Read more
Go Wails 桌面開發之 Go 與 Preact 如何協作通信?
上一篇文章裏我們簡單的瞭解了 Wails,在本篇文章裏將帶你從 0 開始,藉助 Wails 框架構建一個前後端分離的 Todo 應用,前端用 Preact,後端使用 Go,並講解它們之間的通信機制與數據傳遞方式。閒話少說,開始今天的內容,let’s go!!!Wails 框架如何工作?—————–在 Wails 中,前端通過 WebView 渲染頁面,後端通過 Go 提供邏輯 ⌘ Read more
Go Wails 桌面開發之 Go 與 Preact 如何協作通信?
上一篇文章裏我們簡單的瞭解了 Wails,在本篇文章裏將帶你從 0 開始,藉助 Wails 框架構建一個前後端分離的 Todo 應用,前端用 Preact,後端使用 Go,並講解它們之間的通信機制與數據傳遞方式。閒話少說,開始今天的內容,let’s go!!!Wails 框架如何工作?—————–在 Wails 中,前端通過 WebView 渲染頁面,後端通過 Go 提供邏輯 ⌘ Read more
Go 語言中字符串四種拼接方式的性能對比,哪個更勝一籌?
在 Go 語言開發中,字符串拼接是最常見的操作之一。不同的拼接方式在性能上可能有數量級的差異,特別是在高頻調用或大數據量處理的場景下。本文將使用標準基準測試,全面對比四種主流字符串拼接方式的性能表現。測試環境與方法測試環境Go 版本:1.20+ 操作系統:macOS/Windows/Linux CPU:8 核 測試方法我們創建了一個完整的基準測試文件echobenchtest.g ⌘ Read more
Go 語言中字符串四種拼接方式的性能對比,哪個更勝一籌?
在 Go 語言開發中,字符串拼接是最常見的操作之一。不同的拼接方式在性能上可能有數量級的差異,特別是在高頻調用或大數據量處理的場景下。本文將使用標準基準測試,全面對比四種主流字符串拼接方式的性能表現。測試環境與方法測試環境Go 版本:1.20+ 操作系統:macOS/Windows/Linux CPU:8 核 測試方法我們創建了一個完整的基準測試文件echobenchtest.g ⌘ Read more
@movq@www.uninformativ.de I AM GOING TO CRY THEY’RE SO CUTE T___T THE SILLIES….. i’m so jealous i want my own little tux family!!!!
Buying a TV these days, means trying to avoid endless enshitification:
-Spyware and adware
-Shitty AI upscaling/ frame interpolation
-HW that breaks after 2 - 3 years
-One off OS, dead on arrival
-Android OS, that starts lagging after the third update
-8 buttons worth of ads, on your remote
You probably have to make some kind of a compromise. I thought that was buying from some other brand like Hyundai, but that one also felt into some of those categories and just broke, after less than 3 years of use. At this point I’ll probably go back to LG and hope their HW is still reliable and the rest manageable… It has AI bullshit and knowing LG, probably some spyware you have to try your best to get rid of, can buy a remote with “only” 2 ads on it, some web-based OS shared between all their TVs, that usually gets 4 - 5 years worth of updates and works decently enough afterwards.
At this point, I’ll probably settle for anything that doesn’t literally fall apart, not even 3 years in, like the Hyundai did.
Vibe coding: Your roadmap to becoming an AI developer
Learn how to go from curious coder to AI wizard—with a little help from GitHub.
The post Vibe coding: Your roadmap to becoming an AI developer appeared first on The GitHub Blog. ⌘ Read more
Go 指針還能這麼玩?結構體方法調用竟然不用解引用!
Go 語言中的指針詳解包含字段與方法的簡化寫法————在 Go 語言中,指針是高效操作數據、避免大對象拷貝的重要工具。本文將詳細講解 Go 中指針相關的幾個關鍵概念:&:取地址 T:聲明指針類型 p:解引用指針 結構體指針可以使用 ptr.Field 和 ptr.Method() 的簡化寫法 是否支持多級指針如 *T 一、基本操作符解釋——– ⌘ Read more
Go 指針還能這麼玩?結構體方法調用竟然不用解引用!
Go 語言中的指針詳解包含字段與方法的簡化寫法————在 Go 語言中,指針是高效操作數據、避免大對象拷貝的重要工具。本文將詳細講解 Go 中指針相關的幾個關鍵概念:&:取地址 T:聲明指針類型 p:解引用指針 結構體指針可以使用 ptr.Field 和 ptr.Method() 的簡化寫法 是否支持多級指針如 *T 一、基本操作符解釋——– ⌘ Read more
從 Go 路由選擇看 “標準庫優先”:何時堅守?何時拓展?
大家好,我是 Tony Bai。最近,知名 Go 博主 Alex Edwards 更新了他那篇廣受歡迎的文章——“Which Go router should I use?1]”,特別提到了 [Go 1.22 版本對標準庫 http.ServeMux 的顯著增強。這篇文章再次引發了我們對 Go Web 開發中一個經典問題的思考:在選擇路由庫時,我們應該堅守標準庫,還是擁抱功能更豐富的第三方庫?這個 ⌘ Read more
從 Go 路由選擇看 “標準庫優先”:何時堅守?何時拓展?
大家好,我是 Tony Bai。最近,知名 Go 博主 Alex Edwards 更新了他那篇廣受歡迎的文章——“Which Go router should I use?1]”,特別提到了 [Go 1.22 版本對標準庫 http.ServeMux 的顯著增強。這篇文章再次引發了我們對 Go Web 開發中一個經典問題的思考:在選擇路由庫時,我們應該堅守標準庫,還是擁抱功能更豐富的第三方庫?這個 ⌘ Read more
@kat@yarn.girlonthemoon.xyz i’m actually going to cry real tears they only ship to germany, austria, and switzerland
OH MY FUCKING GOD I’M GOING TO CRY I NEED BIG TUX SO BAD https://www.steiner-plueschshop.de/kuscheltiere/arktis-seetiere/pinguin-linux/
@kat@yarn.girlonthemoon.xyz I CAN’T FUCKING SEW I’M GOING TO BRIBE MY SISTER TO MAKE ME ONE
good morning. i want a tux plushie so bad i am going to eat drywall
Go 語言 從設計到優化全流程 構建高併發權重抽獎系統
在現代互聯網應用中,抽獎系統被廣泛用於營銷活動、用戶激勵等場景。一個好的抽獎系統需要滿足:公平性:確保概率分佈準確高性能:支持高併發抽獎請求安全性:防止作弊和重複中獎可擴展:支持多種抽獎活動配置本文將基於 Go 語言實現一個完整的權重抽獎系統,涵蓋核心算法、併發控制、安全防護等關鍵設計。一、系統架構設計1. 整體架構圖2. 核心組件說明二、核心算法實現1. 權重區間算法type Prize str ⌘ Read more
Go 語言 從設計到優化全流程 構建高併發權重抽獎系統
在現代互聯網應用中,抽獎系統被廣泛用於營銷活動、用戶激勵等場景。一個好的抽獎系統需要滿足:公平性:確保概率分佈準確高性能:支持高併發抽獎請求安全性:防止作弊和重複中獎可擴展:支持多種抽獎活動配置本文將基於 Go 語言實現一個完整的權重抽獎系統,涵蓋核心算法、併發控制、安全防護等關鍵設計。一、系統架構設計1. 整體架構圖2. 核心組件說明二、核心算法實現1. 權重區間算法type Prize str ⌘ Read more