Nope.
11.08.2025 13:31 β π 0 π 0 π¬ 1 π 0@antonz.org.bsky.social
Open source maintainer. Writing interactive technical books at https://antonz.org
Nope.
11.08.2025 13:31 β π 0 π 0 π¬ 1 π 0I think third-party Go concurrency packages are often too opinionated and try to hide too much complexity.
That's why I created `chans`: a package with generic channel operations that's unopinionated, composable, and doesn't take control away from the developer.
antonz.org/chans
All jokes aside, I've implemented promises and async/await in Go. Just make sure you NEVER use them.
github.com/nalgeon/azor
The new chapter of my interactive Go Concurrency book covers signaling, one-time execution, and object pools.
If you think channels are the only way for goroutines to communicate, check it out!
antonz.org/go-concurren...
Thanks James, glad you like it!
19.07.2025 14:17 β π 1 π 0 π¬ 0 π 0I've updated the list of Go features by version.
Now, each feature has β a link to the documentation, β a link to the proposal, and β a link to the commits.
It's fascinating to see how Go has changed over the years.
antonz.org/which-go
Make smaller interfaces. Stay deep. antonz.org/deep-modules
17.07.2025 12:46 β π 1 π 0 π¬ 0 π 0You don't need testify/assert to write clear and expressive Go tests.
antonz.org/do-not-testify
Okay, I did it again. I reimplemented Redis using Postgres.
Key/value, expiration, maps, lists, sets, and sorted sets β everything in your favorite database. With a Redis-compatible API and wire protocol.
github.com/nalgeon/redka
How about a micro test assertions Go package with flexible error checking?
Only 100 loc. I've named it "be" :)
github.com/nalgeon/be
The new chapter in my interactive Go Concurrency book is about Semaphores.
You'll have a Rendezvous with some helpful synchronization tools and even overcome a few Barriers.
If you know what I mean π
antonz.org/go-concurren...
Given how much I love Redis, it's strange that I haven't made a playground for it β until today.
Now I (and everyone else) can finally write interactive Redis docs!
codapi.org/redis
Go 1.25 is coming soon, and the official release notes are pretty dry.
So I prepared an interactive version with lots of examples.
antonz.org/go-1-25
Thanks, Arman! They take a lot of time to make, so I'm really glad you read them :)
22.06.2025 19:46 β π 1 π 0 π¬ 0 π 0It's considered experimental, so it requires a feature flag, and the API might change. But it's already pretty usable!
22.06.2025 18:24 β π 1 π 0 π¬ 0 π 0I'm working on an interactive Go 1.25 tour, but there are so many changes in json/v2 that I decided to cover them in a separate blog post.
Plenty of interactive examples ahead!
antonz.org/go-json-v2
Using mutexes to avoid data races might seem simple, but dealing with race conditions is a whole other matter. Let's learn how to handle these beasts βΒ in the new chapter of my Go Concurrency book!
antonz.org/go-concurren...
I'm back to working on the Go Concurrency book! The new chapter is all about data races and how to avoid them: antonz.org/go-concurren...
09.06.2025 11:07 β π 1 π 0 π¬ 0 π 0My rule of thumb: writing is an AI-free zone.
antonz.org/ai-free
If you're into Go, I have a sad story for you. It's a tale of false flexibility, leaking abstractions, and httpβ.βDefaultTransport.
antonz.org/default-tran...
Thank you! I wonder how many of these URLs are out there :)
15.05.2025 21:33 β π 1 π 0 π¬ 0 π 0Thanks!
15.05.2025 17:06 β π 1 π 0 π¬ 0 π 0Recently, I was working on an application that needed to know if it was connected to the internet.
I didn't want to use ping (ICMP), and wanted to exercise the full stack used by real HTTP clients: DNS, TCP, and HTTP.
So I did some digging, and here are the results: antonz.org/is-online/
See the full list of extensions (known to me) in the extension hub: sqlpkg.org
07.05.2025 09:18 β π 0 π 0 π¬ 0 π 0Did you know that there are SQLite extensions for:
β Creating pivot tables.
β Storing tables in S3.
β Querying Excel files.
β Reading Protobuf messages.
β Fuzzy string matching.
And many, many others!
See the details at github.com/orbitinghail...
You can even install Graft using the SQLite package manager:
sqlpkg install orbitinghail/graft
Graft by @f0a.org implements strongly consistent replication between SQLite and object storage like S3/R2.
Implemented as a SQLite virtual file system. Interesting!
Thanks man :)
03.05.2025 20:09 β π 1 π 0 π¬ 0 π 0Grep is one of the most useful cli tools I use every day.
If you use it often, I encourage you to take a look at the interactive mini-book I wrote β you might learn a thing or two even if you are an experienced grep user.
antonz.org/grep-by-exam...