Anyway, read Russ Cox's take on AI tool use in the Go project.
groups.google.com/g/golang-dev...
Anyway, read Russ Cox's take on AI tool use in the Go project.
groups.google.com/g/golang-dev...
Related #golang PSA:
Gophers often mistakenly put a -u in 'go get -u foo', when they would have been better off with just 'go get foo'.
'go get foo' says to upgrade foo itself. It's shorthand for 'go get foo@upgrade'
'go get -u foo' says to *also* upgrade all the direct and indirect deps of foo.
Used some of my time off to finish a blog post that's been in my backlog for a while: two neat concurrency patterns from the standard library which avoid goroutine leaks by design: nsrip.com/posts/gorout...
Though-provoking post! Lots to comment on. It reminded me of a talk you might be interested in: youtu.be/5zXAHh5tJqQ. Bryan advocated a lot for different concurrency patterns to avoid common bugs. One controversial idea was getting rid of sync.Cond because it's so easy to misuse: go.dev/issue/21165
Small contribution just before the Go 1.26 freeze: go.dev/cl/610815 removes the hard-coded 100ms sleep from the CPU profiler for most platforms. This will make it more efficient and unblock deeper call stacks. As a bonus, uncovered and fixed an 8 year old bug in the profiler go.dev/cl/722940 :)
“The Green Tea Garbage Collector” by Michael Knyszek and Austin Clements — https://go.dev/blog/greenteagc
#golang
blog.cloudflare.com/how-we-found... Fun post! Reminded me of a similar bug I wrote about in nsrip.com/posts/oneins...
Go, SQL, and DTrace: a marriage made in heaven?
New blog post!
gaultier.github.io/blog/observe...
#golang #dtrace #sql
Ever wondered if it’s possible to use DTrace on a Go program? Turns out it’s super easy, barely an inconvenience!
gaultier.github.io/blog/an_opti...
#golang #dtrace #optimization #debugging
Thanks @commaok.xyz for hosting @michael.express and I to talk about a fun bug in Go’s new Green Tea GC and the tools we used to investigate.
sigpod.dev/6
A few ways to build Go programs with a modified compiler/runtime/standard library: nsrip.com/posts/patchr... Overlays in particular are pretty cool IMO
Didn't end up using this, but I thought I might need a quick way for somebody to check if one of their Go dependencies calls a specific function. This one-liner does it:
go list -deps -f '{{$dir := .Dir}}{{range .GoFiles}}{{$dir}}/{{.}} {{end}}' | xargs rg foo.Bar
Huge +1. I spend most of my time at work reading and fixing existing code, and every bit of knowledge is precious. Commit messages, comments, links to PRs/CLs/RFCs/issue trackers... Obvious things aren't obvious months or years later.
Firefox profiler UI. Once I load the article, the CPU usage pegs at 100% and I see tons of network activity.
Chart of Nvidia, Nasdaq, and S&P 500 values, apparently needs to be updated hundreds of times a second
Got a trial Financial Times subscription, and I was reading an article when I noticed my browser was crawling, using like 160% CPU. Ran out the (awesome) Firefox profiler, turns out the page is doing hundreds of HTTP requests per second to update this little chart... yikes!
Gotta give this a try soon. Leaning on existing capabilities from Delve is smart
An exhibit from the MIT Museum (Core Memory Unit, Bank C (from Project Whirlwind, 1953-1959)), a core memory unit with 4 KB of capacity.
New blog post! Debug Go core dumps with delve: export byte slices
Not all bugs can easily be reproduced. Sometimes, all you have is a core dump. I had trouble figuring out how to save byte slice contents from memory into a file for further analysis with delve…
michael.stapelberg.ch/posts/2024-1...
Oh awesome! Thanks again for all your help debugging. That was a tricky one :D
Nick Ripley of @datadoghq.bsky.social wrote up something recently on our collaboration to squish bugs surfaced by frame pointer unwinding code in the Go runtime: nsrip.com/posts/clobbe...