<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: benhoyt</title><link>https://news.ycombinator.com/user?id=benhoyt</link><description>Hacker News RSS</description><docs>https://hnrss.org/</docs><generator>hnrss v2.1.1</generator><lastBuildDate>Tue, 28 Apr 2026 18:23:45 +0000</lastBuildDate><atom:link href="https://hnrss.org/user?id=benhoyt" rel="self" type="application/rss+xml"></atom:link><item><title><![CDATA[Every dependency you add is a supply chain attack waiting to happen]]></title><description><![CDATA[
<p>Article URL: <a href="https://benhoyt.com/writings/dependencies/">https://benhoyt.com/writings/dependencies/</a></p>
<p>Comments URL: <a href="https://news.ycombinator.com/item?id=47613210">https://news.ycombinator.com/item?id=47613210</a></p>
<p>Points: 4</p>
<p># Comments: 1</p>
]]></description><pubDate>Thu, 02 Apr 2026 11:55:43 +0000</pubDate><link>https://benhoyt.com/writings/dependencies/</link><dc:creator>benhoyt</dc:creator><comments>https://news.ycombinator.com/item?id=47613210</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47613210</guid></item><item><title><![CDATA[Detecting file changes on macOS with kqueue]]></title><description><![CDATA[
<p>Article URL: <a href="https://www.vegardstikbakke.com/kqueue/">https://www.vegardstikbakke.com/kqueue/</a></p>
<p>Comments URL: <a href="https://news.ycombinator.com/item?id=47508710">https://news.ycombinator.com/item?id=47508710</a></p>
<p>Points: 101</p>
<p># Comments: 16</p>
]]></description><pubDate>Tue, 24 Mar 2026 20:29:44 +0000</pubDate><link>https://www.vegardstikbakke.com/kqueue/</link><dc:creator>benhoyt</dc:creator><comments>https://news.ycombinator.com/item?id=47508710</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47508710</guid></item><item><title><![CDATA[Celebrating Tony Hoare's mark on computer science]]></title><description><![CDATA[
<p>Article URL: <a href="https://bertrandmeyer.com/2026/03/16/celebrating-tony-hoares-mark-on-computer-science/">https://bertrandmeyer.com/2026/03/16/celebrating-tony-hoares-mark-on-computer-science/</a></p>
<p>Comments URL: <a href="https://news.ycombinator.com/item?id=47422228">https://news.ycombinator.com/item?id=47422228</a></p>
<p>Points: 140</p>
<p># Comments: 32</p>
]]></description><pubDate>Wed, 18 Mar 2026 06:31:14 +0000</pubDate><link>https://bertrandmeyer.com/2026/03/16/celebrating-tony-hoares-mark-on-computer-science/</link><dc:creator>benhoyt</dc:creator><comments>https://news.ycombinator.com/item?id=47422228</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47422228</guid></item><item><title><![CDATA[New comment by benhoyt in "Parse, Don't Validate (2019)"]]></title><description><![CDATA[
<p>I'm not very familiar with functional programming and Haskell in particular. I think I understand the gist of this article, and "use data structures that make illegal states unrepresentable". However, is there a similar article but written with more common languages (C#, C++, Java, Go) in mind? Or is a big part of this concept only relevant for strong functional languages with sum types and pattern matching?</p>
]]></description><pubDate>Tue, 10 Feb 2026 23:33:29 +0000</pubDate><link>https://news.ycombinator.com/item?id=46968599</link><dc:creator>benhoyt</dc:creator><comments>https://news.ycombinator.com/item?id=46968599</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46968599</guid></item><item><title><![CDATA[New comment by benhoyt in "Cursor's latest “browser experiment” implied success without evidence"]]></title><description><![CDATA[
<p>Not me personally, but a GitHub user wrote a replacement for Go's regexp library that was "up to 3-3000x+ faster than stdlib": <a href="https://github.com/coregx/coregex" rel="nofollow">https://github.com/coregx/coregex</a> ... at first I was impressed, so started testing it and reporting bugs, but as soon as I ran my own benchmarks, it all fell apart (<a href="https://github.com/coregx/coregex/issues/29" rel="nofollow">https://github.com/coregx/coregex/issues/29</a>). After some mostly-bot updates, that issue was closed. But someone else opened a very similar one recently (<a href="https://github.com/coregx/coregex/issues/79" rel="nofollow">https://github.com/coregx/coregex/issues/79</a>) -- same deal, "actually, it's slower than the stdlib in my tests". Basically AI slop with poor tests, poor benchmarks, and way oversold. How he's positioning these projects is the problematic bit, I reckon, not the use of AI.<p>Same user did a similar thing by creating an AWK interpreter written in Go using LLMs: <a href="https://github.com/kolkov/uawk" rel="nofollow">https://github.com/kolkov/uawk</a> -- as the creator of (I think?) the only AWK interpreter written in Go (<a href="https://github.com/benhoyt/goawk" rel="nofollow">https://github.com/benhoyt/goawk</a>), I was curious. It turns out that if there's only one item in the training data (GoAWK), AI likes to copy and paste freely from the original. But again, it's poorly tested and poorly benchmarked.<p>I just don't see how one can get quality like this, without being realistic about code review, testing, and benchmarking.</p>
]]></description><pubDate>Fri, 16 Jan 2026 21:35:44 +0000</pubDate><link>https://news.ycombinator.com/item?id=46652534</link><dc:creator>benhoyt</dc:creator><comments>https://news.ycombinator.com/item?id=46652534</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46652534</guid></item><item><title><![CDATA[GNU Awk and Me: 37 Years of Free Software Development [video]]]></title><description><![CDATA[
<p>Article URL: <a href="https://www.youtube.com/watch?v=Hm1a-pWsnMI">https://www.youtube.com/watch?v=Hm1a-pWsnMI</a></p>
<p>Comments URL: <a href="https://news.ycombinator.com/item?id=46551293">https://news.ycombinator.com/item?id=46551293</a></p>
<p>Points: 6</p>
<p># Comments: 0</p>
]]></description><pubDate>Fri, 09 Jan 2026 08:20:24 +0000</pubDate><link>https://www.youtube.com/watch?v=Hm1a-pWsnMI</link><dc:creator>benhoyt</dc:creator><comments>https://news.ycombinator.com/item?id=46551293</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46551293</guid></item><item><title><![CDATA[Code Coverage for GoAWK (2022)]]></title><description><![CDATA[
<p>Article URL: <a href="https://maximullaris.com/goawk_cover.html">https://maximullaris.com/goawk_cover.html</a></p>
<p>Comments URL: <a href="https://news.ycombinator.com/item?id=46546733">https://news.ycombinator.com/item?id=46546733</a></p>
<p>Points: 1</p>
<p># Comments: 0</p>
]]></description><pubDate>Thu, 08 Jan 2026 21:28:06 +0000</pubDate><link>https://maximullaris.com/goawk_cover.html</link><dc:creator>benhoyt</dc:creator><comments>https://news.ycombinator.com/item?id=46546733</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46546733</guid></item><item><title><![CDATA[I/O is no longer the bottleneck? (2022)]]></title><description><![CDATA[
<p>Article URL: <a href="https://stoppels.ch/2022/11/27/io-is-no-longer-the-bottleneck.html">https://stoppels.ch/2022/11/27/io-is-no-longer-the-bottleneck.html</a></p>
<p>Comments URL: <a href="https://news.ycombinator.com/item?id=46506994">https://news.ycombinator.com/item?id=46506994</a></p>
<p>Points: 264</p>
<p># Comments: 130</p>
]]></description><pubDate>Tue, 06 Jan 2026 00:02:18 +0000</pubDate><link>https://stoppels.ch/2022/11/27/io-is-no-longer-the-bottleneck.html</link><dc:creator>benhoyt</dc:creator><comments>https://news.ycombinator.com/item?id=46506994</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46506994</guid></item><item><title><![CDATA[Don't fear Python subprocess or Go codegen]]></title><description><![CDATA[
<p>Article URL: <a href="https://benhoyt.com/writings/jubilant/">https://benhoyt.com/writings/jubilant/</a></p>
<p>Comments URL: <a href="https://news.ycombinator.com/item?id=46286857">https://news.ycombinator.com/item?id=46286857</a></p>
<p>Points: 2</p>
<p># Comments: 0</p>
]]></description><pubDate>Tue, 16 Dec 2025 10:21:07 +0000</pubDate><link>https://benhoyt.com/writings/jubilant/</link><dc:creator>benhoyt</dc:creator><comments>https://news.ycombinator.com/item?id=46286857</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46286857</guid></item><item><title><![CDATA[Jubilant: Python Subprocess and Go Codegen]]></title><description><![CDATA[
<p>Article URL: <a href="https://benhoyt.com/writings/jubilant/">https://benhoyt.com/writings/jubilant/</a></p>
<p>Comments URL: <a href="https://news.ycombinator.com/item?id=46271146">https://news.ycombinator.com/item?id=46271146</a></p>
<p>Points: 2</p>
<p># Comments: 0</p>
]]></description><pubDate>Mon, 15 Dec 2025 06:38:23 +0000</pubDate><link>https://benhoyt.com/writings/jubilant/</link><dc:creator>benhoyt</dc:creator><comments>https://news.ycombinator.com/item?id=46271146</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46271146</guid></item><item><title><![CDATA[New comment by benhoyt in "Super-Flat ASTs"]]></title><description><![CDATA[
<p>That's a good caution. However, traversing a flat AST (iterating a "struct of arrays" rather than a pointer-based tree) is also going to be faster. So the next steps of the compiler, say type checking and code emitting, will also be faster. But how much, or whether it's worth it even then, I'm not sure.</p>
]]></description><pubDate>Wed, 10 Dec 2025 20:07:53 +0000</pubDate><link>https://news.ycombinator.com/item?id=46223006</link><dc:creator>benhoyt</dc:creator><comments>https://news.ycombinator.com/item?id=46223006</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46223006</guid></item><item><title><![CDATA[Coregex: Go regex lib 3-3000x+ as fast as stdlib via multi-engine arch and SIMD]]></title><description><![CDATA[
<p>Article URL: <a href="https://github.com/coregx/coregex">https://github.com/coregx/coregex</a></p>
<p>Comments URL: <a href="https://news.ycombinator.com/item?id=46112319">https://news.ycombinator.com/item?id=46112319</a></p>
<p>Points: 1</p>
<p># Comments: 0</p>
]]></description><pubDate>Mon, 01 Dec 2025 19:57:44 +0000</pubDate><link>https://github.com/coregx/coregex</link><dc:creator>benhoyt</dc:creator><comments>https://news.ycombinator.com/item?id=46112319</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46112319</guid></item><item><title><![CDATA[New comment by benhoyt in "Archive or Delete?"]]></title><description><![CDATA[
<p>I use the "baby bear" strategy mentioned in the article. My criteria are something like: archive emails from humans as well as important emails like receipts and invoices; delete advertising emails, newsletters, notification emails, and things that I can just as easily find online.</p>
]]></description><pubDate>Wed, 12 Nov 2025 20:25:40 +0000</pubDate><link>https://news.ycombinator.com/item?id=45906028</link><dc:creator>benhoyt</dc:creator><comments>https://news.ycombinator.com/item?id=45906028</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=45906028</guid></item><item><title><![CDATA[New comment by benhoyt in "Ask HN: What are you working on? (May 2025)"]]></title><description><![CDATA[
<p>Yes, definitely still got/getting something out of it, thanks. And I'll probably get more out of it when I read up on "how to write a <i>real</i> chess program" for v2, and learn about all the things I didn't think about.</p>
]]></description><pubDate>Sun, 25 May 2025 21:52:41 +0000</pubDate><link>https://news.ycombinator.com/item?id=44091531</link><dc:creator>benhoyt</dc:creator><comments>https://news.ycombinator.com/item?id=44091531</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=44091531</guid></item><item><title><![CDATA[New comment by benhoyt in "Dependency injection frameworks add confusion"]]></title><description><![CDATA[
<p>Yeah, I use this sometimes too (even though Python makes "monkey patching" easy). However, note that it's simpler and clearer to use a default value for the argument:<p><pre><code>  def do_foo(sleep=time.sleep):
    for _ in range(10):
      sleep(1)</code></pre></p>
]]></description><pubDate>Sun, 25 May 2025 21:04:24 +0000</pubDate><link>https://news.ycombinator.com/item?id=44091110</link><dc:creator>benhoyt</dc:creator><comments>https://news.ycombinator.com/item?id=44091110</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=44091110</guid></item><item><title><![CDATA[New comment by benhoyt in "Ask HN: What are you working on? (May 2025)"]]></title><description><![CDATA[
<p>A program that will play chess (written in Go). My 18yo daughter can now beat me at chess (not that I'm any good). I figured if I can't beat her, I'll see if I can write a program to beat her instead. My idea for v1 is that I'd write the algorithm myself, without looking up anything about how to write a chess program (I'm sure such literature abounds). I've just about finished v1; still a few bugs to iron out. To be honest, I didn't find it all that fun, mainly because of all the special cases (all the castling rules and the like).</p>
]]></description><pubDate>Sun, 25 May 2025 20:47:43 +0000</pubDate><link>https://news.ycombinator.com/item?id=44090950</link><dc:creator>benhoyt</dc:creator><comments>https://news.ycombinator.com/item?id=44090950</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=44090950</guid></item><item><title><![CDATA[New comment by benhoyt in "Good Writing"]]></title><description><![CDATA[
<p>> “The ships hung in the sky in much the same way that bricks don’t.”<p>That is probably my favourite phrase from the whole book. For some reason I find it hilarious. It has stuck in my brain in much the same way that names don't.</p>
]]></description><pubDate>Sun, 25 May 2025 20:38:04 +0000</pubDate><link>https://news.ycombinator.com/item?id=44090884</link><dc:creator>benhoyt</dc:creator><comments>https://news.ycombinator.com/item?id=44090884</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=44090884</guid></item><item><title><![CDATA[New comment by benhoyt in "The self-castrated hatmaker who killed John Wilkes Booth (2015)"]]></title><description><![CDATA[
<p>The guy certainly had ba... uh, courage. Jesus is known for saying striking things, like "If your hand or your foot causes you to stumble, cut it off and throw it away. It is better for you to enter life maimed or crippled than to have two hands or two feet and be thrown into eternal fire." (Matthew 18:8) He was the master of attention-grabbing metaphor. Of course here he means "deal seriously with your sin", not "get out the butcher's knife".</p>
]]></description><pubDate>Sun, 13 Apr 2025 20:21:19 +0000</pubDate><link>https://news.ycombinator.com/item?id=43675565</link><dc:creator>benhoyt</dc:creator><comments>https://news.ycombinator.com/item?id=43675565</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=43675565</guid></item><item><title><![CDATA[New comment by benhoyt in "Ask HN: How do you make a living contributing to and/or creating OSS projects?"]]></title><description><![CDATA[
<p>I do it by working for Canonical. The vast majority of our projects are open source. Yes, Canonical's application process is very long and thorough, but it's a good company to work for. Those aren't "my" projects, of course; I'm still very much working for an employer, but it's nice that our development effort is in the open and freely available. I also maintain a few of my own open source projects, for which (via GitHub Sponsors) I get about enough for one coffee date with my wife.</p>
]]></description><pubDate>Wed, 02 Apr 2025 20:04:14 +0000</pubDate><link>https://news.ycombinator.com/item?id=43560923</link><dc:creator>benhoyt</dc:creator><comments>https://news.ycombinator.com/item?id=43560923</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=43560923</guid></item><item><title><![CDATA[New comment by benhoyt in "Fly.io outage – resolved"]]></title><description><![CDATA[
<p>Sure, it's UptimeRobot: <a href="https://uptimerobot.com/" rel="nofollow">https://uptimerobot.com/</a></p>
]]></description><pubDate>Tue, 26 Nov 2024 06:14:18 +0000</pubDate><link>https://news.ycombinator.com/item?id=42242980</link><dc:creator>benhoyt</dc:creator><comments>https://news.ycombinator.com/item?id=42242980</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=42242980</guid></item></channel></rss>