<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: btown</title><link>https://news.ycombinator.com/user?id=btown</link><description>Hacker News RSS</description><docs>https://hnrss.org/</docs><generator>hnrss v2.1.1</generator><lastBuildDate>Sun, 12 Apr 2026 13:32:22 +0000</lastBuildDate><atom:link href="https://hnrss.org/user?id=btown" rel="self" type="application/rss+xml"></atom:link><item><title><![CDATA[New comment by btown in "Code is run more than read (2023)"]]></title><description><![CDATA[
<p>> But when you run your code in production, the KISS mantra takes on a new dimension. It’s not just about code anymore; it’s about reducing the moving parts and understanding their failure modes.<p>This sentence, itself, takes on new meaning in the age of agentic coding. "I'm fine with treating this new feature as greenfield even if it reimplements existing code, because the LLM will handle ensuring the new code meets biz and user expectations" is fine in isolation... but it may mean that the code does not benefit from shared patterns for observability, traffic shaping, debugging, and more.<p>And if the agent inlines code that itself had a bug, that later proves to be a root cause, the amount of code that needs to be found and fixed in an outage situation is not only larger but more inscrutable.<p>Using the OOP's terminology, where biz > user > ops > dev is ideal, this is a dev > ops style failure that goes far beyond "runs on my machine" towards a notion of "is only maintainable in isolation."<p>Luckily, we have 1M context windows now! We can choose to say: "Meticulously explore the full codebase for ways we might be able to refactor this prototype to reuse existing functionality, patterns, and services, with an eye towards maintainability by other teams." But that requires discipline, foresight, and clock-time.</p>
]]></description><pubDate>Fri, 10 Apr 2026 17:29:53 +0000</pubDate><link>https://news.ycombinator.com/item?id=47721244</link><dc:creator>btown</dc:creator><comments>https://news.ycombinator.com/item?id=47721244</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47721244</guid></item><item><title><![CDATA[New comment by btown in "EFF is leaving X"]]></title><description><![CDATA[
<p>I’d argue that learning about the effectiveness of AI models and techniques, benefits from voices with different contexts, as well as voices that may be differently aligned with bull vs. bear cases of macro AI strategy.<p>And those voices may be unequally represented in X for similar reasons - perhaps (somewhat) uncorrelated from politics, but simply due to the UX consequences of prioritizing commenters willing to pay the platform.</p>
]]></description><pubDate>Fri, 10 Apr 2026 17:12:42 +0000</pubDate><link>https://news.ycombinator.com/item?id=47721056</link><dc:creator>btown</dc:creator><comments>https://news.ycombinator.com/item?id=47721056</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47721056</guid></item><item><title><![CDATA[New comment by btown in "FBI used iPhone notification data to retrieve deleted Signal messages"]]></title><description><![CDATA[
<p>But you can do other things to mitigate this. For instance, give each app a set of rolling daily encryption keys, and encrypt new messages at rest. Remove the app, remove all keys. Nightly, remove the oldest key. Perhaps have the entire key database either stored in Secure Enclave, or if there isn't room, have the key database itself encrypted by a rotating single key in Secure Enclave. Now there's nothing that an attacker can do.</p>
]]></description><pubDate>Fri, 10 Apr 2026 15:28:01 +0000</pubDate><link>https://news.ycombinator.com/item?id=47719597</link><dc:creator>btown</dc:creator><comments>https://news.ycombinator.com/item?id=47719597</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47719597</guid></item><item><title><![CDATA[New comment by btown in "The Vercel plugin on Claude Code wants to read your prompts"]]></title><description><![CDATA[
<p>Gosh, Dan, in seeing your response here - I'm truly sorry I wrote this. While I still find opt-out telemetry distasteful and dangerous, I over-generalized to React in a hurtful way. You've been an incredible influence on me and I have the utmost respect for everything you've done. I've shown quite the opposite of respect in my writing, here.<p>For whatever it's worth on the RSC front: I, and many others used to "if there's a wire protocol and it's meant to be open, the bytes that make up those messages should be documented" were presented with a system, at the release time of RSC, that was incredibly opaque from that perspective. There's still minimal documentation about each bundler's wire protocol. And we're all aware of companies that have done this as an intentional form of obfuscation since the dawn of networked computing - it's  our open standards that have made the Internet as beautiful as it is.<p>But I was wrong to pin that on your team at Vercel, and I see that in the strength of your response. Intention is important, and you wanted to bring something brilliant to the world as rapidly as possible. And it is, truly, brilliant.<p>I should rethink how I approached all of this, and I hope that my harshness doesn't discourage you from continuing, through your writing, to be the beacon that you've been to me and countless others.</p>
]]></description><pubDate>Thu, 09 Apr 2026 19:53:04 +0000</pubDate><link>https://news.ycombinator.com/item?id=47708884</link><dc:creator>btown</dc:creator><comments>https://news.ycombinator.com/item?id=47708884</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47708884</guid></item><item><title><![CDATA[New comment by btown in "EFF is leaving X"]]></title><description><![CDATA[
<p>This would be true if the algorithm changes were limited to for-you feeds. But the larger problem is that the set of people willing to pay for X are boosted in replies. So if that set of people, which tends towards a certain political bias, is hostile towards a poster, that poster will be driven away from posting on X.<p>The net result is that X shows breaking news, in the same way that the (infamous) meme of bullet holes marked on the WWII plane only shows part of the story - the people who have departed the platform aren't posting, and thus X is only breaking news from a subset of people.<p>This might be fine for certain types of topics. For understanding the zeitgeist on culture and politics, though, you can't filter your way towards hearing from voices that are no longer posting at all.</p>
]]></description><pubDate>Thu, 09 Apr 2026 18:58:16 +0000</pubDate><link>https://news.ycombinator.com/item?id=47708128</link><dc:creator>btown</dc:creator><comments>https://news.ycombinator.com/item?id=47708128</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47708128</guid></item><item><title><![CDATA[New comment by btown in "Škoda DuoBell: A bicycle bell that penetrates noise-cancelling headphones"]]></title><description><![CDATA[
<p>"Dad, why do our coffee filters advertise that they can run fast fourier transforms?"<p>"Well, kid, back in the year 2026, there was this bicycle bell.."</p>
]]></description><pubDate>Thu, 09 Apr 2026 16:30:16 +0000</pubDate><link>https://news.ycombinator.com/item?id=47705752</link><dc:creator>btown</dc:creator><comments>https://news.ycombinator.com/item?id=47705752</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47705752</guid></item><item><title><![CDATA[New comment by btown in "The Vercel plugin on Claude Code wants to read your prompts"]]></title><description><![CDATA[
<p>To be sure, the problem isn't that the plugin injects behavior into the system prompt - that's every plugin and skill, ever.<p>But this is just such a breach of trust, especially the on-by-default telemetry that includes full bash commands. Per the OOP:<p>> That middle row. Every bash command - the full command string, not just the tool name - sent to telemetry.vercel.com. File paths, project names, env variable names, infrastructure details. Whatever’s in the command, they get it.<p>(Needless to say, this is a supply chain attack in every meaningful way, and should be treated as such by security teams.)<p>And the argument that there's no CLI space to allow for opt-in telemetry is absurd - their readme <a href="https://github.com/vercel/vercel-plugin?tab=readme-ov-file#installation" rel="nofollow">https://github.com/vercel/vercel-plugin?tab=readme-ov-file#i...</a> literally has you install the Vercel plugin by calling `npx` <a href="https://www.npmjs.com/package/plugins" rel="nofollow">https://www.npmjs.com/package/plugins</a> which is <i>written by a Vercel employee</i> and could add this opt-in at any time.<p>IMO Vercel is not a good actor. One could make a good argument that they've embrace-extend-extinguished the entire future of React as an independent and self-contained foundational library, with the complexity of server-side rendering, the undocumented protocols that power it, and the resulting tight coupling to their server environments. Sadly, this behavior doesn't surprise me.<p>EDIT: That `npx plugins` code? It's not on Github, exists only on NPM, and as of v1.2.9 of that package, if you search <a href="https://www.npmjs.com/package/plugins?activeTab=code" rel="nofollow">https://www.npmjs.com/package/plugins?activeTab=code</a> it literally sends telemetry to <a href="https://plugins-telemetry.labs.vercel.dev/t" rel="nofollow">https://plugins-telemetry.labs.vercel.dev/t</a> already, on an <i>opt-out</i> basis! I mean, you have to almost admire the confidence.</p>
]]></description><pubDate>Thu, 09 Apr 2026 16:18:17 +0000</pubDate><link>https://news.ycombinator.com/item?id=47705592</link><dc:creator>btown</dc:creator><comments>https://news.ycombinator.com/item?id=47705592</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47705592</guid></item><item><title><![CDATA[New comment by btown in "I ported Mac OS X to the Nintendo Wii"]]></title><description><![CDATA[
<p>Similarly, one of the great things about Python (less so JS with the ecosystem's habit of shipping minified bundles) is that you can just edit source files in your site_packages once you know where they are. I've done things like add print statements around obscure Django errors as a poor imitation of instrumentation. Gets the job done!</p>
]]></description><pubDate>Wed, 08 Apr 2026 20:26:05 +0000</pubDate><link>https://news.ycombinator.com/item?id=47695818</link><dc:creator>btown</dc:creator><comments>https://news.ycombinator.com/item?id=47695818</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47695818</guid></item><item><title><![CDATA[New comment by btown in "Muse Spark: Scaling towards personal superintelligence"]]></title><description><![CDATA[
<p>Benchmarks are meaningless until the pelican benchmark comes out: <a href="https://simonwillison.net/" rel="nofollow">https://simonwillison.net/</a></p>
]]></description><pubDate>Wed, 08 Apr 2026 20:09:03 +0000</pubDate><link>https://news.ycombinator.com/item?id=47695630</link><dc:creator>btown</dc:creator><comments>https://news.ycombinator.com/item?id=47695630</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47695630</guid></item><item><title><![CDATA[New comment by btown in "Muse Spark: Scaling towards personal superintelligence"]]></title><description><![CDATA[
<p>> ended up enabling groq<p>For those reading fast, this isn't a reference to SpaceX's Grok, this is Groq.com - with its custom inference chip, and offerings like <a href="https://groq.com/blog/introducing-llama-3-groq-tool-use-models" rel="nofollow">https://groq.com/blog/introducing-llama-3-groq-tool-use-mode...</a> and <a href="https://console.groq.com/landing/llama-api" rel="nofollow">https://console.groq.com/landing/llama-api</a></p>
]]></description><pubDate>Wed, 08 Apr 2026 20:05:53 +0000</pubDate><link>https://news.ycombinator.com/item?id=47695598</link><dc:creator>btown</dc:creator><comments>https://news.ycombinator.com/item?id=47695598</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47695598</guid></item><item><title><![CDATA[New comment by btown in "Škoda DuoBell: A bicycle bell that penetrates noise-cancelling headphones"]]></title><description><![CDATA[
<p>I think there's a broader indication of an arms race between noise cancellation systems and things that want to be heard, like advertising. And this just-happening-to-exist bandpass that the DuoBell is depending on could easily become collateral damage in that fight.</p>
]]></description><pubDate>Wed, 08 Apr 2026 20:00:39 +0000</pubDate><link>https://news.ycombinator.com/item?id=47695524</link><dc:creator>btown</dc:creator><comments>https://news.ycombinator.com/item?id=47695524</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47695524</guid></item><item><title><![CDATA[New comment by btown in "Škoda DuoBell: A bicycle bell that penetrates noise-cancelling headphones"]]></title><description><![CDATA[
<p>Right? This feels like an "arms race" similar to scraping vs. anti-scraping; countermeasures will be developed, likely due to the action of actors entirely disconnected from what you're doing, but to block something else in the ecosystem... and you'll need to re-engineer your approach entirely. Rinse and repeat.<p>(The amount of innovation in anti-anti-scraping that's resulted from "sneaker bots" - automated scalping of limited-edition shoe releases - is astounding, and somewhat relevant here in how an environment can become adversarial in ways that impact broad ecosystems. I suppose the equivalent here would be environmental ads that seek to penetrate noise-cancellation in a similar way.)<p>I suppose, though, that all this is good news for a company that wants to turn your bicycle bell into a subscription product!</p>
]]></description><pubDate>Wed, 08 Apr 2026 17:16:08 +0000</pubDate><link>https://news.ycombinator.com/item?id=47693246</link><dc:creator>btown</dc:creator><comments>https://news.ycombinator.com/item?id=47693246</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47693246</guid></item><item><title><![CDATA[New comment by btown in "Show HN: Tusk for macOS and Gnome"]]></title><description><![CDATA[
<p>Are the Gnome features planned to be ported to macOS? Frozen columns and cancelable queries are pretty vital things!</p>
]]></description><pubDate>Tue, 07 Apr 2026 03:43:45 +0000</pubDate><link>https://news.ycombinator.com/item?id=47670507</link><dc:creator>btown</dc:creator><comments>https://news.ycombinator.com/item?id=47670507</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47670507</guid></item><item><title><![CDATA[New comment by btown in "I won't download your app. The web version is a-ok"]]></title><description><![CDATA[
<p>PWAs were more than an experiment - they were even mentioned in Apple keynotes (IIRC). And sandboxing was every bit as stable as website sandboxing.<p>They were killed because app store operators realized they bypassed an ability to police payments that could not be monitored and (effectively) taxed.<p>This was a technology that could have been successful in any environment where a merchant's freedom-to-request-direct-payment was protected. In such an environment, it would have shifted incentives that apps now become a burden on developers as well as on Apple and Google's review processes, and PWAs would flourish.<p>But that's not the environment we were in! And arguably, even post Epic's litigation, we aren't fully.</p>
]]></description><pubDate>Mon, 06 Apr 2026 15:37:25 +0000</pubDate><link>https://news.ycombinator.com/item?id=47662314</link><dc:creator>btown</dc:creator><comments>https://news.ycombinator.com/item?id=47662314</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47662314</guid></item><item><title><![CDATA[New comment by btown in "The CMS is dead. Long live the CMS"]]></title><description><![CDATA[
<p>The same way coding agents don’t replace the need for an IDE, content generation needs to support arbitrary human-to-agent handoffs, where the human can say “this is the wrong direction, I sketched this change of what I want it to look like, see how it’s different and apply that pattern.”<p>And, in the broadest sense, that human interface is a CMS; the agent is just another editor, albeit one that happens to read and write raw data rather than using a WYSIWIG (or similar) editor.</p>
]]></description><pubDate>Sat, 04 Apr 2026 12:25:51 +0000</pubDate><link>https://news.ycombinator.com/item?id=47638441</link><dc:creator>btown</dc:creator><comments>https://news.ycombinator.com/item?id=47638441</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47638441</guid></item><item><title><![CDATA[New comment by btown in "Show HN: Apfel – The free AI already on your Mac"]]></title><description><![CDATA[
<p>FWIW this <i>was</i> the status quo (webpage could ping arbitrary ports but not read data, even with CORS protections) - but it is changing.<p>This is partially in response to <a href="https://localmess.github.io/" rel="nofollow">https://localmess.github.io/</a> where Meta and Yandex pixel JS in websites would ping a localhost server run by their Android apps as a workaround to third-party cookie limits.<p>Chrome 142 launched a permission dialog: <a href="https://developer.chrome.com/blog/local-network-access" rel="nofollow">https://developer.chrome.com/blog/local-network-access</a><p>Edge 140 followed suit: <a href="https://support.microsoft.com/en-us/topic/control-a-website-s-access-to-the-local-network-in-microsoft-edge-ef7eff4c-676d-4105-935c-2acbcd841d51" rel="nofollow">https://support.microsoft.com/en-us/topic/control-a-website-...</a><p>And Firefox is in progress as well, though I couldn't find a clear announcement about rollout status: <a href="https://fosdem.org/2026/schedule/event/QCSKWL-firefox-local-network-access/" rel="nofollow">https://fosdem.org/2026/schedule/event/QCSKWL-firefox-local-...</a><p>So things are getting better! But there was a scarily long time where a rogue JS script could try to blindly poke at localhost servers with crafty payloads, hoping to find a common vulnerability and gain RCE or trigger exfiltration of data via other channels. I wouldn't be surprised if this had been used in the wild.</p>
]]></description><pubDate>Fri, 03 Apr 2026 12:38:34 +0000</pubDate><link>https://news.ycombinator.com/item?id=47625989</link><dc:creator>btown</dc:creator><comments>https://news.ycombinator.com/item?id=47625989</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47625989</guid></item><item><title><![CDATA[New comment by btown in "LinkedIn is illegally searching your computer"]]></title><description><![CDATA[
<p>For what it's worth - and I'm not saying that LinkedIn is doing this for the right reasons - I can imagine a frontend QA team wanting to do this to understand how prominent certain extensions are for users of various parts of their product, correlating those extensions against frontend bug reports, and using that to guide QA procedures with real-world extension sets.<p>When you're literally the company that invented Kafka for your clickstreams, "everything looks like a nail."<p>(More likely, though, this is an anti-scraping initiative, since headless browsers are unlikely to randomize their use of extensions, and they can use this to identify potential scrapers.)</p>
]]></description><pubDate>Thu, 02 Apr 2026 20:00:19 +0000</pubDate><link>https://news.ycombinator.com/item?id=47619443</link><dc:creator>btown</dc:creator><comments>https://news.ycombinator.com/item?id=47619443</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47619443</guid></item><item><title><![CDATA[New comment by btown in "Chess in SQL"]]></title><description><![CDATA[
<p>One of the things that LLMs "excel" at, pun very much intended, is this exact pattern - creating filtered aggregates for a finite set of columns, and using this at the end of a CTE!<p>OP's example, for reference, was:<p><pre><code>    SELECT rank,
    MAX(CASE WHEN file = 1 THEN COALESCE(piece, '·') END) AS a,
    MAX(CASE WHEN file = 2 THEN COALESCE(piece, '·') END) AS b,
    MAX(CASE WHEN file = 3 THEN COALESCE(piece, '·') END) AS c,
    MAX(CASE WHEN file = 4 THEN COALESCE(piece, '·') END) AS d,
</code></pre>
This pattern is incredible for generating financial model drivers (where every column is a calendar/fiscal month/quarter/year, and every row is a different type of statistic/measure).<p>The broader pattern is, in successive CTEs:<p>1. Group by Date w/ Aggregates<p>2. "Melt" to [optional groupings +] month + measure_name + value tuples:<p><pre><code>    select group, month, '# Bookings' as measure_name, num_bookings as value from base_data
    UNION ALL
    select group, month, 'Revenue', total_revenue from base_data
</code></pre>
3. Then "pivot":<p><pre><code>    MAX(CASE WHEN month = '2019-01' THEN value END) AS "2019-01",
    MAX(CASE WHEN month = '2019-02' THEN value END) AS "2019-02",
    MAX(CASE WHEN month = '2019-03' THEN value END) AS "2019-03",
</code></pre>
And what you get is a full analysis table, with arbitrary groupings, that can be dropped into an Excel model in a way that makes life easy for business teams.<p>And while the column breakouts are painful to type out by hand - they're very amenable to LLM generation!</p>
]]></description><pubDate>Thu, 02 Apr 2026 01:05:13 +0000</pubDate><link>https://news.ycombinator.com/item?id=47608782</link><dc:creator>btown</dc:creator><comments>https://news.ycombinator.com/item?id=47608782</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47608782</guid></item><item><title><![CDATA[New comment by btown in "Universal Claude.md – cut Claude output tokens"]]></title><description><![CDATA[
<p>This is an amazing analysis! Thank you for running this :)</p>
]]></description><pubDate>Wed, 01 Apr 2026 19:28:32 +0000</pubDate><link>https://news.ycombinator.com/item?id=47605401</link><dc:creator>btown</dc:creator><comments>https://news.ycombinator.com/item?id=47605401</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47605401</guid></item><item><title><![CDATA[New comment by btown in "Axios compromised on NPM – Malicious versions drop remote access trojan"]]></title><description><![CDATA[
<p>It’s only a losing strategy if you assume everyone universally adopts the slow strategy, <i>and</i> no research teams spot it in the interim. For things with large splash radius, that’s unrealistic, so defenders have an information advantage.<p>Makes actual security patches tougher to roll out though - you need to be vigilant to bypass the slowdown when you’re actually fixing a critical flaw. But nobody said this would be easy!</p>
]]></description><pubDate>Tue, 31 Mar 2026 03:57:02 +0000</pubDate><link>https://news.ycombinator.com/item?id=47582582</link><dc:creator>btown</dc:creator><comments>https://news.ycombinator.com/item?id=47582582</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47582582</guid></item></channel></rss>