If you use
Let's see what the problem might be and how to work around it.
https://antonz.org/timer-reset/
Timer.Reset() in Go 1.22 or earlier, you may be doing it wrong. Even the book 100 Go Mistakes (which is usually right about Go nuances) got it wrong.Let's see what the problem might be and how to work around it.
https://antonz.org/timer-reset/
antonz.org
Resetting timers in Go
Chances are you are doing it wrong.
π€―49π34β€7π₯7π€7π5
The standard library of Go 1.23 now includes the new unique package. The purpose behind this package is to enable the canonicalization of comparable values. In other words, this package lets you deduplicate values so that they point to a single, canonical, unique copy, while efficiently managing the canonical copies under the hood. You might be familiar with this concept already, called βinterningβ.
Letβs dive in to see how it works, and why itβs useful.
https://go.dev/blog/unique
Letβs dive in to see how it works, and why itβs useful.
https://go.dev/blog/unique
go.dev
New unique package - The Go Programming Language
New package for interning in Go 1.23.
π₯64β€19π13π8
Go sync.Map: The Right Tool for the Right Job
In Go, sync.Map offers a thread-safe alternative to traditional maps. While sync.Map can be highly effective in scenarios involving heavy concurrent access, it isn't always the best choice. In this article by VictoriaMetrics, you'll learn when to opt for sync.Map, how it differs from regular maps, and the performance trade-offs involved.
https://victoriametrics.com/blog/go-sync-map/index.html
In Go, sync.Map offers a thread-safe alternative to traditional maps. While sync.Map can be highly effective in scenarios involving heavy concurrent access, it isn't always the best choice. In this article by VictoriaMetrics, you'll learn when to opt for sync.Map, how it differs from regular maps, and the performance trade-offs involved.
https://victoriametrics.com/blog/go-sync-map/index.html
VictoriaMetrics
Go sync.Map: The Right Tool for the Right Job
Goβs sync.Map isnβt a magic bullet for all concurrent map needs. Itβs got some good tricks up its sleeve, like handling reads without locking, but itβs not always the best choice. This article dives into how sync.Map works under the hood, from its two-mapβ¦
π33π14β€8
Go Blueprint: A Quick Way to Start Go Projects β
The tool helps you setting up new Go projects fast, with ready-made templates and all the basic setup done for you.
While Iβm not really into using tools like this, some might find it useful to save time and focus on development.
From the authors: "Powerful CLI tool designed to streamline the process of creating Go projects with a robust and standardized structure. Not only does Go Blueprint facilitate project initialization, but it also offers seamless integration with popular Go frameworks, allowing you to focus on your application's code from the very beginning."
https://docs.go-blueprint.dev/
The tool helps you setting up new Go projects fast, with ready-made templates and all the basic setup done for you.
While Iβm not really into using tools like this, some might find it useful to save time and focus on development.
From the authors: "Powerful CLI tool designed to streamline the process of creating Go projects with a robust and standardized structure. Not only does Go Blueprint facilitate project initialization, but it also offers seamless integration with popular Go frameworks, allowing you to focus on your application's code from the very beginning."
https://docs.go-blueprint.dev/
docs.go-blueprint.dev
Go-Blueprint Docs
Official documentation for Go-Blueprint project
π₯61π33β€16π8π€1
Coming in Go 1.24: testing/synctest experiment for time and concurrency testing
Testing code that involves time or concurrency can be a struggle. It often leads to hard-to-debug flakes in CI or long-running tests.
Go 1.24 is scheduled to be released in February and the release freeze has begun.
Itβs set to include an experimental
https://danp.net/posts/synctest-experiment/
Testing code that involves time or concurrency can be a struggle. It often leads to hard-to-debug flakes in CI or long-running tests.
Go 1.24 is scheduled to be released in February and the release freeze has begun.
Itβs set to include an experimental
testing/synctest package designed to make testing code that involves time or concurrency precise and fast.https://danp.net/posts/synctest-experiment/
β€83π37π₯13π5π€―5π€2π©1
Hello, dear community!
I wish you Merry Christmas π Happy New Year π and great winter holidays ahead!βοΈ βοΈ
See you in 2025 π
I wish you Merry Christmas π Happy New Year π and great winter holidays ahead!βοΈ βοΈ
See you in 2025 π
β€380π76π₯43π6π©4π€3
Go 1.24: A Major Improvement for Tooling: go tools π
Hello, folks! The upcoming Go 1.24 (supposed to be coming this month, Feb 2025) introduces a new
- No more tools.go hacks
- Faster execution with caching
- Cleaner and more efficient dependency management
How it works? Simple!
Add a tool:
Run it:
List available tools:
Some people say this is one of the most useful changes to Go's tooling in years, making project setups more efficient and maintainable, so take a look in more details here https://www.jvt.iss.one/posts/2025/01/27/go-tools-124/ π
PS More official docs can be found in the Go 1.24's release notes here: https://tip.golang.org/doc/go1.24#tools
Hello, folks! The upcoming Go 1.24 (supposed to be coming this month, Feb 2025) introduces a new
go tool command, aiming to significantly improve the way project-specific tools are managed. This update eliminates the need for the tools.go workaround, reduces dependency bloat, and improves performance through caching. So, - No more tools.go hacks
- Faster execution with caching
- Cleaner and more efficient dependency management
How it works? Simple!
Add a tool:
go get -tool github.com/oapi-codegen/oapi-codegen/v2/cmd/[email protected]
Run it:
go tool github.com/oapi-codegen/oapi-codegen/v2/cmd/oapi-codegen --config=config.yaml openapi.yaml
List available tools:
go tool
Some people say this is one of the most useful changes to Go's tooling in years, making project setups more efficient and maintainable, so take a look in more details here https://www.jvt.iss.one/posts/2025/01/27/go-tools-124/ π
PS More official docs can be found in the Go 1.24's release notes here: https://tip.golang.org/doc/go1.24#tools
π113β€48π₯22π10π4π€4π€―1
What's new in Go: Google I/O presentation
https://www.youtube.com/watch?v=kj80m-umOxs&ab_channel=GoogleforDevelopers
https://www.youtube.com/watch?v=kj80m-umOxs&ab_channel=GoogleforDevelopers
YouTube
What's new in Go
Thereβs a lot to love about Go 1.24, including support for post-quantum cryptography, full support for generic type aliases, and several performance improvements to the Go runtime that significantly decrease CPU overhead for most applications. Learn whatβsβ¦
β€65π35π©7π₯4π3
Be Careful with Go Struct Embedding
Embedding structs can quietly mask deeper-nested fields: a duplicate field name isnβt ambiguous unless it appears at the same βdepthβ, meaning your program may choose an unintended value.
https://mattjhall.co.uk/posts/be-careful-with-go-struct-embedding.html
Embedding structs can quietly mask deeper-nested fields: a duplicate field name isnβt ambiguous unless it appears at the same βdepthβ, meaning your program may choose an unintended value.
https://mattjhall.co.uk/posts/be-careful-with-go-struct-embedding.html
mattjhall.co.uk
Be Careful with Go Struct Embedding - Matt Hall
The gophers nested too greedily and too deep.
π59π₯11π€9β€4π3
Hello, folks, it's been a while. Re-sharing an interetsting recording from GopherCon 2025:
Advancing Go Garbage Collection with Green Tea (youtube). TL;DR:
Go 1.25 includes a new experimental garbage collector called Green Tea, available by setting GOEXPERIMENT=greenteagc at build time. Many workloads spend around 10% less time in the garbage collector, but some workloads see a reduction of up to 40%!
There is an also official text version on the Green Tea Garbage Collector if one does not like to watch the video.
Thanks!
Advancing Go Garbage Collection with Green Tea (youtube). TL;DR:
Go 1.25 includes a new experimental garbage collector called Green Tea, available by setting GOEXPERIMENT=greenteagc at build time. Many workloads spend around 10% less time in the garbage collector, but some workloads see a reduction of up to 40%!
There is an also official text version on the Green Tea Garbage Collector if one does not like to watch the video.
Thanks!
YouTube
GopherCon 2025 - Advancing Go Garbage Collection with Green Tea - Michael Knyszek
Memory latency and bandwidth are becoming increasingly constrained, and these trends are at odds with most of today's garbage collection algorithms, including Go's. In this talk, Michael will dive deep into Green Tea, a new parallel mark algorithm to accelerateβ¦
π42β€20π₯4π€―3π1