MurphyA/hacker-news huggingface dataset:
by emn13 | 2025-05-09 18:10:18+00:00
"Recovered" sounds so binary.

I think it's pretty usuable now, but there is scarring. The solution would have been much nicer had it been around from day one; especially surrounding generics and constraints.

It's not _entirely_ sound, nor can it warn about most mistakes when those are in the "here-be-dragons" annotations in generic code.

The flow sensitive bit is quite nice, but not as powerful as in e.g. typescript, and sometimes the differences hurt.

It's got weird gotcha interactions with value-types, for instance but likely not limited to interaction with generics that aren't constrained to struct but _do_ allow nullable usage for ref types.

Support in reflection is present, but it's not a "real" type, and so everything works differently, and hence you'll see that code leveraging reflection that needs to deal with this kind of stuff tends to have special considerations for ref type vs. value-type nullabilty, and it often leaks out into API consumers too - not sure if that's just a practical limitation or a fundamental one, but it's very common anyhow.

There wasn't last I looked code that allowed runtime checking for incorrect nulls in non-nullable marked fields, which is particularly annoying if there's even an iota of not-yet annoted or incorrectly annotated code, including e.g. stuff like deserialization.

Related features like TS Partial<> are missing, and that means that expressing concepts like POCOs that are in the process of being initialized but aren't yet is a real pain; most code that does that in the wild is not typesafe.

Still, if you engage constructively and are willing to massage your patterns and habbits you can surely get like 99% type-checkable code, and that's still a really good help.
by guhidalg | 2025-05-09 18:11:50+00:00
I think the latter view is usually held by people who know they won't experience productivity gains from automation.

Say someone who is has driven a taxi all their life or driven a forklift. They can appreciate how adding air-conditioning to their vehicle allows them to drive in hotter days, therefore they can do more work. But automating their whole job away with autonomous vehicles doesn't benefit them, so they don't want it.

Personally, I think those people can't be picky about their jobs. If you do something that is automatable, you will be out of a job sooner or later. When that happens, don't get mad and go find another soon-to-be automated job.
by derriz | 2025-05-09 18:13:06+00:00
I don’t see the connection with my comment but hydrogen is irrelevant and contributes less than a rounding error to global electricity generation. The technical components for a hydrogen based energy market do exist but are simply unviable financially. Nuclear also struggles to compete on the basis of price in competitive markets but is a genuinely low-carbon source of electricity. You could argue (I personally would not) that the higher cost of nuclear can be justified on this basis but the fact that hydrogen is an extremely potent greenhouse gas and is prone to leakage means it doesn’t even have that going for it.
by emn13 | 2025-05-09 18:13:48+00:00
I love building libraries, so having the chance to talk about the gotchas with things like this is a fun chance to reflect on what is and is not possible with the tools we have. I guess my favorite "feature" in C# is how willing they are to improve; and that many of the improvements really matter, especially when accumulated over the years. A C# 13 codebase can be so much nicer than a c# 3 codebase... and faster and more portable too. But nothing's perfect!
by dredmorbius | 2025-05-09 18:14:27+00:00
Before Fight Club was the Hitchhiker's Guide "B-Ark". Before the B-Ark was Robads 1000 Clowns. Before 1000 Clowns was Chaplin's Modern Times. Before Modern Times was ... pretty much all of Dickens's ouvre. And that potted list omits much.

Laughing at the futility of present-day enterprise, whatever the present or the enterprise, is a long-standing tradition.

And really no need to call for culls, directly or otherwise.
by biorach | 2025-05-09 18:14:39+00:00
> Kershaw sees this rivalry as causing the "cumulative radicalization" of Germany, and argues that though Hitler always favoured the most radical solution to any problem, it was German officials who, for the most part, in attempting to win the Führer's approval, carried out on their initiative, increasingly "radical" solutions to perceived problems like the "Jewish Question", as opposed to being ordered to do so by Hitler.[65] In this, Kershaw largely agrees with Mommsen's portrait of Hitler as a distant and remote leader standing in many ways above his system, whose charisma and ideas served to set the general tone of politics.
by jecel | 2025-05-09 18:17:09+00:00
While (+ 1 2) doesn't work in the basic system, it is possible to extend it entirely in Lisp so that it does work. You could use Church numerals to represent the numbers, for example. I once did it by representing numbers as lists of hex digits because I was writing a 6809 assembler in Lisp and hex math made it convenient.
by sunrunner | 2025-05-09 18:17:34+00:00
As an end user, what's the licensing situation like with Qt? I was looking to build a cross-platform desktop application (down the rabbit hole...) and was frustrated with the number of options that were just a web view of some sort and some bindings to a JS/TS framework of your choice (I don't have one and don't really want to have to use one or bundle it with the application).

Qt looked interesting, particularly with the concise syntax afforted by QML and QtQuick, but the licensing was off-putting and even just getting access (for a non-commercial project for example) seemed to require an awkward sign-up and some kind of installer.

I crave the conciseness and simplicity of something like SwiftUI but the options for doing that in a cross-platform way seem limited.
by cubefox | 2025-05-09 18:17:49+00:00
There is data (e.g. on Harvard university admissions) which shows that average SAT cut-off scores of admitted students are very different for various racial groups, which strongly hints at DEI based discrimination. I don't agree with that happening. I think people should be admitted/rejected based only on their ability, not partly based on whether they happen to fall in some group for which the quota has to be increased/decreased.
by divbzero | 2025-05-09 18:18:00+00:00
Was this published before the Pope was elected?

The article byline indicates 08 May 2025 but response header shows Last-Modified: Fri, 09 May 2025 13:39:02 GMT and the earliest entry in the Internet Archive is Fri, 09 May 2025 12:28:01 GMT.

The white smoke emerged from the Vatican Thu, 08 May 2025 16:07 GMT and Pope Leo XIV was announced shortly thereafter.
by chathaway123 | 2025-05-09 18:18:33+00:00
Not sure if this feedback is useful but I personally tried Void this morning for about 10 mins on a flutter project (after connecting all the various extensions and keys, which was completely painless).

However, I uninstalled due to the sounds it made! A constant clicking for some (unannounced) background work is bizarre choice for any serious development environment.
by dgb23 | 2025-05-09 18:18:50+00:00
> But the amount of money going by is so huge they can take a tiny percent of it to pay their server bills.

I think that's an oversimplification that doesn't do justice to the complexity or difficulty of the issue. Both sides of the argument can make a really good case.

Slow programs (due to language or other factors) increase server costs, but that's only part of the problem. They also increase operational and architectural complexity, meaning you spend more time, effort and specialized expertise on these secondary effects. Note that some of that shimmers through in the article, mentioning "CI flakiness": It's probable that the baseline performance and its effects is a factor there. Performance has a viral effect on everything, positively or negatively. They also complain about async not being a part of the story here, which is also a performance issue.

On the other hand, this shop has hundreds of developers. That means deep expertise, institutional knowledge, tooling, familiarity with each line of code and a particular style that they follow. Ruby is also a language that is optimized for programmer experience, and is apparently a fun language to work with. All those things are very essential investments, individually and as a whole. Then we can assume that they use Ruby like most glue languages are used and either write C/C++ modules where appropriate or attach high performing components into their architecture (DBs, queues, caches etc.)

The reason I'm harping on this point is because I think it's important to acknowledge a more complete reality than the "hardware is cheap, people are expensive" statement. I assume it's very likely a throwaway line and not a hill you'd die on. But it masks two interesting and important things: Performance matters a lot and impacts cost transitively, but people and culture ultimately dominate for very good reasons.
by danboarder | 2025-05-09 18:19:50+00:00
"Nuclear made up close to 5% of China's power generation in 2024 and is expected to rise to 10% by 2040". That is the stat that surprised me. On balance, I understand that nuclear is environmentally much cleaner than coal, correct? If 95% of power in China is coal (with some hydro/solar/wind) then perhaps the more nuclear, the better.
by standardUser | 2025-05-09 18:20:45+00:00
You are either lying about hard-number racial/gender quotas or you were working for companies that were flagrantly breaking the law. Did you whistle blow?

You see, it doesn't add up, because usually when a company breaks the law so blatantly, it does so in crafty, shady ways intended to make more money, not in an attempt to create diversity that does nothing for the bottom line while also threatening the very existence of the firm.
by EnPissant | 2025-05-09 18:21:12+00:00
Look at the first 30 headlines when searching for Trump on the Washington Post and tell me they fear him in any way: https://www.washingtonpost.com/search/?query=trump

I suspect people will say they are critical of him, but "not enough" or cherry-pick 1 or 2 neutral headlines in a sea of critical ones.
by sheepscreek | 2025-05-09 18:21:20+00:00
> They continue to do this thing where they do a huge push into a new technology, then don't see the uptake and let it die.

Except Intel deliberately made AVX 512 a feature exclusively available to Xeon and enterprise processors in future generations. This backward step artificially limits its availability, forcing enterprises to invest in more expensive hardware.

I wonder if Intel has taken a similar approach with Arc GPUs, which lack support for GPU virtualization (SR-IOV). They somewhat added vGPU support to all built-in 12th-14th Gen chips through the i915 driver on Linux. It’s a pleasure to have graphics-acceleration in multiple VMs simultaneously, through the same GPU.
by ge96 | 2025-05-09 18:22:00+00:00
I worked as stow, that job is brutal man, you gotta last 2-3 hrs at a time 3x a day for a 10hr shift. They don't like you listening to music so you gotta just sit there in silence. Luckily I got to unload trucks and I started drinking to get through it on my breaks.

Still it's tough to beat a place where you can walk in with no skills and start making $20/hr
by slg | 2025-05-09 18:22:39+00:00
Why is "guessed" in quotes in the HN headline. That word does not appear in the article. They even say the following:

>The Bocconi team is the first to point out the limitations of the model. “We do not claim to predict the outcome of the Conclave,” Soda points out. “As the great statistician George Box said: ‘All models are wrong, but some are useful.’ Ours is intended to be a tool for reading the context, not an oracle.”

Trying to take a victory lap on something like this seems to fly in the face of the statistical thinking that goes into creating a model like this.
by bborud | 2025-05-09 18:22:40+00:00
Then the press is not doing its job. It is the job of all of us to tell them that. Then again, everyone wants someone else to speak up because they think their voice can make no difference.

When I cancelled my Washington Post subscription I wrote a letter to the editor. The important part of that letter was under what set of circumstances I might start trusting the Washington Post again. I never got a response. Not that I expected one. I’m sure they were inundated with angry letters at the time.

From time to time I write letters. To journalists, to leaders, I even wrote our prime minister once - and got a reply. Sometimes they are letters of support when someone has stuck their neck out and deserves a pat on the back. Or when someone has done good work. Too often they are letters telling people to do their job properly or to behave like adults. A lot of politicians and members of the press need a reminder to behave like adults and do their job these days. To do the demanding part of their job. Not just the part that is easy or that brings in campaign contributions or easy sales.

I never expect people to respond. But sometimes they do. This means I’ve reached people.
by vanviegen | 2025-05-09 18:23:44+00:00
Thanks for your input! Although I've never had a good excuse to use it yet, I've glanced at mithril.js quite a few times, and I really appreciate the apparent simplicity and the batteries-included philosophy.

Indeed, the main difference with Aberdee is in the way change tracking and updates are handled. This is actually a pretty significant, both in terms of internals and in the way you use the framework.

Fun fact: I once created a another library (for educational purposes) that's a lot more similar to mithril (though not as fully featured): https://www.npmjs.com/package/glasgow

As I said, I'm a fan of mithril's batteries-included approach. The router is part of Aberdeen, but not imported by default. SVG support is on my todo-list. And I'll be exploring nice ways to integrate with some backends.

Aberdeen allows (but discourages) you to access the raw DOM as well (through `getParentElement()`), as long as you don't detach/move nodes it created.

I don't know and can't find what you mean by RAF batching. Aberdeen batches all updates (using a setTimeout 0), and then reruns all dirty scopes in the order that they were created. That also means that parent-scopes go before child-scopes, cancelling the need for separately updating the latter.

It seems that console.log debugging of proxied objects works pretty well (now, in Chrome at least). It shows that it's a proxied object, and it shows the contents, without subscribing, which is usually what you'd want for debugging. If you do want to subscribe, a `console.log({...myObj})` does the trick. Or use `clone()` (provided by Aberdeen) for recursively subscribing to deep data structures.

I apparently have the same minimalist taste, having recently removed Map support to simplify things. :-) I'll probably have another go at adding Map/Set/Weak* once I figure out how to do it without with a tiny amount of code. :-)
by anigbrowl | 2025-05-09 18:24:37+00:00
~30-35% of people like this sort of thing because it makes them feel powerful by proxy.

~20% are fatalists who think there's nothing you can do about it and just want to keep their head down and out of trouble.

Maybe 20% are naive people who don't get it and another 20% are hand-wringers who don't know what to do about it.

Fewer than 20% are able to comprehend, speak out, and organize against it and it's hard for them to make their voices heard enough to build a coalition that outnumbers the first group.
by stevenwoo | 2025-05-09 18:24:55+00:00
Trump cannot raise taxes, he only can impose tariffs under laws that Congress could rescind if they wished to, and only Congress can change tax laws. Trump also took both sides on issues while campaigning and low info voters ate it up and ignored the parts they did not like, it's the gish gallop, and Trump never stops campaigning with rallies even after winning office. Nothing that he says matters, it's what actions they have taken that matter. The bill in Congress now does not have anything like what he said yesterday about raising taxes on millionaires.
by slwvx | 2025-05-09 18:25:05+00:00
John Siracusa is an icon in the Apple community. It is significant that he's calling for new leadership.

I also would like to see a new CEO. Even so, I don't see it as necessarily leading to better treatment of customers or developers. Arrogance seems to have become part of the culture at Apple, and if a new CEO is an insider, they may continue to think that Apple is solely responsible for the iPhone's success (ignoring the work of other devs and apps), and deserves 30% or more of the revenue from the App Store.
by Dwedit | 2025-05-09 18:25:33+00:00
Struct of Arrays vs Array of Structs have different performance, depending on how they are accessed, mainly due to how memory will be cached.

If you are iterating over objects sequentially, and looking at every field, they will perform about the same. If you are iterating over objects sequentially, and only looking at a few fields, Struct of Arrays performs better. If you are accessing objects at random, and reading every field, Array of Structs performs better.

Array of Structs has a multiplication step when you calculate the address of an element. Struct of Arrays basically guarantees that the multiplication will be by a power of 2, so it's a bitshift rather than a multiplication. (Unless your struct contains a type whose size is not a power of 2). Multiplication is still very fast though on most architectures, so that's not all that much of a difference.
by cestith | 2025-05-09 18:25:40+00:00
A tenth of a percent is often a rounding error. So the difference between a million and a billion truly is about a billion.

When the above isn’t enough to light a bulb, I like introduce that as analogous to pennies.

1 penny is $0.01 10 pennies is $0.1 100 pennies is $1 1,000 pennies is $10 10,000 pennies is $100 100,000 pennies is $1,000 1,000,000 pennies is $10,000 10,000,000 pennies is $100,000 100,000,000 pennies is $1,000,000 1,000,000,000 pennies is $10,000,000

Most people understand that ten million dollars is not just a different amount but a distinct kind of amount from ten thousand dollars. The powers of ten seem to become clearer with a smaller starting amount. Once they grasp the above, point out that the relationship is the same if everything starts 100 times as large.

There’s also a great one out there comparing 1,000 to 1 million to 1 billion seconds, converted to years plus days.
by devmor | 2025-05-09 18:27:03+00:00
Just because you’re processing 21GB/s of CSV doesn’t mean you need all of it.

If your data is coming from a source you don’t own, it’s likely to include data you don’t need. Maybe there’s 30 columns and you only need 3 - or 200 columns and you only need 1.

Enterprise ETL is full of such cases.
by standardUser | 2025-05-09 18:28:11+00:00
"Russian asset" implies that the Russian government has compromising information on Donald Trump, or otherwise has leverage over him, which enables them to exert some level of control over his actions. People often point to the fact that, though Trump loudly and frequently criticizes our closest military and economic allies, he seems completely incapable of saying a single negative thing about Russia or Putin. As well as Trump's apparent desire to leave NATO (Putin's number 1 wet dream) and allow Russia to take Ukraine (or otherwise end the war in ways beneficial to Russia).
by fc417fc802 | 2025-05-09 18:28:40+00:00
> Even with modern graphics cards there's a global framebuffer for the entire desktop. It's updated every frame by the operating system

Is there though?

https://docs.kernel.org/gpu/amdgpu/display/mpo-overview.html

> Plane independent page flips - No need to be tied to global compositor page-flip present rate, reduced latency, independent timing.

There's at least a buffer for scanout but that doesn't necessarily have to be larger than one line and I don't believe it's end use accessible.

As an example. Consider running a game at one refresh rate in windowed fullscreen (or whatever it's called) mode with your compositor at a different refresh rate. With your desktop spanning two monitors, one operating at 60 Hz the other at 50 Hz. And throw in a media player with a window that's split across those two monitors rendering a 29.97 fps (ie NTSC) video stream via hardware accelerated decoding.
by hinkley | 2025-05-09 18:30:39+00:00
I end up playing father confessor often enough at work that I have had to launder things people have complained about.

When you are trying to make the right calls for a team, you need to know what the pushback is, but the bullies and masochists on the team don’t need to know who specifically brought forward a complaint as long as the leadership accept it as a valid concern.

So if everyone knows I had a private meeting with Mike yesterday it’s going to be pretty fucking obvious that I got this from Mike unless I fib a bit about the details.

Saying a conversation during a visit happened in email sounds like about the sort of thing I might lie about while not making up the conversation from whole cloth.

Not that Sabine is perfect. I’ve let the YouTube algorithm know I want to see less of her stuff. But just because there is no email doesn’t mean there was no conversation.
by samiv | 2025-05-09 18:30:48+00:00
It's double licensed. The Qt Company offers both a commercial and LGPL license but they do their best to bury and hide the LGPL option and use dark patterns to try to trick one to get the commercial license. They also want to push you towards getting an account with them for the installer.

That being said the packages (without online installer) are also available for direct download when you know where to look... [see link below]

If you're on Linux though the situation is much simpler since your distribution most likely already packages the Qt libs so you just use your package manager to install them and off you go...

Regardless, for anyone looking for a native portable toolkit, I don't really think there's anything that comes close to Qt in terms of functionality and tooling (like Qt Creator and Qt Designer) and once you get over the idiosyncrasies and quirks its really quite good (for the most part).

https://download.qt.io/official_releases/qt/
by kelnos | 2025-05-09 18:30:56+00:00
> There are absolutely not going to be free and fair elections 4 years from now.

That's overly alarmist. The one thing the US has going for it when it comes to elections is that they are run by the states, not by the federal government, which insulates them from a lot of possible election meddling.

Things like the SAVE Act are incredibly concerning, though. It's unclear if the worst provisions of it are even constitutional, but it's also unclear if SCOTUS will actually do the right thing if SAVE gets passed.

And certainly people are going to end up being disenfranchised, regardless of what happens, and of course more of them will be left-leaning voters. Higher voter turnout tends to give the GOP worse electoral results; they know this, so they focus on voter suppression. It's disgusting.

So yes, I think we should be worried, but your statement is overly alarmist and not helpful.
by antisthenes | 2025-05-09 18:32:16+00:00
Complex technology --> Moat --> Barrier to entry --> regulatory capture --> Monopoly == Winner take all --> capital consolidation

A tale as old as time. It's a shame we can't seem to remember this lesson repeating itself over and over and over again every 20-30-50 years. Probably because the winners keep throwing billions at capitalist supply-side propaganda.
by tpmoney | 2025-05-09 18:32:57+00:00
Is “Settings -> iCloud -> Advanced Data Protection” really the “moral equivalent of the bottom of a locked filing cabinet stuck in a disused lavatory with a sign on the door saying Beware of the leopard”? Where else would you put it? I could see an argument for putting it in “Settings -> Privacy and Security -> Advanced Data Protection” but that to me feels like a “six if one, half dozen of the other” change.