Advertisement · 728 × 90

Posts by Nick Ripley

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

1 month ago 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.

2 months ago 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...

3 months ago 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

4 months ago 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 :)

4 months ago 35 4 0 0

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

#golang

5 months ago 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...

6 months ago 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

7 months ago 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

9 months ago 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

9 months ago 25 10 1 0
Advertisement
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

9 months ago 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

10 months ago 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.

1 year ago 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!

1 year ago 3 0 0 0

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

1 year ago 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...

1 year ago 6 2 0 0

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

1 year ago 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...

1 year ago 36 7 3 1