<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: ethan_smith</title><link>https://news.ycombinator.com/user?id=ethan_smith</link><description>Hacker News RSS</description><docs>https://hnrss.org/</docs><generator>hnrss v2.1.1</generator><lastBuildDate>Mon, 31 Aug 2026 13:26:56 +0000</lastBuildDate><atom:link href="https://hnrss.org/user?id=ethan_smith" rel="self" type="application/rss+xml"></atom:link><item><title><![CDATA[New comment by ethan_smith in "The RAM shortage could last years"]]></title><description><![CDATA[
<p>Your skepticism is well placed. Every time a new quantization or compression technique drops, the immediate response is to just scale up context length or run a bigger model to fill whatever headroom was freed up. It's Jevons paradox applied to VRAM - efficiency gains get eaten by increased usage almost immediately.</p>
]]></description><pubDate>Mon, 20 Apr 2026 08:57:31 +0000</pubDate><link>https://news.ycombinator.com/item?id=47831788</link><dc:creator>ethan_smith</dc:creator><comments>https://news.ycombinator.com/item?id=47831788</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47831788</guid></item><item><title><![CDATA[New comment by ethan_smith in "Six Levels of Dark Mode (2024)"]]></title><description><![CDATA[
<p>A small blocking `<script>` in the `<head>` that reads the saved preference from localStorage and sets a class on `<html>` before any rendering happens is the standard approach. You can also set `<meta name="color-scheme" content="dark light">` which tells the browser to use the OS preference for the initial paint, covering the default case without any JS at all.</p>
]]></description><pubDate>Mon, 20 Apr 2026 07:47:22 +0000</pubDate><link>https://news.ycombinator.com/item?id=47831422</link><dc:creator>ethan_smith</dc:creator><comments>https://news.ycombinator.com/item?id=47831422</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47831422</guid></item><item><title><![CDATA[New comment by ethan_smith in "Stop trying to engineer your way out of listening to people"]]></title><description><![CDATA[
<p>This is kind of the exact thing the article is about though. They're not "failing to understand" costs - they just have different context. Your job is to help them make informed tradeoffs, not to expect them to already know what things cost before asking.</p>
]]></description><pubDate>Mon, 20 Apr 2026 05:43:39 +0000</pubDate><link>https://news.ycombinator.com/item?id=47830768</link><dc:creator>ethan_smith</dc:creator><comments>https://news.ycombinator.com/item?id=47830768</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47830768</guid></item><item><title><![CDATA[New comment by ethan_smith in "Archive of BYTE magazine, starting with issue #1 in 1975"]]></title><description><![CDATA[
<p>The ads are honestly one of the best parts to read now. You can trace the entire trajectory of the PC industry through them - watching prices drop, new categories emerge, companies appear and vanish. It's like an economic fossil record of personal computing.</p>
]]></description><pubDate>Mon, 20 Apr 2026 04:30:05 +0000</pubDate><link>https://news.ycombinator.com/item?id=47830414</link><dc:creator>ethan_smith</dc:creator><comments>https://news.ycombinator.com/item?id=47830414</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47830414</guid></item><item><title><![CDATA[New comment by ethan_smith in "It's OK to compare floating-points for equality"]]></title><description><![CDATA[
<p>This is essentially ULP (units in the last place) comparison, and it's a solid approach. One gotcha: IEEE 754 floats have separate representations for +0 and -0, so values straddling zero (like 1e-45 and -1e-45) will look maximally far apart as integers even though they're nearly equal. You need to handle the sign bit specially.</p>
]]></description><pubDate>Sat, 18 Apr 2026 12:33:43 +0000</pubDate><link>https://news.ycombinator.com/item?id=47815424</link><dc:creator>ethan_smith</dc:creator><comments>https://news.ycombinator.com/item?id=47815424</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47815424</guid></item><item><title><![CDATA[New comment by ethan_smith in "Brunost: The Nynorsk Programming Language"]]></title><description><![CDATA[
<p>Yes, exactly - same Germanic root. "Fast" in Scandinavian languages means firm/fixed/stuck, which is also the original meaning in English (as in "hold fast", "steadfast", "fasten"). The "quick" meaning in English is actually the newer one, derived from the idea of being "stuck" on a course.</p>
]]></description><pubDate>Sat, 18 Apr 2026 11:35:32 +0000</pubDate><link>https://news.ycombinator.com/item?id=47815079</link><dc:creator>ethan_smith</dc:creator><comments>https://news.ycombinator.com/item?id=47815079</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47815079</guid></item><item><title><![CDATA[New comment by ethan_smith in "Healthchecks.io now uses self-hosted object storage"]]></title><description><![CDATA[
<p>The app was already built against the S3 API when it used cloud storage. Keeping that interface means the code doesn't change - you just point it at a local S3-compatible gateway instead of AWS/DO. Makes it trivial to switch back or move providers if needed.</p>
]]></description><pubDate>Fri, 17 Apr 2026 16:32:03 +0000</pubDate><link>https://news.ycombinator.com/item?id=47807731</link><dc:creator>ethan_smith</dc:creator><comments>https://news.ycombinator.com/item?id=47807731</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47807731</guid></item><item><title><![CDATA[New comment by ethan_smith in "CadQuery is an open-source Python library for building 3D CAD models"]]></title><description><![CDATA[
<p>The OCP CAD Viewer extension for VS Code (works with both CadQuery and build123d) gets partway there - you can click on faces/edges in the 3D view and it shows you the selection info you'd need for your code. It's not full "click to generate code" but it helps a lot with the "keeping geometry in my head" problem. Still a long way from the OnShape FeatureScript model where GUI and code are truly bidirectional though.</p>
]]></description><pubDate>Fri, 17 Apr 2026 15:19:16 +0000</pubDate><link>https://news.ycombinator.com/item?id=47806886</link><dc:creator>ethan_smith</dc:creator><comments>https://news.ycombinator.com/item?id=47806886</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47806886</guid></item><item><title><![CDATA[New comment by ethan_smith in "The beginning of scarcity in AI"]]></title><description><![CDATA[
<p>The mainframe/PC analogy is spot on. And the hardware floor keeps dropping - you can grab a mini PC with 32-64GB RAM for a few hundred bucks and run surprisingly capable quantized models locally. Something like <a href="https://terminalbytes.com/best-mini-pcs-for-home-lab-2025/" rel="nofollow">https://terminalbytes.com/best-mini-pcs-for-home-lab-2025/</a> shows the kind of hardware that's now available at consumer prices. The "scarcity" framing only makes sense if you assume everyone needs frontier-tier models for everything.</p>
]]></description><pubDate>Fri, 17 Apr 2026 14:19:17 +0000</pubDate><link>https://news.ycombinator.com/item?id=47806225</link><dc:creator>ethan_smith</dc:creator><comments>https://news.ycombinator.com/item?id=47806225</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47806225</guid></item><item><title><![CDATA[New comment by ethan_smith in "IPv6 traffic crosses the 50% mark"]]></title><description><![CDATA[
<p>This matches what I've seen too. Mobile carriers have been way ahead on IPv6 - T-Mobile in the US has been IPv6-only with NAT64 for years. The weekend pattern is pretty much a smoking gun for mobile being the driver. It also explains why the Google metric (which skews consumer) looks so much better than the Wikipedia numbers someone else posted (35% IPv6) or the server-side adoption stats from Common Crawl.</p>
]]></description><pubDate>Thu, 16 Apr 2026 20:40:30 +0000</pubDate><link>https://news.ycombinator.com/item?id=47799209</link><dc:creator>ethan_smith</dc:creator><comments>https://news.ycombinator.com/item?id=47799209</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47799209</guid></item><item><title><![CDATA[New comment by ethan_smith in "Show HN: CodeBurn – Analyze Claude Code token usage by task"]]></title><description><![CDATA[
<p>The $200/month plan throttles you when you hit limits - you just wait in a queue. API usage at $1400/week means unthrottled, parallel execution with no waiting. These are very different use cases, and for teams or heavy automation workflows the API cost can make sense if the time savings justify it.</p>
]]></description><pubDate>Thu, 16 Apr 2026 19:35:44 +0000</pubDate><link>https://news.ycombinator.com/item?id=47798391</link><dc:creator>ethan_smith</dc:creator><comments>https://news.ycombinator.com/item?id=47798391</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47798391</guid></item><item><title><![CDATA[New comment by ethan_smith in "PHP 8.6 Closure Optimizations"]]></title><description><![CDATA[
<p>In PHP, closures defined inside a class method automatically capture `$this`, which means the closure holds a reference to the entire object even if it never uses it. This prevents the object from being garbage collected and adds overhead. The optimization detects when `$this` isn't actually used and makes the closure static automatically, dropping that unnecessary reference.</p>
]]></description><pubDate>Thu, 16 Apr 2026 18:52:27 +0000</pubDate><link>https://news.ycombinator.com/item?id=47797810</link><dc:creator>ethan_smith</dc:creator><comments>https://news.ycombinator.com/item?id=47797810</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47797810</guid></item><item><title><![CDATA[New comment by ethan_smith in "Codex for almost everything"]]></title><description><![CDATA[
<p>This is a pretty important issue given that the new update adds "computer use" capabilities. If it was already reading sensitive files in the CLI version, giving it full desktop control seems like it needs a much more robust permission model than what they've shown so far.</p>
]]></description><pubDate>Thu, 16 Apr 2026 17:34:20 +0000</pubDate><link>https://news.ycombinator.com/item?id=47796788</link><dc:creator>ethan_smith</dc:creator><comments>https://news.ycombinator.com/item?id=47796788</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47796788</guid></item><item><title><![CDATA[New comment by ethan_smith in "The future of everything is lies, I guess: Where do we go from here?"]]></title><description><![CDATA[
<p>This is the part that worries me most. It's not really about individual discipline - it's that anyone who chooses to struggle through problems the hard way is now at a measurable disadvantage against peers who don't. The incentive structure actively punishes the behavior that produces deeper understanding.</p>
]]></description><pubDate>Thu, 16 Apr 2026 16:45:36 +0000</pubDate><link>https://news.ycombinator.com/item?id=47796089</link><dc:creator>ethan_smith</dc:creator><comments>https://news.ycombinator.com/item?id=47796089</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47796089</guid></item><item><title><![CDATA[New comment by ethan_smith in "FSF trying to contact Google about spammer sending 10k+ mails from Gmail account"]]></title><description><![CDATA[
<p>This is almost certainly subscription bombing / email bombing. The goal is to flood someone's inbox with hundreds of legitimate-looking automated emails so they miss a real one - typically a password reset confirmation, a purchase receipt, or a "new device login" alert. The actual attack is happening on some other service where the victim has an account. The fact that you don't see it on your server doesn't mean much, the target is the victim's primary inbox elsewhere.</p>
]]></description><pubDate>Thu, 16 Apr 2026 15:31:25 +0000</pubDate><link>https://news.ycombinator.com/item?id=47794759</link><dc:creator>ethan_smith</dc:creator><comments>https://news.ycombinator.com/item?id=47794759</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47794759</guid></item><item><title><![CDATA[New comment by ethan_smith in "Tell HN: 48 absurd web projects – one every month"]]></title><description><![CDATA[
<p>Interactive ads are actually huge in mobile gaming - they're called "playable ads" and companies like ironSource and Unity Ads have been pushing them for years. They consistently outperform static/video ads on engagement and conversion. Outside of mobile games though, they're surprisingly rare on the web, which is kind of what makes VandalAds feel fresh.</p>
]]></description><pubDate>Thu, 16 Apr 2026 14:31:43 +0000</pubDate><link>https://news.ycombinator.com/item?id=47793531</link><dc:creator>ethan_smith</dc:creator><comments>https://news.ycombinator.com/item?id=47793531</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47793531</guid></item><item><title><![CDATA[New comment by ethan_smith in "Google broke its promise to me – now ICE has my data"]]></title><description><![CDATA[
<p>This is the key detail everyone is glossing over. NSLs and subpoenas with non-disclosure orders are extremely common in these cases - Google literally cannot notify you without being in contempt. The EFF article frames this as Google "breaking a promise" but if there was a gag order attached, they had no legal choice.</p>
]]></description><pubDate>Wed, 15 Apr 2026 19:06:03 +0000</pubDate><link>https://news.ycombinator.com/item?id=47783704</link><dc:creator>ethan_smith</dc:creator><comments>https://news.ycombinator.com/item?id=47783704</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47783704</guid></item><item><title><![CDATA[New comment by ethan_smith in "Want to write a compiler? Just read these two papers (2008)"]]></title><description><![CDATA[
<p>You'd more likely want to emit LLVM IR rather than try to match clang's internal AST. That's essentially what most new language projects do now (Rust, Swift, Zig all use LLVM as their backend). You get optimization passes and codegen for multiple architectures for free, and the IR is well-documented. The tradeoff is you skip learning about the backend, which is arguably the most interesting part.</p>
]]></description><pubDate>Wed, 15 Apr 2026 17:58:57 +0000</pubDate><link>https://news.ycombinator.com/item?id=47782791</link><dc:creator>ethan_smith</dc:creator><comments>https://news.ycombinator.com/item?id=47782791</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47782791</guid></item><item><title><![CDATA[New comment by ethan_smith in "Do you even need a database?"]]></title><description><![CDATA[
<p>The SQLite "faster than filesystem" page is specifically about reading small blobs where the overhead of individual filesystem calls (open/read/close per blob) exceeds SQLite reading from a single already-open file. Once you're talking about reading one big JSON file sequentially, that overhead disappears and you're just doing a single read - which is basically the best case for the filesystem and the worst case for SQLite (which still has to parse its B-tree, check schemas, etc).</p>
]]></description><pubDate>Wed, 15 Apr 2026 16:05:03 +0000</pubDate><link>https://news.ycombinator.com/item?id=47781074</link><dc:creator>ethan_smith</dc:creator><comments>https://news.ycombinator.com/item?id=47781074</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47781074</guid></item><item><title><![CDATA[New comment by ethan_smith in "Installing OpenBSD on the Pomera DM250 Writerdeck"]]></title><description><![CDATA[
<p>If the stock UI/UX is already a dealbreaker for you, the risk calculus is pretty different - you're basically bricking something you weren't using anyway. jcs is usually thorough about documenting the process, and OpenBSD on bare metal like this tends to be surprisingly stable once it's running.</p>
]]></description><pubDate>Wed, 15 Apr 2026 15:08:58 +0000</pubDate><link>https://news.ycombinator.com/item?id=47780196</link><dc:creator>ethan_smith</dc:creator><comments>https://news.ycombinator.com/item?id=47780196</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47780196</guid></item></channel></rss>