Nick Ripley's Avatar

Nick Ripley

@nsrip.com

92
Followers
40
Following
10
Posts
06.01.2025
Joined
Posts Following

Latest posts by Nick Ripley @nsrip.com

What should we do with CLs generated by AI?

Anyway, read Russ Cox's take on AI tool use in the Go project.

groups.google.com/g/golang-dev...

16.02.2026 13:35 👍 27 🔁 8 💬 2 📌 0

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.

14.01.2026 16:54 👍 29 🔁 10 💬 1 📌 0
Two concurrency patterns which avoid goroutine leaks

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...

31.12.2025 20:04 👍 4 🔁 1 💬 0 📌 0
GopherCon 2018: Rethinking Classical Concurrency Patterns - Bryan C. Mills
GopherCon 2018: Rethinking Classical Concurrency Patterns - Bryan C. Mills YouTube video by Gopher Academy

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

23.11.2025 19:02 👍 0 🔁 0 💬 1 📌 0

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 :)

23.11.2025 18:48 👍 35 🔁 4 💬 0 📌 0

“The Green Tea Garbage Collector” by Michael Knyszek and Austin Clements — https://go.dev/blog/greenteagc

#golang

29.10.2025 16:58 👍 54 🔁 17 💬 1 📌 3
Preview
How we found a bug in Go's arm64 compiler 84 million requests a second means even rare bugs appear often. We'll reveal how we discovered a race condition in the Go arm64 compiler and got it fixed.

blog.cloudflare.com/how-we-found... Fun post! Reminded me of a similar bug I wrote about in nsrip.com/posts/oneins...

08.10.2025 22:08 👍 3 🔁 0 💬 0 📌 0
Observe live SQL queries in Go with DTrace

Go, SQL, and DTrace: a marriage made in heaven?
New blog post!
gaultier.github.io/blog/observe...

#golang #dtrace #sql

11.09.2025 11:53 👍 2 🔁 1 💬 1 📌 0
An optimization and debugging story with Go and DTrace

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

03.07.2025 09:39 👍 32 🔁 7 💬 1 📌 1
Preview
Significant Bits | Read/Write/Nil with Michael Knyszek and Michael Pratt Please read important erratum at end of these notes!Astute listeners will notice that this is the first episode in over a year. I recorded not one but two awesome interviews...and then failed to ed...

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

04.07.2025 05:14 👍 25 🔁 10 💬 1 📌 0
How to patch the Go toolchain

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

02.07.2025 18:44 👍 15 🔁 5 💬 0 📌 0

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

14.05.2025 23:20 👍 0 🔁 0 💬 1 📌 0

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.

03.02.2025 18:00 👍 1 🔁 0 💬 0 📌 0
Firefox profiler UI. Once I load the article, the CPU usage pegs at 100% and I see tons of network activity.

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

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!

29.01.2025 01:52 👍 3 🔁 0 💬 0 📌 0

Gotta give this a try soon. Leaning on existing capabilities from Delve is smart

25.01.2025 18:09 👍 1 🔁 0 💬 0 📌 0
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.

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...

15.11.2024 19:38 👍 6 🔁 2 💬 0 📌 0

Oh awesome! Thanks again for all your help debugging. That was a tricky one :D

06.01.2025 01:43 👍 1 🔁 0 💬 0 📌 0
Don't clobber the frame pointer

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...

29.12.2024 23:32 👍 36 🔁 7 💬 3 📌 1