Learn Go concurrency from the ground up with 50 auto-tested exercises and tons of interactive examples.
It's a full course + book in one.
antonz.org/go-concurrency
You can try them online, embed them on your own website, or self-host and customize.
antonz.org/better-c
You can try them online, embed them on your own website, or self-host and customize.
antonz.org/better-c
But it's coming back in Go 1.26!
Meet the new "go fix" — reimplemented from scratch, powered by a solid backend, and packed with modern code fixes!
antonz.org/accepted/mod...
But it's coming back in Go 1.26!
Meet the new "go fix" — reimplemented from scratch, powered by a solid backend, and packed with modern code fixes!
antonz.org/accepted/mod...
But the synctest package, available since 1.24, can also catch leaks just fine. I don't know why no one talks about this.
Anyway, it's time to cover both of them!
antonz.org/detecting-go...
But the synctest package, available since 1.24, can also catch leaks just fine. I don't know why no one talks about this.
Anyway, it's time to cover both of them!
antonz.org/detecting-go...
Handy for trying a new language online or embedding interactive snippets into your writing.
codapi.org#sandboxes
Handy for trying a new language online or embedding interactive snippets into your writing.
codapi.org#sandboxes
Learn Go concurrency from the ground up with 50 auto-tested exercises and tons of interactive examples.
It's a full course + book in one.
antonz.org/go-concurrency
Learn Go concurrency from the ground up with 50 auto-tested exercises and tons of interactive examples.
It's a full course + book in one.
antonz.org/go-concurrency
These are the people who design and implement the proposals, making it possible for us to enjoy new features and improvements in future Go versions 🫡
Send them some love :)
antonz.org/tags/accepted
These are the people who design and implement the proposals, making it possible for us to enjoy new features and improvements in future Go versions 🫡
Send them some love :)
antonz.org/tags/accepted
Just kidding. The package wipes the memory to keep secrets safe — hence the name.
antonz.org/accepted/run...
Just kidding. The package wipes the memory to keep secrets safe — hence the name.
antonz.org/accepted/run...
It's not meant to be a deep dive. But it's short, easy to understand, and will teach you more about goroutine scheduling than many other developers know.
antonz.org/go-concurren...
It's not meant to be a deep dive. But it's short, easy to understand, and will teach you more about goroutine scheduling than many other developers know.
antonz.org/go-concurren...
No reflection. No runtime panics. Concise code. This is big!
antonz.org/accepted/err...
No reflection. No runtime panics. Concise code. This is big!
antonz.org/accepted/err...
Developers can use them to catch problems early without needing full traces.
antonz.org/accepted/gor...
Developers can use them to catch problems early without needing full traces.
antonz.org/accepted/gor...
To really understand synctest, check out the new chapter of my interactive Go Concurrency book.
antonz.org/go-concurren...
To really understand synctest, check out the new chapter of my interactive Go Concurrency book.
antonz.org/go-concurren...
They combine the efficiency of the existing top-level dialing functions with the cancellation capabilities of Dialer.DialContext.
antonz.org/accepted/net...
They combine the efficiency of the existing top-level dialing functions with the cancellation capabilities of Dialer.DialContext.
antonz.org/accepted/net...
When the Go team initially designed the IP subnet type (netip.Prefix), they chose not to add a Compare method.
Over time, they changed their minds.
antonz.org/accepted/net...
When the Go team initially designed the IP subnet type (netip.Prefix), they chose not to add a Compare method.
Over time, they changed their minds.
antonz.org/accepted/net...
The resulting library offers a rich set of functions, from working with Unix time to time comparison and arithmetic to truncation and rounding.
With nanosecond precision.
github.com/nalgeon/vaqt
The resulting library offers a rich set of functions, from working with Unix time to time comparison and arithmetic to truncation and rounding.
With nanosecond precision.
github.com/nalgeon/vaqt
They provide concurrent-safe operations without explicit synchronization, but there are several pitfalls to watch out for.
antonz.org/go-concurren...
They provide concurrent-safe operations without explicit synchronization, but there are several pitfalls to watch out for.
antonz.org/go-concurren...
I've made a summary of the proposal, and even managed to squeeze in some interactive examples.
antonz.org/accepted/map...
I've made a summary of the proposal, and even managed to squeeze in some interactive examples.
antonz.org/accepted/map...
For each accepted proposal, I'll write a one-page summary that explains the change in simple terms.
This should (hopefully) be the easiest way to keep up with upcoming changes.
The first issue is already out!
For each accepted proposal, I'll write a one-page summary that explains the change in simple terms.
This should (hopefully) be the easiest way to keep up with upcoming changes.
The first issue is already out!
But what if we bypass the runtime and run tasks directly on OS threads or even processes?
Let's find out!
antonz.org/multi
But what if we bypass the runtime and run tasks directly on OS threads or even processes?
Let's find out!
antonz.org/multi
So I figured now's a good time to add it to my SQLite extensions!
github.com/nalgeon/sqle...
So I figured now's a good time to add it to my SQLite extensions!
github.com/nalgeon/sqle...
antonz.org/tags/projects
antonz.org/tags/projects
Anyway, it's done now, so a lot of examples are easier to read!
antonz.org/go-concurrency
Anyway, it's done now, so a lot of examples are easier to read!
antonz.org/go-concurrency
➀ HTTP requests
➁ MQTT publish/subscribe
sqlpkg.org?q=litesql
➀ HTTP requests
➁ MQTT publish/subscribe
sqlpkg.org?q=litesql
"Over the next few weeks, follow-up blog posts will cover some of the topics in more detail. Check back in later."
So you can wait a few weeks OR you can read my interactive Go 1.25 tour right away:
antonz.org/go-1-25
"Over the next few weeks, follow-up blog posts will cover some of the topics in more detail. Check back in later."
So you can wait a few weeks OR you can read my interactive Go 1.25 tour right away:
antonz.org/go-1-25