<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: m132</title><link>https://news.ycombinator.com/user?id=m132</link><description>Hacker News RSS</description><docs>https://hnrss.org/</docs><generator>hnrss v2.1.1</generator><lastBuildDate>Sun, 07 Jun 2026 21:25:24 +0000</lastBuildDate><atom:link href="https://hnrss.org/user?id=m132" rel="self" type="application/rss+xml"></atom:link><item><title><![CDATA[New comment by m132 in "Moving beyond fork() + exec()"]]></title><description><![CDATA[
<p>CPython doesn't usually create subprocesses unless specifically asked to, it loads Python modules and native extensions into its process. The former is similar (you're still extending an existing process with new code, just interpreted), the latter is literally dlopen(), so loading dynamic libraries.<p>A lot of other Python implementations don't have the ability to spin up new processes at all too.</p>
]]></description><pubDate>Sun, 07 Jun 2026 14:14:12 +0000</pubDate><link>https://news.ycombinator.com/item?id=48435078</link><dc:creator>m132</dc:creator><comments>https://news.ycombinator.com/item?id=48435078</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48435078</guid></item><item><title><![CDATA[New comment by m132 in "Moving beyond fork() + exec()"]]></title><description><![CDATA[
<p>Node, Python, PowerShell, and the rest do (almost) just that. launchd and systemd famously strived to remove as much shell from the start up process as possible because it was harming boot times and introducing unpredictability.</p>
]]></description><pubDate>Sat, 06 Jun 2026 23:58:30 +0000</pubDate><link>https://news.ycombinator.com/item?id=48430378</link><dc:creator>m132</dc:creator><comments>https://news.ycombinator.com/item?id=48430378</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48430378</guid></item><item><title><![CDATA[New comment by m132 in "Moving beyond fork() + exec()"]]></title><description><![CDATA[
<p>Because it comes with a lot of overhead and, unless for some reason you really need every of those processes to have their own address space, set of privileges, file descriptors, etc., there's no point in wasting resources repeatedly setting those up only to tear them down milliseconds later. Running the same workloads in an nginx-style process pool usually works better.</p>
]]></description><pubDate>Sat, 06 Jun 2026 23:54:32 +0000</pubDate><link>https://news.ycombinator.com/item?id=48430348</link><dc:creator>m132</dc:creator><comments>https://news.ycombinator.com/item?id=48430348</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48430348</guid></item><item><title><![CDATA[New comment by m132 in "Please Do Not Vibe Fuck Up This Software"]]></title><description><![CDATA[
<p>Wow.<p>Rsync has to be one of the worst spaghetti projects I've worked with. It's an incredibly decent tool built around a well-though out algorithm, but its code is an exact opposite of what you'd expect. And it's written in C.<p>I'm not surprised letting Claude loose on it for roughly 2 months already caused visible breakage. The question is, with it being very obviously a bad idea, can the maintainer still be trusted if he let something like this happen?</p>
]]></description><pubDate>Sun, 31 May 2026 09:16:16 +0000</pubDate><link>https://news.ycombinator.com/item?id=48344193</link><dc:creator>m132</dc:creator><comments>https://news.ycombinator.com/item?id=48344193</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48344193</guid></item><item><title><![CDATA[New comment by m132 in "Is AI causing a repeat of Front end's Lost Decade?"]]></title><description><![CDATA[
<p>I'm afraid that there's never been a shortage of poor quality software</p>
]]></description><pubDate>Fri, 29 May 2026 15:56:19 +0000</pubDate><link>https://news.ycombinator.com/item?id=48324882</link><dc:creator>m132</dc:creator><comments>https://news.ycombinator.com/item?id=48324882</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48324882</guid></item><item><title><![CDATA[New comment by m132 in "Is AI causing a repeat of frontend’s lost decade?"]]></title><description><![CDATA[
<p>I can somewhat see your point, but it is generally accepted that a wrong ARIA is worse than none, and LLM-assisted codebases, at least these days, only stick together thanks to testing, the more decent ones heavily emphasize in-depth human code reviews.<p>If our hypothetical developer hasn't used any accessibility-related tags before, what chance is there that those parts of the website will receive adequate testing?</p>
]]></description><pubDate>Fri, 29 May 2026 12:57:32 +0000</pubDate><link>https://news.ycombinator.com/item?id=48322515</link><dc:creator>m132</dc:creator><comments>https://news.ycombinator.com/item?id=48322515</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48322515</guid></item><item><title><![CDATA[New comment by m132 in "Is AI causing a repeat of frontend’s lost decade?"]]></title><description><![CDATA[
<p>The problem is, mastering accessibility, intuitiveness, compatibility, responsiveness, scalability, architecture, performance, and all those other less immediately visible, "forward-thinking" parts of UX/software development has always been difficult. Ultra high-level frameworks and now LLMs have, on the other hand, made it even easier to botch all of these and quickly roll out a half-baked MVP. The gap between "acceptable" and "decent" has thus been widening. As a protagonist of "decent", you have it increasingly harder competing against those pushing for "acceptable". And the push is understandable as well, it's MVPs that make money and details only "increase customer satisfaction" at best (and these days, who even cares about customers?).<p>The end result is more crunch and a sharp decline in software quality, maybe even job satisfaction in general. As an (unfortunately anecdotal) example, I started to find myself fixing up broken websites or removing elements that get in the way with dev tools and uBlock every once in a while, and have heard from other people on here that they have been doing the same (<a href="https://news.ycombinator.com/item?id=47042747">https://news.ycombinator.com/item?id=47042747</a>). All to restore basic functionality of websites I go on. This was never required back in the day, Flash and early web browsers didn't even have the option to do this.<p>Another, less anecdotal example from a while ago: <a href="https://news.ycombinator.com/item?id=47390945">https://news.ycombinator.com/item?id=47390945</a><p>It gets worse when you realize that most of the money saved through these cuts only benefits the very top of the hierarchy.</p>
]]></description><pubDate>Fri, 29 May 2026 12:24:25 +0000</pubDate><link>https://news.ycombinator.com/item?id=48322200</link><dc:creator>m132</dc:creator><comments>https://news.ycombinator.com/item?id=48322200</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48322200</guid></item><item><title><![CDATA[New comment by m132 in "Exit IP VPN servers mitigation rollout"]]></title><description><![CDATA[
<p>Maybe it's just me, but I'm incredibly surprised by their prompt reaction to this. As a user, I was already preparing to deal with this myself.<p>Wow, is this how things were before bureaucratic behemoths took over the tech industry?</p>
]]></description><pubDate>Tue, 26 May 2026 03:44:44 +0000</pubDate><link>https://news.ycombinator.com/item?id=48274723</link><dc:creator>m132</dc:creator><comments>https://news.ycombinator.com/item?id=48274723</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48274723</guid></item><item><title><![CDATA[New comment by m132 in "Hacker News front page as a site"]]></title><description><![CDATA[
<p>Love the summaries, I must say some stories I haven't considered interesting seeing them in the original HN view only caught my attention after my eyes landed on the summary.<p>At the same time, I very much dislike the layout. Masonry-style layouts, at least to me, feel more "artsy" than practical. Multiple rows being displayed at once, with the most crucial information being chaotically all over the place instead of arranged in a way that makes it easy to scan it with your eyes, make me feel like I'm bombarded with information. It's very hard to follow along and very easy to miss articles; almost anxiety-inducing, even. There's hardly any point to this on a website; it's not like you're wasting any paper.</p>
]]></description><pubDate>Tue, 26 May 2026 03:34:40 +0000</pubDate><link>https://news.ycombinator.com/item?id=48274663</link><dc:creator>m132</dc:creator><comments>https://news.ycombinator.com/item?id=48274663</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48274663</guid></item><item><title><![CDATA[New comment by m132 in "Bytecode VMs in surprising places (2024)"]]></title><description><![CDATA[
<p>Since ACPI was mentioned, let's not forget about EFI!<p><a href="https://uefi.org/specs/UEFI/2.10/22_EFI_Byte_Code_Virtual_Machine.html" rel="nofollow">https://uefi.org/specs/UEFI/2.10/22_EFI_Byte_Code_Virtual_Ma...</a></p>
]]></description><pubDate>Mon, 25 May 2026 12:20:51 +0000</pubDate><link>https://news.ycombinator.com/item?id=48266006</link><dc:creator>m132</dc:creator><comments>https://news.ycombinator.com/item?id=48266006</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48266006</guid></item><item><title><![CDATA[New comment by m132 in "The Eternal Sloptember"]]></title><description><![CDATA[
<p>Didn't expect this to come from him. Seeing some of his recent YouTube streams and previous blog posts, he seemed like he has unconditionally bought into the idea of vibecoding, even as he had Opus 4.5 (latest at the time) stuck failing to enumerate a serial device for solid hours. What a turn.</p>
]]></description><pubDate>Mon, 25 May 2026 11:26:16 +0000</pubDate><link>https://news.ycombinator.com/item?id=48265620</link><dc:creator>m132</dc:creator><comments>https://news.ycombinator.com/item?id=48265620</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48265620</guid></item><item><title><![CDATA[New comment by m132 in "Bug 1950764: Work Around Crash on Intel Raptor Lake CPU"]]></title><description><![CDATA[
<p>Read the Oodle article in full, fantastic investigation indeed!<p>It also looks like there's a slight difference in the unwanted effect both companies have reported, despite the bug being seemingly triggered the same way (mov touching the high byte):<p>- Oodle reports that a low byte is occasionally stored in the intended location.<p>- Mozilla's fix suggests that a full 16-bit value is stored instead, corrupting an adjacent variable! This could have much more serious consequences.<p>Technically, this could still be the same exact bug. I found no mention of the order the output buffer was accessed in by the Huffman decoder debugged in the Oodle report, and, since it was a contiguous buffer, it's easy to mistake an occasional out-of-bounds copy there for a copy from a wrong location. But if both analyses are correct, the behavior of high byte accesses on Raptor Lake is way less predictable than those fixes suggest. Haven't managed to find an official erratum from Intel.</p>
]]></description><pubDate>Mon, 25 May 2026 08:14:23 +0000</pubDate><link>https://news.ycombinator.com/item?id=48264594</link><dc:creator>m132</dc:creator><comments>https://news.ycombinator.com/item?id=48264594</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48264594</guid></item><item><title><![CDATA[New comment by m132 in "Microsoft starts canceling Claude Code licenses"]]></title><description><![CDATA[
<p>The absolute state of the Hacker News main page in 2026. Thank you for taking your time to put it all together.</p>
]]></description><pubDate>Fri, 22 May 2026 17:49:54 +0000</pubDate><link>https://news.ycombinator.com/item?id=48239088</link><dc:creator>m132</dc:creator><comments>https://news.ycombinator.com/item?id=48239088</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48239088</guid></item><item><title><![CDATA[New comment by m132 in "RTX 5090 and M4 MacBook Air: Can It Game?"]]></title><description><![CDATA[
<p>Only if you used a breakpoint or something similar. I believe a "shadow" exception vector like that can run entirely in the guest context with the guest not even being aware of this (MRS is generally always trapped so you can return the address of the real one while still taking exceptions to the injected one).<p>Figuring out where to put it and how to keep it mapped is another problem, though!</p>
]]></description><pubDate>Fri, 15 May 2026 16:47:19 +0000</pubDate><link>https://news.ycombinator.com/item?id=48150851</link><dc:creator>m132</dc:creator><comments>https://news.ycombinator.com/item?id=48150851</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48150851</guid></item><item><title><![CDATA[New comment by m132 in "RTX 5090 and M4 MacBook Air: Can It Game?"]]></title><description><![CDATA[
<p>> instead of trapping to the hypervisor<p>My bad! I mean, ehh, I guess you could maintain a breakpoint in the guest kernel's exception vector table or have QEMU inject its own "zero-level exception handler" whose only purpose would be to capture those HVCs, but that's not as straightforward as I originally thought. And since those PAC calls are expected to set a few Apple-specific registers anyway, using the entitlement or skipping Hypervisor.framework and talking straight to the kernel seem like the only viable options when macOS is the guest.<p>> There are some nightmare cases that SEPOS specifically triggers, such as doing isv=0 accesses to GICR... when using the Apple vGIC handling _that_ becomes truly bizarre.<p>Interesting! Are there any resources out there about virtualizing sepOS?</p>
]]></description><pubDate>Fri, 15 May 2026 16:24:07 +0000</pubDate><link>https://news.ycombinator.com/item?id=48150540</link><dc:creator>m132</dc:creator><comments>https://news.ycombinator.com/item?id=48150540</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48150540</guid></item><item><title><![CDATA[New comment by m132 in "RTX 5090 and M4 MacBook Air: Can It Game?"]]></title><description><![CDATA[
<p>> It was a kernel panic for Tahoe.<p>Ah, must be something else then.<p>> normal guests aren't supposed to do that<p>Oh how I wish Arm didn't let anything like this slip into the architecture spec to begin with! Massive source of pain, especially with protected memory/CCA guests. It's not macOS triggering this in isolation either. Most start up binaries for QNX do this too, somehow also in the GIC init path.<p>I've looked at how different hypervisors/VMMs handle this and, if this makes that patch set any less hacky, Virtualization.framework, QNX Hypervisor, and (I think) VMware all decode and emulate those instructions in software. Virtualization.framework is a remarkable spaghetti in this regard :)<p>> Or pre-patch them all to HVC #1 works too. Patching the host Hypervisor.framework sounds quite brittle especially after they moved to a pile of C++<p>Possibly! IIRC, if HCR_EL2.HCD==1, HVC should trap as undefined instruction. Not sure how much of HCR_EL2 can be set from the user-space, but perhaps this could be the least invasive way.<p>Simply ignoring the instruction, though, is not enough. I remember in my setup, with HVC handling stubbed out, secondary cores would always fail to start. I suspect this to be the culprit.<p>The SMP bring-up code would fail to pass pointer authentication on the first indirect branch. It would then immediately pivot into FLEH->SLEH->panic(). panic() shortly would attempt to make an indirect jump itself, hoping to crash the other processors, but instead, getting stuck in a loop of calling itself. This would eventually get caught by a stack overflow guard somewhere in FLEH/SLEH, which would place the core in an infinite loop, and... the system would continue to run with just the boot core. Yo dawg, I heard you like panics :)</p>
]]></description><pubDate>Fri, 15 May 2026 14:06:04 +0000</pubDate><link>https://news.ycombinator.com/item?id=48148774</link><dc:creator>m132</dc:creator><comments>https://news.ycombinator.com/item?id=48148774</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48148774</guid></item><item><title><![CDATA[New comment by m132 in "RTX 5090 and M4 MacBook Air: Can It Game?"]]></title><description><![CDATA[
<p>Looks like someone beat me to it! Thanks!<p>I see the author of this patch set has run into a few similar issues as me. Strangely, not all of them: I don't see patches for the new PCI MSI-X device introduced somewhere in Sequoia (IIRC), a source of kernel panics for me; and there's still a bug in the PG MMIO path that casts all writes to 32-bit, this one caused me a lot of headaches (no errors but no video adapter detected). I'm somewhat surprised to hear that this works!<p>There's two significant problems that we both have came across:<p>- LLVM now favoring pre-indexed load/stores which trap with ISV=0 for MMIO accesses, and those ending up in the GIC initialization path of the newer macOS kernels (looks like there's a separate patch set for this [0]),<p>- Hypervisor.framework trapping PAC HVC calls.<p>It seems like the latter has been worked around here by signing QEMU with an Apple-private entitlement and running with SIP off, but there's actually a different way! While some HVCs are trapped right in the host kernel, the PAC trapping happens within Hypervisor.framework itself (at least in the host OSes I tested). It's possible to patch out this functionality without special privileges or talk to the in-kernel hypervisor directly. I originally tested with the former, and chose to implement the latter as a separate accel in the code I was planning to submit upstream, but the complexity of it exploded and, besides confirming that it would have worked, I haven't managed to finish my implementation.<p>Does the Tahoe crash you mentioned manifest itself in stage 2 iBoot panics? I must admit 26 was never quite my priority so I haven't looked into it, but if so, it might have been closer to booting than I thought :)<p>[0] <a href="https://lists.nongnu.org/archive/html/qemu-devel/2026-04/msg01488.html" rel="nofollow">https://lists.nongnu.org/archive/html/qemu-devel/2026-04/msg...</a></p>
]]></description><pubDate>Fri, 15 May 2026 13:24:36 +0000</pubDate><link>https://news.ycombinator.com/item?id=48148292</link><dc:creator>m132</dc:creator><comments>https://news.ycombinator.com/item?id=48148292</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48148292</guid></item><item><title><![CDATA[New comment by m132 in "RTX 5090 and M4 MacBook Air: Can It Game?"]]></title><description><![CDATA[
<p>Oh, thanks for letting me know, and for the upstreaming work too! I might join the party once I find some more time :)</p>
]]></description><pubDate>Fri, 15 May 2026 00:47:36 +0000</pubDate><link>https://news.ycombinator.com/item?id=48143141</link><dc:creator>m132</dc:creator><comments>https://news.ycombinator.com/item?id=48143141</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48143141</guid></item><item><title><![CDATA[New comment by m132 in "RTX 5090 and M4 MacBook Air: Can It Game?"]]></title><description><![CDATA[
<p>I experimented with booting Arm macOS 14-26 in QEMU a while back, building on the work of Alexander Graf for macOS 12-13, and reverse-engineered substantial parts of Hypervisor.framework, the in-kernel hypervisor, and a bit of Virtualization.framework. Got newer versions of Sequoia to boot past the log in screen, with GPU acceleration too.<p>Unless there's another method I missed, the internal GPU "pass through" of Virtualization.framework you're thinking of might actually just be paravirualization, at least that's what the name suggests. It's implemented in the public ParavirtualizedGraphics framework [0], albeit for PG on Arm macOS, the relevant interfaces are private [1].  I haven't looked that deep into it per se, but, fixing the bugs around it, I've run into a few clues suggesting that it's just a command stream + shared memory being passed around. It also uses its own generic driver on the guest side.<p>Great job, by the way! Love how authors of pieces like this casually come here to comment :)<p>[0] <a href="https://developer.apple.com/documentation/paravirtualizedgraphics" rel="nofollow">https://developer.apple.com/documentation/paravirtualizedgra...</a><p>[1] <a href="https://github.com/qemu/qemu/blob/edcc429e9e41a8e0e415dcdab6aa52ad17ef8889/hw/display/apple-gfx-mmio.m" rel="nofollow">https://github.com/qemu/qemu/blob/edcc429e9e41a8e0e415dcdab6...</a></p>
]]></description><pubDate>Thu, 14 May 2026 23:56:13 +0000</pubDate><link>https://news.ycombinator.com/item?id=48142804</link><dc:creator>m132</dc:creator><comments>https://news.ycombinator.com/item?id=48142804</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48142804</guid></item><item><title><![CDATA[New comment by m132 in "RTX 5090 and M4 MacBook Air: Can It Game?"]]></title><description><![CDATA[
<p>The entitlement in question is the standard `com.apple.developer.driverkit.transport.pci` [0], required for anything that touches the PCIe bus [1]. Apple is generally restrictive with how much third-party applications can do on machines with SIP/"full security", so I'm not exactly surprised. It's not an Apple-private entitlement, however.<p>The VFIO-style driver made by the author of this also appears generic enough to support all kinds of PCIe, not just GPUs. Apple might find a way to weasel out of this ("hey, this is for hardware companies and you don't seem to be affiliated with one", "your driver requests too broad access", etc.) if there really is a conflict of interest, but so far, there's a chance it will just get rubber-stamped.<p>I can see them rejecting it for legitimate reasons, though, at least as far as "legitimate" with Apple goes. This driver is essentially a thin layer over PCIDriverKit, exposing all functionality that's supposed to be behind the entitlement to arbitrary applications, in similar fashion to WinRing0. They probably didn't come up with all this bureaucracy only to sign something like that in the end. We'll see what happens.<p>[0] <a href="https://github.com/scottjg/qemu-vfio-apple/blob/84ecdcf5db6ba66c05135965a923352a478cafa3/contrib/apple-vfio/VFIOUserPCIDriver/VFIOUserPCIDriver.entitlements" rel="nofollow">https://github.com/scottjg/qemu-vfio-apple/blob/84ecdcf5db6b...</a><p>[1] <a href="https://developer.apple.com/documentation/pcidriverkit/creating-custom-pcie-drivers-for-thunderbolt-devices#Request-the-Entitlements-Required-to-Run-Your-Driver" rel="nofollow">https://developer.apple.com/documentation/pcidriverkit/creat...</a></p>
]]></description><pubDate>Thu, 14 May 2026 23:36:40 +0000</pubDate><link>https://news.ycombinator.com/item?id=48142642</link><dc:creator>m132</dc:creator><comments>https://news.ycombinator.com/item?id=48142642</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48142642</guid></item></channel></rss>