HNHacker News
TopNewBestAskShowJobs

cxr

5,558 karma · joined August 24, 2019

The original reason to start the project which I had―which was the Germans were a danger―started me off on a process of action, which was to try to develop […] the system in Princeton then at Los Alamos to try to make the bomb work. […] With any project like that, you continue to work trying to get success, having decided to do it. But what I did―immorally, I would say―was not to remember the reason that I said I was doing it. So that when the reason changed, which was that Germany was defeated, not the singlest thought came to my mind at all about that, that that meant now that I have to reconsider why I'm continuing to do this. I simply didn't think, okay?

-- Richard Feynman. Interview broadcast on BBC, 1981.

submissionscomments
cxr··on A new Go API for JSON
> there should be an easier way to "pin" a dependency, other than vendoring

You left out the part that explains why.

cxr··on Death Comes for XSLT
> there's just not much reason for it to be in the browser

Aside from the fact that it's a widely implemented, mature standard and the reason given in the article which happens to be one of the most important things in world of browsers ("Don't break the Web"), sure, there's no reason.

cxr··on The AI cost of JavaScript frameworks
> You're committing a fallacy here: You're assuming that not using the method/framework comes free or cheaper.

No, I'm not. Nowhere in my comment have I made that claim, nor is there any claim that could even be mistaken for trying to argue one way or the other. It's like you lack the ability see words on a page and understand what's actually being discussed in the remarks you're responding to. (This also explains why, when challenged on succumbing to the industry tendency to make all-vibes arguments instead of evidence—directly in the comments of the article that calls this out—your direct response to that is to restate your claims and arguments and avoid providing any evidence. It's always just hunches and attempts at inductive reasoning, all the time.)

cxr··on The AI cost of JavaScript frameworks
You're committing the very sin that the original article fingers as the problem with the webdev culture.

The evidence-free claim here (that with frameworks you end up spending less) is all "vibes"—or, put more charitably, a hunch plus some inductive reasoning. It's not a tested hypothesis.

The crux of your argument* is essentially "a + b > a for some non-zero b", where b represents what you are "paying for your library code". The right side of the relation is supposed to represent using a framework, but this neglects c, the cost paid for not using the Nike method ("Just Do It") when it comes to dealing with things yourself (i.e. the framework cost—which, like b, is never zero).

* as stated at least; it's possible and probable that you really don't mean to say that c simply doesn't exist but that b > c (either by intuition or experience or both) but that's still just a claim—which is the entire basis for the author's criticism: not whether frameworks are or aren't actually more cost-effective, but the greater meta-level concern described here in this comment, in the original piece, and other comments by the author and people like Alex Russell elsewhere describing how resistant the culture is towards the notion of attempting to prove or falsify these kinds of claims (if you can even manage to get people to agree to formulate them in such a way that they can actually be subjected to the scientific method)

cxr··on Roku developer repositories moved from GitHub to GitLab
HN is weird. My submission yesterday "Roku SceneGraph 2.0 SDK: Migrating to TypeScript" <https://news.ycombinator.com/item?id=50212170> (which also involves the not-inconsequential news that the new SDK is open source) is at least 10x more interesting but got almost no attention.
cxr··on Roku SceneGraph 2.0 SDK: Migrating to TypeScript
More info:

- RSG 2.0 SDK overview <https://gitlab.com/rokudev/rsg-sdk/-/blob/main/documentation...>, which includes the section "Why TypeScript"

- Announcement of Roku repositories moved from GitHub to GitLab <https://blog.roku.com/developer/gitlab-move>

cxr··on There is no official XScreenSaver GitHub repository
> You can still setup the mirror and be done with it, and put the original repo links at the top in the README

There is no original repo to link to. That's why the README says that there isn't one.

> Setting up a git mirror that auto syncs takes less than 2mins

Prove it.

cxr··on Tsc-ts: TypeScript written in TypeScript
The fact that language designers take into account things like efficiency (or ease) of potential implementations doesn't change the fact that performance is a property of the implementation. Languages don't perform. There's no such thing as a performant language.
cxr··on Tsc-ts: TypeScript written in TypeScript
That's because there's no such thing as a "performant language". A programming language is inert. It's notation. Programming languages don't get run. Binaries do.

The only thing that can be compared are language implementations. That a given implementation, such as GCC, has an excellent code generator that emits efficient code is saying something about how great that code generator is. It's not that the input language is inherently "performant"; C programs compiled with GCC and Clang are fast. The same program compiled with My Toy C Compiler, with none of the work that has gone into LLVM and the GCC backend, is going to have different runtime characteristics.

cxr··on Photopea creator weighs in on Photosuite project
When it comes to questions of copyright and the infringement of copyright, the small matter of whether or not infringement occurred is in fact not merely an inconsequential detail.
cxr··on Photopea creator weighs in on Photosuite project
<https://en.wikipedia.org/wiki/Motte-and-bailey_doctrine>
cxr··on The Slow Formation of Durable Software
I'm a big user and advocate of Zotero, but "it just works" is not a description that I'd say applies to it. It works kind of reasonably okay most of the time, and you get a feel for where and how you have to give a thump the times when it's not working the way it's supposed to, but it has its flaws. Unfortunately, it's also gotten harder to build, which means more difficult for people to get involved to contribute changes.
cxr··on The Slow Formation of Durable Software
> It's baffling actually that Firefox doesn't let you annotate bookmarks, it seems such an obvious feature.

There was a financial conflict of interest, since Mozilla Corp was selling Pocket subscriptions where the ability to even just be able to have an unlimited number of highlights was a premium feature.

Firefox has an experimental Tab Notes feature now: <https://support.mozilla.org/en-US/kb/tab-notes-firefox>

(In the Firefox heyday, the bookmarks manager had a Description field that could be repurposed for adding notes.)

cxr··on Photopea creator weighs in on Photosuite project
That's not the rub. We don't have to figure those things out here. The Photopea Offline repo that started this whole mess contains literal copies of the Photopea bundles/assets copied from the Photopea website.
cxr··on Photopea creator weighs in on Photosuite project
> The vast majority of license violations are just MIT or ASL projects whose license text got stripped in the minified deliverable.

"Just"? The requirement to retain verbatim copies of the license text and copyright notices is pretty much the whole point of those licenses. A downstream project that isn't following the terms of the license that it was offered under is violating the license, full stop.

(Side note: not a fan of the tribalism and reactionary tu quoque-y sentiments coming out in the comments here and in the linked comments on GitHub (which, to be fair, is predictably awful). If there are folks distributing unauthorized copies or derivative works of Photopea, those need to be taken down (or DMCAed). If Photopea itself is not in compliance with the licenses of its dependencies, it needs to be brought in compliance. Neither these things or nor some other acts undertaken by any of the persons involved cancels anything else out.)

cxr··on Photopea creator weighs in on Photosuite project
> It's much simpler to update a webpage than force every user to update their app when something needs to change.

The set of capabilities available to native desktop apps is a superset of the capabilities available to browser-based Web apps.* Ergo, if browser-based app distribution possesses some desirable quality, the same path is available** to a native app not built on W3C/WHATWG APIs.

* You can frequently come across people make a similar logical error in the opposite direction when it comes to being more distrusting of browser-based apps than native binaries, especially with an undue focus on the risk of the app exfiltrating your data over the network—even though a native binary can do strictly more damage than a browser-based app, which is at least confined to its sandbox and the associated execution model.

** It does require, though, that one actually take that path.

cxr··on Two Git ignore files nobody told me about
> Or, you could have a build system that does a 100% out-of-tree build

I'm not sure what effect you think properly functioning build scripts in my project(s) are going to have on the broken build systems encountered in other projects. Those broken build systems continue to be broken, despite my projects' build scripts continuing to work as expected. Please advise.

cxr··on RSS Feed Best Practices (2022)
Fun fact: even though "There is no authoritative resolution mechanism for tags" and they're "not designed to support resolution", you're totally allowed to resolve them anyway. You can, for example, bodge your server to do it at the HTTP level:

    GET tag:alice@example.net,2013:15fb-4628-94d3 HTTP/1.0

    HTTP/1.0 302 I love you
    Location: https://example.net/~alice/2025/11/03/go-vote
(You can even respond to requests to resolve other people's tag URIs that you didn't mint. No one is going to stop you.)
cxr··on Barcodes are about to go extinct
Instead, the URL should lead to the actual label in vector format, and most elements of the design should be clickable links.
cxr··on The death of web development education
> Web Development (1994-2025) will be remembered like elevator operators.

Good.

cxr··on Two Git ignore files nobody told me about
Boy, those pesky emotions! Surely that's the culprit here, and not self-assured HN commenters showing up to hand out /r/confidentlyincorrect-tier advice that still wouldn't address anyone's problem even if it did work.
cxr··on Two Git ignore files nobody told me about
Yeah, I don't know why you'd think, having taken care to add stuff to .git/info/exclude that doesn't belong in any commit that will make its way upstream (but nonetheless might be—and probably is—important work, maybe even the product of some non-trivial effort), that what I'd want is for it to be wiped out.

And `rm ./.gitignore` will, predictably, leave the tree without a ./.gitignore (i.e., the desired state) whereas `git status --ignore`, uh, won't.

cxr··on Two Git ignore files nobody told me about
I know they aren't because:

> The symlink creates what is effectively a version-controlled gitignore

No, it doesn't—like I already said. The ln(1) invocation you wrote is not going to work. As written, it contains two glaring errors obvious on sight to anyone who actually has enough experience with the particulars of /bin/ln and Git and how repos get populated with a default .git/info/exclude.

> My comment and the other replies show you how to use git

Oh, gee, thanks!

cxr··on Two Git ignore files nobody told me about
> So all your fellow devs do `ln -s contrib/gitignore ./git/info/exclude`?

I don't know you think that will do or how symlinks work, but it won't lead to anything relevant to this discussion. (To answer your question: no.)

cxr··on Two Git ignore files nobody told me about
Believe it or not, there are people whose interactions with software are not limited to projects that they wrote and have control over.
cxr··on The GitHub wiki is an anti-pattern (2022)
> I’ve never found the GitHub wiki experience to be particularly ergonomic.

That's because the original sin of GitHub "wikis" is that they weren't (and most of them still aren't) even wikis. There's this perverse thing that happened during the wiki age, where people unable or unwilling to get on board decided to just start calling things "wikis" even though they exemplify the very thing that the wiki was invented as a response to. The reckless debasing of the word then infected adjacent spaces. Sourcehut's "read-only wikis" (wat) aren't even designed to be edited in the browser; on Sourcehut, "Publishing your changes is as easy as committing them and pushing them upstream." Newsflash: That's not a wiki.

cxr··on Chopping up books when they're physically too big
What's being discussed is "original texts being surreptitiously revised". The comment you're responding to isn't a nonsequitur.
cxr··on Looking forward to Git 2.56 – and 3.0
What?
cxr··on Looking forward to Git 2.56 – and 3.0
Aside from memory safety, which is solved by using a compiler that just doesn't allow unsafe memory operations (so not GCC or Clang upstream), which CVEs specifically would have been ameliorated by a parser written in Rust instead of C?
cxr··on Jabber/XMPP: How Do We Gain Traction?
> People don't really sign up for protocols, they download apps.

This is both true and also if followed would fly in the face of what XMPP (and the Mastodon-flavored ActivityPub-powered fediverse of microblogs-and-more) is supposed to be about. And it's also both true and yet people understand what "email" means and how to use it without constantly and consistently running into issues trying to bang out a reply to alice@gmail.example even when the sender's inbox is hosted @yahoo.com—nor do folks spend much time thinking about how and why AT&T's SMSes (for example) are able to make their way to their friend's device even though they use Verizon (to give another example—and if they even know which provider their friend uses at all).

One thing that Jabber (and, later, Mastodon) did wrong was to take the unfortunate stance that it wouldn't be too big of a deal to adopt email-like identifiers without actually being email or implying that Internet-standard email services are available; it was felt that users would just be smart enough to adapt to it. This was a mistake.

The confusion with email, though, can be exploited as useful momentum—something that the network has going for it, instead of a flaw.

If the author and the rest of the Jabber/XMPP community wants the public to "give Jabber/XMPP a shot", then it probably does need (a) a flagship instance (a la mastodon.social) that controls multiple domains (the way that many email providers like Runbox or Fastmail do) and requires the user to pick which one they want their handle to be associated with at signup, in order to introduce email-like decentralization to the userbase as early as possible, and that (b) raises the bar by setting a standard among Jabber/XMPP instances and actually offering email services to that userbase (prior art: Google married (XMPP-based) Gtalk with Gmail in the early days).

While undertaking all of this, an effort to update the XMPP protocol (a la JMAP, but in a backwards-compatible way) while simultaneously reconciling it with legacy email (also in a backwards-compatible way) wouldn't hurt—where "backwards-compatible" here means "to gracefully degrade and provide a fallback" (prior art: Delta Chat).

Page 1 of 34Next →