<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: RustyRussell</title><link>https://news.ycombinator.com/user?id=RustyRussell</link><description>Hacker News RSS</description><docs>https://hnrss.org/</docs><generator>hnrss v2.1.1</generator><lastBuildDate>Thu, 16 Apr 2026 18:16:11 +0000</lastBuildDate><atom:link href="https://hnrss.org/user?id=RustyRussell" rel="self" type="application/rss+xml"></atom:link><item><title><![CDATA[New comment by RustyRussell in "Who is Satoshi Nakamoto? My quest to unmask Bitcoin's creator"]]></title><description><![CDATA[
<p>Adam is not Satoshi.<p>In early days of Blockstream I remember him and Greg Maxwell spitballing ideas about Bitcoin, and he was clearly intellectually feeling out the constructions as novel concepts.<p>I have spent my fair time with geeks, myself included, and this "shiny new thing" geek excitement is distinctive.  And Adam is a typical nerd for whom guile does not come easy, if at all.<p>I realize this is not a transferrable proof, but I stand by it, for what that's worth.</p>
]]></description><pubDate>Thu, 09 Apr 2026 12:29:31 +0000</pubDate><link>https://news.ycombinator.com/item?id=47702825</link><dc:creator>RustyRussell</dc:creator><comments>https://news.ycombinator.com/item?id=47702825</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47702825</guid></item><item><title><![CDATA[New comment by RustyRussell in "Big-Endian Testing with QEMU"]]></title><description><![CDATA[
<p>As with many comments here: use a build-time assertion that the system is little-endian, and ignore it.  <i>Untested code is broken code</i>.<p>I was at IBM when we gave up on big endian for Power.  Too much new code assumed LE, and we switched, despite the insane engineering effort (though TBH, that effort had the side effect of retaining some absolutely first-class engineers a few more years).</p>
]]></description><pubDate>Fri, 03 Apr 2026 22:10:15 +0000</pubDate><link>https://news.ycombinator.com/item?id=47632993</link><dc:creator>RustyRussell</dc:creator><comments>https://news.ycombinator.com/item?id=47632993</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47632993</guid></item><item><title><![CDATA[New comment by RustyRussell in "My first patch to the Linux kernel"]]></title><description><![CDATA[
<p>In the small, it's still a meritocracy. A patch like this is obviously correct and I expect to get in first try (maybe with a formatting fix by the maintainer).<p>For large works, the burden shifts, since you are increasing the maintenance load. Now we have the question of who will do the future work, and that requires judgement of the importance of the work and/or the author, and hence is a fundamentally political question.</p>
]]></description><pubDate>Sun, 22 Mar 2026 21:25:44 +0000</pubDate><link>https://news.ycombinator.com/item?id=47482321</link><dc:creator>RustyRussell</dc:creator><comments>https://news.ycombinator.com/item?id=47482321</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47482321</guid></item><item><title><![CDATA[New comment by RustyRussell in "Most of the US economy is in a recession"]]></title><description><![CDATA[
<p>I share this frustration, but a downvote is probably a better reaction than a reply here.</p>
]]></description><pubDate>Mon, 09 Mar 2026 00:01:48 +0000</pubDate><link>https://news.ycombinator.com/item?id=47303069</link><dc:creator>RustyRussell</dc:creator><comments>https://news.ycombinator.com/item?id=47303069</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47303069</guid></item><item><title><![CDATA[New comment by RustyRussell in "Where did all the starships go?"]]></title><description><![CDATA[
<p>You're writing this from a dystopian future where punctuation is banned? :)<p>For those like me who still require parsing assistance :<p>- We are Bob<p>- Red Rising<p>- Murderbot</p>
]]></description><pubDate>Sat, 07 Feb 2026 22:42:58 +0000</pubDate><link>https://news.ycombinator.com/item?id=46928987</link><dc:creator>RustyRussell</dc:creator><comments>https://news.ycombinator.com/item?id=46928987</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46928987</guid></item><item><title><![CDATA[New comment by RustyRussell in "Total monthly number of StackOverflow questions over time"]]></title><description><![CDATA[
<p>On the other hand, I once implemented something to be told later it was novel and probably the optimal solution in the space.<p>An AI might be <i>more</i> likely to find it...</p>
]]></description><pubDate>Sun, 04 Jan 2026 08:36:57 +0000</pubDate><link>https://news.ycombinator.com/item?id=46486139</link><dc:creator>RustyRussell</dc:creator><comments>https://news.ycombinator.com/item?id=46486139</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46486139</guid></item><item><title><![CDATA[New comment by RustyRussell in "Show HN: Z80-μLM, a 'Conversational AI' That Fits in 40KB"]]></title><description><![CDATA[
<p>I'm thinking early April?</p>
]]></description><pubDate>Mon, 29 Dec 2025 22:45:48 +0000</pubDate><link>https://news.ycombinator.com/item?id=46426835</link><dc:creator>RustyRussell</dc:creator><comments>https://news.ycombinator.com/item?id=46426835</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46426835</guid></item><item><title><![CDATA[New comment by RustyRussell in "DEC64: Decimal Floating Point (2020)"]]></title><description><![CDATA[
<p>A goid friend of mine worked on decimal floating point for IBM Power chips (I think it was Power 7 which had hardware support).<p>Anyway, he insisted on calling it just "Decimal Floating". Because there was "no point".</p>
]]></description><pubDate>Mon, 10 Nov 2025 09:22:53 +0000</pubDate><link>https://news.ycombinator.com/item?id=45874143</link><dc:creator>RustyRussell</dc:creator><comments>https://news.ycombinator.com/item?id=45874143</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=45874143</guid></item><item><title><![CDATA[New comment by RustyRussell in "Signal Protocol and Post-Quantum Ratchets"]]></title><description><![CDATA[
<p>I want signal to act as a transport bus. In particular, I want to give certain contacts permission to ask my phone for its location, so I can give my wife that ability <i>without</i> sharing it with Google.<p>Signal has solved the identity part, now encourage others to build apps on it.<p>(2fa via Signal would be better than SMS, too, though I know this may be controversial!)</p>
]]></description><pubDate>Thu, 02 Oct 2025 22:32:37 +0000</pubDate><link>https://news.ycombinator.com/item?id=45456401</link><dc:creator>RustyRussell</dc:creator><comments>https://news.ycombinator.com/item?id=45456401</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=45456401</guid></item><item><title><![CDATA[New comment by RustyRussell in "RFC 9839 and Bad Unicode"]]></title><description><![CDATA[
<p>I want to implement this. My code is in C.<p>How does this help me check my implementation? I guess I could ask ChatGPT to convert your tests to my code, but that seems the long way around.</p>
]]></description><pubDate>Sun, 24 Aug 2025 06:02:21 +0000</pubDate><link>https://news.ycombinator.com/item?id=45001774</link><dc:creator>RustyRussell</dc:creator><comments>https://news.ycombinator.com/item?id=45001774</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=45001774</guid></item><item><title><![CDATA[New comment by RustyRussell in "RFC 9839 and Bad Unicode"]]></title><description><![CDATA[
<p>Did anyone else find the use if ABNF annoying?<p><pre><code>  unicode-assignable =
   %x9 / %xA / %xD /               ; useful controls
   %x20-7E /                       ; exclude C1 controls and DEL
   %xA0-D7FF /                     ; exclude surrogates
   %xE000-FDCF /                   ; exclude FDD0 nonchars
   %xFDF0-FFFD /                   ; exclude FFFE and FFFF nonchars
   %x10000-1FFFD / %x20000-2FFFD / ; (repeat per plane)
   %x30000-3FFFD / %x40000-4FFFD /
   %x50000-5FFFD / %x60000-6FFFD /
   %x70000-7FFFD / %x80000-8FFFD /
   %x90000-9FFFD / %xA0000-AFFFD /
   %xB0000-BFFFD / %xC0000-CFFFD /
   %xD0000-DFFFD / %xE0000-EFFFD /
   %xF0000-FFFFD / %x100000-10FFFD
</code></pre>
I mean, just define ranges.<p>Also, where are the test vectors? Because when I implement this, that's the first thing I have to write, and you could save me a lot of work here. Bonus points if it's in JSON and UTF-8 already, though the invalid UTF-8 in an RFC might really gum things up: hex encode maybe?</p>
]]></description><pubDate>Sat, 23 Aug 2025 23:15:03 +0000</pubDate><link>https://news.ycombinator.com/item?id=44999865</link><dc:creator>RustyRussell</dc:creator><comments>https://news.ycombinator.com/item?id=44999865</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=44999865</guid></item><item><title><![CDATA[New comment by RustyRussell in "Interactive Programming in C (2014)"]]></title><description><![CDATA[
<p>Andrew Tridgell's KnightCap did this differently: it's a network chess server, and it would dump its data to a file and re-exec. The trick here is that it would keep the (network) fds open for zero downtime. IIRC he used a Perl script called datadumper to gen the code marshal/demarshal the structures.<p>This has the advantage that reboots can be handled fairly seemlessly too (though there will be reconnections then of).</p>
]]></description><pubDate>Wed, 23 Jul 2025 21:36:55 +0000</pubDate><link>https://news.ycombinator.com/item?id=44664307</link><dc:creator>RustyRussell</dc:creator><comments>https://news.ycombinator.com/item?id=44664307</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=44664307</guid></item><item><title><![CDATA[New comment by RustyRussell in "I'm betting against AI agents, despite building them"]]></title><description><![CDATA[
<p>2015? Title is correct, this is a typo</p>
]]></description><pubDate>Sun, 20 Jul 2025 11:34:22 +0000</pubDate><link>https://news.ycombinator.com/item?id=44624162</link><dc:creator>RustyRussell</dc:creator><comments>https://news.ycombinator.com/item?id=44624162</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=44624162</guid></item><item><title><![CDATA[New comment by RustyRussell in "I write type-safe generic data structures in C"]]></title><description><![CDATA[
<p>Yes, it's terrible, and the fact that their list_add takes parameters backwards from what one might expect, with no types to catch mistakes!<p>See <a href="https://github.com/rustyrussell/ccan/blob/master/ccan/list/_info">https://github.com/rustyrussell/ccan/blob/master/ccan/list/_...</a></p>
]]></description><pubDate>Tue, 01 Jul 2025 10:13:22 +0000</pubDate><link>https://news.ycombinator.com/item?id=44432354</link><dc:creator>RustyRussell</dc:creator><comments>https://news.ycombinator.com/item?id=44432354</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=44432354</guid></item><item><title><![CDATA[New comment by RustyRussell in "GCC 15.1"]]></title><description><![CDATA[
<p>In recent years I've come to rely on this non-initialization idiom. Both because as code paths change the compiler can warn for simple cases, and because running tests under Valgrind catches it.</p>
]]></description><pubDate>Sat, 26 Apr 2025 00:05:07 +0000</pubDate><link>https://news.ycombinator.com/item?id=43799671</link><dc:creator>RustyRussell</dc:creator><comments>https://news.ycombinator.com/item?id=43799671</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=43799671</guid></item><item><title><![CDATA[New comment by RustyRussell in "Hacktical C: practical hacker's guide to the C programming language"]]></title><description><![CDATA[
<p>>   
ryao 7 hours ago | parent | context | flag | on: Hacktical C: practical hacker's guide to the C pro...<p><pre><code>  cast a `struct Foo*` into a `struct Bar*` and access the Foo through it (in practice we teach this as the "strict aliasing" rules, and that's how all(?) compilers implement it, but that's not what §6.5 paragraph 7 of the standard says!)
</code></pre>
Use the union type. Abusing it for aliasing violates the standard too, but GCC and Clang implement an extension that permits this. Alternatively, just allocate a char array and cast it as you please. Strict aliasing does not apply to char arrays if I recall.<p><pre><code>  allow a signed integer to overflow
</code></pre>
Is this still true? I thought that the reason for this is because C left the implementation to define how signed arithmetic worked, meaning you could not assume two’s complement, but the most recent C standard was supposed to mandate two’s complement.<p>>> pass a NULL pointer to memcpy, even if the length is zero<p>> There is a reason for this. memcpy is allowed to start reading early as a performance optimization, before it does a branch that checks if reading is only.<p>Where did you get this idea from? It's not possible, since you can hand an address at the end of an array, and length 0. The array ends at the end of a page.<p>You can't read extra bytes in this case!</p>
]]></description><pubDate>Wed, 16 Apr 2025 12:01:05 +0000</pubDate><link>https://news.ycombinator.com/item?id=43704285</link><dc:creator>RustyRussell</dc:creator><comments>https://news.ycombinator.com/item?id=43704285</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=43704285</guid></item><item><title><![CDATA[New comment by RustyRussell in "The Lost Art of Commit Messages"]]></title><description><![CDATA[
<p>I don't care, as long as a commit which fixes a crash, compiler error or test failure <i>quotes the errorv</i>. This helps searching for issues, and also helps later if you find they mis-diagnosed the problem.<p>Other peeve: quote the core of the bug report you're closing, so when GitHub inevitably goes away/turns evil/starts charging, you don't lose half your knowledge. The git tree should always stand alone.</p>
]]></description><pubDate>Tue, 25 Mar 2025 08:54:08 +0000</pubDate><link>https://news.ycombinator.com/item?id=43469221</link><dc:creator>RustyRussell</dc:creator><comments>https://news.ycombinator.com/item?id=43469221</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=43469221</guid></item><item><title><![CDATA[New comment by RustyRussell in "Recommendations for designing magic numbers of binary file formats"]]></title><description><![CDATA[
<p>We use the same for Lightning: even bits for incompatible changes, odd for backwards compatible changes.</p>
]]></description><pubDate>Mon, 24 Mar 2025 09:14:30 +0000</pubDate><link>https://news.ycombinator.com/item?id=43458826</link><dc:creator>RustyRussell</dc:creator><comments>https://news.ycombinator.com/item?id=43458826</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=43458826</guid></item><item><title><![CDATA[New comment by RustyRussell in "Monster Cables picked the wrong guy to threaten (2008)"]]></title><description><![CDATA[
<p>OK, the whole "I am a lawyer" was next-levelled by this closing sentence: "Not only am I unintimidated by litigation; I sometimes rather miss it."</p>
]]></description><pubDate>Sat, 22 Mar 2025 02:32:25 +0000</pubDate><link>https://news.ycombinator.com/item?id=43442737</link><dc:creator>RustyRussell</dc:creator><comments>https://news.ycombinator.com/item?id=43442737</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=43442737</guid></item><item><title><![CDATA[New comment by RustyRussell in "Recommendations for designing magic numbers of binary file formats"]]></title><description><![CDATA[
<p>It's a trick I stole from ext2, and simplified. In that filesystem there are three bitsets: one for reading, one for writing, one for fsck. If you don't understand a bit you can't do that action.<p>For most protocols there's only reading and writing, so you can use odd bits to mean "backwards compatible features, you can read even if you don't understand" and even for "stop, we broke compat".</p>
]]></description><pubDate>Tue, 18 Mar 2025 06:39:36 +0000</pubDate><link>https://news.ycombinator.com/item?id=43396368</link><dc:creator>RustyRussell</dc:creator><comments>https://news.ycombinator.com/item?id=43396368</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=43396368</guid></item></channel></rss>