<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: RossBencina</title><link>https://news.ycombinator.com/user?id=RossBencina</link><description>Hacker News RSS</description><docs>https://hnrss.org/</docs><generator>hnrss v2.1.1</generator><lastBuildDate>Mon, 07 Sep 2026 21:29:39 +0000</lastBuildDate><atom:link href="https://hnrss.org/user?id=RossBencina" rel="self" type="application/rss+xml"></atom:link><item><title><![CDATA[New comment by RossBencina in "WebFPGA"]]></title><description><![CDATA[
<p>+1. I've used this with Lattice UP5K for some experimental development. I wanted to be able to quickly skip between working on Windows and Linux. Worked well at the time.</p>
]]></description><pubDate>Wed, 02 Sep 2026 08:39:30 +0000</pubDate><link>https://news.ycombinator.com/item?id=49533524</link><dc:creator>RossBencina</dc:creator><comments>https://news.ycombinator.com/item?id=49533524</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=49533524</guid></item><item><title><![CDATA[New comment by RossBencina in "VibeCoded AI-Slop License v1.0"]]></title><description><![CDATA[
<p>Seems legit. My only question is whether a developer has sufficient copyright to grant such a license.</p>
]]></description><pubDate>Tue, 01 Sep 2026 17:19:00 +0000</pubDate><link>https://news.ycombinator.com/item?id=49524950</link><dc:creator>RossBencina</dc:creator><comments>https://news.ycombinator.com/item?id=49524950</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=49524950</guid></item><item><title><![CDATA[New comment by RossBencina in "Io_uring Without Readahead"]]></title><description><![CDATA[
<p>> disk heads to optimized queued reads of data in a “traveling salesman” sort of way<p>Luckily the read heads only have one degree of freedom, so the "elevator algorithm" is sufficient: <a href="https://en.wikipedia.org/wiki/Elevator_algorithm" rel="nofollow">https://en.wikipedia.org/wiki/Elevator_algorithm</a></p>
]]></description><pubDate>Tue, 01 Sep 2026 17:08:03 +0000</pubDate><link>https://news.ycombinator.com/item?id=49524811</link><dc:creator>RossBencina</dc:creator><comments>https://news.ycombinator.com/item?id=49524811</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=49524811</guid></item><item><title><![CDATA[New comment by RossBencina in "Terence Tao explains 6 essential mathematical concepts [video]"]]></title><description><![CDATA[
<p>The essential concepts of mathematical reasoning, if there are such things, are the concern of mathematical logicians, or maybe even psychologists, not, in general, of working mathematicians. One of my professors once told me something to the effect of "if you think you are going to learn any of that here, you are in the wrong place."<p>If you are interested in Terence Tao's personal mathematical inner world, he touches on that during his interview with Lex Friedman, which I think you might find interesting. Interviews with Kevin Buzzard sometimes touch on these themes too.</p>
]]></description><pubDate>Tue, 01 Sep 2026 07:52:42 +0000</pubDate><link>https://news.ycombinator.com/item?id=49519242</link><dc:creator>RossBencina</dc:creator><comments>https://news.ycombinator.com/item?id=49519242</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=49519242</guid></item><item><title><![CDATA[New comment by RossBencina in "Reverse engineering my ADHD test"]]></title><description><![CDATA[
<p>CBT is not a first line treatment for ADHD in Australia. Indeed standard CBT is contra-indicated because it requires the kind of "homework" that ADHDers struggle with. There are CBT variants tailored for ADHD however.</p>
]]></description><pubDate>Tue, 01 Sep 2026 07:24:53 +0000</pubDate><link>https://news.ycombinator.com/item?id=49519053</link><dc:creator>RossBencina</dc:creator><comments>https://news.ycombinator.com/item?id=49519053</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=49519053</guid></item><item><title><![CDATA[New comment by RossBencina in "Reverse engineering my ADHD test"]]></title><description><![CDATA[
<p>Russel Barkley is a pioneer in the field of ADHD research. I have heard of such a claim, but not from Russel Barkley. Could you provide a link of Russel Barkley making the claim please?</p>
]]></description><pubDate>Tue, 01 Sep 2026 07:20:11 +0000</pubDate><link>https://news.ycombinator.com/item?id=49519018</link><dc:creator>RossBencina</dc:creator><comments>https://news.ycombinator.com/item?id=49519018</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=49519018</guid></item><item><title><![CDATA[New comment by RossBencina in "Apple caught off guard by AI demand for Mac Mini and Mac Studio"]]></title><description><![CDATA[
<p>> It's competing with a $200/mo subscription or renting server gpu time<p>Not if you're an enterprise that wants or requires on-prem inference.</p>
]]></description><pubDate>Tue, 01 Sep 2026 03:40:49 +0000</pubDate><link>https://news.ycombinator.com/item?id=49517711</link><dc:creator>RossBencina</dc:creator><comments>https://news.ycombinator.com/item?id=49517711</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=49517711</guid></item><item><title><![CDATA[New comment by RossBencina in "Xiaomi: New CPU matches Apple cores single threaded, much faster multithreaded"]]></title><description><![CDATA[
<p>Daniel Lemire specialises in high-performance algorithm implementation. In recent years he has been impressed by specific performance characteristics of Apple's CPUs. For example, their ability to eek out the maximum possible throughput from a given instruction stream's data dependencies. My information may be stale, but when I read Daniel's comments I assume that Apple is being used for compariosn because it is the current leader, and take it as given that AMD and Intel are behind. You can probably find sources where he makes head-to-head comparisons with AMD and Intel. If you're not familiar with his work I can recommend it. The Wookash podcast interview is a gentle introduction, there is open source code and academic papers if that's more your thing.</p>
]]></description><pubDate>Tue, 25 Aug 2026 03:16:50 +0000</pubDate><link>https://news.ycombinator.com/item?id=49428706</link><dc:creator>RossBencina</dc:creator><comments>https://news.ycombinator.com/item?id=49428706</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=49428706</guid></item><item><title><![CDATA[New comment by RossBencina in "Moving integer division to floating-point is trivial"]]></title><description><![CDATA[
<p>I think you are correct. Clearly I am still traumatised by the cost of converting floats to ints in the x86 era.</p>
]]></description><pubDate>Wed, 19 Aug 2026 15:11:51 +0000</pubDate><link>https://news.ycombinator.com/item?id=49362693</link><dc:creator>RossBencina</dc:creator><comments>https://news.ycombinator.com/item?id=49362693</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=49362693</guid></item><item><title><![CDATA[New comment by RossBencina in "Moving integer division to floating-point is trivial"]]></title><description><![CDATA[
<p>I am probably dating myself here, but in C the default rounding mode is round-to-nearest and the cost of switching the x86 FPU to truncate (and back) in order to perform the truncation is extremely expensive. Perhaps other instruction sets have truncate-to-integer instructions that ignore the active rounding mode.</p>
]]></description><pubDate>Wed, 19 Aug 2026 15:10:56 +0000</pubDate><link>https://news.ycombinator.com/item?id=49362682</link><dc:creator>RossBencina</dc:creator><comments>https://news.ycombinator.com/item?id=49362682</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=49362682</guid></item><item><title><![CDATA[New comment by RossBencina in "Maximizing the value of your Claude Code sessions"]]></title><description><![CDATA[
<p>Agreed. I was opining on the psychological "getting used to" aspect, not the technical merits.</p>
]]></description><pubDate>Wed, 19 Aug 2026 15:05:57 +0000</pubDate><link>https://news.ycombinator.com/item?id=49362613</link><dc:creator>RossBencina</dc:creator><comments>https://news.ycombinator.com/item?id=49362613</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=49362613</guid></item><item><title><![CDATA[New comment by RossBencina in "Moving integer division to floating-point is trivial"]]></title><description><![CDATA[
<p>x and y are integers represented as floating point<p><pre><code>  > d = trunc(x/y);     // floor works for unsigned
  >
  > // NOTE: if only want 'd' and it's being converted to an
  > // integer then the truncate or floor operation is
  > // free in the float to integer conversion.
</code></pre>
Please show me how to portably truncate or floor a floating point value to an int in C for "free".</p>
]]></description><pubDate>Fri, 14 Aug 2026 18:45:18 +0000</pubDate><link>https://news.ycombinator.com/item?id=49302962</link><dc:creator>RossBencina</dc:creator><comments>https://news.ycombinator.com/item?id=49302962</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=49302962</guid></item><item><title><![CDATA[New comment by RossBencina in "Maximizing the value of your Claude Code sessions"]]></title><description><![CDATA[
<p>> The third I suppose I care less about, just because I've kind of become used to it<p>I've never become used to it. My impression is that the constant churn has accelerated. Plausible drivers are (1) normalize novelty as desirable (like fast fashion), (2) product developer/designer incentive structures that reward revolutionary change over progressive refinement. The global switch to subscription models and continuous deployment didn't help.<p>> more like services and less like physical tools that never change.<p>I'm not sure that constant change is a characteristic feature of services, especially not professional services.<p>It used to be that you bought a piece of software and used that version until you decided it was worth upgrading, like a particular physical tool. The software still evolved, just like the design of physical tools can, in principle, evolve.<p>All that said, agentic AI tooling is evolving so rapidly I'm not sure an expectation of stability is realistic.</p>
]]></description><pubDate>Fri, 14 Aug 2026 18:19:18 +0000</pubDate><link>https://news.ycombinator.com/item?id=49302620</link><dc:creator>RossBencina</dc:creator><comments>https://news.ycombinator.com/item?id=49302620</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=49302620</guid></item><item><title><![CDATA[New comment by RossBencina in "Tail-call optimization in C is relatively recent (2025)"]]></title><description><![CDATA[
<p>Indeed. I guess this is why [[gnu::musttail]] and [[clang::musttail]] exist.<p><a href="https://gcc.gnu.org/onlinedocs/gcc-15.1.0/gcc/Statement-Attributes.html" rel="nofollow">https://gcc.gnu.org/onlinedocs/gcc-15.1.0/gcc/Statement-Attr...</a></p>
]]></description><pubDate>Tue, 11 Aug 2026 00:52:12 +0000</pubDate><link>https://news.ycombinator.com/item?id=49251909</link><dc:creator>RossBencina</dc:creator><comments>https://news.ycombinator.com/item?id=49251909</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=49251909</guid></item><item><title><![CDATA[New comment by RossBencina in "Assert(): A Modern How To"]]></title><description><![CDATA[
<p>Interesting article about a worthy topic, even though I disagree with some it. Side note: I expected to see mention of design by contract and function preconditions/invariants/postconditions.<p>I don't think the article is well founded. Before you can discuss usage you need to establish the semantics for assert(). The author touches on this in the introduction but then leaves the details unexamined. In particular I'd need to know: can assertions be disabled (as with C/C++ NDEBUG)? does the project have a policy of leaving asserts in production builds? or are asserts only ever enabled for development and testing. if used in production, do you care about the overhead of checking assertions in performance critical code? if an assertion is hit does it always log and panic/terminate? or does it throw a catchable exception? What is the runtime context of the code: is it a server process with a supervision tree? is the failure paradigm "let it crash"? is it an interactive program where the only supervisor is the user? is it a use-case where a program crash is undesirable and/or safety critical? is it a library with unknown use-cases? Are the developers in full control of the program inputs and outputs that trigger asserts?<p>As a general principle for layered systems, when there is a policy decision to be made, lower-level code should delegate upwards to higher levels, which should implement the policy. Throwing an exception or returning an error code is frequently better than terminating (if you squint, crashing out to the supervision tree is more like throwing an exception than it is like terminating.)<p>> Correctness - All possible function input and output values which do not have full value coverage should have assertions covering them.<p>Only if you control all of the callers. Library users would prefer an invalid parameters error/exception.<p>> Safety - When performing operations that can have unwanted, known, or unknown side effects, assertions should be used to prevent those conditions from happening.<p>Why assertions? If it is safety critical, shouldn't these checks be mandatory?<p>> Development - Use an assertion to enforce assumptions on values and state. These assertions can optionally be compiled out of code when coupled with proper testing.<p>This is where preconditions/postconditions/invariants come in. If safety is important you probably want to leave them in place. A runtime contract violation should enter a fail-safe state.<p>> Documentation - When writing code, use assertions as self documenting guardrails around your logic. Use assertions to enforce values and state which might be unclear from documentation or hard to decipher from reading code.<p>I do this, but in this case you either need to be 100% sure that the exception won't get hit, 100% sure that the exception won't make it into production builds, or okay with production crashes.<p><pre><code>  > var error = system_call(...);
  > assert(!error);
</code></pre>
Writing this is equivalent to providing an arbitrary third-party with the ability to crash your application with a user-unfriendly error message. Your program should have code paths to handle all error conditions. One of them can be { print("unexpected result from system call. exiting.") exit(); }</p>
]]></description><pubDate>Sun, 09 Aug 2026 06:50:40 +0000</pubDate><link>https://news.ycombinator.com/item?id=49229030</link><dc:creator>RossBencina</dc:creator><comments>https://news.ycombinator.com/item?id=49229030</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=49229030</guid></item><item><title><![CDATA[New comment by RossBencina in "The Nixpkgs core team has disbanded"]]></title><description><![CDATA[
<p>Is it patchable? Are there any known-working fixes that can be broadly applied?</p>
]]></description><pubDate>Sat, 08 Aug 2026 11:49:19 +0000</pubDate><link>https://news.ycombinator.com/item?id=49220914</link><dc:creator>RossBencina</dc:creator><comments>https://news.ycombinator.com/item?id=49220914</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=49220914</guid></item><item><title><![CDATA[New comment by RossBencina in "Don't stop early: Case-folding source code at memory speed"]]></title><description><![CDATA[
<p>One thing that wasn't tried is that the ASCII path could build a block-wise bitmap of non-ASCII blocks. Then the unicode pass need only process the contiguous ranges within the bitmap. This would be simpler to implement when combined with inigyou's no-reallocate suggestion.</p>
]]></description><pubDate>Wed, 05 Aug 2026 05:17:46 +0000</pubDate><link>https://news.ycombinator.com/item?id=49178831</link><dc:creator>RossBencina</dc:creator><comments>https://news.ycombinator.com/item?id=49178831</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=49178831</guid></item><item><title><![CDATA[New comment by RossBencina in "Don't stop early: Case-folding source code at memory speed"]]></title><description><![CDATA[
<p>If you can kill-off the extra buffer allocation code path that's got to be a win.</p>
]]></description><pubDate>Wed, 05 Aug 2026 05:13:45 +0000</pubDate><link>https://news.ycombinator.com/item?id=49178813</link><dc:creator>RossBencina</dc:creator><comments>https://news.ycombinator.com/item?id=49178813</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=49178813</guid></item><item><title><![CDATA[New comment by RossBencina in "Don't stop early: Case-folding source code at memory speed"]]></title><description><![CDATA[
<p>+1 great idea. I get the impression that some of my sibling comments thought that you meant fold all code points in the opposite direction, but it it's clear you mean change the fold direction for only those two code points.</p>
]]></description><pubDate>Wed, 05 Aug 2026 05:12:26 +0000</pubDate><link>https://news.ycombinator.com/item?id=49178800</link><dc:creator>RossBencina</dc:creator><comments>https://news.ycombinator.com/item?id=49178800</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=49178800</guid></item><item><title><![CDATA[New comment by RossBencina in "Show HN: Kakehashi – Experimental userspace to run macOS binaries on Linux ARM"]]></title><description><![CDATA[
<p>We've had mechanical/automated/algorithmic transformation of copyrighted works for over 100 years now. There are plenty of non-AI systems for translating code from one language to another. In the context of shifting a program between programming languages LLMs are just another algorithmic transformation technology. In any case, shifting a program from one language to another is not some kind of magic copyright erasure technique, whether or not an LLM is used. The law has codified procedures to assess infringement. If mechanical means is used (i.e. an LLM) the output is literally a function of the input. Good luck.</p>
]]></description><pubDate>Tue, 04 Aug 2026 10:44:52 +0000</pubDate><link>https://news.ycombinator.com/item?id=49166738</link><dc:creator>RossBencina</dc:creator><comments>https://news.ycombinator.com/item?id=49166738</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=49166738</guid></item></channel></rss>