<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: AaronFriel</title><link>https://news.ycombinator.com/user?id=AaronFriel</link><description>Hacker News RSS</description><docs>https://hnrss.org/</docs><generator>hnrss v2.1.1</generator><lastBuildDate>Fri, 10 Apr 2026 04:47:27 +0000</lastBuildDate><atom:link href="https://hnrss.org/user?id=AaronFriel" rel="self" type="application/rss+xml"></atom:link><item><title><![CDATA[New comment by AaronFriel in "Native Instant Space Switching on macOS"]]></title><description><![CDATA[
<p>Oh that's a surprising interaction. I use dark mode themes, is there something I haven't noticed?</p>
]]></description><pubDate>Fri, 10 Apr 2026 02:44:09 +0000</pubDate><link>https://news.ycombinator.com/item?id=47712998</link><dc:creator>AaronFriel</dc:creator><comments>https://news.ycombinator.com/item?id=47712998</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47712998</guid></item><item><title><![CDATA[New comment by AaronFriel in "Native Instant Space Switching on macOS"]]></title><description><![CDATA[
<p>Turn off "Animation Effects" in Settings and it will be instantaneous.</p>
]]></description><pubDate>Thu, 09 Apr 2026 21:43:17 +0000</pubDate><link>https://news.ycombinator.com/item?id=47710561</link><dc:creator>AaronFriel</dc:creator><comments>https://news.ycombinator.com/item?id=47710561</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47710561</guid></item><item><title><![CDATA[New comment by AaronFriel in "WolfGuard: WireGuard with FIPS 140-3 cryptography"]]></title><description><![CDATA[
<p>The conventional wisdom in cryptography is that if you don't know you need FIPS, if you don't have paper and a dollar figure telling you how much you need it, you don't need or want FIPS.</p>
]]></description><pubDate>Tue, 24 Mar 2026 16:33:25 +0000</pubDate><link>https://news.ycombinator.com/item?id=47505285</link><dc:creator>AaronFriel</dc:creator><comments>https://news.ycombinator.com/item?id=47505285</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47505285</guid></item><item><title><![CDATA[New comment by AaronFriel in "X offices raided in France as UK opens fresh investigation into Grok"]]></title><description><![CDATA[
<p>Didn't X unban users like Dom Lucre who posted CSAM because of their political affiliation?</p>
]]></description><pubDate>Wed, 04 Feb 2026 16:28:39 +0000</pubDate><link>https://news.ycombinator.com/item?id=46887869</link><dc:creator>AaronFriel</dc:creator><comments>https://news.ycombinator.com/item?id=46887869</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46887869</guid></item><item><title><![CDATA[New comment by AaronFriel in "Show HN: 48-digit prime numbers every git commit"]]></title><description><![CDATA[
<p>Could you explain what a git trailer is if not appended to the message body? My understanding is that trailers are just key-value pairs in a particular format at the end of the message; there's not an alternative storage mechanism.<p>Even so, trailers or message body might be moot - rerolling the committed at timestamp should be sufficient!</p>
]]></description><pubDate>Wed, 07 Jan 2026 01:20:25 +0000</pubDate><link>https://news.ycombinator.com/item?id=46521312</link><dc:creator>AaronFriel</dc:creator><comments>https://news.ycombinator.com/item?id=46521312</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46521312</guid></item><item><title><![CDATA[New comment by AaronFriel in "Package managers keep using Git as a database, it never works out"]]></title><description><![CDATA[
<p>OCI artifacts, using the same protocol as container registries. It's a protocol designed for versioning (tagging) content addressable blobs, associating metadata with them, and it's CDN friendly.<p>Homebrew uses OCI as its backend now, and I think every package manager should. It has the right primitives you expect from a registry to scale.</p>
]]></description><pubDate>Fri, 26 Dec 2025 18:44:21 +0000</pubDate><link>https://news.ycombinator.com/item?id=46394899</link><dc:creator>AaronFriel</dc:creator><comments>https://news.ycombinator.com/item?id=46394899</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46394899</guid></item><item><title><![CDATA[New comment by AaronFriel in "Async DNS"]]></title><description><![CDATA[
<p>A lot of folks think this, but did you also implement EDNS0?<p>The golang team also thought DNS clients were simple, and it led to almost ten years of difficult to debug panics in Docker, Mesos, Terraform, Mesos, Consul, Heroku, Weave and countless other services and CLI tools written in Go. (Search "cannot unmarshal DNS message" and marvel at the thousands of forum threads and GitHub issues that all bottom out at Go implementing the original DNS spec and not following later updates.)</p>
]]></description><pubDate>Fri, 12 Dec 2025 20:15:31 +0000</pubDate><link>https://news.ycombinator.com/item?id=46248319</link><dc:creator>AaronFriel</dc:creator><comments>https://news.ycombinator.com/item?id=46248319</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46248319</guid></item><item><title><![CDATA[New comment by AaronFriel in "Alan.app – Add a Border to macOS Active Window"]]></title><description><![CDATA[
<p>This also happens on switching virtual desktops, even with reduce animations there is a 100ms+ delay before any input on the new desktop will be sent to the correct app.</p>
]]></description><pubDate>Thu, 27 Nov 2025 05:09:37 +0000</pubDate><link>https://news.ycombinator.com/item?id=46065893</link><dc:creator>AaronFriel</dc:creator><comments>https://news.ycombinator.com/item?id=46065893</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46065893</guid></item><item><title><![CDATA[New comment by AaronFriel in "US declines to join more than 70 countries in signing UN cybercrime treaty"]]></title><description><![CDATA[
<p>What's the difference between this and the first link you shared?</p>
]]></description><pubDate>Thu, 30 Oct 2025 15:39:07 +0000</pubDate><link>https://news.ycombinator.com/item?id=45761244</link><dc:creator>AaronFriel</dc:creator><comments>https://news.ycombinator.com/item?id=45761244</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=45761244</guid></item><item><title><![CDATA[New comment by AaronFriel in "JSON River – Parse JSON incrementally as it streams in"]]></title><description><![CDATA[
<p>If you're generating long reports, code, etc. with an LLM, partial strings matter quite a lot for user experience.</p>
]]></description><pubDate>Mon, 13 Oct 2025 17:14:42 +0000</pubDate><link>https://news.ycombinator.com/item?id=45570843</link><dc:creator>AaronFriel</dc:creator><comments>https://news.ycombinator.com/item?id=45570843</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=45570843</guid></item><item><title><![CDATA[New comment by AaronFriel in "JSON River – Parse JSON incrementally as it streams in"]]></title><description><![CDATA[
<p>Oh, this is quite similar to an online parser I'd written a few years ago[1]. I have some worked examples on how to use it with the now-standard Chat Completions API for LLMs to stream and filter structured outputs (aka JSON). This is the underlying technology for a "Copilot" or "AI" application I worked on in my last role.<p>Like yours, I'm sure, these incremental or online parser libraries are orders of magnitude faster[2] than alternatives for parsing LLM tool calls for the very simple reason that alternative approaches repeatedly parse the entire concatenated response, which requires buffering the entire payload, repeatedly allocating new objects, and for an N token response, you parse the first token N times! All of the "industry standard" approaches here are quadratic, which is going to scale quite poorly as LLMs generate larger and larger responses to meet application needs, and users want low latency outputs.<p>One of the most useful features of this approach is filtering LLM tool calls on the server and passing through a subset of the parse events to the client. This makes it relatively easy to put moderation, metadata capture, and other requirements in a single tool call, while still providing low latency streaming UI. It also avoids the problem with many moderation APIs where for cost or speed reasons, one might delegate to a smaller, cheaper model to generate output in a side-channel of the normal output stream. This not only doesn't scale, but it also means the more powerful model is unaware of these requirements, or you end up with a "flash of unapproved content" due to moderation delays, etc.<p>I found that it was extremely helpful to work at the level of parse events, but recognize that building partial values is also important, so I'm working on something similar in Rust[3], but taking a more holistic view and building more of an "AI SDK" akin to Vercel's, but written in Rust.<p>[1] <a href="https://github.com/aaronfriel/fn-stream" rel="nofollow">https://github.com/aaronfriel/fn-stream</a><p>[2] <a href="https://github.com/vercel/ai/pull/1883" rel="nofollow">https://github.com/vercel/ai/pull/1883</a><p>[3] <a href="https://github.com/aaronfriel/jsonmodem" rel="nofollow">https://github.com/aaronfriel/jsonmodem</a><p>(These are my own opinions, not those of my employer, etc. etc.)</p>
]]></description><pubDate>Mon, 13 Oct 2025 17:08:22 +0000</pubDate><link>https://news.ycombinator.com/item?id=45570782</link><dc:creator>AaronFriel</dc:creator><comments>https://news.ycombinator.com/item?id=45570782</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=45570782</guid></item><item><title><![CDATA[New comment by AaronFriel in "We bought the whole GPU, so we're damn well going to use the whole GPU"]]></title><description><![CDATA[
<p>Not using the NVDEC and NVJPG units to decompress weights into registers? And you say you're using the whole GPU. There are entire blocks on the silicon going idle!</p>
]]></description><pubDate>Thu, 02 Oct 2025 16:45:02 +0000</pubDate><link>https://news.ycombinator.com/item?id=45452101</link><dc:creator>AaronFriel</dc:creator><comments>https://news.ycombinator.com/item?id=45452101</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=45452101</guid></item><item><title><![CDATA[New comment by AaronFriel in "Study: Hashtags and humour are used to spread extreme content on social media"]]></title><description><![CDATA[
<p>“Never believe that anti-Semites are completely unaware of the absurdity of their replies. They know that their remarks are frivolous, open to challenge. But they are amusing themselves, for it is their adversary who is obliged to use words responsibly, since he believes in words. The anti-Semites have the right to play. They even like to play with discourse for, by giving ridiculous reasons, they discredit the seriousness of their interlocutors. They delight in acting in bad faith, since they seek not to persuade by sound argument but to intimidate and disconcert. If you press them too closely, they will abruptly fall silent, loftily indicating by some phrase that the time for argument is past.” - Jean-Paul Sartre<p>Words to remember when one hears it's "just locker room talk" or "boys being boys" or "just a joke, lighten up".</p>
]]></description><pubDate>Sat, 06 Sep 2025 19:09:54 +0000</pubDate><link>https://news.ycombinator.com/item?id=45152032</link><dc:creator>AaronFriel</dc:creator><comments>https://news.ycombinator.com/item?id=45152032</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=45152032</guid></item><item><title><![CDATA[New comment by AaronFriel in "Wal3: A Write-Ahead Log for Chroma, Built on Object Storage"]]></title><description><![CDATA[
<p>Always exciting to see Robert Escriva's next database project. Building on top of the incredible engineering of S3 is clever, I'm definitely going to be looking at and learning from the implementation in wal3.<p>Looking forward to the benchmarks on using S3 for piece and the design of the scale out architecture.</p>
]]></description><pubDate>Fri, 05 Sep 2025 00:51:42 +0000</pubDate><link>https://news.ycombinator.com/item?id=45133911</link><dc:creator>AaronFriel</dc:creator><comments>https://news.ycombinator.com/item?id=45133911</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=45133911</guid></item><item><title><![CDATA[New comment by AaronFriel in "Bcachefs Goes to "Externally Maintained""]]></title><description><![CDATA[
<p>I think any discussion of btrfs needs to acknowledge that raid5/6 support was promised in the early years, shipped in the kernel in 2013 and, until 2021's btrfs-progs 5.11 release, did not warn users that they risked data loss when creating volumes.<p>For near a decade btrfs raid5/6 was "unsafe at any speed" and many people lost data to it, including myself.</p>
]]></description><pubDate>Mon, 01 Sep 2025 05:20:54 +0000</pubDate><link>https://news.ycombinator.com/item?id=45089695</link><dc:creator>AaronFriel</dc:creator><comments>https://news.ycombinator.com/item?id=45089695</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=45089695</guid></item><item><title><![CDATA[New comment by AaronFriel in "Bcachefs Goes to "Externally Maintained""]]></title><description><![CDATA[
<p>Is that what I said?</p>
]]></description><pubDate>Sun, 31 Aug 2025 15:47:51 +0000</pubDate><link>https://news.ycombinator.com/item?id=45084096</link><dc:creator>AaronFriel</dc:creator><comments>https://news.ycombinator.com/item?id=45084096</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=45084096</guid></item><item><title><![CDATA[New comment by AaronFriel in "Bcachefs Goes to "Externally Maintained""]]></title><description><![CDATA[
<p>There's no need to call someone pointing out instability of a filesystem dishonest. That's bad faith.<p>I don't get why folks feel the need to come out and cheer for a tool like this, do you have skin in the game on whether or not btrfs is considered stable? Are you a contributor?<p>I don't get it.<p>But since you asked - let me find some recent bugs.<p>5.15.37 - fixes data corruption in database reads using btrfs <a href="https://www.kernel.org/pub/linux/kernel/v5.x/ChangeLog-5.15.37" rel="nofollow">https://www.kernel.org/pub/linux/kernel/v5.x/ChangeLog-5.15....</a><p>5.15.65 - fixes double allocation and cache corruption <a href="https://www.kernel.org/pub/linux/kernel/v5.x/ChangeLog-5.15.65" rel="nofollow">https://www.kernel.org/pub/linux/kernel/v5.x/ChangeLog-5.15....</a><p>6.1.105 - fixes O_APPEND with direct i/o can write corurpted files <a href="https://www.kernel.org/pub/linux/kernel/v6.x/ChangeLog-6.1.105" rel="nofollow">https://www.kernel.org/pub/linux/kernel/v6.x/ChangeLog-6.1.1...</a><p>6.1.110 - fixes fsync race and corruption <a href="https://www.kernel.org/pub/linux/kernel/v6.x/ChangeLog-6.1.110" rel="nofollow">https://www.kernel.org/pub/linux/kernel/v6.x/ChangeLog-6.1.1...</a><p>6.2.16 - fixes truncation of files causing data corruption <a href="https://cdn.kernel.org/pub/linux/kernel/v6.x/ChangeLog-6.2.16" rel="nofollow">https://cdn.kernel.org/pub/linux/kernel/v6.x/ChangeLog-6.2.1...</a><p>btrfs-progs 6.2 fixes corruption on zstd extent read <a href="https://btrfs.readthedocs.io/en/latest/CHANGES.html" rel="nofollow">https://btrfs.readthedocs.io/en/latest/CHANGES.html</a><p>6.15.3, 4: possible data corruption, seems to be reparable: <a href="https://www.phoronix.com/news/Btrfs-Log-Tree-Corruption-Fix" rel="nofollow">https://www.phoronix.com/news/Btrfs-Log-Tree-Corruption-Fix</a><p>Are people that encountered these also dishonest?</p>
]]></description><pubDate>Sun, 31 Aug 2025 05:21:19 +0000</pubDate><link>https://news.ycombinator.com/item?id=45080569</link><dc:creator>AaronFriel</dc:creator><comments>https://news.ycombinator.com/item?id=45080569</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=45080569</guid></item><item><title><![CDATA[New comment by AaronFriel in "Bcachefs Goes to "Externally Maintained""]]></title><description><![CDATA[
<p>btrfs has eaten my data, which was probably my bad for trying out a newly stable filesystem around 15 years ago. there are plenty of bug reports of btrfs eating other people's data in the years since.<p>It's probably mostly stable now, but it's silly to act like it's a paragon of stability in the kernel.</p>
]]></description><pubDate>Sun, 31 Aug 2025 04:52:38 +0000</pubDate><link>https://news.ycombinator.com/item?id=45080475</link><dc:creator>AaronFriel</dc:creator><comments>https://news.ycombinator.com/item?id=45080475</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=45080475</guid></item><item><title><![CDATA[New comment by AaronFriel in "Bcachefs Goes to "Externally Maintained""]]></title><description><![CDATA[
<p>Parity support in multi-disk arrays is older than I am, it's a fairly standard feature. btrfs doesn't support this without data loss risks after 17 years of development.</p>
]]></description><pubDate>Sun, 31 Aug 2025 00:39:11 +0000</pubDate><link>https://news.ycombinator.com/item?id=45079309</link><dc:creator>AaronFriel</dc:creator><comments>https://news.ycombinator.com/item?id=45079309</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=45079309</guid></item><item><title><![CDATA[New comment by AaronFriel in "Bcachefs Goes to "Externally Maintained""]]></title><description><![CDATA[
<p>Respectfully to the maintainers:<p>How can this be a stable filesystem if parity is unstable and risks data loss?<p>How has this been allowed to happen?<p>It just seems so profoundly unserious to me.</p>
]]></description><pubDate>Sat, 30 Aug 2025 18:00:39 +0000</pubDate><link>https://news.ycombinator.com/item?id=45076727</link><dc:creator>AaronFriel</dc:creator><comments>https://news.ycombinator.com/item?id=45076727</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=45076727</guid></item></channel></rss>