<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: rwallace</title><link>https://news.ycombinator.com/user?id=rwallace</link><description>Hacker News RSS</description><docs>https://hnrss.org/</docs><generator>hnrss v2.1.1</generator><lastBuildDate>Mon, 22 Jun 2026 23:38:26 +0000</lastBuildDate><atom:link href="https://hnrss.org/user?id=rwallace" rel="self" type="application/rss+xml"></atom:link><item><title><![CDATA[New comment by rwallace in "Floor and Ceil versus Denormals on CPU and GPU"]]></title><description><![CDATA[
<p>Ah! So let me paraphrase to make sure I understand. In your experience, the real use case of denormals is not that you want to compute with them. It's that they are a useful error signal, because they typically indicate that the equations are badly conditioned, which means the results cannot be trusted. So in that scenario, silently flushing them to zero is bad, but so is silently computing with them. What you really want is for denormals to raise an exception?</p>
]]></description><pubDate>Sun, 31 May 2026 15:19:11 +0000</pubDate><link>https://news.ycombinator.com/item?id=48346403</link><dc:creator>rwallace</dc:creator><comments>https://news.ycombinator.com/item?id=48346403</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48346403</guid></item><item><title><![CDATA[New comment by rwallace in "Floor and Ceil versus Denormals on CPU and GPU"]]></title><description><![CDATA[
<p>The one way I know of for denormals to arise in real calculations is when you have a process that converges on zero. In which case, values will pass through the denormal range on the way from the normal range down to zero. And converting denormals to zero is obviously correct.<p>What other cases have you seen of denormals arising in real calculations?</p>
]]></description><pubDate>Sun, 31 May 2026 14:08:41 +0000</pubDate><link>https://news.ycombinator.com/item?id=48345811</link><dc:creator>rwallace</dc:creator><comments>https://news.ycombinator.com/item?id=48345811</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48345811</guid></item><item><title><![CDATA[New comment by rwallace in "Ask HN: Why didn't the C64 come with Simons' BASIC in the box from 1983 onward?"]]></title><description><![CDATA[
<p>Because they believed only a small fraction of customers would care a lot about a better Basic interpreter, whereas the vast majority would care about price. As for giving things away for free, Commodore was already engaged in a cutthroat price war with Texas Instruments that almost sank the company. They could not afford to give anything else away for free.</p>
]]></description><pubDate>Sun, 24 May 2026 21:57:35 +0000</pubDate><link>https://news.ycombinator.com/item?id=48261415</link><dc:creator>rwallace</dc:creator><comments>https://news.ycombinator.com/item?id=48261415</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48261415</guid></item><item><title><![CDATA[New comment by rwallace in "The IBM-ification of Google?"]]></title><description><![CDATA[
<p>I didn't know about that event. What did he say to get booed that time?</p>
]]></description><pubDate>Sat, 23 May 2026 20:15:48 +0000</pubDate><link>https://news.ycombinator.com/item?id=48251044</link><dc:creator>rwallace</dc:creator><comments>https://news.ycombinator.com/item?id=48251044</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48251044</guid></item><item><title><![CDATA[New comment by rwallace in "80386 Protection"]]></title><description><![CDATA[
<p>I looked into that, concluded the spoiler is Specter.<p>Basically, you have to have out of order/speculative execution if you ultimately want the best performance on general/integer workloads. And once you have that, timing information is going to leak from one process into another, and that timing information can be used to infer the contents of memory. As far as I can see, there is no way to block this in software. No substitute for the CPU knowing 'that page should not be accessible to this process, activate timing leak mitigation'.</p>
]]></description><pubDate>Fri, 27 Feb 2026 13:45:59 +0000</pubDate><link>https://news.ycombinator.com/item?id=47180439</link><dc:creator>rwallace</dc:creator><comments>https://news.ycombinator.com/item?id=47180439</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47180439</guid></item><item><title><![CDATA[New comment by rwallace in "Tell HN: Happy New Year"]]></title><description><![CDATA[
<p>Happy new year from Ireland!</p>
]]></description><pubDate>Wed, 31 Dec 2025 14:37:53 +0000</pubDate><link>https://news.ycombinator.com/item?id=46444416</link><dc:creator>rwallace</dc:creator><comments>https://news.ycombinator.com/item?id=46444416</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46444416</guid></item><item><title><![CDATA[New comment by rwallace in "Migrating the main Zig repository from GitHub to Codeberg"]]></title><description><![CDATA[
<p>Sure. If you feel the need to write "this is shitty code", fair enough, I'm fine with making allowances for that kind of language. But please leave it at that, instead of also insulting the people who wrote it. There are, unfortunately, plenty of ways for bad incentives to result in competent people creating bad products.</p>
]]></description><pubDate>Thu, 27 Nov 2025 05:58:01 +0000</pubDate><link>https://news.ycombinator.com/item?id=46066166</link><dc:creator>rwallace</dc:creator><comments>https://news.ycombinator.com/item?id=46066166</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46066166</guid></item><item><title><![CDATA[Ask HN: Stories from Users of Minicomputers and Mainframes]]></title><description><![CDATA[
<p>I showed up too late to catch more than the tail end of the minicomputer era. I'd like to learn more about the computers that predated the 8-bit micros I fondly remember.<p>There is plenty of information on the technology of machines like the VAX, PDPs, 360 etc. Quite a bit also on how they were built. ('The Mythical Man-Month' and 'The Soul of a New Machine' are generally recognized as classics. A lesser-known favorite of mine: 'The Supermen'.) But not so much on how they were used, particularly at the 'coal face' level, so to speak.<p>This post was inspired by a comment on https://news.ycombinator.com/item?id=45818471<p>"... at the time I was working on an IBM 360, mostly doing Fortran for scientists running anemometer simulations. The center for this activity was the person in charge of the 360 who could dole out time on the computer.<p>The power dynamic was something I did not really notice, but in retrospect this was frustrating for the mathematicians/scientist trying to run simulations. They had to queue up and wait.<p>Then one day a mathematician brought in an Apple II running VisiCalc. His own personal computer. He ran his simulations on that."<p>One thing I found fascinating here: looking at the clock speeds of 1970s computers, by today's standards, you would expect 'the computer is too slow' to be a big limiting factor. But in the above account, it wasn't. The actual workload was such that an Apple II running VisiCalc was good enough to get the job done. The limiting factors were the actual availability of the 360 (presumably there genuinely was not enough machine time to go around), and the overhead of dealing with the politics of gaining access to it.<p>What were people's experiences with minicomputers and mainframes? What did they enable, that was more difficult or impossible than before? What were the actual bottlenecks and limiting factors? I'm interested in both direct firsthand accounts, and links to published material in any format.</p>
<hr>
<p>Comments URL: <a href="https://news.ycombinator.com/item?id=45824655">https://news.ycombinator.com/item?id=45824655</a></p>
<p>Points: 2</p>
<p># Comments: 2</p>
]]></description><pubDate>Wed, 05 Nov 2025 16:17:57 +0000</pubDate><link>https://news.ycombinator.com/item?id=45824655</link><dc:creator>rwallace</dc:creator><comments>https://news.ycombinator.com/item?id=45824655</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=45824655</guid></item><item><title><![CDATA[New comment by rwallace in "Cybersecurity training programs don't prevent phishing scams"]]></title><description><![CDATA[
<p>In general, if a program is not a Web browser, I do not want that program getting clever with displaying a URL as an active link. Just show it as the URL, https prefix and all, so I can see where it will be taking me if I copy it into the browser. (This is one of my very few gripes with Google docs.)</p>
]]></description><pubDate>Fri, 10 Oct 2025 02:01:58 +0000</pubDate><link>https://news.ycombinator.com/item?id=45534801</link><dc:creator>rwallace</dc:creator><comments>https://news.ycombinator.com/item?id=45534801</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=45534801</guid></item><item><title><![CDATA[New comment by rwallace in "Seeing like a software company"]]></title><description><![CDATA[
<p>Fair enough! If you ever have the time and inclination to write it up as a blog post or such, I would love to read it.</p>
]]></description><pubDate>Wed, 08 Oct 2025 16:25:57 +0000</pubDate><link>https://news.ycombinator.com/item?id=45517909</link><dc:creator>rwallace</dc:creator><comments>https://news.ycombinator.com/item?id=45517909</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=45517909</guid></item><item><title><![CDATA[New comment by rwallace in "Seeing like a software company"]]></title><description><![CDATA[
<p>I disagree with your second sentence above. I think it is shallow dismissals that are inappropriate here. Conversely, I have upvoted a number of long explanations of interesting topics.<p>If you don't have time to write a detailed refutation, that's entirely understandable! But if you do, I would love to read it.<p>I did appreciate your paragraph length comment on the matter elsewhere in this thread.</p>
]]></description><pubDate>Wed, 08 Oct 2025 03:46:10 +0000</pubDate><link>https://news.ycombinator.com/item?id=45511851</link><dc:creator>rwallace</dc:creator><comments>https://news.ycombinator.com/item?id=45511851</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=45511851</guid></item><item><title><![CDATA[New comment by rwallace in "Arenas in Rust"]]></title><description><![CDATA[
<p>Or unless delete is a rare operation. So yeah, to make the best decisions here, you need to know expected numbers as well as expected access patterns.<p>As far as I can see, you are indeed going to incur one extra memory access apart from the object itself, for any design other than just 'Temporarily flag the object deleted, sweep deleted objects in bulk later' (which would only be good if deleted objects are uncommon). It still matters how many extra memory accesses; deleting an object from a doubly linked list accesses two other objects.<p>It also matters somewhat how many cache lines each object takes up. I say 'somewhat' because even if an object is bulky, you might be able to arrange it so that the most commonly accessed fields fit in one or two cache lines at the beginning.</p>
]]></description><pubDate>Sun, 05 Oct 2025 15:09:38 +0000</pubDate><link>https://news.ycombinator.com/item?id=45482073</link><dc:creator>rwallace</dc:creator><comments>https://news.ycombinator.com/item?id=45482073</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=45482073</guid></item><item><title><![CDATA[New comment by rwallace in "Arenas in Rust"]]></title><description><![CDATA[
<p>No problem!<p>As to what would be better - this is also a reply to your sibling comments above - I don't  have a single across-the-board solution; the equivalent of std::vector everywhere is fine for some kinds of application code, but not necessarily for system code. Instead, I would start by asking questions.<p>What kinds of entities are you dealing with, what kinds of collections, and, critically, <i>how many</i> entities along each dimension, to an order of magnitude, p50 and p99? What are your typical access patterns? What are your use cases, so that you can figure out what figures of merit to optimize for? How unpredictable will be the adding of more use cases in the future?<p>In most kinds of application code, it's okay to just go for big-O, but for performance critical system code, you also need to care about constant factors. As an intuition primer, how many bytes can you memcpy in the time it takes for one cache miss? If your intuition for performance was trained in the eighties and nineties, as mine initially was, the answer may be larger than you expect.</p>
]]></description><pubDate>Sat, 04 Oct 2025 18:23:40 +0000</pubDate><link>https://news.ycombinator.com/item?id=45475459</link><dc:creator>rwallace</dc:creator><comments>https://news.ycombinator.com/item?id=45475459</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=45475459</guid></item><item><title><![CDATA[New comment by rwallace in "Arenas in Rust"]]></title><description><![CDATA[
<p>To clarify a couple of things:<p>I'm aware of the reasons Linux uses doubly linked lists. I'm still of the opinion this design decision made a lot of sense in the 1990s, and would make less sense in a new project today. You may disagree, and that's fine! Engineering is constrained by hard truths, but within those constraints, is full of judgment calls.<p>I'm not a member of the <i>evangelical</i> Rust community. I'm not proclaiming 'thou shalt rewrite it all in Rust'. Maybe you have good reasons to use something else. That's fine.<p>But if you are considering Rust, and are concerned about its ability to handle cyclic data structures, there are ways to do it, that don't involve throwing out all the benefits the language offers.</p>
]]></description><pubDate>Sat, 04 Oct 2025 14:12:14 +0000</pubDate><link>https://news.ycombinator.com/item?id=45473453</link><dc:creator>rwallace</dc:creator><comments>https://news.ycombinator.com/item?id=45473453</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=45473453</guid></item><item><title><![CDATA[New comment by rwallace in "UTF-8 is a brilliant design"]]></title><description><![CDATA[
<p>Yes, that was exactly the reason. CJK unification happened during the few years when we were all trying to convince ourselves that 16 bits would be enough. By the time we acknowledged otherwise, it was too late.</p>
]]></description><pubDate>Sat, 13 Sep 2025 22:51:12 +0000</pubDate><link>https://news.ycombinator.com/item?id=45235937</link><dc:creator>rwallace</dc:creator><comments>https://news.ycombinator.com/item?id=45235937</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=45235937</guid></item><item><title><![CDATA[New comment by rwallace in "Learning lessons from the loss of the Norwegian frigate Helge Ingstad"]]></title><description><![CDATA[
<p>I read that paragraph, but my reading of it was different from yours. As far as I can see, it only discusses training time and experience. No mention of time for sleep.<p>Though yes, I do give it credit for going at least a little of the way - not far enough, but a little - in pushing back on the 'human error' scapegoating, in  favor of asking questions about procedures and policies.</p>
]]></description><pubDate>Thu, 11 Sep 2025 12:16:16 +0000</pubDate><link>https://news.ycombinator.com/item?id=45210661</link><dc:creator>rwallace</dc:creator><comments>https://news.ycombinator.com/item?id=45210661</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=45210661</guid></item><item><title><![CDATA[New comment by rwallace in "Learning lessons from the loss of the Norwegian frigate Helge Ingstad"]]></title><description><![CDATA[
<p>In several similar incidents, it was clear that the, or at least a major, cause of the accidents, was that the officers on watch had been forced to work overtime and deprived of sleep to the point of cognitive impairment.<p>How many hours had the officer on watch in this case worked that week? How many hours of sleep did he have?<p>And why is no one except me asking those questions?</p>
]]></description><pubDate>Thu, 11 Sep 2025 11:15:31 +0000</pubDate><link>https://news.ycombinator.com/item?id=45210208</link><dc:creator>rwallace</dc:creator><comments>https://news.ycombinator.com/item?id=45210208</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=45210208</guid></item><item><title><![CDATA[New comment by rwallace in "Introduction to Ada: a project-based exploration with rosettas"]]></title><description><![CDATA[
<p>I predict that it will never make sense for artificial neural networks to directly generate machine code, for most of the same reasons it doesn't make sense for biological neural networks to do so.</p>
]]></description><pubDate>Wed, 03 Sep 2025 13:33:08 +0000</pubDate><link>https://news.ycombinator.com/item?id=45115590</link><dc:creator>rwallace</dc:creator><comments>https://news.ycombinator.com/item?id=45115590</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=45115590</guid></item><item><title><![CDATA[New comment by rwallace in "Ask HN: Why hasn't x86 caught up with Apple M series?"]]></title><description><![CDATA[
<p>That's an interesting question about the number of levels of address translation. Does anyone have numbers for that, and how much latency and energy an extra layer costs?</p>
]]></description><pubDate>Tue, 26 Aug 2025 09:14:29 +0000</pubDate><link>https://news.ycombinator.com/item?id=45024148</link><dc:creator>rwallace</dc:creator><comments>https://news.ycombinator.com/item?id=45024148</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=45024148</guid></item><item><title><![CDATA[New comment by rwallace in "Ask HN: Why hasn't x86 caught up with Apple M series?"]]></title><description><![CDATA[
<p>I'm not aware of any CPU invented since the late eighties that doesn't have paged virtual memory. Am I misunderstanding what you mean? Can you expand on where you are getting the 4x number from?</p>
]]></description><pubDate>Tue, 26 Aug 2025 07:18:36 +0000</pubDate><link>https://news.ycombinator.com/item?id=45023302</link><dc:creator>rwallace</dc:creator><comments>https://news.ycombinator.com/item?id=45023302</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=45023302</guid></item></channel></rss>