<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: cormacrelf</title><link>https://news.ycombinator.com/user?id=cormacrelf</link><description>Hacker News RSS</description><docs>https://hnrss.org/</docs><generator>hnrss v2.1.1</generator><lastBuildDate>Sat, 02 May 2026 11:55:56 +0000</lastBuildDate><atom:link href="https://hnrss.org/user?id=cormacrelf" rel="self" type="application/rss+xml"></atom:link><item><title><![CDATA[New comment by cormacrelf in "Why Your Load Balancer Still Sends Traffic to Dead Backends"]]></title><description><![CDATA[
<p>For GET /, sure, and some mature load balancers can do this. For POST /upload_video, no. You'd have to store all in-flight requests, either in-memory or on disk, in case you need to replay the entire thing with a different backend. Not a very good tradeoff.</p>
]]></description><pubDate>Tue, 24 Feb 2026 02:05:49 +0000</pubDate><link>https://news.ycombinator.com/item?id=47131973</link><dc:creator>cormacrelf</dc:creator><comments>https://news.ycombinator.com/item?id=47131973</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47131973</guid></item><item><title><![CDATA[New comment by cormacrelf in "How did Windows 95 get permission to put Weezer video 'Buddy Holly' on the CD?"]]></title><description><![CDATA[
<p>And at the same time, Apple claimed it was the biggest ever album release by number of downloads, or something like that. They were not only messing with our libraries, they were claiming we wanted it and were in fact U2 fans.</p>
]]></description><pubDate>Tue, 10 Feb 2026 23:24:13 +0000</pubDate><link>https://news.ycombinator.com/item?id=46968506</link><dc:creator>cormacrelf</dc:creator><comments>https://news.ycombinator.com/item?id=46968506</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46968506</guid></item><item><title><![CDATA[New comment by cormacrelf in "Mathematicians have found a hidden 'reset button' for undoing rotation"]]></title><description><![CDATA[
<p>You can absolutely do that and there is nothing for general linear algebra libraries to do.<p>The actual paper is very clear about what it's for: <a href="https://fiteoweb.unige.ch/~eckmannj/ps_files/ETPRL.pdf" rel="nofollow">https://fiteoweb.unige.ch/~eckmannj/ps_files/ETPRL.pdf</a><p>It says:<p><pre><code>    Consider now a general time-dependent field B(t) of duration T. The pulse B(t) may be extremely convoluted ... Can one make the field B(t) return the system to its original state at the end of the pulse...?
</code></pre>
This pulse is modelled as a long sequence of rotations. For maths purposes if you had such a sequence, you can obviously just multiply all the rotations together and find the inverse very easily. For physics purposes, you don't really have access to each individual rotation, all you can do is tune the pulse. Creating an "inverse pulse" is quite unwieldy, you might literally need to create new hardware. The paper asks "what if we just amplified the pulse? Can we change this alone and make it not impart any rotation?"<p>They are trying to take any pulse B(t) and zero out any rotation it imparts on some particle or whatever by<p><pre><code>    uniformly tuning the field’s magnitude, B(t) → λB(t) or by uniformly stretching or compressing time, B(t) → B(λt)
</code></pre>
And the answer is that you can do that, but you might have to perform the pulse twice.</p>
]]></description><pubDate>Tue, 21 Oct 2025 23:00:13 +0000</pubDate><link>https://news.ycombinator.com/item?id=45662824</link><dc:creator>cormacrelf</dc:creator><comments>https://news.ycombinator.com/item?id=45662824</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=45662824</guid></item><item><title><![CDATA[New comment by cormacrelf in "Ripgrep 15.0"]]></title><description><![CDATA[
<p>How about -F -regexthatlookslikeaflag? Verbatim, that errors out as the command line parsing tries to interpret it as a flag. If you don’t have -F, then you can escape the leading hyphen with a backslash in a single quoted string: '\-regex…', but then you don’t get fixed string search. And -F '\-regex…' is a fixed string search for “backslash hyphen r e g e x”. The only way is to manually escape the regex and not use -F.<p>I think maybe a syntax like -F=-regex would work.</p>
]]></description><pubDate>Sun, 19 Oct 2025 00:01:14 +0000</pubDate><link>https://news.ycombinator.com/item?id=45631217</link><dc:creator>cormacrelf</dc:creator><comments>https://news.ycombinator.com/item?id=45631217</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=45631217</guid></item><item><title><![CDATA[New comment by cormacrelf in "Why We're Moving on from Nix"]]></title><description><![CDATA[
<p>From the article:<p>> The way Nixpacks uses Nix to pull in dependencies often results in massive image sizes with a single /nix/store layer ... all Nix and related packages and libraries needed for both the build and runtime are here.<p>This statement is kinda like “I’m giving up on automobiles because I can’t make them go forward”. This is one of the things Nix can do most reliably. It automates the detection of which runtime dependencies are actually referenced in the resulting binary, using string matching on /nix/store hashes. If they couldn’t make it do that, they’re doing something pretty weird or gravely wrong. I wouldn’t even know where to start to try to stop Nix from solving this automatically!<p>I wouldn’t read too much into their experience with it. The stuff about versioning is a very normal problem everyone has, would have been more interesting if they attempted to solve it.</p>
]]></description><pubDate>Sat, 07 Jun 2025 13:48:59 +0000</pubDate><link>https://news.ycombinator.com/item?id=44209643</link><dc:creator>cormacrelf</dc:creator><comments>https://news.ycombinator.com/item?id=44209643</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=44209643</guid></item><item><title><![CDATA[New comment by cormacrelf in "The Ingredients of a Productive Monorepo"]]></title><description><![CDATA[
<p>> Meta has a sophisticated implementation of a target determinator on top of buck2, but I don’t believe it is open-source.<p>It is: <a href="https://github.com/facebookincubator/buck2-change-detector">https://github.com/facebookincubator/buck2-change-detector</a><p>> Some tools such as bazel and buck2 discourage you from checking in generated code and instead run the code generator as part of the build. A downside of this approach is that IDE tools will be unable to resolve any code references to these generated files, since you have to perform a build for them to be generated at all in the first place<p>Not an issue I have experienced. It's pretty difficult to get into a situation where your IDE is looking in buck-out/v2/gen/781c3091ee3/... for something but not finding it, because the only way it knows about those paths is by the build system building them. Seeing this issue would have to involve stale caches in still-running IDE after cleaning the output folder, which is a problem any size repo can have. In general, if an IDE can index generated code with the language's own build system, then it's not a stretch to have it index generated code from another one.<p>The problem is more hooking up IDEs to use your build system in the first place. It's a real slog to support many IDEs.<p>Buck recently introduced an MSBuild project generator where all build commands shell out to buck2. I have seen references to an Xcode one as well, I think there's something there for Android as well. The rust-analyzer support works pretty well but I do run a fork of it. This is just a few. There is a need (somewhat like LSP, but not quite) for a degree of standardization. There is a cambrian explosion of different build systems and each company that maintains one of them only uses one or two IDEs and integrates with those. If you want to use a build system for an IDE they don't support, you are going to have a tough time. Last I checked the best effort by a Language Server implementation at being build-system agnostic is gopls with its "gopackagesdriver" protocol, but even then I don't think anyone but Bazel has integrated with it: <a href="https://github.com/bazel-contrib/rules_go/wiki/Editor-and-tool-integration">https://github.com/bazel-contrib/rules_go/wiki/Editor-and-to...</a></p>
]]></description><pubDate>Wed, 28 May 2025 09:41:44 +0000</pubDate><link>https://news.ycombinator.com/item?id=44114273</link><dc:creator>cormacrelf</dc:creator><comments>https://news.ycombinator.com/item?id=44114273</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=44114273</guid></item><item><title><![CDATA[New comment by cormacrelf in "Some of us like "interdiff" code review"]]></title><description><![CDATA[
<p>Maybe it’s better selfhosted, but GitLab is almost unbearably slow. I booted up a Gerrit instance to compare and simply rendering a MR page is maybe 10 seconds vs zero. GitHub is still 10x faster. GitLab manages to be almost that slow for cached pages, making you wait, then realise it’s outdated, and load again, totalling maybe 20 seconds just to “go back to the MR list”. Its awful.<p>Whatever it is you think you might like about GitLab in theory, it’s much worse when this is your reality. When it takes that long to render a single MR, you do not want to be creating more of them than you have to, and you certainly don’t want to make yourself and the rest of your team navigate between MRs to do code review.</p>
]]></description><pubDate>Wed, 11 Sep 2024 23:59:39 +0000</pubDate><link>https://news.ycombinator.com/item?id=41516372</link><dc:creator>cormacrelf</dc:creator><comments>https://news.ycombinator.com/item?id=41516372</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=41516372</guid></item><item><title><![CDATA[New comment by cormacrelf in "Chief justice centers Supreme Court annual report on AI's dangers"]]></title><description><![CDATA[
<p>Sure, wasn’t sure that even needed to be said at this point, but even so, this form was probably produced by a broker. Even if it does not cover things like this <a href="https://www.businessinsider.com/jane-roberts-chief-justice-wife-10-million-commissions-2023-4" rel="nofollow">https://www.businessinsider.com/jane-roberts-chief-justice-w...</a>, I think it was likely accurate as to his holdings in publicly traded stocks and index funds.</p>
]]></description><pubDate>Wed, 03 Jan 2024 14:07:50 +0000</pubDate><link>https://news.ycombinator.com/item?id=38854195</link><dc:creator>cormacrelf</dc:creator><comments>https://news.ycombinator.com/item?id=38854195</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=38854195</guid></item><item><title><![CDATA[New comment by cormacrelf in "Chief justice centers Supreme Court annual report on AI's dangers"]]></title><description><![CDATA[
<p>At least not directly, as of the 2022 disclosure form. <a href="https://www.scotusblog.com/wp-content/uploads/2023/06/Roberts-Jr-John-G-Annual-2022.pdf" rel="nofollow">https://www.scotusblog.com/wp-content/uploads/2023/06/Robert...</a></p>
]]></description><pubDate>Wed, 03 Jan 2024 13:32:20 +0000</pubDate><link>https://news.ycombinator.com/item?id=38853828</link><dc:creator>cormacrelf</dc:creator><comments>https://news.ycombinator.com/item?id=38853828</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=38853828</guid></item><item><title><![CDATA[New comment by cormacrelf in "NixOS and Flakes Book: An unofficial book for beginners (free)"]]></title><description><![CDATA[
<p>Some people may enjoy going through an enormous learning curve to do configuration like that, but the benefits there are pretty abstract and personal, and the pressure to make the onboarding any easier is very low. It's partly because these kinds of users are willing to (a) suffer through a lot in the name of learning and feel good about having done that, and (b) read and write what appears to be a dozen book-length tomes of documentation, that it doesn't get any easier for beginners. I know because I was also one of them in 2015-16 or thereabouts.<p>Nix doesn't need any more home-manager tutorials, because it doesn't need any more small-time tinkerers. It would benefit more from becoming essential to a bunch of businesses who will become invested in making their own developer experience acceptable at scale, and who will have to improve Nix to that end.<p>Pretty soon a bunch of people are going to realise they actually do need the exact same version of every tool in every toolchain on every machine in a team, to make use of the transformative caching abilities of tools like Bazel and Buck2. And if that catches on, I would not be surprised to see an alternative Nix frontend configured in Starlark, like every other tool in that arena. There's already a buck2-nix that generates dhall under the hood.</p>
]]></description><pubDate>Mon, 09 Oct 2023 13:05:50 +0000</pubDate><link>https://news.ycombinator.com/item?id=37820065</link><dc:creator>cormacrelf</dc:creator><comments>https://news.ycombinator.com/item?id=37820065</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=37820065</guid></item><item><title><![CDATA[New comment by cormacrelf in "Lockheed CEO Pitches Pentagon on Subscription Software"]]></title><description><![CDATA[
<p>Car and aircraft bodies generally fall under the “useful articles” exception, so they are not copyrightable. Otherwise they would be sculptures.<p>There is a separate regime that covers useful articles: design patents, which have a much shorter term. The design patents can AFAIK cover things like toys, I don’t know about game assets. You might have to look at the actual grant of patent rights to see what is claimed. I don’t get the impression that the big aircraft manufacturers care about games for plane nerds.</p>
]]></description><pubDate>Fri, 06 Oct 2023 15:30:28 +0000</pubDate><link>https://news.ycombinator.com/item?id=37792112</link><dc:creator>cormacrelf</dc:creator><comments>https://news.ycombinator.com/item?id=37792112</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=37792112</guid></item><item><title><![CDATA[New comment by cormacrelf in "WebGPU Technical Report"]]></title><description><![CDATA[
<p>No need to apologise! You got me pretty good.</p>
]]></description><pubDate>Fri, 29 Sep 2023 01:59:27 +0000</pubDate><link>https://news.ycombinator.com/item?id=37698430</link><dc:creator>cormacrelf</dc:creator><comments>https://news.ycombinator.com/item?id=37698430</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=37698430</guid></item><item><title><![CDATA[New comment by cormacrelf in "WebGPU Technical Report"]]></title><description><![CDATA[
<p>In case this needs to be pointed out, an RCE in a game is an accident, not the way they designed their multiplayer to work. I was describing why the Firefox team might wait for a feature to be security-hardened before releasing it. The answer remains the same -- they design and market the thing to be secure even when it executes untrusted code. Activision does not advertise their games as able to "securely execute RCE gadgets from maliciously crafted steam authentication packets". This part may be surprising: the Chrome and Firefox teams <i>do, in fact, try to ensure that when someone gains RCE, that they execute it securely and it can't get very far</i>.<p>I am not attempting to claim that games do not have security issues or cannot experience remote code execution, just that this is not a normal pattern of behaviour that they plan for, so it is normal that a game author would deploy wgpu long before Firefox does (while Firefox spends a lot of effort on fuzzing, etc). If anything a terrible CVE that Activision has expended apparently zero resources fixing is a very good example of what I'm talking about.</p>
]]></description><pubDate>Thu, 28 Sep 2023 16:27:00 +0000</pubDate><link>https://news.ycombinator.com/item?id=37691947</link><dc:creator>cormacrelf</dc:creator><comments>https://news.ycombinator.com/item?id=37691947</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=37691947</guid></item><item><title><![CDATA[New comment by cormacrelf in "WebGPU Technical Report"]]></title><description><![CDATA[
<p>I would love to hear about an implementation of multiplayer that receives code from hostile opponents and executes it, but I do not anticipate you'll find many examples.</p>
]]></description><pubDate>Thu, 28 Sep 2023 15:20:17 +0000</pubDate><link>https://news.ycombinator.com/item?id=37690874</link><dc:creator>cormacrelf</dc:creator><comments>https://news.ycombinator.com/item?id=37690874</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=37690874</guid></item><item><title><![CDATA[New comment by cormacrelf in "WebGPU Technical Report"]]></title><description><![CDATA[
<p>You can say the same thing about something as simple as "shared memory" -- normal multiprocessing computers have had shared memory since time immemorial, but browsers literally disabled SharedArrayBuffer from 2018 to 2020 and anyone using them to communicate with Web Workers had to find another way. Browsers run a 24/7 onslaught of extremely untrustworthy code, whereas games only run themselves.<p>Firefox has not enabled WebGPU via wgpu for the same reasons Chrome Security has done an in-depth review of Dawn. It is a component that must be hardened. For anyone out there trying it out by enabling config flags, remember to disable it once you are done. It will be ready in time.</p>
]]></description><pubDate>Thu, 28 Sep 2023 13:21:32 +0000</pubDate><link>https://news.ycombinator.com/item?id=37689240</link><dc:creator>cormacrelf</dc:creator><comments>https://news.ycombinator.com/item?id=37689240</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=37689240</guid></item><item><title><![CDATA[New comment by cormacrelf in "macOS Sonoma is available today"]]></title><description><![CDATA[
<p>“A a a a a very good song” to the rescue.  <a href="https://music.apple.com/au/album/a-a-a-a-a-very-good-song-silent-track/1268932999?i=1268933000" rel="nofollow noreferrer">https://music.apple.com/au/album/a-a-a-a-a-very-good-song-si...</a><p>Also available on iTunes for a dollar, search for Samir Mezrahi (the blessed soul who made this).</p>
]]></description><pubDate>Wed, 27 Sep 2023 11:16:29 +0000</pubDate><link>https://news.ycombinator.com/item?id=37673035</link><dc:creator>cormacrelf</dc:creator><comments>https://news.ycombinator.com/item?id=37673035</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=37673035</guid></item><item><title><![CDATA[New comment by cormacrelf in "We reduced the cost of building Mastodon at Twitter-scale by 100x"]]></title><description><![CDATA[
<p>You can do all of this with <a href="https://materialize.com" rel="nofollow noreferrer">https://materialize.com</a>, and you don’t need to write it in Java. Just connect it to a Postgres instance and start creating materialised views using SQL. These views then auto update. So much so, that you can create a view for the top 10 of something, and let it sit there as the list updates. Otherwise just use normal select statements from your views using any Postgres client.</p>
]]></description><pubDate>Wed, 16 Aug 2023 03:58:21 +0000</pubDate><link>https://news.ycombinator.com/item?id=37142706</link><dc:creator>cormacrelf</dc:creator><comments>https://news.ycombinator.com/item?id=37142706</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=37142706</guid></item><item><title><![CDATA[New comment by cormacrelf in "Putting the “You” in CPU"]]></title><description><![CDATA[
<p>If it’s talking about x86, then yes the eax register is 32 bits wide. The low 16 bits of the same register are called “ax”.</p>
]]></description><pubDate>Sat, 22 Jul 2023 11:37:06 +0000</pubDate><link>https://news.ycombinator.com/item?id=36825374</link><dc:creator>cormacrelf</dc:creator><comments>https://news.ycombinator.com/item?id=36825374</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=36825374</guid></item><item><title><![CDATA[New comment by cormacrelf in "Brute-forcing a macOS user’s real name from a browser using mDNS"]]></title><description><![CDATA[
<p>No, this is a timing attack. <a href="https://en.wikipedia.org/wiki/Timing_attack" rel="nofollow noreferrer">https://en.wikipedia.org/wiki/Timing_attack</a>. See also <a href="https://en.wikipedia.org/wiki/Side-channel_attack" rel="nofollow noreferrer">https://en.wikipedia.org/wiki/Side-channel_attack</a> for more general usage of "timing attack" beyond cryptography.</p>
]]></description><pubDate>Fri, 14 Jul 2023 15:37:54 +0000</pubDate><link>https://news.ycombinator.com/item?id=36725532</link><dc:creator>cormacrelf</dc:creator><comments>https://news.ycombinator.com/item?id=36725532</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=36725532</guid></item><item><title><![CDATA[New comment by cormacrelf in "My First Impressions of Nix"]]></title><description><![CDATA[
<p>Life’s short. Don’t waste it configuring nix-darwin.</p>
]]></description><pubDate>Mon, 19 Jun 2023 08:13:50 +0000</pubDate><link>https://news.ycombinator.com/item?id=36388554</link><dc:creator>cormacrelf</dc:creator><comments>https://news.ycombinator.com/item?id=36388554</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=36388554</guid></item></channel></rss>