<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: adonovan</title><link>https://news.ycombinator.com/user?id=adonovan</link><description>Hacker News RSS</description><docs>https://hnrss.org/</docs><generator>hnrss v2.1.1</generator><lastBuildDate>Fri, 17 Apr 2026 22:39:21 +0000</lastBuildDate><atom:link href="https://hnrss.org/user?id=adonovan" rel="self" type="application/rss+xml"></atom:link><item><title><![CDATA[New comment by adonovan in "NASA Force"]]></title><description><![CDATA[
<p>This administration does love "force".</p>
]]></description><pubDate>Fri, 17 Apr 2026 21:47:13 +0000</pubDate><link>https://news.ycombinator.com/item?id=47810968</link><dc:creator>adonovan</dc:creator><comments>https://news.ycombinator.com/item?id=47810968</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47810968</guid></item><item><title><![CDATA[New comment by adonovan in "Too much discussion of the XOR swap trick"]]></title><description><![CDATA[
<p>Another situation to avoid the XOR trick, even when registers are tight, is when swapping pointers in a garbage-collected language, since the intermediate bit patterns are invalid pointers: if a GC mark phase occurs at that moment, you might lose some objects, or spuriously mark others as live.</p>
]]></description><pubDate>Thu, 16 Apr 2026 12:16:01 +0000</pubDate><link>https://news.ycombinator.com/item?id=47791898</link><dc:creator>adonovan</dc:creator><comments>https://news.ycombinator.com/item?id=47791898</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47791898</guid></item><item><title><![CDATA[New comment by adonovan in "The buns in McDonald's Japan's burger photos are all slightly askew"]]></title><description><![CDATA[
<p>Quite. A burger that wears its hat at a jaunty angle for a rakish look.</p>
]]></description><pubDate>Thu, 16 Apr 2026 12:08:56 +0000</pubDate><link>https://news.ycombinator.com/item?id=47791839</link><dc:creator>adonovan</dc:creator><comments>https://news.ycombinator.com/item?id=47791839</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47791839</guid></item><item><title><![CDATA[New comment by adonovan in "Microsoft: Copilot is for entertainment purposes only"]]></title><description><![CDATA[
<p>I once wrote a contract document in PostScript that changed the wording based on the date. Two parties could cryptographically sign an agreement in the document, which would change when printed on a later date.<p>One of the reasons we don’t use PostScript so much any more.</p>
]]></description><pubDate>Wed, 01 Apr 2026 00:40:15 +0000</pubDate><link>https://news.ycombinator.com/item?id=47595353</link><dc:creator>adonovan</dc:creator><comments>https://news.ycombinator.com/item?id=47595353</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47595353</guid></item><item><title><![CDATA[New comment by adonovan in "Siclair Microvision (1977)"]]></title><description><![CDATA[
<p>It's not an illegal monopoly to be the sole entity capable of a technique. The problems come from manipulating the market to prevent competition.</p>
]]></description><pubDate>Sun, 29 Mar 2026 15:25:43 +0000</pubDate><link>https://news.ycombinator.com/item?id=47563954</link><dc:creator>adonovan</dc:creator><comments>https://news.ycombinator.com/item?id=47563954</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47563954</guid></item><item><title><![CDATA[New comment by adonovan in "Antimatter has been transported for the first time"]]></title><description><![CDATA[
<p>The subject of this story is a single proton that you would definitely feel if it hit you: <a href="https://www.fourmilab.ch/documents/OhMyGodParticle/" rel="nofollow">https://www.fourmilab.ch/documents/OhMyGodParticle/</a></p>
]]></description><pubDate>Wed, 25 Mar 2026 21:54:37 +0000</pubDate><link>https://news.ycombinator.com/item?id=47523802</link><dc:creator>adonovan</dc:creator><comments>https://news.ycombinator.com/item?id=47523802</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47523802</guid></item><item><title><![CDATA[New comment by adonovan in "How the Turner twins are mythbusting modern technical apparel"]]></title><description><![CDATA[
<p>Also weird phrasing: "a staggering 1.8 degrees" begs the reader to think of it as a large number (which in fact it is, as you point out) yet their intent seems to be, ironically and paradoxically, to diminish it.</p>
]]></description><pubDate>Thu, 19 Mar 2026 22:35:32 +0000</pubDate><link>https://news.ycombinator.com/item?id=47447348</link><dc:creator>adonovan</dc:creator><comments>https://news.ycombinator.com/item?id=47447348</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47447348</guid></item><item><title><![CDATA[New comment by adonovan in "//go:fix inline and the source-level inliner"]]></title><description><![CDATA[
<p>Thanks, that's a bug. We should never inline a function that directly calls recover. I've filed <a href="https://go.dev/issue/78193" rel="nofollow">https://go.dev/issue/78193</a>.</p>
]]></description><pubDate>Tue, 17 Mar 2026 13:50:42 +0000</pubDate><link>https://news.ycombinator.com/item?id=47412675</link><dc:creator>adonovan</dc:creator><comments>https://news.ycombinator.com/item?id=47412675</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47412675</guid></item><item><title><![CDATA[New comment by adonovan in "Ask HN: How is AI-assisted coding going for you professionally?"]]></title><description><![CDATA[
<p>> The “will lead astray” part is concerning. If you already have a clear idea in mind, you probably don’t need to have the debate with coworkers.<p>Yeah, I certainly wouldn't trust it to run any distance unattended, and I started this project with strong ideas about the parameters of the design, so I know what I want and what won't fly. But as you say, it can help tease out unexpected pros and cons of certain choices along the way.<p>> In summary: obviate experts, receive correct guidance, save time —- pick any two.<p>It's simpler than that: it can't do the first, nor reliably the second, but it has saved me time.</p>
]]></description><pubDate>Mon, 16 Mar 2026 13:44:09 +0000</pubDate><link>https://news.ycombinator.com/item?id=47398953</link><dc:creator>adonovan</dc:creator><comments>https://news.ycombinator.com/item?id=47398953</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47398953</guid></item><item><title><![CDATA[New comment by adonovan in "Ask HN: How is AI-assisted coding going for you professionally?"]]></title><description><![CDATA[
<p>I’ve been an overt AI hater but have found very recently that, though I still hate a great many things about AI, it has become useful for coding.<p>In 10m Gemini correctly diagnosed and then fixed a bug  in a fairly subtle body of code that I was expecting to have to spend a couple hours working on.<p>I spent much of the past week using Gemini to build a prototype of a clean new (green field) system involving RPCs, static analysis, and sandboxing. I give it very specific instructions, usually after rounds of critical design discussions, and it generates structurally correct code that passes essentially valid tests. Error handling is a notable weakness. I review the code by hand after each step and often make changes, and I expect to go over the over the whole thing very carefully at the end, but it has saved me many hours this week.<p>Perhaps more valuable than the code has been the critical design conversation, in which it mostly is fluent at the level of an experienced engineer and has been able explain, defend, and justify design choices quite coherently. This saved time I would otherwise have spent debating with coworkers. But it’s not always right and it is easily led astray (and will lead astray), so you need a clear idea in mind, a firm hand, and good judgment.</p>
]]></description><pubDate>Mon, 16 Mar 2026 12:18:08 +0000</pubDate><link>https://news.ycombinator.com/item?id=47397948</link><dc:creator>adonovan</dc:creator><comments>https://news.ycombinator.com/item?id=47397948</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47397948</guid></item><item><title><![CDATA[New comment by adonovan in "LLM Writing Tropes.md"]]></title><description><![CDATA[
<p>One annoying trope I keep seeing in Gemini output is the punchy invented concept name in a tripartite list:<p>- “The Pledge”:…<p>- “The Turn”:…<p>- “The Prestige”:…<p>(For this particular example I used real terms from the stage  magic world, at least according to Christopher Nolan’s film, as it captures the same meaningless-to-the-uninitiated quality.)</p>
]]></description><pubDate>Sun, 08 Mar 2026 16:12:39 +0000</pubDate><link>https://news.ycombinator.com/item?id=47298462</link><dc:creator>adonovan</dc:creator><comments>https://news.ycombinator.com/item?id=47298462</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47298462</guid></item><item><title><![CDATA[New comment by adonovan in "Self-Portrait by Ernst Mach (1886)"]]></title><description><![CDATA[
<p>Likewise! I often marvel at the patience of readers of earlier times. Of course, they had more time and fewer distractions, and I suspect that there was a dynamic at work in which both the writer and reader derived a certain satisfaction from long meandering sentences, the writer proving their skill, and the reader proving (to themselves) their stamina.<p>Nowadays we tend to write in a plainer style demanding a smaller “parser stack”. Some style manuals have excellent examples of sentences of equal length but very different “stack depth” and thus ease of comprehension.</p>
]]></description><pubDate>Sat, 07 Mar 2026 22:21:04 +0000</pubDate><link>https://news.ycombinator.com/item?id=47292025</link><dc:creator>adonovan</dc:creator><comments>https://news.ycombinator.com/item?id=47292025</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47292025</guid></item><item><title><![CDATA[New comment by adonovan in "10% of Firefox crashes are caused by bitflips"]]></title><description><![CDATA[
<p>Good question. We don't know the true figure, but we extrapolate the denominator from estimates of the total number of Go users and the fraction of Go users that run gopls.</p>
]]></description><pubDate>Fri, 06 Mar 2026 23:08:16 +0000</pubDate><link>https://news.ycombinator.com/item?id=47282325</link><dc:creator>adonovan</dc:creator><comments>https://news.ycombinator.com/item?id=47282325</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47282325</guid></item><item><title><![CDATA[New comment by adonovan in "10% of Firefox crashes are caused by bitflips"]]></title><description><![CDATA[
<p>Good point: I-cache is memory too. (Indeed it is SRAM, so its bits might be even more fragile than DRAM!)</p>
]]></description><pubDate>Fri, 06 Mar 2026 04:15:39 +0000</pubDate><link>https://news.ycombinator.com/item?id=47270806</link><dc:creator>adonovan</dc:creator><comments>https://news.ycombinator.com/item?id=47270806</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47270806</guid></item><item><title><![CDATA[New comment by adonovan in "Intelligence is a commodity. Context is the real AI Moat"]]></title><description><![CDATA[
<p>> "what is the role of humans in a scenario where work is no longer necessary?"<p>People have been fantasizing about this scenario throughout the industrial era--read William Morris' News from Nowhere (1890) for example--but it has failed to come to pass so many times, and the reasons are pretty obvious. The benefits of technology are spread unequally, and increasingly so over time, so only a wealthy few get the option of a post-labor existence. Also, our demands for the products of labor change as labor productivity increases; we prefer (or have been persuaded to act as if we prefer) material riches over lives with less stuff and more time.<p>We still haven't seen that AI actually replaces labor, as opposed to amplifying it, like a power saw or CNC mill used by a carpenter, so all these discussions about the end of labor seem like unwitting sales pitches for AI.<p>> “what would be the role of humans in an AI-first society”<p>The real question is why would anyone want, or want to help build, such an obscenity.</p>
]]></description><pubDate>Thu, 05 Mar 2026 19:42:06 +0000</pubDate><link>https://news.ycombinator.com/item?id=47266294</link><dc:creator>adonovan</dc:creator><comments>https://news.ycombinator.com/item?id=47266294</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47266294</guid></item><item><title><![CDATA[New comment by adonovan in "10% of Firefox crashes are caused by bitflips"]]></title><description><![CDATA[
<p>It's true that in the very early days Google used cheap computers without ECC memory, and this explains the desire for checksums in older storage formats such as RecordIO and SSTable, but our production machines have used ECC RAM for a long time now.</p>
]]></description><pubDate>Thu, 05 Mar 2026 02:45:14 +0000</pubDate><link>https://news.ycombinator.com/item?id=47256860</link><dc:creator>adonovan</dc:creator><comments>https://news.ycombinator.com/item?id=47256860</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47256860</guid></item><item><title><![CDATA[New comment by adonovan in "10% of Firefox crashes are caused by bitflips"]]></title><description><![CDATA[
<p>Very interesting. The Go toolchain has an (off by default) telemetry system. For Go 1.23, I added the runtime.SetCrashOutput function and used it to gather field reports containing stack traces for crashes in any running goroutine. Since we enabled it over a year ago in gopls, our LSP server, we have discovered hundreds of bugs.<p>Even with only about 1 in 1000 users enabling telemetry, it has been an invaluable source of information about crashes. In most cases it is easy to reconstruct a test case that reproduces the problem, and the bug is fixed within an hour. We have fixed dozens of bugs this way. When the cause is not obvious, we "refine" the crash by adding if-statements and assertions so that after the next release we gain one additional bit of information from the stack trace about the state of execution.<p>However there was always a stubborn tail of field reports that couldn't be explained: corrupt stack pointers, corrupt g registers (the thread-local pointer to the current goroutine), or panics dereferencing a pointer that had just passed a nil check. All of these point to memory corruption.<p>In theory anything is possible if you abuse unsafe or have a data race, but I audited every use of unsafe in the executable and am convinced they are safe. Proving the absence of data races is harder, but nonetheless races usually exhibit some kind of locality in what variable gets clobbered, and that wasn't the case here.<p>In some cases we have even seen crashes in non-memory instructions (e.g. MOV ZR, R1), which implicates misexecution: a fault in the CPU (or a bug in the telemetry bookkeeping, I suppose).<p>As a programmer I've been burned too many times by prematurely blaming the compiler or runtime for mistakes in one's own code, so it took a long time to gain the confidence to suspect the foundations in this case. But I recently did some napkin math (see <a href="https://github.com/golang/go/issues/71425#issuecomment-3968582591" rel="nofollow">https://github.com/golang/go/issues/71425#issuecomment-39685...</a>) and came to the conclusion that the surprising number of inexplicable field reports--about 10/week among our users--is well within the realm of faulty hardware, especially since our users are overwhelmingly using laptops, which don't have parity memory.<p>I would love to get definitive confirmation though. I wonder what test the Firefox team runs on memory in their crash reporting software.</p>
]]></description><pubDate>Thu, 05 Mar 2026 01:53:19 +0000</pubDate><link>https://news.ycombinator.com/item?id=47256495</link><dc:creator>adonovan</dc:creator><comments>https://news.ycombinator.com/item?id=47256495</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47256495</guid></item><item><title><![CDATA[New comment by adonovan in "Aromatic 5-silicon rings synthesized at last"]]></title><description><![CDATA[
<p>Not sure why you were downvoted. I love the breathless enthusiasm of the article, but I still have no idea why (or if) this is important. What did you learn from Opus?</p>
]]></description><pubDate>Sun, 01 Mar 2026 23:56:43 +0000</pubDate><link>https://news.ycombinator.com/item?id=47212148</link><dc:creator>adonovan</dc:creator><comments>https://news.ycombinator.com/item?id=47212148</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47212148</guid></item><item><title><![CDATA[New comment by adonovan in "Allocating on the Stack"]]></title><description><![CDATA[
<p>...you would have the same balance as before, because this is not an article about implicit boxing. ;-)</p>
]]></description><pubDate>Fri, 27 Feb 2026 20:14:03 +0000</pubDate><link>https://news.ycombinator.com/item?id=47184957</link><dc:creator>adonovan</dc:creator><comments>https://news.ycombinator.com/item?id=47184957</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47184957</guid></item><item><title><![CDATA[New comment by adonovan in "The Hydrogen Truck Problem Isn't the Truck"]]></title><description><![CDATA[
<p>> Hydrogen is the smallest molecule. It leaks through seals, embrittles metals, ...<p>Second smallest, after monatomic Helium molecules (which have similar problems of storage, embrittlement, and leakage).</p>
]]></description><pubDate>Thu, 26 Feb 2026 04:59:44 +0000</pubDate><link>https://news.ycombinator.com/item?id=47162061</link><dc:creator>adonovan</dc:creator><comments>https://news.ycombinator.com/item?id=47162061</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47162061</guid></item></channel></rss>