<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: cxr</title><link>https://news.ycombinator.com/user?id=cxr</link><description>Hacker News RSS</description><docs>https://hnrss.org/</docs><generator>hnrss v2.1.1</generator><lastBuildDate>Mon, 25 May 2026 00:28:57 +0000</lastBuildDate><atom:link href="https://hnrss.org/user?id=cxr" rel="self" type="application/rss+xml"></atom:link><item><title><![CDATA[New comment by cxr in "Build Adafruit projects right from Firefox"]]></title><description><![CDATA[
<p>That's a start at improving something.  But it won't rid itself of the Playskool/Fisher-Price gimmick factor or have any lasting effect until we can convince JS developers to write their own tools in a standards-compliant dialect and use standardized APIs so that contributors can use the runtime they already have installed instead of being cajoled and browbeaten into installing NodeJS or Bun or Deno or whatever to do what the browser runtime is perfectly capable of: opening a project directory, executing the code comprising the build script, and outputting the build artifacts when it's done.</p>
]]></description><pubDate>Sun, 24 May 2026 18:04:09 +0000</pubDate><link>https://news.ycombinator.com/item?id=48259579</link><dc:creator>cxr</dc:creator><comments>https://news.ycombinator.com/item?id=48259579</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48259579</guid></item><item><title><![CDATA[New comment by cxr in "Moving away from Tailwind, and learning to structure my CSS"]]></title><description><![CDATA[
<p>What?</p>
]]></description><pubDate>Sun, 17 May 2026 17:51:39 +0000</pubDate><link>https://news.ycombinator.com/item?id=48171276</link><dc:creator>cxr</dc:creator><comments>https://news.ycombinator.com/item?id=48171276</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48171276</guid></item><item><title><![CDATA[New comment by cxr in "The Third Hard Problem"]]></title><description><![CDATA[
<p>This is an independent riff on an argument Ted Nelson wrote down 50 years ago (and the reason why he coined the term "hypertext").<p><<a href="https://en.wikipedia.org/wiki/Computer_Lib/Dream_Machines" rel="nofollow">https://en.wikipedia.org/wiki/Computer_Lib/Dream_Machines</a>><p><<a href="http://link.springer.com/10.1007/978-3-319-16925-5" rel="nofollow">http://link.springer.com/10.1007/978-3-319-16925-5</a>></p>
]]></description><pubDate>Sun, 17 May 2026 14:12:55 +0000</pubDate><link>https://news.ycombinator.com/item?id=48169089</link><dc:creator>cxr</dc:creator><comments>https://news.ycombinator.com/item?id=48169089</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48169089</guid></item><item><title><![CDATA[New comment by cxr in "Moving away from Tailwind, and learning to structure my CSS"]]></title><description><![CDATA[
<p>> the class="" property is in the HTML and that is the styling info<p>The class attribute (not "property") is in the HTML because it's part of HTML.  It's markup.  Element classes weren't created either by or for the CSS people when CSS came along.  The class attribute predates CSS by years and has no more relation to "styling info" than the id attribute does.</p>
]]></description><pubDate>Sun, 17 May 2026 13:50:10 +0000</pubDate><link>https://news.ycombinator.com/item?id=48168913</link><dc:creator>cxr</dc:creator><comments>https://news.ycombinator.com/item?id=48168913</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48168913</guid></item><item><title><![CDATA[New comment by cxr in "Show HN: Epiq – Distributed Git based issue tracker TUI"]]></title><description><![CDATA[
<p>> How can the browser execute git commands from opening a local html file?<p>It can't.  The CONTRIBUTING.html shell would spit out a file and tell the user what Git commands need to be run—just like project READMEs (or landing pages like jekyllrb.com) show which commands will install the tool.</p>
]]></description><pubDate>Sat, 16 May 2026 20:53:27 +0000</pubDate><link>https://news.ycombinator.com/item?id=48163707</link><dc:creator>cxr</dc:creator><comments>https://news.ycombinator.com/item?id=48163707</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48163707</guid></item><item><title><![CDATA[New comment by cxr in "Show HN: Epiq – Distributed Git based issue tracker TUI"]]></title><description><![CDATA[
<p>I am one of ~3 people primarily responsible for the JS Reference as it appeared/appears on developer.mozilla.org since before NodeJS (or V8) ever existed.  I "know what JavaScript is".</p>
]]></description><pubDate>Sat, 16 May 2026 13:12:09 +0000</pubDate><link>https://news.ycombinator.com/item?id=48159974</link><dc:creator>cxr</dc:creator><comments>https://news.ycombinator.com/item?id=48159974</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48159974</guid></item><item><title><![CDATA[New comment by cxr in "Project Gutenberg – keeps getting better"]]></title><description><![CDATA[
<p>Like the Project Gutenberg collection on archive.org, the ZIMs are only current up to 2018.</p>
]]></description><pubDate>Sat, 16 May 2026 12:49:57 +0000</pubDate><link>https://news.ycombinator.com/item?id=48159797</link><dc:creator>cxr</dc:creator><comments>https://news.ycombinator.com/item?id=48159797</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48159797</guid></item><item><title><![CDATA[New comment by cxr in "Show HN: Epiq – Distributed Git based issue tracker TUI"]]></title><description><![CDATA[
<p>There is no argument or insight in your comment.  It's physically possible to type in code that makes direct use of non-standard APIs that work in NodeJS but not the browser.  Pointing out that this is so and that there are people who do it is not the same as engaging with the subject of whether they ought not to—which was the point of the remarks you responded to.  Previously:<p>> <i>You're offering a retort to someone who is communicating their position that you ought not do something, where the retort consists of nothing more than explaining that people are doing it.  Yes, clearly.  But what the person you're responding to is arguing is that </i>you ought not do it.<i>¶ Consider[…]:</i><p>> <i>Person A: Here's little advice: don't take up smoking. Smoking is bad for you.</i><p>> <i>Person B: Yet people smoke</i><p><<a href="https://news.ycombinator.com/item?id=38712699">https://news.ycombinator.com/item?id=38712699</a>></p>
]]></description><pubDate>Sat, 16 May 2026 11:46:31 +0000</pubDate><link>https://news.ycombinator.com/item?id=48159302</link><dc:creator>cxr</dc:creator><comments>https://news.ycombinator.com/item?id=48159302</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48159302</guid></item><item><title><![CDATA[New comment by cxr in "Show HN: Epiq – Distributed Git based issue tracker TUI"]]></title><description><![CDATA[
<p>You don't need to put it on the Web to be able to leverage the World Wide Wruntime.<p>Epiq looks to be written in TypeScript and distributed as JS via NPM.  You know what excels at executing JS?  The browser.<p>If you want to actually address the usability problems—then create a CONTRIBUTING.html—linked from the README, that users are instructed to double-click to open (i.e. launch in the browser on any sanely configured system).  From there, they can/should be able to load the project either by pointing to it with a filepicker-based workflow that's the same as VSCode's "Open Folder…" workflow, or by dragging and dropping the source tree into the browser window.  If you do it right, then this should immediately present them with a browser-based UI for poring over and interacting with all the Epiq data in the repo—down to the Git commands to execute to integrate changes into the Epiq "database".<p>It's beyond baffling that so many programmers who are nominally JS developers thumb their noses at writing standards-compliant code and instead <i>insist</i> on coding directly against Node's proprietary APIs.</p>
]]></description><pubDate>Sat, 16 May 2026 04:57:09 +0000</pubDate><link>https://news.ycombinator.com/item?id=48156959</link><dc:creator>cxr</dc:creator><comments>https://news.ycombinator.com/item?id=48156959</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48156959</guid></item><item><title><![CDATA[New comment by cxr in "GitHub is sinking"]]></title><description><![CDATA[
<p>> DigitalOcean App platform[…] only connect to GitHub<p>They also support deployments from GitLab (so long as you're using the gitlab.com-hosted instance and not a self-hosted GitLab instance).  If you've deployed your own self-hosted forge, then you can connect DigitalOcean App Platform to it by using gitlab.com as a bridge—register an account on gitlab.com once and instruct your self-hosted forge to replicate copies to gitlab.com.  You don't really need to actually <i>use</i> GitLab.<p>Having said that, considering that DigitalOcean is in the business of selling IaaS/PaaS, it's loony that they don't let you connect to, say, your own self-hosted Forgejo running on their infrastructure…<p>(Indeed, considering how many people would like to self-host their own forge but how few people want to actually set up and do admin for it, it's loony that DigitalOcean doesn't pick up, say, Forgejo and/or an alternative and offer a sharply discounted (e.g. $20/year) quasi-managed one-click deployment option with first-class support for connecting to their App Platform.)</p>
]]></description><pubDate>Sun, 10 May 2026 19:45:48 +0000</pubDate><link>https://news.ycombinator.com/item?id=48087151</link><dc:creator>cxr</dc:creator><comments>https://news.ycombinator.com/item?id=48087151</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48087151</guid></item><item><title><![CDATA[New comment by cxr in "The agent principal-agent problem"]]></title><description><![CDATA[
<p>This post highlights but never explicitly addresses the current language trend that involves the corruption of the word "agent" to imply ChatGPT- and Anthropic-era AI.<p>It also speculates on the practices at Microsoft in its opaqueness but doesn't recognize the development methodology used for Linux despite its transparency or acknowledge how it differs from the pilloried code review that the audience is most familiar with—even though the kernel development project is the cradle for the VCS that everyone decided to use (but also to never use correctly).<p>Overall, there aren't really any insights here.  The solution described just highlights that high-trust teams are composed of members that (are|can be) trusted by one another.  But being on that kind of team is a luxury.  The introduction of coding agents doesn't change anything.  Take out the LLM-powered patch iteration, and it works for all the reasons it already worked before the advent of coding agents.  It's a little like the obliviousness-to-privilege of folks who try to address the problems of people who experience poverty with advice that reduces down to the question, "Have you tried <thing that precludes someone who is poor>?"</p>
]]></description><pubDate>Sun, 10 May 2026 12:31:28 +0000</pubDate><link>https://news.ycombinator.com/item?id=48083473</link><dc:creator>cxr</dc:creator><comments>https://news.ycombinator.com/item?id=48083473</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48083473</guid></item><item><title><![CDATA[New comment by cxr in "Debian must ship reproducible packages"]]></title><description><![CDATA[
<p>ECMA-262 doesn't require the use of NPM or NodeJS.  (In fact, they are at odds, even 10+ years after modules were standardized in ES6.)</p>
]]></description><pubDate>Sun, 10 May 2026 12:14:16 +0000</pubDate><link>https://news.ycombinator.com/item?id=48083350</link><dc:creator>cxr</dc:creator><comments>https://news.ycombinator.com/item?id=48083350</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48083350</guid></item><item><title><![CDATA[New comment by cxr in "Using Claude Code: The unreasonable effectiveness of HTML"]]></title><description><![CDATA[
<p>> PS: <i>Really</i> cool static site generators that shoot for simplicity don't require you to create extra template files written in a new, made-up template language. When you want to create a new post, you give it (a) the static files from your existing site and (b) the markdown for your new post. The "templating" engine inspects your existing posts (incl. e.g. class attributes) and then copies the same document structure into a new file, except with the right stuff (timestamp, title and heading, post content...) substituted in to the places where it's supposed to go.<p><<a href="https://news.ycombinator.com/item?id=30961588">https://news.ycombinator.com/item?id=30961588</a>></p>
]]></description><pubDate>Sun, 10 May 2026 00:26:12 +0000</pubDate><link>https://news.ycombinator.com/item?id=48079721</link><dc:creator>cxr</dc:creator><comments>https://news.ycombinator.com/item?id=48079721</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48079721</guid></item><item><title><![CDATA[A new suite of modern tools coming for editing and publishing RFCs]]></title><description><![CDATA[
<p>Article URL: <a href="https://www.ietf.org/blog/new-tools-coming-for-editing-and-publishing-rfcs/">https://www.ietf.org/blog/new-tools-coming-for-editing-and-publishing-rfcs/</a></p>
<p>Comments URL: <a href="https://news.ycombinator.com/item?id=48064709">https://news.ycombinator.com/item?id=48064709</a></p>
<p>Points: 2</p>
<p># Comments: 0</p>
]]></description><pubDate>Fri, 08 May 2026 15:40:11 +0000</pubDate><link>https://www.ietf.org/blog/new-tools-coming-for-editing-and-publishing-rfcs/</link><dc:creator>cxr</dc:creator><comments>https://news.ycombinator.com/item?id=48064709</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48064709</guid></item><item><title><![CDATA[New comment by cxr in "Maybe you shouldn't install new software for a bit"]]></title><description><![CDATA[
<p>> That breaks if the library uses build scripts<p>Uh… no.<p>> setting up native binaries, or native modules linked against the specific Node version<p>So the majority of projects—those that don't use binary NodeJS modules—don't have a reason for sidestepping the primary VCS and going along with npm's shoddily designed overlay version control approach?<p>> However, I would just stick with regular pnpm and installs.<p>You're not answering the question.  npm isn't bedrock, and pnpm certainly isn't.  If you're going to introduce (mandate) the use of a tool in the workflow, you should be able to justify it by explaining your rationale for introducing it (and making everyone deal with the associated costs).  You should at minimum be able to provide a lucid explanation of the tradeoffs.  For good measure, you should be able to disprove the "NPM Null Hypothesis"; you should be able to state a straightforward answer to the question, "<i>What problem is this supposed to be solving?</i>"</p>
]]></description><pubDate>Fri, 08 May 2026 13:40:00 +0000</pubDate><link>https://news.ycombinator.com/item?id=48062987</link><dc:creator>cxr</dc:creator><comments>https://news.ycombinator.com/item?id=48062987</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48062987</guid></item><item><title><![CDATA[New comment by cxr in "Maybe you shouldn't install new software for a bit"]]></title><description><![CDATA[
<p>> In this case what’s needed is „npm ci“ instead of „npm install“ or better „pnpm install —frozen-lockfile“.<p>The grugbrain developer says, "I can use git-add to keep a version controlled copy of the library in my app's source tree with no extra steps after git-clone."<p>(Pop quiz: what problem were the creators of NPM's lockfile format trying to solve?)</p>
]]></description><pubDate>Fri, 08 May 2026 12:16:24 +0000</pubDate><link>https://news.ycombinator.com/item?id=48061997</link><dc:creator>cxr</dc:creator><comments>https://news.ycombinator.com/item?id=48061997</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48061997</guid></item><item><title><![CDATA[New comment by cxr in "Introduction to Atom"]]></title><description><![CDATA[
<p>(2005)<p><<a href="https://github.com/w3c/feedvalidator/commit/8ca2fd4e5a52015887799c347d8edcbcf4f6ac75" rel="nofollow">https://github.com/w3c/feedvalidator/commit/8ca2fd4e5a520158...</a>></p>
]]></description><pubDate>Mon, 04 May 2026 14:30:06 +0000</pubDate><link>https://news.ycombinator.com/item?id=48009254</link><dc:creator>cxr</dc:creator><comments>https://news.ycombinator.com/item?id=48009254</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48009254</guid></item><item><title><![CDATA[Don't fly if you can help it]]></title><description><![CDATA[
<p>Article URL: <a href="https://michaelbluejay.com/airfare/dontfly.html">https://michaelbluejay.com/airfare/dontfly.html</a></p>
<p>Comments URL: <a href="https://news.ycombinator.com/item?id=48003508">https://news.ycombinator.com/item?id=48003508</a></p>
<p>Points: 4</p>
<p># Comments: 2</p>
]]></description><pubDate>Mon, 04 May 2026 01:17:04 +0000</pubDate><link>https://michaelbluejay.com/airfare/dontfly.html</link><dc:creator>cxr</dc:creator><comments>https://news.ycombinator.com/item?id=48003508</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48003508</guid></item><item><title><![CDATA[New comment by cxr in "Show HN: Piruetas – A self-hosted diary app I built for my girlfriend"]]></title><description><![CDATA[
<p>Since this is largely/almost entirely for private data with occasional publicly accessible content through share links, this is a good candidate to be rebased onto remoteStorage, which gives you auth and storage for free, and there's always an escape hatch for the user to have access to their data—and permit other apps to access it, too.<p><<a href="https://remotestorage.io/" rel="nofollow">https://remotestorage.io/</a>></p>
]]></description><pubDate>Sat, 02 May 2026 14:53:41 +0000</pubDate><link>https://news.ycombinator.com/item?id=47986921</link><dc:creator>cxr</dc:creator><comments>https://news.ycombinator.com/item?id=47986921</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47986921</guid></item><item><title><![CDATA[New comment by cxr in "LinkedIn is scanning browser extensions"]]></title><description><![CDATA[
<p>> Wasn't this specifically some lame-ass attempt to combat some click fraud or something these extensions were doing?<p>No.  That you believed that was just an unfortunate consequence of HN's kneejerk tendency to upvote middlebrow dismissals to the top comment, which resulted in people rushing to craft apologetics for what is in reality bonafide scumminess on LinkedIn's part, which itself resulted in confabulations like the claim that, "It was all extensions related to spamming and scraping LinkedIn last time this was posted"—which is simply untrue.</p>
]]></description><pubDate>Thu, 30 Apr 2026 21:42:29 +0000</pubDate><link>https://news.ycombinator.com/item?id=47968592</link><dc:creator>cxr</dc:creator><comments>https://news.ycombinator.com/item?id=47968592</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47968592</guid></item></channel></rss>