<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Hacker News: broken_broken_</title><link>https://news.ycombinator.com/user?id=broken_broken_</link><description>Hacker News RSS</description><docs>https://hnrss.org/</docs><generator>hnrss v2.1.1</generator><lastBuildDate>Tue, 28 Jul 2026 15:20:33 +0000</lastBuildDate><atom:link href="https://hnrss.org/user?id=broken_broken_" rel="self" type="application/rss+xml"></atom:link><item><title><![CDATA[Optimization tales with CockroachDB: the slow logout]]></title><description><![CDATA[
<p>Article URL: <a href="https://gaultier.github.io/blog/optimization-tales-cockroachdb-part2-slow-logout.html">https://gaultier.github.io/blog/optimization-tales-cockroachdb-part2-slow-logout.html</a></p>
<p>Comments URL: <a href="https://news.ycombinator.com/item?id=48748528">https://news.ycombinator.com/item?id=48748528</a></p>
<p>Points: 1</p>
<p># Comments: 0</p>
]]></description><pubDate>Wed, 01 Jul 2026 15:30:59 +0000</pubDate><link>https://gaultier.github.io/blog/optimization-tales-cockroachdb-part2-slow-logout.html</link><dc:creator>broken_broken_</dc:creator><comments>https://news.ycombinator.com/item?id=48748528</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48748528</guid></item><item><title><![CDATA[Optimization tales with CockroachDB: the slow password reset flow]]></title><description><![CDATA[
<p>Article URL: <a href="https://gaultier.github.io/blog/optimization-tales-cockroachdb-part1.html">https://gaultier.github.io/blog/optimization-tales-cockroachdb-part1.html</a></p>
<p>Comments URL: <a href="https://news.ycombinator.com/item?id=48731515">https://news.ycombinator.com/item?id=48731515</a></p>
<p>Points: 2</p>
<p># Comments: 0</p>
]]></description><pubDate>Tue, 30 Jun 2026 12:06:23 +0000</pubDate><link>https://gaultier.github.io/blog/optimization-tales-cockroachdb-part1.html</link><dc:creator>broken_broken_</dc:creator><comments>https://news.ycombinator.com/item?id=48731515</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48731515</guid></item><item><title><![CDATA[I sped up the test suite by 2x with one simple change]]></title><description><![CDATA[
<p>Article URL: <a href="https://gaultier.github.io/blog/I_sped_up_the_test_suite_by_x2.html">https://gaultier.github.io/blog/I_sped_up_the_test_suite_by_x2.html</a></p>
<p>Comments URL: <a href="https://news.ycombinator.com/item?id=48537771">https://news.ycombinator.com/item?id=48537771</a></p>
<p>Points: 2</p>
<p># Comments: 0</p>
]]></description><pubDate>Mon, 15 Jun 2026 07:29:21 +0000</pubDate><link>https://gaultier.github.io/blog/I_sped_up_the_test_suite_by_x2.html</link><dc:creator>broken_broken_</dc:creator><comments>https://news.ycombinator.com/item?id=48537771</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48537771</guid></item><item><title><![CDATA[New comment by broken_broken_ in "Tracing Goroutines in Realtime with eBPF"]]></title><description><![CDATA[
<p>It depends how much the code uses manually spawned goroutines, and how complex the lifecycle of these goroutines  is… in big codebases such as kubernetes, docker, etc, it has been a problem. There have been research papers and blogs about this, but most Go developers are not aware of this issue it seems.</p>
]]></description><pubDate>Mon, 06 Apr 2026 06:26:41 +0000</pubDate><link>https://news.ycombinator.com/item?id=47657596</link><dc:creator>broken_broken_</dc:creator><comments>https://news.ycombinator.com/item?id=47657596</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47657596</guid></item><item><title><![CDATA[New comment by broken_broken_ in "Tracing Goroutines in Realtime with eBPF"]]></title><description><![CDATA[
<p>Interesting to see an ebpf approach to this idea, some time ago I did the same with Dtrace: <a href="https://gaultier.github.io/blog/detecting_goroutine_leaks_with_dtrace.html" rel="nofollow">https://gaultier.github.io/blog/detecting_goroutine_leaks_wi...</a><p>However I did not think of observing the ‘castgstatus’ runtime function.<p>Always nice to be able to compare the DTrace and Ebpf approaches, they both have different strong points.</p>
]]></description><pubDate>Sun, 05 Apr 2026 16:42:25 +0000</pubDate><link>https://news.ycombinator.com/item?id=47651168</link><dc:creator>broken_broken_</dc:creator><comments>https://news.ycombinator.com/item?id=47651168</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47651168</guid></item><item><title><![CDATA[New comment by broken_broken_ in "Simple, fast and open-source PHP framework frozen in C-extension"]]></title><description><![CDATA[
<p>The name clashes with a similar project that has existed for decades: <a href="https://zeroc.com/ice" rel="nofollow">https://zeroc.com/ice</a></p>
]]></description><pubDate>Mon, 16 Mar 2026 14:31:00 +0000</pubDate><link>https://news.ycombinator.com/item?id=47399551</link><dc:creator>broken_broken_</dc:creator><comments>https://news.ycombinator.com/item?id=47399551</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47399551</guid></item><item><title><![CDATA[The production bug that made me care about undefined behavior]]></title><description><![CDATA[
<p>Article URL: <a href="https://gaultier.github.io/blog/the_production_bug_that_made_me_care_about_undefined_behavior.html">https://gaultier.github.io/blog/the_production_bug_that_made_me_care_about_undefined_behavior.html</a></p>
<p>Comments URL: <a href="https://news.ycombinator.com/item?id=46403969">https://news.ycombinator.com/item?id=46403969</a></p>
<p>Points: 1</p>
<p># Comments: 0</p>
]]></description><pubDate>Sat, 27 Dec 2025 18:28:06 +0000</pubDate><link>https://gaultier.github.io/blog/the_production_bug_that_made_me_care_about_undefined_behavior.html</link><dc:creator>broken_broken_</dc:creator><comments>https://news.ycombinator.com/item?id=46403969</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46403969</guid></item><item><title><![CDATA[Detecting Goroutine Leaks with DTrace]]></title><description><![CDATA[
<p>Article URL: <a href="https://gaultier.github.io/blog/detecting_goroutine_leaks_with_dtrace.html">https://gaultier.github.io/blog/detecting_goroutine_leaks_with_dtrace.html</a></p>
<p>Comments URL: <a href="https://news.ycombinator.com/item?id=46357214">https://news.ycombinator.com/item?id=46357214</a></p>
<p>Points: 2</p>
<p># Comments: 0</p>
]]></description><pubDate>Mon, 22 Dec 2025 18:40:46 +0000</pubDate><link>https://gaultier.github.io/blog/detecting_goroutine_leaks_with_dtrace.html</link><dc:creator>broken_broken_</dc:creator><comments>https://news.ycombinator.com/item?id=46357214</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46357214</guid></item><item><title><![CDATA[New comment by broken_broken_ in "I got hacked: My Hetzner server started mining Monero"]]></title><description><![CDATA[
<p>I am not an expert in incident reaction, but I thought the safe way was to image the affected machine, turn it off, take a clean machine, boot a clean OS image with the affected image mounted read only in a VM, and do the investigation like that ?<p>Assume that the malware has replaced system commands, possibly used a kernel vulnerability to lie to you to hide its presence, so do not do anything in the infected system directly ?</p>
]]></description><pubDate>Thu, 18 Dec 2025 09:00:44 +0000</pubDate><link>https://news.ycombinator.com/item?id=46310400</link><dc:creator>broken_broken_</dc:creator><comments>https://news.ycombinator.com/item?id=46310400</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46310400</guid></item><item><title><![CDATA[New comment by broken_broken_ in "A kernel bug froze my machine: Debugging an async-profiler deadlock"]]></title><description><![CDATA[
<p>Nice article, thank you. 
Did you also consider using bpftrace while debugging?<p>I do not have much experience with it, but I think you can see the kernel call stack with it and I know you can also see the return value (in eax).
That would be less effort than qemu + gdb + disabling kernel aslr, etc.</p>
]]></description><pubDate>Tue, 16 Dec 2025 07:40:28 +0000</pubDate><link>https://news.ycombinator.com/item?id=46285803</link><dc:creator>broken_broken_</dc:creator><comments>https://news.ycombinator.com/item?id=46285803</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46285803</guid></item><item><title><![CDATA[New comment by broken_broken_ in "A million ways to die from a data race in Go"]]></title><description><![CDATA[
<p>Author here, thanks for the feedback on legibility, I have now just learned about the CSS `tab-size` property to control how much space tabs get rendered with. I have reduced it, should be better now.</p>
]]></description><pubDate>Tue, 25 Nov 2025 07:48:02 +0000</pubDate><link>https://news.ycombinator.com/item?id=46043344</link><dc:creator>broken_broken_</dc:creator><comments>https://news.ycombinator.com/item?id=46043344</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46043344</guid></item><item><title><![CDATA[A million ways to die from a data race in Go]]></title><description><![CDATA[
<p>Article URL: <a href="https://gaultier.github.io/blog/a_million_ways_to_data_race_in_go.html">https://gaultier.github.io/blog/a_million_ways_to_data_race_in_go.html</a></p>
<p>Comments URL: <a href="https://news.ycombinator.com/item?id=46031319">https://news.ycombinator.com/item?id=46031319</a></p>
<p>Points: 4</p>
<p># Comments: 0</p>
]]></description><pubDate>Mon, 24 Nov 2025 07:31:58 +0000</pubDate><link>https://gaultier.github.io/blog/a_million_ways_to_data_race_in_go.html</link><dc:creator>broken_broken_</dc:creator><comments>https://news.ycombinator.com/item?id=46031319</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46031319</guid></item><item><title><![CDATA[How to reproduce and fix an I/O data race with Go and DTrace]]></title><description><![CDATA[
<p>Article URL: <a href="https://gaultier.github.io/blog/how_to_reproduce_and_fix_an_io_data_race_with_dtrace.html">https://gaultier.github.io/blog/how_to_reproduce_and_fix_an_io_data_race_with_dtrace.html</a></p>
<p>Comments URL: <a href="https://news.ycombinator.com/item?id=45447407">https://news.ycombinator.com/item?id=45447407</a></p>
<p>Points: 1</p>
<p># Comments: 0</p>
]]></description><pubDate>Thu, 02 Oct 2025 08:28:24 +0000</pubDate><link>https://gaultier.github.io/blog/how_to_reproduce_and_fix_an_io_data_race_with_dtrace.html</link><dc:creator>broken_broken_</dc:creator><comments>https://news.ycombinator.com/item?id=45447407</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=45447407</guid></item><item><title><![CDATA[Observe live SQL queries in Go with DTrace]]></title><description><![CDATA[
<p>Article URL: <a href="https://gaultier.github.io/blog/observe_sql_queries_in_go_with_dtrace.html">https://gaultier.github.io/blog/observe_sql_queries_in_go_with_dtrace.html</a></p>
<p>Comments URL: <a href="https://news.ycombinator.com/item?id=45232869">https://news.ycombinator.com/item?id=45232869</a></p>
<p>Points: 3</p>
<p># Comments: 0</p>
]]></description><pubDate>Sat, 13 Sep 2025 15:28:12 +0000</pubDate><link>https://gaultier.github.io/blog/observe_sql_queries_in_go_with_dtrace.html</link><dc:creator>broken_broken_</dc:creator><comments>https://news.ycombinator.com/item?id=45232869</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=45232869</guid></item><item><title><![CDATA[New comment by broken_broken_ in "Lessons learned from implementing SIMD-accelerated algorithms in pure Rust"]]></title><description><![CDATA[
<p>I love a good SIMD article!<p>Just one point about testable assembly: I like the Golang guidelines which require to write a Go version before implementing the same in assembly. That way there is a baseline to compare with in terms of correctness and performance. Also the Go project has recently introduced mutation testing and test coverage on assembly code which is very interesting.<p>Finally about detecting at runtime the presence of simd: I am confused why a third-party dependency or even the std is needed. At least on x64, it’s just one instruction (“cpuid”) and then checking if a bit is set, right?</p>
]]></description><pubDate>Fri, 15 Aug 2025 06:32:00 +0000</pubDate><link>https://news.ycombinator.com/item?id=44909233</link><dc:creator>broken_broken_</dc:creator><comments>https://news.ycombinator.com/item?id=44909233</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=44909233</guid></item><item><title><![CDATA[New comment by broken_broken_ in "A subtle bug with Go's errgroup"]]></title><description><![CDATA[
<p>Your are right about shadowing: I just checked and the go specification calls it “redeclaration” and it works as you described:<p>> Redeclaration does not introduce a new variable; it just assigns a new value to the original<p>I added a mention about that in the article. Thank you.</p>
]]></description><pubDate>Sat, 09 Aug 2025 18:00:01 +0000</pubDate><link>https://news.ycombinator.com/item?id=44848621</link><dc:creator>broken_broken_</dc:creator><comments>https://news.ycombinator.com/item?id=44848621</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=44848621</guid></item><item><title><![CDATA[A subtle bug with Go's errgroup]]></title><description><![CDATA[
<p>Article URL: <a href="https://gaultier.github.io/blog/subtle_bug_with_go_errgroup.html">https://gaultier.github.io/blog/subtle_bug_with_go_errgroup.html</a></p>
<p>Comments URL: <a href="https://news.ycombinator.com/item?id=44845953">https://news.ycombinator.com/item?id=44845953</a></p>
<p>Points: 27</p>
<p># Comments: 19</p>
]]></description><pubDate>Sat, 09 Aug 2025 12:20:16 +0000</pubDate><link>https://gaultier.github.io/blog/subtle_bug_with_go_errgroup.html</link><dc:creator>broken_broken_</dc:creator><comments>https://news.ycombinator.com/item?id=44845953</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=44845953</guid></item><item><title><![CDATA[New comment by broken_broken_ in "We shouldn't have needed lockfiles"]]></title><description><![CDATA[
<p>I agree with the premise, just use a specific version of your dependencies, that’s generally fine.<p>However: You absolutely do need a lock file to store a cryptographic hash of each dependency to ensure that what is fetched has not been tampered with. And users are definitely not typing a hash when adding a new dependency to package.json or Cargo.toml.</p>
]]></description><pubDate>Wed, 06 Aug 2025 18:09:14 +0000</pubDate><link>https://news.ycombinator.com/item?id=44815553</link><dc:creator>broken_broken_</dc:creator><comments>https://news.ycombinator.com/item?id=44815553</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=44815553</guid></item><item><title><![CDATA[New comment by broken_broken_ in "Ask HN: Have you ever regretted open-sourcing something?"]]></title><description><![CDATA[
<p>I wrote a toy Kotlin compiler, for fun.
Then one day a Jetbrains employee opens an issue which  only says: “Why? Just why?”.
Maybe it’s the language barrier… but I did not find that particularly polite.<p>On the other hand I open sourced my blog and received lots of small contributions to fix typos or such which were nice.</p>
]]></description><pubDate>Wed, 06 Aug 2025 05:36:02 +0000</pubDate><link>https://news.ycombinator.com/item?id=44808059</link><dc:creator>broken_broken_</dc:creator><comments>https://news.ycombinator.com/item?id=44808059</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=44808059</guid></item><item><title><![CDATA[New comment by broken_broken_ in "A deep dive into Rust and C memory interoperability"]]></title><description><![CDATA[
<p>Miri and Valgrind will usually catch this kind of issue. I did lots of work mixing C and Rust and that tripped me as well at the beginning. I wrote about it if someone is interested: <a href="https://gaultier.github.io/blog/perhaps_rust_needs_defer.html" rel="nofollow">https://gaultier.github.io/blog/perhaps_rust_needs_defer.htm...</a></p>
]]></description><pubDate>Mon, 04 Aug 2025 19:52:25 +0000</pubDate><link>https://news.ycombinator.com/item?id=44790645</link><dc:creator>broken_broken_</dc:creator><comments>https://news.ycombinator.com/item?id=44790645</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=44790645</guid></item></channel></rss>