skysight-inc/HackerNews huggingface dataset:
It could cause that, but I'm more thinking about strange edge cases .

If I write a quick utility in my spare time, and your multi-billion dollar company needs to deploy it on 1,000 devices, I don't want to fix your issues for free.

To be honest, it's about time for these big companies to write a check.
> Let’s say I want to know if a constructor failed

This seems like the beginning of a bad situation. I mean, this shows why constructors that do any complex work that can error out are a bad idea.
> Surely you agree that it's better to have this throw an exception, and a big try.. catch around your audio callback so that just this tick

Yes I do agree but my point is that if any exception is being thrown for the sake of being handled then your Audio code is bad.

Generally your Audio loop should encounter no errors at all (it should be a pure process) so what the OP is saying is that excepting/aborting is fine in that case because it would truly be exceptional. I can’t imagine what the exceptional situation would be but to the extent one exists, I agree with that. My only point is that throwing an exception when there is no handler is no better than calling abort(), obviating the need for enabling exceptions.
curious if anyone can share who the author is? It is implies he is a very good programmer, but his bio/site doesnt mention anything or show any code
I don't think this would even be able to put out a single tree catching fire. Generally the fire is too vertical and the extinguisher would land on the ground and not be activated by the heat, so it won't go off until flaming branches fall down, at which point the fire is too large.
Some VAXen could also do 128-bit ALU operations too. I thought DEC had a full 128-bit CPU but I've never been able to find it... I probably just remember wrong.
Ask HN: What tech stack are you expert level?
What skills have you honed to the sharpest edge?

In my case:

* React

* Linux

* AWS

* TypeScript

* Python

* Postgres
Expecting something to work 100% of the time is far too high of a bar to set for fire prevention. If it helps it saves lives.
Define “doom” or “death”. Cobol still runs, FORTRAN still runs, not the coolest in the TIOBE index but in the tail. A mammalian body doesn’t die all at once, either, but past some threshold of vitality does definitively die and remains dead. Really unclear whether these languages will be dead until the last compiler stops compiling. So the discussion needs a definition for the threshold the language may reach.
I hear you.

* Move semantics itself requires a whole book https://www.cppmove.com/.

* RVO has always confused me. It was much simpler in the C++03 days. Copying large objects by value was inefficient. So you always used references. Period.

* Don't fully agree with the commentary on exceptions; it's the same in most other languages if you want resources to be freed/given back.
I used to be a C++ Fan Boy. I just started learning rust last week and noticed how old c++ is. All the good practices are built into rust that you need to specifically write in C++.
> Finanally, c++ is the only language I would ever want to do linear algebra in

Isn't something like MATLAB better for linear algebra than C++?
In the same sense, Linux broke userspace for 386 users in 3.8 because the users expected Linux to run on their computer. An optional build-time feature being removed does not break userspace.
Purely anecdotal. It sounds like your mom is pretty tech savvy, though.

F-droid is less popular than Unix on the desktop. They don't publish any stats, but as a proxy, their Twitter account only has 10k followers and their forums receive fewer than ten posts a day.

Google trends shows "Ubuntu vs f-droid" dwarfing the latter term to the point there's no signal at all. Perhaps that's an unfair comparison, but I was expecting it to be closer.
Am I Being Love Bombed? Are You?
Thank you! We want to avoid being bought at all costs :)
> Creating an account per node is federation working as intended.

I call that broken by design. Having your identity tied to a server means somebody else controls it. Email has the same problem, if GMail changes the ways it handles emails and makes a provider switch necessary, tough luck, you now have to tell everybody that you are moving to a new sever and your email/identity changed.

Just using a GPG key to represent your identity or something along those lines would be a much better way to handle it.
> I have two options, one is to pass in an in-out parameter, the other is to the throw an exception.

These are not the only options. You can also return `optional<T>` or an other wrapped value from a factory function.
What do you mean by "backward country" in this context?
Math is established by logic and proof. If a proof is sound, it should stand eternally.

Humans are not perfect, so sometimes we are collectively mistaken about a proof's correctness. The fundamental nature of the process is still one of establishing inviolably proven facts and building on top of them.

Science, on the other hand, is a never-ending iterative approximation process with occasional massive discontinuities when accepted theories are overturned.

It relies on observed report and falsification of our current best guesses. No scientific "law" can ever be proven true, just labeled "not known to be wrong so far".

Math is much closer to philosophy than science. It just happens to be pragmatically useful to the sciences: https://en.m.wikipedia.org/wiki/The_Unreasonable_Effectivene...
What if John Deere viewed user serviceability as a competitive advantage? Why don't they now? If they changed their view today (or 5 years ago, etc), what challenges would they face? How much technical investment would each of those challenged take?

I've been thinking about assumptions so deep you don't even realize they are assumptions. If an organization assumes a dealership model, and works that way for 50 years, all sorts of decisions are made that make it hard to go direct. People joining the org naturally go along, after a while they just don't think about alternatives.

It's REALLY hard to hold ideas that don't make sense in your head; you ask your leadership "Why do we do this" and you come to some conclusion based on what they say, but it's resolved. Like untying a knot, you have to leave a lot of loose ends unresolved if you want to change deep assumptions, and that is not mentally rewarding for most people.
Are there "hacked" (read, opensource) software versions of the software available for these farm machines, or is it illegal to produce open source software for such "proprietary" pieces of machinery?

I haven't been keeping up with the "Right to Repair" movement as close as I should have, I'm afraid, and I'm not sure how far down the rabbit hole it goes. Does it drop down so far as to touch the software that runs the machine systems on these, or is it purely mechanical?

EDIT: At this point in my life I should be able to spell =(
> Of course, a 32-bit physical addressing machine can get around this with extra
external-mapping registers

When I came up in this industry, we referred to that as "Bank Switching"
Or the drone's battery/electronics light on fire.... There is no good reason why the drones themselves can't be the source of the fire.
My intuition says that in those cases, even partially extinguishing the fire would buy a bit of time, and in the meantime you’ve now got live aerial footage of the fire’s location and progress to better inform the people who are responding to it.

… in other words, putting out the fire with the UAS is a “best case”, and may happen more often than you’d think, but really it’s mostly marketing. That doesn’t mean that the system doesn’t provide real value.
C++ is not a generalist language, its strengths are high performance, direct memory access and native compilation. If an application doesn't need any of that, a higher level language is usually better.
"Is C++ Doomed?"

No. The FILE example is either bad, tired, lazy or shows lack of knowledge of the standard library. A better way of opening/closing the FILE with RAII is right in the example [0] of unique_ptr at the wonderful cppreference.com:

std::ofstream("demo.txt") << 'x'; // prepare the file to read
{
using unique_file_t = std::unique_ptr<std::FILE, decltype(&close_file)>;
unique_file_t fp(std::fopen("demo.txt", "r"), &close_file);
if (fp)
std::cout << char(std::fgetc(fp.get())) << '\n';
} // `close_file()` called here (if `fp` is not null)

I'm sorry, I'm not trying to be negative towards the author, but you need a better example than opening/closing FILE if you're going to make a compelling argument about the looming death of C++.

[0] https://en.cppreference.com/w/cpp/memory/unique_ptr
I only saw it mentioned in one place, near the end:

> We don’t know precisely why young women who marry directly in their 20s without cohabiting have comparatively low divorce rates. Is it less experience breaking up, fewer previous partners for comparison, a greater sense that marriage is a different relationship status, or the fact that such women are disproportionately religious[1]? It’s not clear.

[1]: https://onlinelibrary.wiley.com/doi/abs/10.1111/jssr.12114?c...
Wealthy crime (white-collar) is for more costly than 'non-wealthy' crime (blue-collar)
In my C++ code, I've copied Rust and expressed fallible initialization by returning a std::optional<T> from a static method (which the article failed to mention). The problem is that (like Rust) you lose placement initialization, and (unlike C++ or Rust) you can't initialize private fields using aggregate initialization or initializer lists, and must write a passthrough constructor (which can't even be private because it breaks make_unique).

https://github.com/hsutter/708 is a C++ proposal which unifies placement constructors and writable out-parameters ("definite first use"). I don't think it makes placement initialization fallible, but I'm not sure.
Just drop the á https://krita.org/en/item/funding-kritas-development/

Looks like $6000 from steam, or 10%, in ~2016
e-bikes in parks need to be limited in speed though. Don't turn our parks into dangerous for pedestrians bike freeways. Bicycles in walkers do not mix very well, while it isn't as deadly as a car, getting hit by a bike still hurts.
EU C-band rollouts are 200Mhz lower than in the US, making for almost twice as much gap between them. That said, EU is still starting to get worried [0] after some tests showed malfunctioning equipment can cause interference.

[0] https://strandconsult.dk/blog/5g-is-suddenly-a-flight-safety...
I disagree. We go deep sea diving and shine over 100k lumens in the face under the guise of science. And we dress up tons of birds with archaic trackers. That are heavy and irritating and downright detrimental to the individual. We have a ton of counting devices and measures and it is only gaining more and more traction. We should keep on expanding that now the means are available and stop invading birds and other animals lives with invasive tools.

Or another thing the university here close by holds roughly 20 grey parrots in an enclosure that is downright hostile for the animals yet it does research towards the well being of said animals. It’s beyond comprehension that we ended up in this place. I don’t even understand how one can perceive such science in such environments as reliable. We don’t consider testimonies from tortured inmates trustworthy yet research on these entrapped we somehow do because some rigor has been applied.

There are a lot of good scientists and almost all with good intentions but academia has a lot of shortcomings as well.
On your last point -- whether a FOSS project is set up to be able to do anything useful with $800 varies a lot, I think. If it's something put out by a consulting company or by a one-man-band independent or even by a student, sure. But a lot of FOSS projects are either worked on mostly by people on a big-company payroll (in which case their time is spoken for already and the bigco doesn't care about your $800), or else hobby/spare time stuff for somebody whose day-job is unrelated (in which case they're in it for other reasons and preferring not to spend four hours of their free time pair-programming with a stranger is an entirely reasonable choice).

Basically unless you're already making a living by the accumulation of a lot of that kind of $800 transaction, the hassle involved in accepting just one of them as a one-off makes it not worthwhile (tax questions, potential conflict of interest with existing employer, dealing with people as paying clients rather than as people one can simply say 'no' to, etc...) And there's a massive chasm between "maybe once in six months somebody offers you $800" and "enough money coming in to quit the day job".
Additionaly:

> ESET Research discovered a new data wiper malware used in Ukraine today.[0](thread)

> Symantec says the wiper malware they found in Ukraine targets the financial sector -- the UA financial sector has also been targeted by denial of service attacks over the last week.[1]

Also NetBlocks reported today:

> Confirmed: Amid reports of a power outage and increased military activity in Donetsk, #Ukraine, real-time network data show an observable disruption to internet connectivity[2]

[0] https://twitter.com/ESETresearch/status/1496581903205511181

[1] https://twitter.com/HowellONeill/status/1496591524502679555

[2] https://twitter.com/netblocks/status/1496575364843380741
Will Elon Musk End the Fossil Fuel Industry? Tesla vs. Exxon
> The problem is that radio altimeters are pretty old

Interestingly the 737-200 is excluded from this airworthiness directive. 737-200s are the oldest, still-operating members of the 737 family.
Reading news today(feb 23, 2022) that Emergencies Act is being revoked, let's see if scenario a) plays out, or b) plays out.
Cryptocurrency, blockchains and markets (video talk)
I have a Boox and i just drop the epubs on the sd card.
Damn, the internet suddenly starts to be fun again.
And for whatever it's worth, it hurts the person who uploads the video. YouTube represents a portion of my income, and it making less makes it harder to justify uploading videos.

I don't like the ads either, so I pay for YT Premium. I want to support the creators that I watch, and I don't want to suffer ads.

That I get YT music included and save on not having to subscribe to Spotify is a little bonus.
It's really incredibly hard to get a loan nowadays. And finding a VC that won't stick their nose in too much is also really hard.

George knows more about it, but even an established company I'm familiar with could not get a loan without personal guarantees from the CEO last year.
There were a few companies that tried doing that, if I recall correctly https://www.bountysource.com/ was one of them (seems to still be active). I've been following the area and also tried to run a business in the area. My experience is that while there's some demand, it's either really small, or extremely difficult to grow.
Ask HN: Course/Book/Tutorial to read and understand financial reports?
Looking for a good source that can explain me how to read and understand different metrics.
I use firefox + uBlock Origin + <some extension I can't remember the name of that lets videos play if it goes into the background>. Is there something I am missing out on?
Yes, that is a common complaint against Enterprise-style Java code. It's funny because when I started Java (shortly before 1.0, iirc), Java was the clean new language on the block and it was so much more readable than just about everything else used in the industry!

I understand how go can feel like fresh air after suffering from Enterprise-style Java.

In my experience, the largest sources of bugs and general misery in C++ code is that the language is way too complex, that both the language and its libraries are full of footguns, and that debugging these footguns requires heroism and burnouts.

In fact, that's almost the same complaint I have against JavaScript, except there is a strong veneer of "don't worry, it's simple". Which is unfortunately a lie, as can be confirmed by anyone who had to read the actual specs of the language.

All in all, I favor no-surprises-at-runtime because I have been bitten waaaaay to often by surprising behavior in production despite what felt like comprehensive unit and integration testing. That's in both C++, JS and Python. Hence me being really happy at Rust's guarantees.
Per the OP:

> While existing headsets are optimized for gaming, ours is optimized for productivity: it features bleeding edge high-resolution displays, has a detachable compute pack with specs comparable to a premium office laptop (x86 architecture), and runs a VR specialized Linux distro optimized for clear text.

Sure, if you can find a standalone headset with comparable resolution, CPU, and OS, use that!
Sounds like porn to me
Hi, JD here, Hydra's CTO. It's still early days and we are considering open source; for now, we wanted to leave our options open, and OSS feels like a one-way door. I think you make a great point here - thanks for sharing your past pain / experience. Definitely food for thought.

Our "no lock-in" claim refers to your data, since Hydra is Postgres, you're not stuck using "HydraDB" forever -- it's relatively easy to migrate in or out since you can use well established Postgres tools. We also are open to licensing the product should you wish to self-host, on-prem, etc.
I considered getting that book until I realized it's 733 pages. Is it worth at least reading some sections of it?
No, just as Betteridge's Law would lead you to suppose.

This really boils down to "creating your own custom data object that plays nice in all scenarios is too hard". (Or, more cynically, too hard for the author - some of us don't find it particularly hard.) Does that mean C++ is doomed? No, it just means that not all C++ developers are going to create objects with full RAII initialization semantics and full rule-of-five acts-like-an-elementary-data-type behavior.

And that's fine! Not every object needs that. And if your object doesn't need that, you don't have to put it in.

The problem, of course, comes when you have an object that needs all that, and you don't know how to do it. But that's kind of true for every feature you don't know how to use, in every language. So are all languages doomed? No.

Now, you could make a case that creating objects that have all those behaviors is the ideal in C++, and it's too hard to achieve that ideal. But hyperventilating about how that makes C++ doomed doesn't do anything to actually make that case.
If anyone finds this article even slightly interesting, be sure to check out the rest of the site!
NETworkManager 2022.2.22.0
You're right that I didn't approach that issue, and part of that is because I have a bit more research I want to do before I take strong public stances on it. I agree that the ad-supported revenue model is pretty busted, and YouTube is the primary beneficiary of that. But as far as I'm aware, the Premium subscription model is pretty beneficial to everyone. I don't know exact percentages, but I'm under the impression that the average Premium view nets more money to the creator than the average ad-supported view. I haven't personally seen any content creators explicitly dissuade people from paying for Premium.

But like I said, I don't know specifics to strongly hold that view and publicly argue it. _That_ would be putting my head in the sand. I need to read up a bit more and see what content creators are saying about Premium. I was hoping that prompting this discussion would lead me to some more good info on that.
NXT -> ASM -> C
Drones are horizontally scalable. Instead of one, 50 can go extinguish the fire.
How is that not done by Apple's servers automatically?
I'm no C++ expert. But Wouldn't a private constructor and a static method that returns nil if input is bad fix this problem?

Joshua Kerievsky talks a bout this problem in his book [Refactoring to patterns](https://www.programmingbooks.dev/#refactoring-to-patterns), specifically the refactoring "Replace Constructors with Creation Methods"

That is maybe beside the point of the articles argument he is making about C++ being bloated and hard to use and read ¯\_(ツ)_/¯
https://www.engadget.com/2014-02-26-when-carl-sagan-sued-app...
I am a fan of a particular book series that is right now mostly self-published by the author.

One of the few places selling his books legally to Brazillians was a site named "Fictionwise". I bought a lot of copies there, I would have bought physical copies if they existed, but that wasn't an option.

The one day, Barnes and Noble bought Fictionwise, and just batantly said if you don't live in US you can't use the site anymore, and you won't be able to download the books you paid for, unless you are from US.

Lesson hard learned, never again I bought an e-book. My kindle is just collecting dust.
Something that I have learned is that we build abstractions to hide complexity. In so far as abstractions are not leaky and are fast, all is good. The moment you have a bug, or the moment you want to analyze performance, abstractions absolutely puke their f'ing guts at you and all that smart stuff someone thought no one would ever see spills all over the floor and it's a flat-out mess. C++'s pervasive unsafety and pervasive obsession with performance are the worst kind of witch's brew for plunging you straight into a hell of unimaginable depths at the slightest mistake.

In particular, undefined behavior is so pernicious that it exposes literally everything about the machine and the entire program at once--its memory layout, compiler optimizations, and whatever else you weren't supposed to see. You are staring at a whole pile of hot garbage. There are literally no constraints on what the entire system is required to provide to you as aid to debug the problem. Undefined behavior literally gives no meaning to the entire execution of the program since its start, no matter where or when the undefined behavior occurred. There is no "before" UB and "after" UB--the entire execution is invalid. You are in a parallel universe that is not required to make sense.
The syscall would return ENODEV, just like any other case where a user attempts to mount a filesystem type that isn't compiled for the running kernel.
That's what gets me: they don't seem to know. Or at least they don't want to say?

If they know there is an (intermittent, occasional) issue then ground the planes. Don't announce it, but cryptically and then do nothing and wait for a few 100 deaths.

If they know there isn't a problem then shut up.

And if they don't know, why the fuck don't they know after (at least) 4 weeks of testing. Can't they at least say all tests fine or 99% of tests fine or we crashed 4 planes but maybe the test pilots were just bad?
C++ has its problems, but it has two advantages to other languages: (1) it is evolving and extensible at a deep level: one can identify strategies and create solutions based on the template system, because that's how the standard library itself is created. (2) it is backward-compatible, which means that we can continue to support the incredible amount of software already available for C and C++.
Both C++ and Rust are rather complex.

But in Rust the negative effects of the complexity are mostly contained by the compiler (i.e. if you get it wrong you get a compiler error).

In C++ it on the other side can easily lead to UB and in turn to potential security vulnerabilities.

So IMHO today there are _very_ few cases where C++ is still the appropriate choice.

Just to be clear I'm not saying rust did replace C++, but there is a wide variety of languages which are a better choice for many use-cases which once where filled by C++. Rust just further reduces use-cases where I would say C++ is appropriate.

But it's anyway not Doomed as there are just way to many existing projects. Not just legacy projects, but existing still maintained for many years projects.