<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: simonreiff</title><link>https://news.ycombinator.com/user?id=simonreiff</link><description>Hacker News RSS</description><docs>https://hnrss.org/</docs><generator>hnrss v2.1.1</generator><lastBuildDate>Sun, 20 Sep 2026 13:41:54 +0000</lastBuildDate><atom:link href="https://hnrss.org/user?id=simonreiff" rel="self" type="application/rss+xml"></atom:link><item><title><![CDATA[New comment by simonreiff in "2,085 Tests, and None of Them Opens the Front Door"]]></title><description><![CDATA[
<p>"The honest summary is that a plain-English end-to-end layer would fill a real and currently empty tier, sitting on top of roughly two thousand fast deterministic tests doing work no browser tool can do. Both halves of that sentence are load-bearing. A vendor who only says the first half is telling me they have not read a codebase like mine."<p>A person who posts an article like this is telling me they have neither written nor read their article. Or their own code base, for that matter. So this person had problems in a code base he didn't write, didn't read either, it seems, and now wants all of us to read an article about this zombie code base, except he also didn't write or read over that article before posting it.<p>To the author: Your article can be rewritten in a few sentences like this: "I vibe coded a code base and asked Claude to add tons of unit tests. I didn't read the code or the tests; just wanted it to work. But I either didn't know to ask to wire the tests into my CI/CD pipeline, didn't know what that was, or did know but was too lazy to check that it happened. Anyway, I sure learned my lesson: What happens in localhost:3000 stays in localhost:3000. Gotta wire up your .github/workflows/cicd.yml file to pull in your tests. Otherwise it really doesn't do much for you. Lesson learned!" And you know what? As banal as that would have been, I would have enjoyed that article so much more. Just take 5 minutes man. Five freaking minutes.</p>
]]></description><pubDate>Mon, 17 Aug 2026 02:10:37 +0000</pubDate><link>https://news.ycombinator.com/item?id=49325847</link><dc:creator>simonreiff</dc:creator><comments>https://news.ycombinator.com/item?id=49325847</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=49325847</guid></item><item><title><![CDATA[New comment by simonreiff in "Simplifying and Refactoring Introductory Calculus (2018)"]]></title><description><![CDATA[
<p>Personally I dislike hyperreals for the reason that we lose the all-powerful Archimidean property (for all real numbers x, there exists a natural number N such that N > x or N = x). But yes, hyperreals are completely consistent. Robinson showed, I want to say in the 1960s, that any statement about the logical consistency of the hyperreals is true if and only if the same is true for the reals. Then hyperreals basically save Leibniz by introducing the standard part function st(), which is rigorously defined.<p>Again, for me, this seems a little costly. If cookbook calculus is a struggle, the student probably won't take real analysis. And once you get to analysis, the fact that the reals are Archimidean grounds the whole endeavor on a very intuitive basis. By contrast, the hyperreals are not Archimedian so we can find omega bigger than every natural number. I don't personally feel like that helps intuition and indeed requires development of non-standard analysis but I admit it is pretty cool that Leibniz-style computations can be salvaged this way.</p>
]]></description><pubDate>Sat, 15 Aug 2026 11:13:03 +0000</pubDate><link>https://news.ycombinator.com/item?id=49309619</link><dc:creator>simonreiff</dc:creator><comments>https://news.ycombinator.com/item?id=49309619</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=49309619</guid></item><item><title><![CDATA[New comment by simonreiff in "Simplifying and Refactoring Introductory Calculus (2018)"]]></title><description><![CDATA[
<p>Actually Leibniz invented the modern dy and dx notation and did view the differentials as genuinely nonzero, which is generally speaking a safe assumption. In other words, dy/dx really was a quotient, albeit of really tiny values (at least we assume dx can become arbitrarily small while remaining nonzero). The calculation Leibniz would do looked something like this. First he would consider an equation y = x^2. Then he would consider a nonzero difference so something like y + dy = (x + dx)^2 = x^2 + 2x dx + (dx)^2. At this point he would use his starting equation to subtract y from the LHS and x^2 from the RHS, leaving: dy = 2x dx + (dx)^2. Then he would divide by dx leaving dy/dx = 2x + dx and since dx is infintisimal, he would just lop it off. Suffice it to say, just ignoring the nonzero dx on the RHS, or casting it to 0 while conveniently ignoring the division by 0 on the LHS, was rather disturbing to many critics. A lot of work had to be done by Riemann, Cauchy, and Weierstrass over the following century after Newton and Leibniz invented calculus to answer the question you are asking.<p>I think the best way to understand this is that division by dx is always allowed. It is genuinely a nonzero quantity. Later, we think more in a more abstract way in a tiny neighborhood around (x,y), considering what happens to dy as dx becomes arbitrarily small, but it never vanishes entirely. That explains why we can say dy = 2x dx or dy/dx = 2x and both are completely true and reasonable. I think the author's argument is that d() is a bit easier to understand because we aren't dividing by dx but it makes no sense (to me) that way. If you cannot divide by dx, a nonzero number, then why not? And if you can, why doesn't dy/dx involve zero division, which is clearly not well-defined? I think answering those questions makes calculus a lot easier to understand and that they are in a sense the hardest questions. The notation this author uses doesn't really illuminate those points and the fact that the author realizes that he is basically teaching the students to accept zero division for most of the year suggests he is basically saying we should go back to a Leibniz-era approach to calculus. I would rather make rigorous what is meant by dx/dy and what exactly dx and dy are.</p>
]]></description><pubDate>Sat, 15 Aug 2026 03:47:26 +0000</pubDate><link>https://news.ycombinator.com/item?id=49307448</link><dc:creator>simonreiff</dc:creator><comments>https://news.ycombinator.com/item?id=49307448</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=49307448</guid></item><item><title><![CDATA[New comment by simonreiff in "NP-overrated"]]></title><description><![CDATA[
<p>I actually did add a timer as a final "if all else fails" for my regex implementation rather recently, maybe 6 months ago. I don't even know of any scenario that could reach the timer because I have a robust allowlist/denylist and a ton of unit tests. But I would rather just be certain and it wasn't hard.</p>
]]></description><pubDate>Fri, 14 Aug 2026 02:23:35 +0000</pubDate><link>https://news.ycombinator.com/item?id=49294117</link><dc:creator>simonreiff</dc:creator><comments>https://news.ycombinator.com/item?id=49294117</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=49294117</guid></item><item><title><![CDATA[New comment by simonreiff in "Changes at Google DeepMind: Demis Hassabis from CEO to Chair, Jeff Dean departs"]]></title><description><![CDATA[
<p>Publicity benefit corporation HAHAHA typo, think they mean public benefit corporation. Anthropic however is DEFINITELY a publicity benefit corporation.</p>
]]></description><pubDate>Wed, 05 Aug 2026 17:43:33 +0000</pubDate><link>https://news.ycombinator.com/item?id=49186269</link><dc:creator>simonreiff</dc:creator><comments>https://news.ycombinator.com/item?id=49186269</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=49186269</guid></item><item><title><![CDATA[New comment by simonreiff in "GitHub has alternatives, but no replacement"]]></title><description><![CDATA[
<p>Not for vibe-coders, and also not for any business or user with any project using AI for "most" of the code (an ill-defined term in their ToS that nonetheless safely excludes many serious projects adopting AI for a variety of reasons). I have a code base that is entirely handwritten JS. I am porting it to .NET/C# with AI assistance, plus a lot of supervision and manual revision by me to ensure the quality meets my requirements. When finished, the code base will be "mostly" AI-generated within the meaning of Codeberg's ToS, even though I wrote the underlying code base by hand, and will have overseen and approved every line of AI-generated C# code myself. I don't have any reason to trust that Codeberg will be more or less reasonable in my particular use case, nor that they will interpret their ToS consistently to permit or disallow my project even assuming their terms do allow my project (and it's just of many to be clear). They control their ToS and I assume they drafted it vaguely on purpose to ensure they have flexibility to kick out anyone deemed undesirable. At least that's what I would do in their shoes if I wanted flexibility. If coding is a hobby and you hate AI or simply never use it, you can definitely use Codeberg. If you are an enterprise customer, or you use GenAI to any significant extent (or both), you nearly certainly cannot safely do so. And that's fine; Codeberg can do whatever they want. But Codeberg is in no way a "perfect drop-in 1:1 replacement" for most developers.</p>
]]></description><pubDate>Sat, 01 Aug 2026 16:53:02 +0000</pubDate><link>https://news.ycombinator.com/item?id=49136068</link><dc:creator>simonreiff</dc:creator><comments>https://news.ycombinator.com/item?id=49136068</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=49136068</guid></item><item><title><![CDATA[New comment by simonreiff in "How old is Ann?"]]></title><description><![CDATA[
<p>Ah yes. The famous problem that is ambiguous because it ignores space travel!<p>Let M_n := Mary's age now = 24, A_n := Ann's age now, and let M_p, A_p be the ages of Mary and Ann at a certain point in the past. We have that M_n = 24 = 2(A_p) from "Mary is 24 years old. She is twice as old as Ann was", immediately implying that A_p = 12. At the point in time p when M_p, A_p were the ages of Mary and Ann, respectively, we have that M_p = A_n from "when Mary was as old as Ann is now". Also, let x := | M_n - M_p | = | A_n - A_p | be the amount of time that has passed between the point p in time and now. Since M_n > M_p and A_n > A_p by construction, we can drop absolute values, yielding M_n = M_p + x, A_n = A_p + x. Substituting, we have M_p = 24 - x, and A_n = 12 + x, yielding x = 24 - M_p = A_n - 12, yielding A_n = 36 - M_p. But, since M_p = A_n, we can write 2(A_n) = 36 yielding A_n = 18.<p>This problem, however, completely ignores the fact that Ann boarded an interstellar spaceship 6 years ago at a reasonable fraction of the speed of light c. To account for this missing detail, we need to use Lorentz factors. Since Ann was the one traveling in space, we have to adjust her current age by calculating A_n = A_p + x * sqrt(1 - (v/c)^2)), where v is Ann's velocity Given that the problem is missing the critical detail of how fast Ann is hurtling towards the outer boundary of the universe, we really can't calculate their age at all. Nonetheless, given the completely reasonable and plausible assumption that Ann has been traveling at 95% of the speed of light because spaceships totally can do that, Ann is obviously about 13.87 years old. So 18 years old is clearly the wrong answer.<p>Note that the fact that Ann is not aging as much due to traveling at an enormous velocity does NOT change Mary's age. Mary remains exactly twice as old as Ann was at the given point in the past, so she's 24 and 6 years have passed from her perspective. Only Ann's age changes. Obviously.</p>
]]></description><pubDate>Thu, 30 Jul 2026 14:51:08 +0000</pubDate><link>https://news.ycombinator.com/item?id=49110893</link><dc:creator>simonreiff</dc:creator><comments>https://news.ycombinator.com/item?id=49110893</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=49110893</guid></item><item><title><![CDATA[New comment by simonreiff in "Harmony Explained: Progress Towards a Scientific Theory of Music (2012)"]]></title><description><![CDATA[
<p>Can't go wrong with Alfred's Essentials of Music Theory</p>
]]></description><pubDate>Wed, 29 Jul 2026 10:01:50 +0000</pubDate><link>https://news.ycombinator.com/item?id=49095378</link><dc:creator>simonreiff</dc:creator><comments>https://news.ycombinator.com/item?id=49095378</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=49095378</guid></item><item><title><![CDATA[New comment by simonreiff in "Harmony Explained: Progress Towards a Scientific Theory of Music (2012)"]]></title><description><![CDATA[
<p>I studied harmony and music analysis many years ago as a piano performance major in school. One thing I will say is that harmony really is not an abstract set of symbols on a page representing chords, but rather is a taxonomy of common specific sequences of simultaneously sounding pitches, abstracting away instruments or larger structural considerations and providing a dictionary that defines the most common patterns. Here's an example: Perhaps you're familiar with the idea of major and minor, but you might be unfamiliar with a Picardy third, where a composition is in a minor ("sad") key throughout but ends in that same pitch but on a major ("happy") chord. J.S. Bach used Picardy thirds regularly to end his compositions, but the Picardy third became rarer after Bach's death. Still, it's a beautiful and striking harmonic progression that continues to appear now and then. And now you know EXACTLY why that 1967 song by the Turtles, "Happy Together", has that really nice and memorable ending; that's a modern pop example of a Picardy third. Again, harmony is not abstract; it's the names musicians have given for specific sequential combinations, many of which have been named centuries ago. It's not about nicer or worse; sounds are sounds, but some are combined more often than others and those combined most frequently have well-known names that can be used to explain concisely the "harmonic" aspect of a piece of music.</p>
]]></description><pubDate>Tue, 28 Jul 2026 16:39:34 +0000</pubDate><link>https://news.ycombinator.com/item?id=49086503</link><dc:creator>simonreiff</dc:creator><comments>https://news.ycombinator.com/item?id=49086503</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=49086503</guid></item><item><title><![CDATA[New comment by simonreiff in "Be skeptical of OpenAI's rogue hacker agent story"]]></title><description><![CDATA[
<p>Squid is my working guess as well</p>
]]></description><pubDate>Sat, 25 Jul 2026 00:21:47 +0000</pubDate><link>https://news.ycombinator.com/item?id=49043245</link><dc:creator>simonreiff</dc:creator><comments>https://news.ycombinator.com/item?id=49043245</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=49043245</guid></item><item><title><![CDATA[New comment by simonreiff in "Be skeptical of OpenAI's rogue hacker agent story"]]></title><description><![CDATA[
<p>I am very skeptical of the Guardian's skepticism</p>
]]></description><pubDate>Fri, 24 Jul 2026 19:34:34 +0000</pubDate><link>https://news.ycombinator.com/item?id=49040625</link><dc:creator>simonreiff</dc:creator><comments>https://news.ycombinator.com/item?id=49040625</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=49040625</guid></item><item><title><![CDATA[New comment by simonreiff in "How to Read a Painting"]]></title><description><![CDATA[
<p>I really don't want AI-generated copy to walk me through how to understand various famous paintings by answering 8 boilerplate questions about each of them. If the answers were written entirely by a human who was an art expert, though, I think I would feel completely differently. There's an idea here that seems appealing (look at a collection of famous paintings, and learn the most interesting things about each one, what to notice, etc.), but the AI copy is a complete turn-off for me.</p>
]]></description><pubDate>Wed, 22 Jul 2026 15:00:10 +0000</pubDate><link>https://news.ycombinator.com/item?id=49007884</link><dc:creator>simonreiff</dc:creator><comments>https://news.ycombinator.com/item?id=49007884</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=49007884</guid></item><item><title><![CDATA[New comment by simonreiff in "Who's afraid of Chinese models?"]]></title><description><![CDATA[
<p>I fully agree with everything in this essay. Make distillation fair use. And let us use Mythos/Fable and Sol and successor or future models for all cybersecurity purposes.</p>
]]></description><pubDate>Tue, 21 Jul 2026 00:19:11 +0000</pubDate><link>https://news.ycombinator.com/item?id=48986646</link><dc:creator>simonreiff</dc:creator><comments>https://news.ycombinator.com/item?id=48986646</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48986646</guid></item><item><title><![CDATA[New comment by simonreiff in "Human mathematicians are being outcounterexampled"]]></title><description><![CDATA[
<p>That sounds like the worst "exam nightmare" scenario imaginable, but did the student get the PhD in the end?</p>
]]></description><pubDate>Mon, 20 Jul 2026 22:11:20 +0000</pubDate><link>https://news.ycombinator.com/item?id=48985523</link><dc:creator>simonreiff</dc:creator><comments>https://news.ycombinator.com/item?id=48985523</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48985523</guid></item><item><title><![CDATA[New comment by simonreiff in "How we measured AI writing across arXiv, and where the measurement breaks"]]></title><description><![CDATA[
<p>Being charitable, "more scientific" means more rigorous, reproducible, reliable based on the consensus of that scientific community (if any consensus exists, which it usually does in math and hard sciences), transparent in methodology, and candid about authorities cited and limitations to the experimental approach. Science is not a style guide; the purpose of a research publication is to impart a result to experts in the field and make claims that can be rigorously scrutinized. The best way to make a claim credibly is to demonstrate full fluency with the tools and techniques of the academic community in applying them thoughtfully to the chosen problem. But the result of doing that often looks downright impenetrable to the general public; see, e.g., Niven 1947 (1-page proof that pi is irrational). It's not the point of science to make it accessible to everyone. The point is to convince experts in the field of the correctness of the claim. The audiences are often totally different, and the tone and qualities of the writings likewise must vary.</p>
]]></description><pubDate>Mon, 20 Jul 2026 22:08:12 +0000</pubDate><link>https://news.ycombinator.com/item?id=48985488</link><dc:creator>simonreiff</dc:creator><comments>https://news.ycombinator.com/item?id=48985488</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48985488</guid></item><item><title><![CDATA[New comment by simonreiff in "How we measured AI writing across arXiv, and where the measurement breaks"]]></title><description><![CDATA[
<p>I have to concur, unfortunately. This isn't reliable, reproducible, or interpretable.</p>
]]></description><pubDate>Mon, 20 Jul 2026 21:08:44 +0000</pubDate><link>https://news.ycombinator.com/item?id=48984913</link><dc:creator>simonreiff</dc:creator><comments>https://news.ycombinator.com/item?id=48984913</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48984913</guid></item><item><title><![CDATA[New comment by simonreiff in "What I learned selling 2,500 MIDI recorders: Hardware is not so hard"]]></title><description><![CDATA[
<p>Wow, congrats on this project! Really cool. I majored in piano performance many years ago and will definitely check this out.</p>
]]></description><pubDate>Sun, 19 Jul 2026 12:40:53 +0000</pubDate><link>https://news.ycombinator.com/item?id=48967677</link><dc:creator>simonreiff</dc:creator><comments>https://news.ycombinator.com/item?id=48967677</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48967677</guid></item><item><title><![CDATA[New comment by simonreiff in "Ask HN: I've told everyone about my startup and its been harder than I thought"]]></title><description><![CDATA[
<p>Sorry to hear about the stress of being a founder; I also am a solo founder and feel the pressure every day too. For what it's worth, you've already achieved something very special if you have thousands of users. That already shows you are building something that others find genuinely useful, entertaining, or worthwhile. Also, not to minimize your situation, but your age and situation is probably an advantage here. If you pivot to a completely new venture or get a job, you have lots of time to build something else really successful.<p>I suggest re-engaging with your friends and family. It really will help you figure out what you want out of life and of this ongoing venture. Doing that will help you realize what really matters to you. Perhaps you'll find yourself reinvigorated and will dive back into the work even harder than before. Maybe you'll just have a clearer picture of what your exit strategies might be. Either way, you'll be glad you reconnected with the people who care about you. It's more important to do that than any startup ever could be.<p>Anyway, wishing you best of luck.</p>
]]></description><pubDate>Sat, 18 Jul 2026 14:00:31 +0000</pubDate><link>https://news.ycombinator.com/item?id=48958227</link><dc:creator>simonreiff</dc:creator><comments>https://news.ycombinator.com/item?id=48958227</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48958227</guid></item><item><title><![CDATA[New comment by simonreiff in "AWS: Inaccurate Estimated Billing Data – $1.7 billion"]]></title><description><![CDATA[
<p>Question: Why does AWS need to roll back estimated bills to a "last known good" state? I get wanting to do that for ACTUAL billing mistakes, but for estimates, they're just that -- approximations. I guess it's fine for predictive purposes to store estimates so they can be compared to actual usage and optimized. But why would AWS bind the values of present estimates to the estimates made earlier in the month. The calculation should always be:<p>1. Current month's usage * applicable rates; + 
2. Estimated future usage for the month * applicable rates.<p>And Item 1 obviously requires proper data persistence, but Item 2 is just a projection. If they don't have Item 1 correct, AWS's whole system is in question, but I don't think that's the issue. I'm going to guess now -- looking forward to reading the root cause analysis -- that the problem is that someone decided to get too fancy with the estimates, and built a latent requirement that all prior estimates for the month must be available to compute the current estimate. Without estimates working, no estimates are available, and some denominator in an averaging or smoothing or normalizing function goes to 0; then everyone's estimated bill explodes without bound (subject to floating-point arithmetic) resulting in trillion-dollar estimates.</p>
]]></description><pubDate>Fri, 17 Jul 2026 16:02:38 +0000</pubDate><link>https://news.ycombinator.com/item?id=48948938</link><dc:creator>simonreiff</dc:creator><comments>https://news.ycombinator.com/item?id=48948938</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48948938</guid></item><item><title><![CDATA[New comment by simonreiff in "Show HN: I've built a words game based on binary search"]]></title><description><![CDATA[
<p>Nice game -- a bit more of a challenge than the usual word games, so I appreciated it. I suggest including a little demo before the game starts to showcase how it works because it was slightly unclear how the game would work before the first turn. It also would be really nice to let users choose a difficulty level based on the length of the word. I might consider encapsulating all the numbers of the turns left, or even making it a flexible option that the user can lower in order to increase difficulty. The only other nit I noticed was that the dictionary seems to be returning the secondary meaning for the word today. Overall I really liked this game as it was genuinely different and the hi/lo nature added a very different dimension to the guesswork.</p>
]]></description><pubDate>Thu, 16 Jul 2026 16:39:37 +0000</pubDate><link>https://news.ycombinator.com/item?id=48936854</link><dc:creator>simonreiff</dc:creator><comments>https://news.ycombinator.com/item?id=48936854</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48936854</guid></item></channel></rss>