<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: TheFlyingFish</title><link>https://news.ycombinator.com/user?id=TheFlyingFish</link><description>Hacker News RSS</description><docs>https://hnrss.org/</docs><generator>hnrss v2.1.1</generator><lastBuildDate>Tue, 13 Oct 2026 03:33:08 +0000</lastBuildDate><atom:link href="https://hnrss.org/user?id=TheFlyingFish" rel="self" type="application/rss+xml"></atom:link><item><title><![CDATA[New comment by TheFlyingFish in "Fingerprints are the new cookies"]]></title><description><![CDATA[
<p>Theme switchers! My favorite example of why "document-only" sites might need JS. Sure, you can use @media prefers-color-scheme for defaults, and you can do checkbox/radio shenanigans to make it switchable, but there's no way to persist that preference on a static site without JS.<p>If you don't care about your site being static then you can track it server side, but that has big implications for his you can just your site. Sticking a little flag in localStorage really is the best solution, if you can get past ideological purity.</p>
]]></description><pubDate>Mon, 12 Oct 2026 22:23:37 +0000</pubDate><link>https://news.ycombinator.com/item?id=50063905</link><dc:creator>TheFlyingFish</dc:creator><comments>https://news.ycombinator.com/item?id=50063905</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=50063905</guid></item><item><title><![CDATA[New comment by TheFlyingFish in "JetBrains reports revenue growth, net financial loss for 2025"]]></title><description><![CDATA[
<p>Not the person to whom you responded, but several times I have been dealing with debugging. Issue, tried. Opus/Sol/whatever and come up dry, then thrown it at Fable and gotten the solution in one shot.</p>
]]></description><pubDate>Tue, 06 Oct 2026 21:52:59 +0000</pubDate><link>https://news.ycombinator.com/item?id=49984653</link><dc:creator>TheFlyingFish</dc:creator><comments>https://news.ycombinator.com/item?id=49984653</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=49984653</guid></item><item><title><![CDATA[New comment by TheFlyingFish in "How to Write with an LLM"]]></title><description><![CDATA[
<p>The corn-syrup comment made sense to me FWIW. I associated corn syrup with mass-produced food that's optimized to make all your taste receptors go "bling" when it first hits your tongue, but lacks any real substance. Which also describes the text that comes out of an LLM.</p>
]]></description><pubDate>Sat, 19 Sep 2026 14:43:57 +0000</pubDate><link>https://news.ycombinator.com/item?id=49766964</link><dc:creator>TheFlyingFish</dc:creator><comments>https://news.ycombinator.com/item?id=49766964</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=49766964</guid></item><item><title><![CDATA[New comment by TheFlyingFish in "AWS Acquires DuckLabs"]]></title><description><![CDATA[
<p>I'm aware of the Bun Rust rewrite, but what has Astro done with experimental agent-based work?</p>
]]></description><pubDate>Thu, 27 Aug 2026 12:41:40 +0000</pubDate><link>https://news.ycombinator.com/item?id=49463900</link><dc:creator>TheFlyingFish</dc:creator><comments>https://news.ycombinator.com/item?id=49463900</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=49463900</guid></item><item><title><![CDATA[New comment by TheFlyingFish in "A Preview of DuckDB v2.0"]]></title><description><![CDATA[
<p>DuckDB is heavily focused on analytical workflows, so it stores data in a compressed columnar format. So "rewrite one row" is more efficient in SQLite, but "sum all the values in this column" is vastly more efficient in DuckDB.<p>That's the core of the difference, to me. But the projects also have a pretty different ethos. SQLite has always prioritized simplicity, often at the expense of features, whereas DuckDB's approach to features seems to be "the more the merrier." E.g. the star feature of this new release, client/server mode. Plenty of people would love to see something similar in SQLite, but it doesn't seem likely.</p>
]]></description><pubDate>Wed, 19 Aug 2026 02:29:15 +0000</pubDate><link>https://news.ycombinator.com/item?id=49355860</link><dc:creator>TheFlyingFish</dc:creator><comments>https://news.ycombinator.com/item?id=49355860</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=49355860</guid></item><item><title><![CDATA[New comment by TheFlyingFish in "How Google helped destroy adoption of RSS feeds (2023)"]]></title><description><![CDATA[
<p>Feed aggregators (inoreader, feedly) make this difficult, though. One request may end up serving any number of end users, so you can't personalize ads the same way.<p>Good, you might say, and I wouldn't disagree, but Google et al sure would.</p>
]]></description><pubDate>Sun, 02 Aug 2026 11:17:42 +0000</pubDate><link>https://news.ycombinator.com/item?id=49143373</link><dc:creator>TheFlyingFish</dc:creator><comments>https://news.ycombinator.com/item?id=49143373</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=49143373</guid></item><item><title><![CDATA[New comment by TheFlyingFish in "GitHub confirms breach of 3,800 repos via malicious VSCode extension"]]></title><description><![CDATA[
<p>Are you suggesting that AI-written code tends to be <i>more secure</i> than human-written code? Because there are many examples to the contrary, starting with MoltBook.</p>
]]></description><pubDate>Thu, 21 May 2026 16:21:24 +0000</pubDate><link>https://news.ycombinator.com/item?id=48225268</link><dc:creator>TheFlyingFish</dc:creator><comments>https://news.ycombinator.com/item?id=48225268</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48225268</guid></item><item><title><![CDATA[New comment by TheFlyingFish in "I’ve banned query strings"]]></title><description><![CDATA[
<p>Tangent: Much like PHP, "modern" CF isn't actually that bad to work with these days. In particular the superset-of-html syntax has been superseded for pure logic by "CFScript" which is just an ECMAScript dialect.<p>There's even a package manager, test harness, etc. And of course it's JVM hosted so it's fairly easy to use Java stuff (stdlib of otherwise) if what you need doesn't exist in CF.</p>
]]></description><pubDate>Sun, 10 May 2026 20:43:09 +0000</pubDate><link>https://news.ycombinator.com/item?id=48087782</link><dc:creator>TheFlyingFish</dc:creator><comments>https://news.ycombinator.com/item?id=48087782</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48087782</guid></item><item><title><![CDATA[New comment by TheFlyingFish in "A GitHub Issue Title Compromised 4k Developer Machines"]]></title><description><![CDATA[
<p>The linked article isn't describing a form of input sanitization, it's a complete separation between trusted and untrusted contexts. The trusted model has no access to untrusted input, and the untrusted model has no access to tools.<p>Simon Willison has a good explainer on CaMeL: <a href="https://simonwillison.net/2025/Apr/11/camel/" rel="nofollow">https://simonwillison.net/2025/Apr/11/camel/</a></p>
]]></description><pubDate>Fri, 06 Mar 2026 20:44:12 +0000</pubDate><link>https://news.ycombinator.com/item?id=47280820</link><dc:creator>TheFlyingFish</dc:creator><comments>https://news.ycombinator.com/item?id=47280820</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47280820</guid></item><item><title><![CDATA[New comment by TheFlyingFish in "Ghostty – Terminal Emulator"]]></title><description><![CDATA[
<p>He's living the hacker dream. Made a billion bucks, then went right back to writing code. People upvote because they wish they were him.</p>
]]></description><pubDate>Tue, 03 Mar 2026 00:47:19 +0000</pubDate><link>https://news.ycombinator.com/item?id=47226422</link><dc:creator>TheFlyingFish</dc:creator><comments>https://news.ycombinator.com/item?id=47226422</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47226422</guid></item><item><title><![CDATA[New comment by TheFlyingFish in "Ghostty – Terminal Emulator"]]></title><description><![CDATA[
<p>The HN zeitgeist has something of a love/hate relationship with the web, I've noticed. HN in general seems to skew a little older than a lot of online communities, so a lot of HN users were adults back in the early days of the web/Usenet/etc. There's a tendency to view those days with nostalgia, leading a lot of people to feel like the "good old days" of the web were "ruined" by the modern shift into more interactivity, fancier/prettier design, etc. And "web developers" are the ones proximately responsible for the shift, so they get the hate too.<p>I laugh every time I see someone on HN asserting that the web "shouldn't" be used for anything beyond "documents and lightly interactive content", which is not uncomment. There's some real old-man-yelling-at-clouds energy there.</p>
]]></description><pubDate>Mon, 02 Mar 2026 10:45:09 +0000</pubDate><link>https://news.ycombinator.com/item?id=47216219</link><dc:creator>TheFlyingFish</dc:creator><comments>https://news.ycombinator.com/item?id=47216219</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47216219</guid></item><item><title><![CDATA[New comment by TheFlyingFish in "How do I cancel my ChatGPT subscription?"]]></title><description><![CDATA[
<p>If you're crazy then I am too. 50% odds it was written by a human, 50% bot.</p>
]]></description><pubDate>Sat, 28 Feb 2026 12:25:47 +0000</pubDate><link>https://news.ycombinator.com/item?id=47194453</link><dc:creator>TheFlyingFish</dc:creator><comments>https://news.ycombinator.com/item?id=47194453</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47194453</guid></item><item><title><![CDATA[New comment by TheFlyingFish in "How we rebuilt Next.js with AI in one week"]]></title><description><![CDATA[
<p>I imagine offloading a lot of the heavy lifting to Vite helps cut down on the code size.</p>
]]></description><pubDate>Wed, 25 Feb 2026 02:29:21 +0000</pubDate><link>https://news.ycombinator.com/item?id=47146538</link><dc:creator>TheFlyingFish</dc:creator><comments>https://news.ycombinator.com/item?id=47146538</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47146538</guid></item><item><title><![CDATA[New comment by TheFlyingFish in "My journey to the microwave alternate timeline"]]></title><description><![CDATA[
<p>I once managed to trigger what I think was a race condition in a microwave's beep routine. It was one of the type that does a single long beep rather than individual beeps, and like most it would cut the beep short when you opened the door. But one time, one single time, I managed to open the door PRECISELY as the timer finished, and the beep just didn't stop. I finally closed and opened the door after maybe 30 seconds, and that stopped it.<p>I was never able to trigger it again, so I have no idea whether it was a race condition or some other random one-in-a-million happenstance, but it makes a fun theory at least.</p>
]]></description><pubDate>Tue, 24 Feb 2026 00:37:41 +0000</pubDate><link>https://news.ycombinator.com/item?id=47131222</link><dc:creator>TheFlyingFish</dc:creator><comments>https://news.ycombinator.com/item?id=47131222</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47131222</guid></item><item><title><![CDATA[New comment by TheFlyingFish in "Loon: A functional lang with invisible types, safe ownership, and alg. effects"]]></title><description><![CDATA[
<p>I've never used a Lisp either, but I get the impression that "forcing you to write the AST" is sort of the secret sauce. That is, if your source code is basically an AST to begin with, then transforming that AST programmatically (i.e. macros) is much more ergonomic. So you do, which means that Lisp ends up operating at a higher level of abstraction than most languages because you can basically create DSL on the fly for whatever you're doing.<p>That's my impression, at least. Like I said, I've never actually used a Lisp. Maybe I'm put off by the smug superiority of so many Lisp people who presume that using Lisp makes them better at programming, smarter, and probably morally superior to me.</p>
]]></description><pubDate>Sat, 21 Feb 2026 23:09:07 +0000</pubDate><link>https://news.ycombinator.com/item?id=47105944</link><dc:creator>TheFlyingFish</dc:creator><comments>https://news.ycombinator.com/item?id=47105944</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47105944</guid></item><item><title><![CDATA[New comment by TheFlyingFish in "Replacing JavaScript with Just HTML"]]></title><description><![CDATA[
<p>Technically native selects do have a very rudimentary form of filtering: start typing text with the select focused and it will auto-select the first matching option.<p>E.g. if the select is a list of US states, type "N" and it will jump to Nebraska. Continue into "New" and you'll get New Hampshire, etc.<p>This is better than nothing (and I personally use it all the time) but not a patch on an actual proper select-with-filtering which, yes, you still need JS to implement properly.</p>
]]></description><pubDate>Mon, 29 Dec 2025 01:56:30 +0000</pubDate><link>https://news.ycombinator.com/item?id=46416581</link><dc:creator>TheFlyingFish</dc:creator><comments>https://news.ycombinator.com/item?id=46416581</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46416581</guid></item><item><title><![CDATA[New comment by TheFlyingFish in "A “frozen” dictionary for Python"]]></title><description><![CDATA[
<p>That works if you're dealing with a known set of keys (i.e. what most statically-typed languages would call a struct). It falls down if you need something where the keys are unknowable until runtime, like a lookup table.<p>I do like dataclasses, though. I find them sneaking into my code more and more as time goes on. Having a declared set of properties is really useful, and it doesn't hurt either that they're syntactically nicer to use.</p>
]]></description><pubDate>Thu, 11 Dec 2025 14:28:36 +0000</pubDate><link>https://news.ycombinator.com/item?id=46231804</link><dc:creator>TheFlyingFish</dc:creator><comments>https://news.ycombinator.com/item?id=46231804</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46231804</guid></item><item><title><![CDATA[New comment by TheFlyingFish in "Anthropic acquires Bun"]]></title><description><![CDATA[
<p>I haven't used Deno, but I do use Bun purely as a replacement for npm. It does the hard-linking thing that seems to be increasingly common for package managers these days (i.e. it populates your local node_modules with a bunch of hard links to its systemwide cache), which makes it vastly quicker and more disk-efficient than npm for most usage.<p>Even with a cold cache, `bun install` with a large-ish dependency graph is significantly faster than `npm install` in my experience.<p>I don't know if Deno does that, but some googling for "deno install performance vs npm install" doesn't turn up much, so I suspect not?<p>As a runtime, though, I have no opinion. I did test it against Node, but for my use case (build tooling for web projects) it didn't make a noticeable difference, so I decided to stick with Node.</p>
]]></description><pubDate>Tue, 02 Dec 2025 18:35:53 +0000</pubDate><link>https://news.ycombinator.com/item?id=46124685</link><dc:creator>TheFlyingFish</dc:creator><comments>https://news.ycombinator.com/item?id=46124685</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46124685</guid></item><item><title><![CDATA[New comment by TheFlyingFish in "Shai-Hulud Returns: Over 300 NPM Packages Infected"]]></title><description><![CDATA[
<p>Requests is a great example of my point, actually. Creating a brand-new Python venv and running `uv add requests` tells me that a total of 5 packages were added. By contrast, creating a new Rust project and running `cargo add reqwest` (which is morally equivalent to Python's `requests`) results in adding 160 packages, literally 30x as many.<p>I don't think languages should try to include _everything_ in their stdlib, and indeed trying to do so tends to result in a lot of legacy cruft clogging up the stdlib. But I think there's a sweet spot between having a _very narrow_ stdlib and having to depend on 160 different 3rd-party packages just to make a HTTP request, and having a stdlib with 10 different ways of doing everything because it took a bunch of tries to get it right. (cf. PHP and hacks like `mysql_real_escape_string`, for example.)<p>Maybe Python also has a historical advantage here. Since the Internet was still pretty nascent when Python got its start, it wasn't the default solution any time you needed a bit of code to solve a well-known problem (I imagine, at least; I was barely alive at that point). So Python could afford to wait and see what would actually make good additions to the stdlib before implementing them.<p>Compare to Rust which _immediately_ had to run gauntles like "what to do about async", with thousands of people clamoring for a solution _right now_ because they wanted to do async Rust. I can definitely sympathize with Rust's leadership wanted to do the absolute minimum required for async support while they waited for the paradigm to stabilize. And even so, they still get a lot of flak for the design being rushed, e.g. with `Pin`.<p>So it's obviously a difficult balance to strike, and maybe the solution isn't as simple as "do more in the stdlib". But I'd be curious to see it tried, at least.</p>
]]></description><pubDate>Mon, 24 Nov 2025 14:29:22 +0000</pubDate><link>https://news.ycombinator.com/item?id=46034504</link><dc:creator>TheFlyingFish</dc:creator><comments>https://news.ycombinator.com/item?id=46034504</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46034504</guid></item><item><title><![CDATA[New comment by TheFlyingFish in "Shai-Hulud Returns: Over 300 NPM Packages Infected"]]></title><description><![CDATA[
<p>I've worried about this for a while with Rust packages. The total size of a "big" Rust project's dependency graph is pretty similar to a lot of JS projects. E.g. Tauri, last I checked, introduces about 600 dependencies just on its own.<p>Like another commenter said, I do think it's partially just because dependency management is so easy in Rust compared to e.g. C or C++, but I also suspect that it has to do with the size of the standard library. Rust and JS are both famous for having minimal standard libraries, and what do you know, they tend to have crazy-deep dependency graphs. On the other hand, Python is famous for being "batteries included", and if you look at Python project dependency graphs, they're <i>much</i> less crazy than JS or Rust. E.g. even a higher-level framework like FastAPI, that itself depends on lower-level frameworks, has only a dozen or so dependencies. A Python app that I maintain for work, which has over 20 top-level dependencies, only expands to ~100 once those 20 are fully resolved. I really think a lot of it comes down to the standard library backstopping the most common things that everybody needs.<p>So maybe it would improve the situation to just expand the standard library a bit? Maybe this would be hiding the problem more than solving it, since all that code would still have to be maintained and would still be vulnerable to getting pwned, but other languages manage somehow.</p>
]]></description><pubDate>Mon, 24 Nov 2025 11:25:21 +0000</pubDate><link>https://news.ycombinator.com/item?id=46032873</link><dc:creator>TheFlyingFish</dc:creator><comments>https://news.ycombinator.com/item?id=46032873</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46032873</guid></item></channel></rss>