<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: quotemstr</title><link>https://news.ycombinator.com/user?id=quotemstr</link><description>Hacker News RSS</description><docs>https://hnrss.org/</docs><generator>hnrss v2.1.1</generator><lastBuildDate>Tue, 18 Aug 2026 15:52:43 +0000</lastBuildDate><atom:link href="https://hnrss.org/user?id=quotemstr" rel="self" type="application/rss+xml"></atom:link><item><title><![CDATA[New comment by quotemstr in "A third world engineer responds to “RISC-V: They should have known better”"]]></title><description><![CDATA[
<p>Different RISC-V dialects might as well be as different from each other as English is from German. Sure, the cognates, family the resemblance, and  common(-ish) alphabet make some things easier, but if you're shipping a manual, you still need to do it  both in English and auf Deutsch unless you rely on machine translation.<p>So it is with the family of mutually incomprehensible ISAs called RISC-V.</p>
]]></description><pubDate>Sun, 16 Aug 2026 19:45:11 +0000</pubDate><link>https://news.ycombinator.com/item?id=49323015</link><dc:creator>quotemstr</dc:creator><comments>https://news.ycombinator.com/item?id=49323015</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=49323015</guid></item><item><title><![CDATA[New comment by quotemstr in "A controversial Alzheimer's surgery is said to reverse symptoms"]]></title><description><![CDATA[
<p>If some drainage good, maybe more drainage better?</p>
]]></description><pubDate>Sun, 16 Aug 2026 15:25:21 +0000</pubDate><link>https://news.ycombinator.com/item?id=49320936</link><dc:creator>quotemstr</dc:creator><comments>https://news.ycombinator.com/item?id=49320936</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=49320936</guid></item><item><title><![CDATA[New comment by quotemstr in "A controversial Alzheimer's surgery is said to reverse symptoms"]]></title><description><![CDATA[
<p>Even if it is temporary, so what? Can't you just repeat it? And wouldn't clearing these drainage channels be harmless (modulo risks of any surgery) even if the theory didn't pan out? If I had early-stage Alzheimer's I'd go to the ends of the Earth and do everything I could to slow it down.</p>
]]></description><pubDate>Sat, 15 Aug 2026 18:34:03 +0000</pubDate><link>https://news.ycombinator.com/item?id=49313062</link><dc:creator>quotemstr</dc:creator><comments>https://news.ycombinator.com/item?id=49313062</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=49313062</guid></item><item><title><![CDATA[New comment by quotemstr in "Firefox is now the last major browser that still supports uBlock Origin"]]></title><description><![CDATA[
<p>Why?</p>
]]></description><pubDate>Sat, 15 Aug 2026 18:01:43 +0000</pubDate><link>https://news.ycombinator.com/item?id=49312760</link><dc:creator>quotemstr</dc:creator><comments>https://news.ycombinator.com/item?id=49312760</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=49312760</guid></item><item><title><![CDATA[New comment by quotemstr in "Firefox is now the last major browser that still supports uBlock Origin"]]></title><description><![CDATA[
<p>Interesting they'd recommend Decentraleyes: its default configuration disabled <i>all</i> HTTP link prefetching, which hurts performance in a way not apparent from the extension description.</p>
]]></description><pubDate>Sat, 15 Aug 2026 16:49:25 +0000</pubDate><link>https://news.ycombinator.com/item?id=49312121</link><dc:creator>quotemstr</dc:creator><comments>https://news.ycombinator.com/item?id=49312121</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=49312121</guid></item><item><title><![CDATA[New comment by quotemstr in "Single log line is 49KB+ (ext4) / 110KB+ (btrfs) of systemd-journald disk writes"]]></title><description><![CDATA[
<p>Sure, but you have to take pains to make sure that journalctl -f doesn't skip events or print some twice. It can be made to work, for sure, but it just seems easier to print logs via a daemon instead, especially because if you go through a deamon, you turn the disk format from an interface into an implementation detail.</p>
]]></description><pubDate>Fri, 14 Aug 2026 18:57:01 +0000</pubDate><link>https://news.ycombinator.com/item?id=49303109</link><dc:creator>quotemstr</dc:creator><comments>https://news.ycombinator.com/item?id=49303109</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=49303109</guid></item><item><title><![CDATA[New comment by quotemstr in "Single log line is 49KB+ (ext4) / 110KB+ (btrfs) of systemd-journald disk writes"]]></title><description><![CDATA[
<p>So write amplification on btrfs doesn't matter?</p>
]]></description><pubDate>Fri, 14 Aug 2026 18:55:56 +0000</pubDate><link>https://news.ycombinator.com/item?id=49303094</link><dc:creator>quotemstr</dc:creator><comments>https://news.ycombinator.com/item?id=49303094</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=49303094</guid></item><item><title><![CDATA[New comment by quotemstr in "Single log line is 49KB+ (ext4) / 110KB+ (btrfs) of systemd-journald disk writes"]]></title><description><![CDATA[
<p>So, yes, journald does in fact do bulk copies of log files on rotate. btrfs is hardly some fringe FS and its COW-flag behavior is documented and well-known. I'd expect extensive work on journald's storage engine to have uncovered this behavior at some point.<p>> When did this become a discussion limited to journald on btrfs?<p>btrfs is in the HN thread title.<p>> and that seems like something btrfs should fix at some point<p>Amazing. The Linux kernel should change to work around journald's inflexibility?<p>What someone should fix at some point is journald's strange IO patterns and hard-coded "helpful" attribute changes. I'd rather it just rename the file and let me do any defrag/compression/flag-setting I want than do anything with chattr behind my back in ways I can't even configure.</p>
]]></description><pubDate>Fri, 14 Aug 2026 07:49:04 +0000</pubDate><link>https://news.ycombinator.com/item?id=49295788</link><dc:creator>quotemstr</dc:creator><comments>https://news.ycombinator.com/item?id=49295788</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=49295788</guid></item><item><title><![CDATA[New comment by quotemstr in "Single log line is 49KB+ (ext4) / 110KB+ (btrfs) of systemd-journald disk writes"]]></title><description><![CDATA[
<p>> it's only used in a workaround when clearing FS_NOCOW_FL fails.<p>Clearing FS_NOCOW_FL doesn't work on btrfs for non-empty files. So what do you think journald is doing when it notices that it can't clear the flag?</p>
]]></description><pubDate>Fri, 14 Aug 2026 06:58:46 +0000</pubDate><link>https://news.ycombinator.com/item?id=49295476</link><dc:creator>quotemstr</dc:creator><comments>https://news.ycombinator.com/item?id=49295476</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=49295476</guid></item><item><title><![CDATA[New comment by quotemstr in "Single log line is 49KB+ (ext4) / 110KB+ (btrfs) of systemd-journald disk writes"]]></title><description><![CDATA[
<p>journald does do a rewrite of the log file on rotation, so you're paying that IO anyway even if you ignore the dumb hash table updates.<p><a href="https://github.com/systemd/systemd/blob/8f4cd7de43d1e6e9468732238e9dbc03bf2f4aef/src/shared/copy.c#L1560" rel="nofollow">https://github.com/systemd/systemd/blob/8f4cd7de43d1e6e94687...</a><p>WAL writeback is at least principled and efficient. It works out to being equivalent to the custom Parquet-rotation things others mention, but already implemented and working.<p>So, yes, WAL for logs, because LSM is the design everyone converges on and a WAL <i>is</i> LSM. Better to use the LSM already implemented and debugged in a database than write some random new one in terms of Parquet that's going to have to do the same stuff in the end anyway, just with novel bugs and no tool support.<p>(And look, I don't give a damn what "DB" people say, a WAL writing back to a DB <i>IS</i> log... structured... merge under any fucking sensible definition of what LSM means.)</p>
]]></description><pubDate>Fri, 14 Aug 2026 05:37:49 +0000</pubDate><link>https://news.ycombinator.com/item?id=49295069</link><dc:creator>quotemstr</dc:creator><comments>https://news.ycombinator.com/item?id=49295069</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=49295069</guid></item><item><title><![CDATA[New comment by quotemstr in "Single log line is 49KB+ (ext4) / 110KB+ (btrfs) of systemd-journald disk writes"]]></title><description><![CDATA[
<p>How do readers get log entries that haven't made their way into one of the parquet archive files? If the tip is some kind of live-update DB, that DB has to support concurrent readers who can't block writers. Or would you just make log messages invisible to readers until they made their way into a stable Parquet file?<p>Forget about DB terminology and look at what's happening ON THE DISK. ON THE DISK, is what DuckDB doing any less efficient than what your custom Parquet thing would be doing?</p>
]]></description><pubDate>Fri, 14 Aug 2026 05:36:20 +0000</pubDate><link>https://news.ycombinator.com/item?id=49295061</link><dc:creator>quotemstr</dc:creator><comments>https://news.ycombinator.com/item?id=49295061</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=49295061</guid></item><item><title><![CDATA[New comment by quotemstr in "Single log line is 49KB+ (ext4) / 110KB+ (btrfs) of systemd-journald disk writes"]]></title><description><![CDATA[
<p>SQLite has the problem of a malicious reader being able to hold up writers. Maybe that's fine in most cases, but in a system log, I don't think that's acceptable. IMHO, options are to indirect through a daemon anyway (e.g. using Quack) or do a <i>lot</i> of engineering to make it possible for an unprivileged reader to open() the log file and read it in such a way that it can't interfere with privileged writers.<p>Your LSM compaction strategy is going to have to solve the same problem anyway, isn't it? DuckDB <i>is</i> an LSM compaction strategy of this form, already done.</p>
]]></description><pubDate>Fri, 14 Aug 2026 02:46:13 +0000</pubDate><link>https://news.ycombinator.com/item?id=49294244</link><dc:creator>quotemstr</dc:creator><comments>https://news.ycombinator.com/item?id=49294244</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=49294244</guid></item><item><title><![CDATA[New comment by quotemstr in "Single log line is 49KB+ (ext4) / 110KB+ (btrfs) of systemd-journald disk writes"]]></title><description><![CDATA[
<p>> I'd consider any btrfs install that does not have nocow on...to be defective.<p>You're getting COW on the extents if you're snapshotting anyway.</p>
]]></description><pubDate>Fri, 14 Aug 2026 02:15:44 +0000</pubDate><link>https://news.ycombinator.com/item?id=49294064</link><dc:creator>quotemstr</dc:creator><comments>https://news.ycombinator.com/item?id=49294064</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=49294064</guid></item><item><title><![CDATA[New comment by quotemstr in "Single log line is 49KB+ (ext4) / 110KB+ (btrfs) of systemd-journald disk writes"]]></title><description><![CDATA[
<p>Once you solve enough problems using raw Parquet or Feather or whatever and you end up with something that looks like a DB anyway, so you might as well use a DB.</p>
]]></description><pubDate>Thu, 13 Aug 2026 21:37:19 +0000</pubDate><link>https://news.ycombinator.com/item?id=49292188</link><dc:creator>quotemstr</dc:creator><comments>https://news.ycombinator.com/item?id=49292188</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=49292188</guid></item><item><title><![CDATA[New comment by quotemstr in "Single log line is 49KB+ (ext4) / 110KB+ (btrfs) of systemd-journald disk writes"]]></title><description><![CDATA[
<p>Uh, who said anything about writing 122880 rows every time you do a single insert into DuckDB? There's a WAL. Consolidation happens in big chunks. (And it's not like journald log rotation is somehow better than WAL consolidation.)<p>We shouldn't be making momentus choices of data format based on vague and incorrect understandings of data formats.</p>
]]></description><pubDate>Thu, 13 Aug 2026 21:35:17 +0000</pubDate><link>https://news.ycombinator.com/item?id=49292161</link><dc:creator>quotemstr</dc:creator><comments>https://news.ycombinator.com/item?id=49292161</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=49292161</guid></item><item><title><![CDATA[New comment by quotemstr in "Single log line is 49KB+ (ext4) / 110KB+ (btrfs) of systemd-journald disk writes"]]></title><description><![CDATA[
<p>SQLite here is okay, but DuckDB or LevelDB would be better. Either way, no need to invent a new storage format.</p>
]]></description><pubDate>Thu, 13 Aug 2026 21:09:53 +0000</pubDate><link>https://news.ycombinator.com/item?id=49291910</link><dc:creator>quotemstr</dc:creator><comments>https://news.ycombinator.com/item?id=49291910</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=49291910</guid></item><item><title><![CDATA[New comment by quotemstr in "Single log line is 49KB+ (ext4) / 110KB+ (btrfs) of systemd-journald disk writes"]]></title><description><![CDATA[
<p>Thank you for your work. ISTM the workload is naturally LSM-shaped.<p>> If you write a few bytes into some arbitrary position within a file, the storage has to write back the whole block, despite your only changing a tiny fraction of it. If those few bytes happened to cross a block boundary, guess what? two blocks get written.<p>Exactly. So either make the format append-only or make it append-mostly with occasional writebacks from the append-only log to the main data structure. Nice and simple.<p>>  I'd expect the mmap aspect to be causing more/mispredicted reads, and polluting the page cache with unrelated contents (you tend to end up with the entire journal cached IIRC, if you have enough memory).<p>If you used an LSM or append-only approach, you could MADV_DONTNEED the pages behind your write cursor pretty easily.</p>
]]></description><pubDate>Thu, 13 Aug 2026 21:09:07 +0000</pubDate><link>https://news.ycombinator.com/item?id=49291899</link><dc:creator>quotemstr</dc:creator><comments>https://news.ycombinator.com/item?id=49291899</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=49291899</guid></item><item><title><![CDATA[New comment by quotemstr in "Single log line is 49KB+ (ext4) / 110KB+ (btrfs) of systemd-journald disk writes"]]></title><description><![CDATA[
<p>Systemd should just use DuckDB. It's perfect for this job.<p>"But isn't it an OLAP database? Shouldn't you use SQLite for something that's vaguely real-time?"<p>Eh, in this instance, I think I'd prefer the columnar design and automatic compression DuckDB affords. Log entries have lots of little fields, many of which are unchanging from row-to-row, and DuckDB <i>excels</i> at storing this kind of data.<p>BTW: no, you don't need O(N*log(N) writes for DuckDB. No, you're not doing a whole block-group write for every message. No, Parquet is not a magical solution. I mean, maybe it's fine, but DuckDB is already columnar, and arguably better at it.<p>Seems like there are a lot of mistaken impressions about DB storage engines out there.</p>
]]></description><pubDate>Thu, 13 Aug 2026 21:05:08 +0000</pubDate><link>https://news.ycombinator.com/item?id=49291852</link><dc:creator>quotemstr</dc:creator><comments>https://news.ycombinator.com/item?id=49291852</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=49291852</guid></item><item><title><![CDATA[New comment by quotemstr in "Spaghettifying DRAM"]]></title><description><![CDATA[
<p>> Now every project has at least one perfectly made ASCII diagram - instant LLM tell.<p>Damn. Now my artist-mode in Emacs skills are useless.</p>
]]></description><pubDate>Thu, 13 Aug 2026 18:21:32 +0000</pubDate><link>https://news.ycombinator.com/item?id=49289990</link><dc:creator>quotemstr</dc:creator><comments>https://news.ycombinator.com/item?id=49289990</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=49289990</guid></item><item><title><![CDATA[New comment by quotemstr in "Codex in ChatGPT desktop app for Linux is now in preview"]]></title><description><![CDATA[
<p>Electron is just another god damn GUI toolkit! What's the fundamental difference between it and, say, GTK4? It's just fucking widgets!<p>My real problem with Electron is the multi-process render architecture, which I think is pointless for the "just a GUI toolkit" case of rendering only trusted content. I'm 100% fine with Slack, Spotify, whatever using Electron as their choice of GUI toolkits. These come and go. I'm miffed that they use multiple processes when there's no real security boundary between them just because there <i>is</i> a security boundary in the homologous scenario on the web.</p>
]]></description><pubDate>Thu, 13 Aug 2026 16:30:13 +0000</pubDate><link>https://news.ycombinator.com/item?id=49288430</link><dc:creator>quotemstr</dc:creator><comments>https://news.ycombinator.com/item?id=49288430</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=49288430</guid></item></channel></rss>