<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: LegionMammal978</title><link>https://news.ycombinator.com/user?id=LegionMammal978</link><description>Hacker News RSS</description><docs>https://hnrss.org/</docs><generator>hnrss v2.1.1</generator><lastBuildDate>Fri, 17 Apr 2026 17:36:13 +0000</lastBuildDate><atom:link href="https://hnrss.org/user?id=LegionMammal978" rel="self" type="application/rss+xml"></atom:link><item><title><![CDATA[New comment by LegionMammal978 in "The smallest ELF executable (2021)"]]></title><description><![CDATA[
<p>Try 81 bytes for an x86-64 executable, or 77 bytes for the same if you run it on a VM with 5-level paging: <a href="https://tmpout.sh/3/22.html" rel="nofollow">https://tmpout.sh/3/22.html</a></p>
]]></description><pubDate>Sat, 04 Apr 2026 22:16:48 +0000</pubDate><link>https://news.ycombinator.com/item?id=47644080</link><dc:creator>LegionMammal978</dc:creator><comments>https://news.ycombinator.com/item?id=47644080</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47644080</guid></item><item><title><![CDATA[New comment by LegionMammal978 in "New patches allow building Linux IPv6-only"]]></title><description><![CDATA[
<p>Even in a NAT-less world, the common advice is to use a firewall rule that disallows incoming connections by default. (And I'd certainly be worried if typical home routers were configured otherwise.) So either way, you'd need the average person to mess with their router configuration, if they want to allow incoming P2P connections without hole-punching tricks. At best, the lack of NAT might save you an address-discovery step.</p>
]]></description><pubDate>Wed, 01 Apr 2026 15:50:23 +0000</pubDate><link>https://news.ycombinator.com/item?id=47602501</link><dc:creator>LegionMammal978</dc:creator><comments>https://news.ycombinator.com/item?id=47602501</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47602501</guid></item><item><title><![CDATA[New comment by LegionMammal978 in "Coding agents could make free software matter again"]]></title><description><![CDATA[
<p>> The LLM can a priori test on all possible software and hardware environments, test all possible edge cases for deployment, get feedback from millions of eyes on the project explicitly or implicitly via bug reports and usage, find good general case use features given the massive amounts of data gathered through the community of where the project needs to go next, etc?<p>Even if that's the ideal (and a very expensive one in terms of time and resources), I really don't think it accurately describes the maintainers of the very long tail of small open-source projects, especially those simple enough for the relevant features to be copied into a few files' worth of code.<p>Like, sure, projects like Linux, LLVM, Git, or the popular databases may fit that description, but people aren't trying to vendor those via LLMs (or so I hope). And in any case, if the project presently fulfills a user's specific use case, then it "going somewhere next" may well be viewed as a persistent risk.</p>
]]></description><pubDate>Mon, 30 Mar 2026 17:58:39 +0000</pubDate><link>https://news.ycombinator.com/item?id=47577591</link><dc:creator>LegionMammal978</dc:creator><comments>https://news.ycombinator.com/item?id=47577591</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47577591</guid></item><item><title><![CDATA[New comment by LegionMammal978 in "Coding agents could make free software matter again"]]></title><description><![CDATA[
<p>> But the users would have to maintain their own forks then.<p>I suppose the idea would be, they <i>don't</i> have to maintain it: if it ever starts to rot from whatever environmental changes, then they can just get the LLM to patch it, or at worst, generate it again from scratch.<p>(And personally, I prefer writing code so that it isn't coupled so tightly to the environment or other people's fast-moving libraries to begin with, since I don't want to poke at all of my projects every other year just to keep them functional.)</p>
]]></description><pubDate>Sun, 29 Mar 2026 23:58:01 +0000</pubDate><link>https://news.ycombinator.com/item?id=47568762</link><dc:creator>LegionMammal978</dc:creator><comments>https://news.ycombinator.com/item?id=47568762</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47568762</guid></item><item><title><![CDATA[New comment by LegionMammal978 in "Even faster asin() was staring right at me"]]></title><description><![CDATA[
<p>Just looking at the formula in the code (and the book it came from), we see that the approximation is of form arcsin(x) = π/2 - P(x)*sqrt(1-x). It is called a minimax solution in both, and the simplest form of minimax optimization is for polynomials. So we look at P(x) = (π/2 - arcsin(x))/sqrt(1-x): plotting out its error function with the original coefficients, it has the clear equioscillations that you'd expect from an optimized polynomial, i.e., each local peak has the exact same height, which is the max error. But if we look at the error curve in terms of arcsin(x), then its oscillations no longer have the same height, which indicates that the approximation can be improved.</p>
]]></description><pubDate>Tue, 17 Mar 2026 13:48:41 +0000</pubDate><link>https://news.ycombinator.com/item?id=47412642</link><dc:creator>LegionMammal978</dc:creator><comments>https://news.ycombinator.com/item?id=47412642</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47412642</guid></item><item><title><![CDATA[New comment by LegionMammal978 in "Even faster asin() was staring right at me"]]></title><description><![CDATA[
<p>Actually, we can improve this a bit further, by also adjusting the "π/2" constant in arcsin(x) = π/2 - P(x)*sqrt(1-x). We take coefficients [1.5707256467180715, -0.21298179775496026, 0.07727939759417458, -0.02132102849918157] for P(x), then take arcsin(x) = 1.570760986756484 - P(x)*sqrt(1-x). This reduces the max error by 6.97%, from 3.80e-5 to 3.53e-5.<p>Adjusting the "1" upward in sqrt(1-x) does not seem to help at all.</p>
]]></description><pubDate>Tue, 17 Mar 2026 04:00:55 +0000</pubDate><link>https://news.ycombinator.com/item?id=47408443</link><dc:creator>LegionMammal978</dc:creator><comments>https://news.ycombinator.com/item?id=47408443</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47408443</guid></item><item><title><![CDATA[New comment by LegionMammal978 in "Even faster asin() was staring right at me"]]></title><description><![CDATA[
<p>The coefficients given are indeed a near-optimal cubic minimax approximation for (π/2 - arcsin(x))/sqrt(1-x) on [0,1]. But those coefficients aren't actually optimal for approximating arcsin(x) itself.<p>For reference, the coefficients given are [1.5707288, -0.2121144, 0.0742610, -0.0187293]: if we optimize P(x) = (π/2 - arcsin(x))/sqrt(1-x) ourselves, we can extend them to double precision as [1.5707288189560218, -0.21211524058527342, 0.0742623449400704, -0.018729868776598532]. Increasing the precision reduces the max error, at x = 0, by 0.028%.<p>Adjusting our error function to optimize the absolute error of arcsin(x) = π/2 - P(x)*sqrt(1-x) on [0,1], we get the coefficients [1.5707583404833712, -0.2128751841625164, 0.07689738736091772, -0.02089203710669022]. The max error is reduced by 44%, from 6.75e-5 to 3.80e-5. If we plot the error function [0], we see that the new max error is achieved at five points, x = 0, 0.105, 0.386, 0.730, 0.967.<p>(Alternatively, adjusting our error function to optimize the <i>relative</i> error of arcsin(x), we get the coefficients [1.5707963267948966, -0.21441792645252514, 0.08365774237116316, -0.02732304481232744]. The max absolute error is 2.24e-4, but the max relative error is now 0.0181%, even in the vicinity of the root at x = 0. Though we'd almost certainly want to use a different formula to avoid catastrophic cancellation.)<p>So it goes to show, we can nearly double our accuracy, without modifying the code, just by optimizing for the right error metric.<p>[0] <a href="https://www.desmos.com/calculator/nj3b8rpvbs" rel="nofollow">https://www.desmos.com/calculator/nj3b8rpvbs</a></p>
]]></description><pubDate>Mon, 16 Mar 2026 20:54:48 +0000</pubDate><link>https://news.ycombinator.com/item?id=47404736</link><dc:creator>LegionMammal978</dc:creator><comments>https://news.ycombinator.com/item?id=47404736</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47404736</guid></item><item><title><![CDATA[New comment by LegionMammal978 in "Why Mathematica does not simplify sinh(arccosh(x))"]]></title><description><![CDATA[
<p>Even for boolean logic problems, a minimum-size CNF or DNF will not necessarily be the cheapest solution in terms of gates. As far as I know, hardly anyone has even attempted automatic minimization in terms of general binary operators.</p>
]]></description><pubDate>Sun, 15 Mar 2026 20:47:32 +0000</pubDate><link>https://news.ycombinator.com/item?id=47391710</link><dc:creator>LegionMammal978</dc:creator><comments>https://news.ycombinator.com/item?id=47391710</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47391710</guid></item><item><title><![CDATA[New comment by LegionMammal978 in "Why Mathematica does not simplify sinh(arccosh(x))"]]></title><description><![CDATA[
<p>Yes, it is all proprietary, but there are still ways to inspect most of the WL-implemented functions since the system does not go to extreme pains to keep them hidden from introspection. It is not unlike Maple in that sense.</p>
]]></description><pubDate>Sun, 15 Mar 2026 12:16:30 +0000</pubDate><link>https://news.ycombinator.com/item?id=47386683</link><dc:creator>LegionMammal978</dc:creator><comments>https://news.ycombinator.com/item?id=47386683</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47386683</guid></item><item><title><![CDATA[New comment by LegionMammal978 in "Removing recursion via explicit callstack simulation"]]></title><description><![CDATA[
<p>One reason I've found in practice to use iteration even in cases when recursion makes lots of sense (e.g., divide-and-conquer algorithms): the ability to periodically save the state of the computation to disk, and resume it later. Every time I write a big recursive routine and set it running for days, I end up cursing my lack of foresight for not implementing checkpoints. (Of course, there's the brute-force workaround of using CRIU, but it is extremely painful to get all the file descriptors set up just right on restore.)<p>Given that turning an active call stack into a <i>serializable</i> form is such a rare feature even in functional languages, iteration with an explicit stack ends up as the only practical choice for this use case.<p>(Also, for this particular problem, we can implement a much simpler iterative routine: create an explicit stack of forests, initially containing the initial forest. While the stack is not empty, pop a forest: if it is not nil, push its tail, then if its head tree is not empty, accumulate the value and push the sub-forest. If you're starting with a tree, then stick it in a synthetic forest. This all comes out to ~15 LOC, with no mutability except for the accumulator and stack.)</p>
]]></description><pubDate>Fri, 13 Mar 2026 19:34:40 +0000</pubDate><link>https://news.ycombinator.com/item?id=47368696</link><dc:creator>LegionMammal978</dc:creator><comments>https://news.ycombinator.com/item?id=47368696</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47368696</guid></item><item><title><![CDATA[New comment by LegionMammal978 in "Faster asin() was hiding in plain sight"]]></title><description><![CDATA[
<p>Perhaps, but at least I find it very simple for the optimality properties it gives: there is no inherent need to say, "I know that better parameters likely exist, but the algorithm to find them would be hopelessly expensive," as is the case in many forms of minimax optimization.</p>
]]></description><pubDate>Wed, 11 Mar 2026 16:24:13 +0000</pubDate><link>https://news.ycombinator.com/item?id=47337656</link><dc:creator>LegionMammal978</dc:creator><comments>https://news.ycombinator.com/item?id=47337656</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47337656</guid></item><item><title><![CDATA[New comment by LegionMammal978 in "Faster asin() was hiding in plain sight"]]></title><description><![CDATA[
<p>In general, I find that minimax approximation is an underappreciated tool, especially the quite simple Remez algorithm to generate an optimal polynomial approximation [0]. With some modifications, you can adapt it to optimize for either absolute or relative error within an interval, or even come up with rational-function approximations. (Though unfortunately, many presentations of the algorithm use overly-simple forms of sample point selection that can break down on nontrivial input curves, especially if they contain small oscillations.)<p>[0] <a href="https://en.wikipedia.org/wiki/Remez_algorithm" rel="nofollow">https://en.wikipedia.org/wiki/Remez_algorithm</a></p>
]]></description><pubDate>Wed, 11 Mar 2026 15:28:33 +0000</pubDate><link>https://news.ycombinator.com/item?id=47336894</link><dc:creator>LegionMammal978</dc:creator><comments>https://news.ycombinator.com/item?id=47336894</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47336894</guid></item><item><title><![CDATA[New comment by LegionMammal978 in "Is legal the same as legitimate: AI reimplementation and the erosion of copyleft"]]></title><description><![CDATA[
<p>"The clean-room reimplementation test" isn't a legal standard, it's a particular strategy used by would-be defendants to clearly meet the standard of "is the new work free of copyrightable expression from the original work".</p>
]]></description><pubDate>Tue, 10 Mar 2026 04:40:39 +0000</pubDate><link>https://news.ycombinator.com/item?id=47319147</link><dc:creator>LegionMammal978</dc:creator><comments>https://news.ycombinator.com/item?id=47319147</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47319147</guid></item><item><title><![CDATA[New comment by LegionMammal978 in "Oil is near a price that hurts the economy"]]></title><description><![CDATA[
<p>Your scenario seems baselessly optimistic. If it were just as simple to run society off of those, we would've been doing it to some extent already: it's not like Big Coal or Big Oil was blocking everyone else from having ideas about how to generate power (see: the initial spread of gas power, followed by the spread of nuclear power), and surely many people would've had the incentive to produce power without dealing with coal miners or oilmen. It's that it would've been dramatically more expensive without all the design iterations they have since gone through.<p>And if you greatly restrict supply at a given price point, without changing the underlying demand, you'll end up with much higher prices and lower total volume, so we wouldn't enjoyed all the compounding benefits from access to energy.</p>
]]></description><pubDate>Mon, 09 Mar 2026 19:59:24 +0000</pubDate><link>https://news.ycombinator.com/item?id=47314612</link><dc:creator>LegionMammal978</dc:creator><comments>https://news.ycombinator.com/item?id=47314612</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47314612</guid></item><item><title><![CDATA[New comment by LegionMammal978 in "Oil is near a price that hurts the economy"]]></title><description><![CDATA[
<p>And where does all that electricity come from? Until the 40s or so, hydroelectric plants and wind turbines could provide hardly any power output compared to coal plants, later supplemented by gas plants; even the electric streetcars relied on fossil fuels further down the line. Renewable energy development would've had to scale an order of magnitude further than in reality to be a basis for industry and transportation, alongside advances in electricity distribution and storage to pull it from where it's generated.</p>
]]></description><pubDate>Mon, 09 Mar 2026 19:31:35 +0000</pubDate><link>https://news.ycombinator.com/item?id=47314221</link><dc:creator>LegionMammal978</dc:creator><comments>https://news.ycombinator.com/item?id=47314221</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47314221</guid></item><item><title><![CDATA[New comment by LegionMammal978 in "Why can't you tune your guitar? (2019)"]]></title><description><![CDATA[
<p>The thing is, unless you're playing with other instruments, <i>no one is forcing you to tune to equal temperament</i>. E.g., it's very common to tune a violin's A string to an A440 reference, then tune the other strings to 3:2 perfect fifths by ear. It just gets more complicated for fretted instruments like the guitar.</p>
]]></description><pubDate>Sun, 08 Mar 2026 18:34:25 +0000</pubDate><link>https://news.ycombinator.com/item?id=47299768</link><dc:creator>LegionMammal978</dc:creator><comments>https://news.ycombinator.com/item?id=47299768</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47299768</guid></item><item><title><![CDATA[New comment by LegionMammal978 in "To update blobs or not to update blobs"]]></title><description><![CDATA[
<p>They do talk past each other a bit, and I find it difficult to follow, but overall, I'm more sympathetic to Garrett's position than Oliva's.<p>As far as I understand: GNU Linux-libre, a distribution, excludes the ability to update proprietary CPU microcode. Oliva, an important Linux-libre maintainer, says that (e.g.) Intel's proprietary microcode is inherently a backdoor, and that the ability to replace it <i>only</i> with new proprietary microcode is also a backdoor and an attack. Furthermore, new microcode updates cannot plausibly benefit the user and may only cause further harm to the user, thus Linux-libre (as distributed) makes efforts not to facilitate them.<p>Garrett is arguing against this notion, saying that microcode updates <i>can</i> very plausibly benefit the user in ways that cannot be mitigated in higher layers; that there have been no publicly-known cases of a microcode update introducing security vulnerabilities that were not already present; and thus, that it is beneficial to the user to have the ability (but not the requirement!) to update microcode blobs.<p>Both of them seem to agree it is better to have free software over proprietary blobs in all components of the system, though they both accuse each other of not fully standing for that position (Oliva accuses Garrett of "overlooking" the inherent backdoor nature of proprietary microcode; and Garrett takes issue with Olivia treating "installable software" as ethically distinct from firmware ROMs w.r.t. software freedom).<p>Personally, I'm not a fan of software or libraries that take active measures to make me use them in a certain way, so I'd lean toward Garrett's position, but thankfully no one is forcing me to use Linux-libre.</p>
]]></description><pubDate>Sun, 08 Mar 2026 00:01:39 +0000</pubDate><link>https://news.ycombinator.com/item?id=47292794</link><dc:creator>LegionMammal978</dc:creator><comments>https://news.ycombinator.com/item?id=47292794</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47292794</guid></item><item><title><![CDATA[New comment by LegionMammal978 in "Global warming has accelerated significantly"]]></title><description><![CDATA[
<p>U.S. and EU CO₂ emissions have been actively dropping for the last ~20 years [0]. (Of course, it's different question how quickly they <i>ought</i> to be dropping.)<p>[0] <a href="https://ourworldindata.org/grapher/annual-co2-emissions-per-country?country=USA~CHN~European+Union+%2828%29" rel="nofollow">https://ourworldindata.org/grapher/annual-co2-emissions-per-...</a></p>
]]></description><pubDate>Fri, 06 Mar 2026 18:06:41 +0000</pubDate><link>https://news.ycombinator.com/item?id=47278699</link><dc:creator>LegionMammal978</dc:creator><comments>https://news.ycombinator.com/item?id=47278699</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47278699</guid></item><item><title><![CDATA[New comment by LegionMammal978 in "Wikipedia has deprecated and will blacklist archive.today"]]></title><description><![CDATA[
<p>> Change the original source to something that doesn't need an archive (e.g., a source that was printed on paper), or for which a link to an archive is only a matter of convenience.<p>As if paper sources are any less susceptible to becoming increasingly unavailable over time...</p>
]]></description><pubDate>Fri, 20 Feb 2026 10:23:24 +0000</pubDate><link>https://news.ycombinator.com/item?id=47086099</link><dc:creator>LegionMammal978</dc:creator><comments>https://news.ycombinator.com/item?id=47086099</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47086099</guid></item><item><title><![CDATA[New comment by LegionMammal978 in "Faster Than Dijkstra?"]]></title><description><![CDATA[
<p>You also need some extra bits at the top so that it doesn't overflow (e.g., on an adversarial input filled with copies of the max finite value, followed by just as many copies of its negation, so that it sums to 0). The exact number will depend on the maximum input length, but for arrays stored in addressible memory it will add up to no more than 64 or so.</p>
]]></description><pubDate>Sat, 14 Feb 2026 10:04:22 +0000</pubDate><link>https://news.ycombinator.com/item?id=47013261</link><dc:creator>LegionMammal978</dc:creator><comments>https://news.ycombinator.com/item?id=47013261</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47013261</guid></item></channel></rss>