MurphyA/hacker-news huggingface dataset:
by ryao | 2025-04-16 09:21:17+00:00
Not everything. See the features that C++ refuses to support. Beyond that, there is no compiler flag to stop requiring explicit casts of void pointers before assigning them.

Furthermore, less is more. You get faster build times with C because it does not support all of the features C++ has. Just because you can do it in C++ does not mean you should.

I used C++ for one of my first projects for a startup in health care and I really wish I had not. C++ made development a hellish experience as I spent most of it on fighting the compiler to be able to use every C++ language feature I could imagine and not enough on actual issues. It easily doubled development time since I spent most of it on things that only existed because C++ had overcomplicated everything (e.g. reference versus pointer, public versus private, shoehorning OOP into places it did not belong, operator overloading, templates, etcetera). This was during my initial attempt at graduate studies and after ruining a semester because of it (this had been intended to be a part time thing), I parted ways with the company. The C++ daemon went on to be the heart of the company, despite the lingering bugs.

I ended up fixing the remaining issues as a consultant years later, but eventually, I realized that everything would have been better had I not used C++ in the first place. There are times when I fantasize about rewriting it in C. One of these days, I might actually do that for the company for free if only to put an end to a mistake of my youth. Unfortunately, now that I have fixed the daemon, it has the advantage of being a mature, reliable codebase, so it is difficult to justify a rewrite.

That said, despite my complaints about the effect C++ had on development, I did a number of things right when architecting that daemon. The lingering bugs turned out to be trivial and it has scaled with the company for 13 years with no end in sight. When it finally is replaced, the reason will likely be that it did not support HA, rather than some inability to scale. My younger self had refrained from pursuing HA since it seemed infeasible to do within the spare time I had during a single semester.
by john_the_writer | 2025-04-16 09:21:35+00:00
Really, I'd rather see a lock option on bio-metrics. Use my right index finger and it unlocks. Use my thumb and it disables all bio-metrics. Since cops can make you press your finger to the pad (in the US and a few other places), make it so it deep locks the phone if use use the "wrong" finger.

I'd set it to unlock with my middle finger and deep locks with either of my index fingers, or my thumbs. Even allow different pins when in deep lock.
by loige | 2025-04-16 09:21:39+00:00
Thanks for the thoughtful write-up—always interesting to revisit JavaScript's quirks and strengths through someone else's lens.

That said, I think a few of the issues highlighted, while valid, might not be as disruptive in modern practice as they used to be. For instance, the typeof null === "object" behavior is certainly unfortunate, but it's well-understood at this point, and most tooling/linting setups help you avoid tripping over it. Similarly, Array.prototype.sort() sorting lexicographically by default feels odd until you remember JavaScript’s history as a primarily string-focused scripting language. These days, providing a comparator is second nature for most devs working with numeric arrays.

The point about accidentally declaring globals is a good one—but thankfully, with ES modules, use strict as the default, and tools like TypeScript, it’s much harder to make that mistake in modern codebases.

That said, I really appreciate the focus on JavaScript’s virtues, like closures, async/await, and overall flexibility—those really are part of what makes the language so enjoyable despite its rough edges.

I'm curious—have you built or maintained any large-scale JavaScript or TypeScript codebases recently? If so, what were the biggest pain points you ran into? Do the quirks you mention tend to surface in real-world projects at scale, or are they more theoretical annoyances that pop up in isolated cases?

There are definitely still many challenges in the language, but the ecosystem has come a long way, and it seems like it's still evolving in the right direction. Hopefully JavaScript keeps improving—both in language design and developer ergonomics—without losing what makes it so approachable in the first place.
by fabian2k | 2025-04-16 09:22:12+00:00
It is a lot more than 15% cuts. The latest numbers I saw about grant approvals were something like only half of the number of approved grants compared to the same timeframe last year. On top of that you have the cap of indirect costs at 15%, which is alone more than what you describe. And on top of that are the other ways they are interfering with research, e.g. by the draconic spending limits on credit cards and other arbitrary ways they are blocking money from getting spent.
by nosianu | 2025-04-16 09:23:33+00:00
Or they wanted this, because this could be part of the privatization of many government functions. They, or at least some of them, could see this as controlling this function for money. It's a regular stream too, the valuable subscription model and customers who really need the service (and if they don't, just add a new law in the name of IT security forcing firms to sign up).
by quietbritishjim | 2025-04-16 09:25:27+00:00
> no commonly used high level language supports the coroutine call primitive

Shows how old this post is. In fact I remember reading it well over 10 years ago, maybe more like 20. archive.org says that it's at least as old as 2001. A great article.

I'm very excited to see he's published a new article on C++20 coroutines. I've read (or maybe skimmed...) a few introductions and not really got them, despite having used C# and Python coroutines a lot with no problems (even making changes to an async runtime for Python). Given how clear his C coroutine article is, I'm optimistic about the C++ article.

> So, after the course, I went away and studied on my own, and wrote the introduction to C++ coroutines that I’d have liked to see.

https://www.chiark.greenend.org.uk/~sgtatham/quasiblog/corou...
by timewizard | 2025-04-16 09:26:17+00:00
> relied so heavily

One grant started in 1987 and has extensions running into 2027 for dozens of different sub-projects. Total award so far has been $13.1m. The other grant is for up to $800k over 5 years for 5 student positions ostensibly worth $32k per year. The YCRC seems to be funded directly by Yale.

https://www.highergov.com/grant/T32GM145452/

https://www.highergov.com/grant/T15LM007056/

> sing ideologically pure songs for dear Leader.

Hot take; however, perhaps the energy put into this ideological signalling could be better spent on working to solve what is a relatively small problem.
by thrance | 2025-04-16 09:26:30+00:00
Fair enough, I am simply baffled that some people can still believe the threat to science comes from the left in the face of an overwhelming and unprecendented anti-science crusade from the right. Now I wonder what the current administration would need to do for you to change your mind. Behead scientists? They're already detaining them, so that's the next logical step.
by mdp2021 | 2025-04-16 09:26:53+00:00
(I cleaned the title (which used bursts case for the "privacy" bit), which seemed in ambiguous, not really justified bad taste.)

I wanted to note the paradox:

-- when you train a "conscious" mind, it has to be protocolar: "I saw John yesterday doing that"; "I read in this manual that John Adams died on July 4"; "My grandmother told me about those events in the war" - otherwise, its untracked notions will be even more "hearsay".

-- current NN training appears still focused on statistical language analysis, and not yet on (practical) theories of knowledge... And paradoxically by attempting to improve the system through eavesdropping, the protocolar principle (proper of "read a good book") is dropped for decency.
by dcow | 2025-04-16 09:27:40+00:00
Are you from the US? In the last 15 years it has become impossible for two people to reasonably disagree over political positions because of how much vitriol is thrown around on the attention markets—even if both individuals themselves are rather tame. When having an otherwise normal political opinion makes you a racist bigot or a beta cuck because the opposition is so determined to get their way at any cost, no, you can’t just talk politics at work and have a cohesive team. Someone will feel oppressed.

Work is about making money. Politics is a distraction unless there’s an issue that directly affects the business. Then it’s fair game. Like this one. Many teams of individuals will have to figure out how to navigate this situation so discussing it in context is apropos and can be done objectively.
by quietbritishjim | 2025-04-16 09:31:30+00:00
> > cast a `struct Foo*` into a `struct Bar*` and access the Foo through it (in practice we teach this as the "strict aliasing" rules, and that's how all(?) compilers implement it, but that's not what §6.5 paragraph 7 of the standard says!)

> Use the union type. Abusing it for aliasing violates the standard too, but GCC and Clang implement an extension that permits this. Alternatively, just allocate a char array and cast it as you please. Strict aliasing does not apply to char arrays if I recall.

I could be misreading, but you seem to be implying that you can trick the aliasing rules by casting Foo* to char* and then cast the char* to Bar*, but that still violates the rule. Even a union isn't allowed as a way of aliasing, but as you say it's often allowed in practice and is heavily used in the Linux kernel (and Linus has made his opinion on this part of the language standard very clear).

In theory, the right way to access the bits of a Foo as a Bar is to memcpy to a fresh Bar object, and then memcpy back if you want to update the original variable. The compiler is then allowed to optimise this into a direct access of the bits.
by cruzcampo | 2025-04-16 09:32:10+00:00
We can also say "no" to both when it comes to satellite internet because we have our own solution that's being deployed right now.

https://www.reuters.com/technology/space/eutelsat-succeeds-w...

And yes, the transition will be painful. But it'll also allow the EU to position itself as the de-facto world economic superpower. Von der Leyen alluded to it here:

> 13% of global trade is with the United States. That's a lot. 87% of the world's trade is with other countries. And they all want predictability and reliable rules. Europe can deliver that. We must now use this momentum to open up new markets for our companies and establish as close a relationship as possible with many countries that have the same interests as us.

https://www.zeit.de/politik/2025-04/ursula-von-der-leyen-eu-...
by phtrivier | 2025-04-16 09:33:16+00:00
Please read Isaacson biography of Musk.

The "Musk algorithm" is described in detail, and can be summed up as a "reverse Chesterton's fence"

"If you are not forced to reinstitute 10% of the rules you slashed, you have not slashed enough".

What happens while the 10% are slashed is left as an exercise to the voter.

Hopefully, the cve db will be deemed part of the 10%.
by sph | 2025-04-16 09:34:04+00:00
Stupid question for colour-blind gamers: why do accessibility options in games remove and mute colours to simulate colour blindness types? (i.e. protanopia, deuteranopia, etc.)

I imagine if you can’t perceive some colours, you want hue shift or boost, not to actually remove colours so it looks like what you already are seeing. Feels a bit like muting all sounds to help one with auditory deficiencies. What am I missing here?
by JCharante | 2025-04-16 09:34:38+00:00
> it probably is an anomaly that this was government funded. All of private tech relies on it, and private tech is big enough to pay for it.

I mean doesn't big tech and the people they give salary money to pay taxes? Ground transportation companies rely on public roads and but we fund it because having the infrastructure is an economic multiplier.

I'm not arguing in favor of funding the CVE program, I just don't think that's a good reason.
by makeitdouble | 2025-04-16 09:34:56+00:00
I feel we're in the golden age where the format matters so much less.

Taking "99% invisible" for instance, the content in the podcast, on the web or in a book are fundamentally the same level of quality and interest.

Then light novels are pushing the boundaries of what novel literature should look like and we get hundred page books formated as SMS conversations or with ASCII art like layout without much issues.

And on the other end interview and reporting shows are becoming way more researched than the bog standard columns in printed magazines.

Patreon is behind a lot of this change, allowing money to flow to creators whatever their medium, and I'm all for it.
by aurareturn | 2025-04-16 09:35:22+00:00
China has realized this, and that's what it's pivoting toward. Having learned last three decades from the US/Europe model, they are now intent on moving up the eco ladder, and fully competing with them.

You mean countries just want to move up in the value chain and their citizens don't want to work in factories forever?

China hasn't realized anything. It's just natural progression for any country's development.
by robertlagrant | 2025-04-16 09:35:32+00:00
> This sounds like looking for lemonade in a genocide.

It really doesn't. This level of catastrophising has no point. It would be nice if CVE continued to exist, but it wasn't close to perfect, and perhaps it can continue in another form. There's no particular reason the US taxpayer has to sponsor global security threat tracking any more than any other taxpayer or customer.
by timeon | 2025-04-16 09:37:35+00:00
> I haven't been happier online in the last 10 years than after I stopped checking social media. And in that miserable time it wasn't even a naked beg for training data like this.

Meta/Twitter/etc. are drug dealers.

> But I really don't see why anyone would even use an open ai "social network" in the first place.

I really don't see why anyone would even use Heroin yet they do.
by Sonnigeszeug | 2025-04-16 09:38:48+00:00
Its not a money problem, its a understanding problem.

Shouldn't the most powerful country has something like this? Being even in the forefront of it?

The USA was doing cyberprotection against Russia and cyberattacks across the world.

Now suddenly it doesn't need it anymore?

Like just did Russia go away (or has russia won and sits now in the white house)?
by makeitdouble | 2025-04-16 09:39:05+00:00
For non fiction it's I think audiobooks are a no-brainer.

For fiction, having a narrator's voice brings a social context and coloration that might not be appreciated, but when the choice is between not finishing a book (= not buying any sequel any other book after that) or getting a slightly different experience, I'd take the latter, and I think the market is better for it.
by lucumo | 2025-04-16 09:39:12+00:00
There are quite a few services like that. Though they resemble video-streamers a bit more, in that not everything is available everywhere. There's a lot of books that are only available in certain countries, and also a lot of books that are only available on certain services.

I use Storytel myself. It's available in many countries. I think it's one of the best services out there for the unlimited listeners.
by jeppester | 2025-04-16 09:40:00+00:00
I was immediately thinking of inertia.js.

Inertia is "dumb" in that a component can't request data, but must rely on that the API knows which data it needs.

RSC is "smarter", but also to it's detriment in my opinion. I have yet to see a "clean" Next project using RSC. Developers end up confused about which components should be what (and that some can be both), and "use client" becomes a crutch of sorts, making the projects messy.

Ultimately I think most projects would be better off with Inertia's (BFF) model, because of its simplicity.
by thrance | 2025-04-16 09:41:07+00:00
From my previous comment:

> I never pretended that Nazi Germany was an ally of Israel or Jews or whatever. Simply that at some point in history, Nazis and Zionists shared a single interest. Do you debate this too?

This is huge waste of time. You have made up your mind: I am a rabid anti-semite for some reason. Why? What can you possibly gain by alienating me?

I have been to anti-racism marches including marches against anti-semitism. You barely know me but insist I am using "basic anti-semitic rhetoric". I fear there's nothing I could say that would change your mind on such a ridiculous and disgusting mischaracterization of my person. Goodbye.
by humanrebar | 2025-04-16 09:41:22+00:00
I was making a narrow comment that you can turn on VLAs, off exceptions, etc., with C++ flags on publicly available compilers regardless of what the C++ language specification and the C++ experts say.

The difference in build times between identical code compiled with the C language or C++ language is probably negligible. Or at least dwarfed by using a better build system, a faster build machine, and/or some sort of build caching technology.

> Beyond that, there is no compiler flag to stop requiring explicit casts of void pointers before assigning them.

I believe that's true. And there are probably a few other ergonomic differences beyond this one. Has anyone proposed that as a feature flag for Clang and/or GCC? Open source C and C++ compiler devs don't have a lot of free time such that they peruse social media looking for things to do.

No comment on your anecdote other than to say I have heard versions of that story before but with other programs and in basically every other language. Including C.

I'm not saying you're wrong. I think a lot of your points are valid points. About taste. Which is fair and fine, but it's also true that the difference between C and C-style C++ are pretty minor, especially if someone knows how to enforce coding standards with clang-query wired up to CI or something like that.
by vlad | 2025-04-16 09:43:50+00:00
Facebook's "React" library was discussed here (with 100+ comments) when it launched in 2013[0]. I remember because I wrote an example to compare React with Angular, and my post was also #1 on the same day[1] :)

[0] https://news.ycombinator.com/item?id=5789055

[1] https://news.ycombinator.com/item?id=5790799
by n4r9 | 2025-04-16 09:43:50+00:00
All I'm looking for is some reasoning about why you think I'm wrong. Something that goes beyond fallacies such as "because it's not what I think" or "you're clearly a bigot" or "you must need to read more".

I've attempted to do some more reading of Heinlein analysis and am finding that it generally agrees with what I said (see https://news.ycombinator.com/item?id=43703348). Would be interested t osee if you are anymore willing to engage now.
by artofpongfu | 2025-04-16 09:44:07+00:00
So he sets up a toy problem (drawing from a baby names distribution), then never explains how to solve this problem.

The intuition is, you set up a graph where the vertices are names, and the edges are based on name similarity. Two names are neighbors if e.g. their edit distance is within some limit. You start at a random name, then at the neighbors, flip a biased coin with the ratio of the P(x) of your current name and the neighbor, if heads you move to the neighbor.

I'm sure this is wrong in many and subtle ways, but when I read an article like this I expect some intuition like this to be imparted.
by ben_w | 2025-04-16 09:44:25+00:00
Eutelsat is nice, but to quote the link:

> The constellation is scheduled to be fully operational in 2030

If satelite internet was already a necessity rather than a nice to have, that would be way too slow. We can (probably) afford to wait for it, but only because we can say "no" to everyone.

> And yes, the transition will be painful. But it'll also allow the EU to position itself as the de-facto world economic superpower. Von der Leyen alluded to it here:

Could do, if we play our cards right or make fewer errors than China. But as China aren't idiots, I wouldn't bet either way on which of the EU or China comes out on top, or if we end up in close-joint-first.

Note that by nominal GDP the EU and China are about equal with the US way ahead, but by PPP the EU is about equal to US and China's way ahead:

• Nominal: US 30.3T, China 19.5T, EU 20.3T

• PPP: China 39.4T, US 30.3T, EU 29.0T
by mkl | 2025-04-16 09:44:37+00:00
Yes. The section itself says PDF differs significantly from PostScript. The required changes detailed there to transform a PDF to PostScript are substantial: add PostScript implementations of the PDF operators; extract and translate the page content, changing the operator names, decompressing and recompressing text, graphics, and image data, and deleting PDF-only content; translate and insert font data; reorder the content into page order. What you end up with is very different - PDF is not basically just a subset of PostScript.
by whizzter | 2025-04-16 09:46:02+00:00
It's not meant as a regular SQL database with full ACID semantics (even if that is a interesting stretch target).

Rather the main thing is mainly about coupling storage and sharding decisions with the simulation, since both a sharded simulator and sharded storage system will need logic for sharding and time-versioning, it's silly to duplicate work (or worse have out of sync semantics). In addition cohabiting simulation and storage will lessen latency and other issues w.r.t. to separating them.

Now, it's entirely possible that I'm barking up the wrong tree but considering that many are exploring this design-space means that there is interest and merits even if only the Spacetime and a few others have taken the leap yet.
by fransje26 | 2025-04-16 09:46:34+00:00
That's very true, in the same way that some countries seem to prefer using Facebook as "websites" for small businesses.

But this doesn't stop people from migrating their private interactions away from WhatsApp/Meta, by using using -as an example- Signal as their replacement app of choice where they can. The frictional cost of keeping WhatsApp for business interaction, and Signal for private interaction is fairly close to zero.
by YuukiRey | 2025-04-16 09:47:59+00:00
We use the dataloader pattern (albeit an in-house Golang implementation) and it has solved all our N+1 problems.

E2E type safety in our case is handled by Typescript code generation. It works very well. I also happen to have to work in a NextJS codebase, which is the worst piece of technology I have ever had the displeasure of working with, and I don't really see any meaningful difference on a day to day basis between the type sharing in the NextJS codebase (where server/client is a very fuzzy boundary) and the other code base that just uses code generation and is a client only SPA.

For stitching we use Nautilus and I've never observed any issues with it. We had one outage because of some description that was updated in some dependency and that sucked but for the most part it just works. Our usage is probably relatively simple though.
by SonuSitebot | 2025-04-16 09:48:06+00:00
Great question — I’ve thought about this too. Technically, large-scale P2P streaming is possible, especially with today’s upload speeds and a tree-like distribution (log(N) structure). But there are big hurdles:

Churn & reliability: Peers come and go, making stable streaming tricky. Latency: BitTorrent-style protocols aren’t built for real-time delivery. Incentives: Without rewards, too many users just leech. WebRTC: It hits limits fast and often relies on centralized relays. Legal risks: Media companies don’t play nice with decentralized distribution.

Bram Cohen tried with BitTorrent Live, but it fizzled out. Would love to see someone revive this with modern tech — still feels like untapped potential.