<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: Denvercoder9</title><link>https://news.ycombinator.com/user?id=Denvercoder9</link><description>Hacker News RSS</description><docs>https://hnrss.org/</docs><generator>hnrss v2.1.1</generator><lastBuildDate>Mon, 06 Apr 2026 02:11:05 +0000</lastBuildDate><atom:link href="https://hnrss.org/user?id=Denvercoder9" rel="self" type="application/rss+xml"></atom:link><item><title><![CDATA[New comment by Denvercoder9 in "The threat is comfortable drift toward not understanding what you're doing"]]></title><description><![CDATA[
<p>There's no contradiction, the point is that Bob is able to produce valid output using LLMs, but only while he himself is being supervised; and that he doesn't develop the skills to supervise independently himself in the future.</p>
]]></description><pubDate>Sun, 05 Apr 2026 19:42:23 +0000</pubDate><link>https://news.ycombinator.com/item?id=47653089</link><dc:creator>Denvercoder9</dc:creator><comments>https://news.ycombinator.com/item?id=47653089</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47653089</guid></item><item><title><![CDATA[New comment by Denvercoder9 in "Loss32: Let's Build a Win32/Linux"]]></title><description><![CDATA[
<p>> That's why it went beyond web, and why all modern native UI frameworks have a similar model these days.<p>It's more the other way around, this model started on desktop (eg WPF) and then React popularized it on the web.</p>
]]></description><pubDate>Wed, 31 Dec 2025 13:35:50 +0000</pubDate><link>https://news.ycombinator.com/item?id=46443937</link><dc:creator>Denvercoder9</dc:creator><comments>https://news.ycombinator.com/item?id=46443937</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46443937</guid></item><item><title><![CDATA[New comment by Denvercoder9 in "Loss32: Let's Build a Win32/Linux"]]></title><description><![CDATA[
<p>> It would be infinitely simpler if one could simply 'cross-compile' down to older symbol versions, but the tooling does not make this easy at all.<p>It's definitely not easy, but it's possible: using the `.symver` assembly (pseudo-)directive you can specify the version of the symbol you want to link against.</p>
]]></description><pubDate>Wed, 31 Dec 2025 13:30:19 +0000</pubDate><link>https://news.ycombinator.com/item?id=46443902</link><dc:creator>Denvercoder9</dc:creator><comments>https://news.ycombinator.com/item?id=46443902</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46443902</guid></item><item><title><![CDATA[New comment by Denvercoder9 in "Loss32: Let's Build a Win32/Linux"]]></title><description><![CDATA[
<p>> why would it be that way?<p>It allows (among other things) the glibc developers to change struct layouts while remaining backwards compatible. E.g. if function f1 takes a struct as argument, and its layout changes between v2 and v3, then glibc_v2_f1 and glibc_v3_f1 have different ABIs.</p>
]]></description><pubDate>Wed, 31 Dec 2025 13:26:33 +0000</pubDate><link>https://news.ycombinator.com/item?id=46443885</link><dc:creator>Denvercoder9</dc:creator><comments>https://news.ycombinator.com/item?id=46443885</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46443885</guid></item><item><title><![CDATA[New comment by Denvercoder9 in "NYC Mayoral Inauguration bans Raspberry Pi and Flipper Zero alongside explosives"]]></title><description><![CDATA[
<p>The same's true for the radio on a Raspberry Pi, though.</p>
]]></description><pubDate>Wed, 31 Dec 2025 01:26:08 +0000</pubDate><link>https://news.ycombinator.com/item?id=46440279</link><dc:creator>Denvercoder9</dc:creator><comments>https://news.ycombinator.com/item?id=46440279</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46440279</guid></item><item><title><![CDATA[New comment by Denvercoder9 in "Everything as code: How we manage our company in one monorepo"]]></title><description><![CDATA[
<p>So yes, in theory you can always deploys sets of compatible services, but it's not really workable in practice: you either need to deploy the world on every change, or you need to have complicated logic to determine which services are compatible with which deployment sets of other services.<p>There's a bigger problem though: in practice there's almost always a client that you don't control, and can't switch along with your services, e.g. an old frontend loaded by a user's browser.</p>
]]></description><pubDate>Wed, 31 Dec 2025 01:24:16 +0000</pubDate><link>https://news.ycombinator.com/item?id=46440273</link><dc:creator>Denvercoder9</dc:creator><comments>https://news.ycombinator.com/item?id=46440273</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46440273</guid></item><item><title><![CDATA[New comment by Denvercoder9 in "NYC Mayoral Inauguration bans Raspberry Pi and Flipper Zero alongside explosives"]]></title><description><![CDATA[
<p>Some smartphones are locked down by their vendors. There's plenty of options to get full root access on something that's for all intents and purposes a smartphone, especially if you don't particularly care about warranty and/or keeping commerical apps functional.</p>
]]></description><pubDate>Tue, 30 Dec 2025 23:30:04 +0000</pubDate><link>https://news.ycombinator.com/item?id=46439460</link><dc:creator>Denvercoder9</dc:creator><comments>https://news.ycombinator.com/item?id=46439460</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46439460</guid></item><item><title><![CDATA[New comment by Denvercoder9 in "Everything as code: How we manage our company in one monorepo"]]></title><description><![CDATA[
<p>Maybe the database upgrade from v(N-17) to v(N-16) simply takes a while, and hasn't completed yet? Or the responsible team is looking at it, but it doesn't warrant the whole company to stop shipping?<p>Being 17 versions behind is an extreme example, but always having everything run the latest version in the repo is impossible, if only because deployments across nodes aren't perfectly synchronised.</p>
]]></description><pubDate>Tue, 30 Dec 2025 23:24:56 +0000</pubDate><link>https://news.ycombinator.com/item?id=46439402</link><dc:creator>Denvercoder9</dc:creator><comments>https://news.ycombinator.com/item?id=46439402</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46439402</guid></item><item><title><![CDATA[New comment by Denvercoder9 in "Everything as code: How we manage our company in one monorepo"]]></title><description><![CDATA[
<p><a href="https://github.com/jj-vcs/jj" rel="nofollow">https://github.com/jj-vcs/jj</a></p>
]]></description><pubDate>Tue, 30 Dec 2025 23:13:48 +0000</pubDate><link>https://news.ycombinator.com/item?id=46439284</link><dc:creator>Denvercoder9</dc:creator><comments>https://news.ycombinator.com/item?id=46439284</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46439284</guid></item><item><title><![CDATA[New comment by Denvercoder9 in "Everything as code: How we manage our company in one monorepo"]]></title><description><![CDATA[
<p>Blue/green might allow you to do (approximately) atomic deploys for one service, but it doesn't allow you to do an atomic deploy of the clients of that service as well.</p>
]]></description><pubDate>Tue, 30 Dec 2025 23:11:35 +0000</pubDate><link>https://news.ycombinator.com/item?id=46439258</link><dc:creator>Denvercoder9</dc:creator><comments>https://news.ycombinator.com/item?id=46439258</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46439258</guid></item><item><title><![CDATA[New comment by Denvercoder9 in "Everything as code: How we manage our company in one monorepo"]]></title><description><![CDATA[
<p>> Good luck getting 100+ devs to all use the same logical commit style<p>The Linux kernel manages to do it for 1000+ devs.</p>
]]></description><pubDate>Tue, 30 Dec 2025 23:04:06 +0000</pubDate><link>https://news.ycombinator.com/item?id=46439195</link><dc:creator>Denvercoder9</dc:creator><comments>https://news.ycombinator.com/item?id=46439195</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46439195</guid></item><item><title><![CDATA[New comment by Denvercoder9 in "Everything as code: How we manage our company in one monorepo"]]></title><description><![CDATA[
<p>If my change is small enough that it can be treated as one logical unit, that will be reviewed, merged and (hopefully not) reverted as one unit, all these followup commits will be amends into the original commit. There's nothing wrong with small changes containing just one commit; even if the work wasn't written or committed at one time.<p>Where logical commits (also called atomic commits) really shine is when you're making multiple logically distinct changes that depend on each other. E.g. "convert subsystem A to use api Y instead of deprecated api X", "remove now-unused api X", "implement feature B in api Y", "expose feature B in subsystem A". Now they can be reviewed independently, and if feature B turns out to need more work, the first commits can be merged independently (or if that's discovered after it's already merged, the last commits can be reverted independently).<p>If after creating (or pushing) this sequence of commits, I need to fix linting/formatting/CI, I'll put the fixes in a fixup commit for the appropriate and meld them using a rebase. Takes about 30s to do manually, and can be automated using tools like git-absorb. However, in reality I don't need to do this often: the breakdown of bigger tasks into logical chunks is something I already do, as it helps me to stay focused, and I add tests and run linting/formatting/etc before I commit.<p>And yes, more or less the same result can be achieved by creating multiple MRs and using squashing; but usually that's a much worse experience.</p>
]]></description><pubDate>Tue, 30 Dec 2025 23:02:12 +0000</pubDate><link>https://news.ycombinator.com/item?id=46439179</link><dc:creator>Denvercoder9</dc:creator><comments>https://news.ycombinator.com/item?id=46439179</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46439179</guid></item><item><title><![CDATA[New comment by Denvercoder9 in "Everything as code: How we manage our company in one monorepo"]]></title><description><![CDATA[
<p>Squashing only results in a cleaner commit history if you're making a mess of the history on your branches. If you're structuring the commit history on your branches logically, squashing just throws information away.</p>
]]></description><pubDate>Tue, 30 Dec 2025 21:07:56 +0000</pubDate><link>https://news.ycombinator.com/item?id=46438014</link><dc:creator>Denvercoder9</dc:creator><comments>https://news.ycombinator.com/item?id=46438014</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46438014</guid></item><item><title><![CDATA[New comment by Denvercoder9 in "Text rendering hates you (2019)"]]></title><description><![CDATA[
<p>The article is from 2019, things might also simply have changed since then.</p>
]]></description><pubDate>Sun, 28 Dec 2025 00:43:19 +0000</pubDate><link>https://news.ycombinator.com/item?id=46407167</link><dc:creator>Denvercoder9</dc:creator><comments>https://news.ycombinator.com/item?id=46407167</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46407167</guid></item><item><title><![CDATA[New comment by Denvercoder9 in "Archiving Git branches as tags"]]></title><description><![CDATA[
<p>That's true for local hooks, but neither a dishonest person nor an LLM can bypass a pre-receive hook on the server (as long as they don't have admin access).</p>
]]></description><pubDate>Thu, 25 Dec 2025 23:48:10 +0000</pubDate><link>https://news.ycombinator.com/item?id=46387839</link><dc:creator>Denvercoder9</dc:creator><comments>https://news.ycombinator.com/item?id=46387839</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46387839</guid></item><item><title><![CDATA[New comment by Denvercoder9 in "NIST was 5 μs off UTC after last week's power cut"]]></title><description><![CDATA[
<p>GPS gets its time from NIST (though during this incident they failed over to another NIST site, so it wasn't impacted).</p>
]]></description><pubDate>Tue, 23 Dec 2025 00:59:29 +0000</pubDate><link>https://news.ycombinator.com/item?id=46361188</link><dc:creator>Denvercoder9</dc:creator><comments>https://news.ycombinator.com/item?id=46361188</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46361188</guid></item><item><title><![CDATA[New comment by Denvercoder9 in "Getting bitten by Intel's poor naming schemes"]]></title><description><![CDATA[
<p>> you'll encounter a box running a distro version from before /etc/os-release became the standard<p>Do those boxes really still exist? Debian, which isn't really known to be the pinacle of bleeding edge, has had /etc/os-release since Debian 7, released in May 2013. RHEL 7, the oldest Red Hat still in extended support, also has it.</p>
]]></description><pubDate>Fri, 19 Dec 2025 17:38:04 +0000</pubDate><link>https://news.ycombinator.com/item?id=46328561</link><dc:creator>Denvercoder9</dc:creator><comments>https://news.ycombinator.com/item?id=46328561</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46328561</guid></item><item><title><![CDATA[New comment by Denvercoder9 in "Avoid UUID Version 4 Primary Keys in Postgres"]]></title><description><![CDATA[
<p>This misses the point. The reason not to use UUIDv4 is that having an index on random values is slow(er), because sequential inserts into the underlying B-tree are faster than random inserts. You're hitting the same problem with your `public_id` column, that it's not the primary key doesn't change that.</p>
]]></description><pubDate>Mon, 15 Dec 2025 12:25:29 +0000</pubDate><link>https://news.ycombinator.com/item?id=46273580</link><dc:creator>Denvercoder9</dc:creator><comments>https://news.ycombinator.com/item?id=46273580</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46273580</guid></item><item><title><![CDATA[New comment by Denvercoder9 in "Capsudo: Rethinking sudo with object capabilities"]]></title><description><![CDATA[
<p>> you have /dev/kmem access so could just edit the kernel data structures.<p>Not anymore: since kernel 2.6.26 /dev/kmem only exists if CONFIG_DEVKMEM is enabled, and it was removed completely in 5.13.<p>[1] <a href="https://lwn.net/Articles/851531/" rel="nofollow">https://lwn.net/Articles/851531/</a>
[2] <a href="https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/drivers/char/mem.c?id=bbcd53c960713507ae764bf81970651b5577b95a" rel="nofollow">https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/lin...</a></p>
]]></description><pubDate>Sat, 13 Dec 2025 13:16:28 +0000</pubDate><link>https://news.ycombinator.com/item?id=46254311</link><dc:creator>Denvercoder9</dc:creator><comments>https://news.ycombinator.com/item?id=46254311</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46254311</guid></item><item><title><![CDATA[New comment by Denvercoder9 in "You can't fool the optimizer"]]></title><description><![CDATA[
<p>Yes, so that's why the compiler can't and doesn't emit the optimized version if you write the short circuited version - because it behaves differently for short strings.</p>
]]></description><pubDate>Wed, 03 Dec 2025 22:00:29 +0000</pubDate><link>https://news.ycombinator.com/item?id=46140795</link><dc:creator>Denvercoder9</dc:creator><comments>https://news.ycombinator.com/item?id=46140795</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46140795</guid></item></channel></rss>