MurphyA/hacker-news huggingface dataset:
by kstrauser | 2025-05-16 14:05:13+00:00
cough Bullshit cough

* VSCode got popular and they started preventing forks from installing its extensions.

* They extended the Free Source pyright language server into the proprietary pylance. They don’t even sell it. It’s just there to make the FOSS version less useful.

* They bought GitHub and started rate limiting it to unlogged in visitors.

Every time Microsoft touches a thing, they end up locking it down. They can’t help it. It’s their nature. And if you’re the frog carrying that scorpion across the pond and it stings you, well, you can only blame it so much. You knew this when they offered the deal.

Every time. It hasn’t changed substantially since they declared that Linux is cancer, except to be more subtle in their attacks.
by crowcroft | 2025-05-16 14:06:16+00:00
I can't take this research seriously.

> M3 Expressive designs were rated higher across desirability attributes, including “modernity,” “subculture,” and “rebelliousness.”

Subculture and rebelliousness as features of a corporate design system? What exactly were the survey questions?

> While there was a net-positive indication across all age groups, younger study participants had the most enthusiastic preference for M3 Expressive and rated the designs as high in “visual appeal” and “intention to use.”

Again compared to what, and how were the questions framed. 'Intention to use' questions are almost always leading.

In general I think the designs look pretty good, why not just let them speak for themselves instead of foisting nonsense survey results upon us.
by edoceo | 2025-05-16 14:07:13+00:00
Arrreg!! So many of these React (et al) sites, with poorly re-built elements and break the built-in functionality! The A tag works perfect! But no, we need three or four nested divs, components, and many lines of JS to end up with something worse.

Is React the driver? Do devs just not know? Is management pushing garbage?
by TMWNN | 2025-05-16 14:07:15+00:00
>If you want almost no-cost currency conversion (2 USD minimum, but you have to convert like 100k USD I think it is to go above that), use Interactive Brokers LLC. They won't let you have an account purely for currency conversion, but as long as you do a few trades now and then, it seems fine.

I wish I'd known this four years ago. I had US$2000 to send from US to Canada and the cheapest method (~$50) I found was, to my surprise, to send BTC within Coinbase (the recipient was another Coinbase user).
by mark_l_watson | 2025-05-16 14:07:25+00:00
Right on, James Gosling's work is amazing, and he and the whole Java ecosystem have my gratitude: I went to the first Java World Tour conference and wrote a little blog article about it that was linked on Sun's home Java page for about a year. I was very lucky, and since I was the first search hit for 'Java consultant' for a very long time that gave my wife and I the freedom to live in a rural area and I could get remote work for a decade.

As long as I am expressing gratitude, I would also like to call out the Clojure team for developing a wonderful ecosystem in top of Java and the JVM.

It must be wonderful to do work that positively affects the lives of millions of people.
by toomuchtodo | 2025-05-16 14:07:37+00:00
https://archive.today/lhIn7

https://airandspace.si.edu/support/wall-of-honor/robert-ed-s...

https://historycollection.jsc.nasa.gov/JSCHistoryPortal/hist...

https://www.msstate.edu/newsroom/article/2025/04/msu-remembe...

https://en.wikipedia.org/wiki/File:Apollo_13_Mailbox_at_Miss...
by web007 | 2025-05-16 14:07:55+00:00
> LLMs are great for junior, fast-shipping devs; less so for experienced, meticulous engineers

Is that not true? That feels sufficiently nuanced and gives a spectrum of utility, not binary one and zero but "10x" on one side and perhaps 1.1x at the other extrema.

The reality is slightly different - "10x" is SLoC, not necessarily good code - but the direction and scale are about right.
by Breza | 2025-05-16 14:07:55+00:00
I have a tangential question related to one part of the article. I worked in a .NET shop where a surprising amount of code was VB.net (the rest was C#). Was this a common design pattern for .NET code written around 2010? The article makes it sound like nobody really used VB.net, and certainly not when there were C# devs around.
by OskarS | 2025-05-16 14:08:11+00:00
That doesn't match with my understanding of free-threaded Python. The GIL is being replaced with fine-grained locking on the objects themselves, so sharing data-structures between threads is still going to work just fine. If you're talking about concurrency issues like this causing out-of-bounds errors:

if len(my_list) > 5: print(my_list[5])

(i.e. because a different thread can pop from the list in-between the check and the print), that could just as easily happen today. The GIL makes sure that only one python interpreter runs at once, but it's entirely possible that the GIL is released and switches to a different thread after the check but before the print, so there's no extra thread-safety issue in free-threaded mode.

The problems (as I understand it, happy to be corrected), are mostly two-fold: performance and ecosystem. Using fine-grained locking is potentially much less efficient than using the GIL in the single-threaded case (you have to take and release many more locks, and reference count updates have to be atomic), and many, many C extensions are written under the assumption that the GIL exists.
by sealeck | 2025-05-16 14:08:40+00:00
Your objection to translating "Roman" as "novel" seems to be that Roman is closer to the French word for novel than "novel" in English is? But this seems to be more an objection to English using the word "novel" instead of something closer to the modern French term, and not actually an objection related to the translation.

This seems like a slightly strange objection to me; I would have thought the actual semantic problem lies with "Bildung", in that a Bildungsroman generally involves some kind of learning/development/improvement, whereas a coming-of-age novel does not necessarily involve this.

> It is in these cases where it is quite obvious that Britain was an island at the edge of Europe, culturally and not only.

I mean this is a very weird claim, which assumes that Europe is culturally homogenous (e.g. I think you will find that Britain and France are culturally closer than France and Slovenia).
by ben_w | 2025-05-16 14:09:40+00:00
I don't even trust him to solve loneliness by using his algorithms to keep me connected with my actual real friends — refresh default feed, different random subset of things they've posted in the last month or so.

I *definitely* do not trust him to solve loneliness even if the AI was good, because every third post-shaped block is an advert, and can you imagine a real life event where every third sentence is your interlocutor trying to sell you random stuff? Huh, that was a comedy sketch nearly 50 years ago already: https://youtu.be/qe7n7a82HWw?si=SJy-SFNaArmLDAR7

And I don't trust the AI to be any good. I like what they do, but honestly, they remind me a lot of my mother's Alzheimer's.
by ilikehurdles | 2025-05-16 14:09:49+00:00
From xAI[1]:

What we’re going to do next:

- Starting now, we are publishing our Grok system prompts openly on GitHub. The public will be able to review them and give feedback to every prompt change that we make to Grok. We hope this can help strengthen your trust in Grok as a truth-seeking AI.

- Our existing code review process for prompt changes was circumvented in this incident. We will put in place additional checks and measures to ensure that xAI employees can't modify the prompt without review.

- We’re putting in place a 24/7 monitoring team to respond to incidents with Grok’s answers that are not caught by automated systems, so we can respond faster if all other measures fail.

[1]: https://x.com/xai/status/1923183620606619649
by crowcroft | 2025-05-16 14:09:50+00:00
Even if you take that kind of nonsense surveying at face value, the issue is that you're then optimizing for design that has an initial 'wow' factor, and not optimizing for enduring design that will be pleasant to use 1,000x times over.

Pepsi often beats Coke in blind taste tests because it has a sweeter first sip. Hardly anyone prefers actually drinking Pepsi.
by sksrbWgbfK | 2025-05-16 14:10:15+00:00
> Even QBasic was deeply confusing for a long time

For one whole year, I thought that Qbasic and Turbo Pascal were text editors that could also run games. I didn't understood that I had access to real compilers and that I could actually change the programs. Sometimes kids are stupid...

As for your Pico8 suggestion, you can always get the open-source equivalent https://tic80.com/ if you don't have the money.
by h2zizzle | 2025-05-16 14:10:20+00:00
You colonized them, monopolized their resources, and used the spoils to fuel an apartheid state with some of the highest levels of inequality humanity has ever seen.

It's really, really difficult to think of a set-up that's more economically-distortive on its face; a complete dislocation of labor productivity and sovereignty.

There's no possible way that the "devastation" began with the end of apartheid. It was built into the existing system. Geez. Black South Africans (and Zimbabweans!) are building a way out m of a hole dug for them by their colonizers, with the cheapo equipment that the global monetary apparatus will (predatorily) lend them.

I have no doubt that it was not an ideal place to be, psychologically, as a white man. Materially? Eh.
by WorldMaker | 2025-05-16 14:10:29+00:00
Every Material UI library I've seen in existence is a bloated wreck full of bugs. The Angular MUI "flagship" has the worst performance I've ever seen of basic things browsers have supported for decades and CSS does very well for like buttons. Some MUI teams find ways to bring all of Angular's bloat to everywhere else, the React library is awful. I've had to use MudBlazor, the attempt to do MUI things in Blazor, and it is truly awful. Maybe Flutter is an exception, congratulations to Flutter I guess.

This wouldn't be so much of a problem if so many corporations also hadn't somehow decided that MUI was the next Bootstrap and have been treating it as an underlayer in their Design Systems, most of which aren't actually supposed to look like Material and don't really benefit from being huge additional libraries of CSS and components on top of MUI. I blame Figma for this. I don't know that it is any one specific thing Figma is intentionally doing, but the more design teams use Figma the more they seem to think they "need" a safety blanket of Material UI somewhere in the design stack that they won't actually use correctly or well.

As an engineer often tasked with performance work, I hate how much of Material UI's braindead approach to performance reflects on me in ways I can't do anything about "because that is the design system you wanted" (not the design system you needed). I wish Material UI would either get significantly better or just die already.
by kstrauser | 2025-05-16 14:10:51+00:00
That’s not what the phrase implies. If you have a C program from 1982, you can still compile it on a 1982 operating system and toolchain and it’ll work just as before.

But if you tried to compile it on today’s libc, making today’s syscalls… good luck with that.

Software “rots” in the sense that it has to be updated to run on today’s systems. They’re a moving target. You can still run HyperCard on an emulator, but good luck running it unmodded on a Mac you buy today.
by KPGv2 | 2025-05-16 14:10:59+00:00
It's worth noting this is normal in language. Consider the highly non-technical English "lighthouse," which has acquired a far more specific meaning than "a house made of light" or "a house that produces light" or "a house that weighs very little."

I'm not familiar with "blackboard" being a valid term for any board that is black, but specifically one used in pairing with chalk to be written on.

etc.
by Workaccount2 | 2025-05-16 14:11:08+00:00
Google has to solve having a green bubble if they want any penetration into the "hip" young crowd.

I honestly think the only way they could see gains is with a well executed counter-culture statement. They are foolishly spinning their wheels going after the young iOS crowd, while alienating the people who actually buy pixel phones and on some level android, phones.

(I know this comment is very US centric)
by hisham_hm | 2025-05-16 14:11:35+00:00
Hi, Teal creator here!

> How confident are you in the soundness of the type system?

I am confident it is not sound! That is by design. A typical example is how function arguments are bivariant, to allow for callbacks expressed the way programmers usually expect them to work (TypeScript does something similar).

> Also, are there any Lua constructs that are difficult/impossible to type?

Yes, many of them. The type system and the compiler are pragmatically very simple -- there are many design decisions made to favor simplicity of specification and/or implementation. (Compare the single-file, single-pass Teal compiler done mostly by a single person with the amount of engineering resources that Microsoft has put into TypeScript.) For a concrete example, we have special-cased polymorphism for functions, intended to use with very dynamically-typed Lua functions from the broader Lua ecosystem, but you cannot express similar polymorphism in Teal itself.

> Is type checking decidable? (Is the type system Turing complete?)

There is a proof (which I can't find right now) that type checking is not decidable once you combine parametric polymorphism (generics) and intersection types (like the poly functions I mentioned above), but the forms of these features supported by Teal have some restrictions which make me not extend such claims directly. And of course, I can't even claim that the implementation of the theoretical model is bug-free. The model is evolving, the implementation always lags a bit behind.

In any case, the goal for Teal's type system is not academic purity, but pragmatic utility. Other comments in this thread alluded to this as well -- there are practical constraints that come from targeting an existing language and ecosystem. Of course, there are many ways one can approach such challanges. Teal is one of them and there were and are certainly others! Everyone is free to take their shot at where they want to be in the Unix-Philosophy/Worse-is-Better vs. Lisp-Philosophy/The-Right-Thing design gradient.
by freedomben | 2025-05-16 14:12:16+00:00
I have two thoughts that keep jumping out at me from this. This criticism isn't meant solely for Material 3, but it does seem a good example.

1. Since the beginning of "mobile first" being rapidly shoved on us (and side-note, god our industry seems to love bandwagoning the new shiny stuff), I've noticed the slow but inevitable (with a northstar like that) decline and neglect of desktop interfaces. Viewing this website on desktop is a wonderful illustration and validation of that fear (though definitely take that with a grain of salt as it's heavily subject to confirmation bias).

2. The over-reliance on data. I am a big believer in data and data-driven decision making, but I think far too often we out-source our thinking to the data without ever questioning the data or our own methods for collecting and analyzing that data. I don't know anywhere near enough about how they gathered this to suggest that the data might be flawed, but I have seen (many times) reasonable, thinking people look at data and place complete trust in it without stopping to realize that at some point that data was defined and collected by another person. Even if the data is rock solid, there also seems to be rarely a thought given to the possibility of misinterpreting that data, or the possibility that the data doesn't provide useful insights in isolation. Some of the worst products I've used were the most "data driven," hyper-optimized to maximize on whatever the chosen metrics were. This seems especially subject to the fallacies of micro vs. macro when trying to optimize for populations over individual experiences. Likewise some of the best products I've used were built with little to no data, and progressively got worse the more they were optimized for "engagement" or whatever the goal is.

Now all that said, take my thoughts with a grain of salt because I am tired of having the apps I use constantly changing their UIs on me. If it's one app it's bad enough, but when you have to use a dozen or more and every one of them ships some radical update every 6 to 12 months, with typically zero user control of when that happens, it becomes maddening.
by pizzathyme | 2025-05-16 14:12:24+00:00
I had a similar experience as the author. I've found found that cursor / copilot are FANTASTIC at "smart autocomplete", or "write a (small function that does this)" and quick viral prototypes.

But after I got a week into my LLM-led code base, it became clear it was all spaghetti code and progress ground to a halt.

This article is a perfect snapshot of the state of the art. It might improve in the future, but this is where it is in May 2025.
by mtlynch | 2025-05-16 14:12:31+00:00
Stuff like that but also near misses. Like, "you cut off another car and they had to slam the brakes."

There are also subtle precautions that not everyone knows. For example, I was taught that when waiting for traffic to clear for a left turn (in the US and other right hand driving countries), I should keep the wheel straight until immediately before I accelerate. That way, if someone rear ends me, I go forward rather than left into oncoming traffic. I suspect there are other techniques like that that I'm not aware of.
by kccqzy | 2025-05-16 14:12:47+00:00
Yes sure. Thought experiment: what happens when these parallel kernels suddenly need to call back in to Python? Let's say you have a multithreaded sorting library. If you are sorting numbers then fine nothing changes. But if you are sorting objects you need to use a single thread because you need to call PyObject_RichCompare. These new parallel kernels will then try to call PyObject_RichCompare from multiple threads.
by dahcryn | 2025-05-16 14:13:02+00:00
yes it does.

If software is implicitly built on wrong understanding, or undefined behaviour, I consider it rotting when it starts to fall apart as those undefined behaviours get defined. We do not need to sacrifice a stable future because of a few 15 year old programs. Let the people who care about the value that those programs bring, manage the update cycle and fix it.
by amiga386 | 2025-05-16 14:13:03+00:00
Well, perhaps we can congratulate the German-speaking countries for throwing off the yoke of Latin!

It did not happen in the Anglosphere because England was run by the Normans for hundreds of years, during which the common law system grew enormously...

Let's also not forget ecclesiastic Latin! Significantly less common in the HRE since Martin Luther's protestations!
by linsomniac | 2025-05-16 14:13:37+00:00
What are people using to interface with Gemini Pro 2.5? I'm using Claude Code with Claude Sonnet 3.7, and Codex with OpenAI, but Codex with Gemini didn't seem to work very well last week, kept telling me to go make this or that change in the code rather than doing it itself.
Show HN: The Great GitHub Nix Disk Space Heist
by flexiondotorg | 2025-05-16 14:13:53+00:00
Reclaim 130GB in GitHub Actions runners for Nix builds

I created this GitHub Action to solve a persistent problem: building complex NixOS configurations in GitHub CI fails with "no space left on device" errors. Standard GitHub runners have ~20GB of free space, but sophisticated NixOS workstation or server configurations can consume 10-15GB, leaving little headroom.

Nothing but Nix uses a two-stage approach:

1. It creates a large BTRFS volume from unused space on `/mnt` (giving ~65GB immediately)

2. It starts a background process that reclaims space by removing unnecessary pre-installed software, growing the volume to ~130GB

The technical implementation uses loop devices with sparse files and carefully tuned BTRFS mount options (no discard is critical to prevent misreported allocation sizes). The purge process is powered by rmz (from the Fast Unix Commands project), which is significantly faster than standard rm.

This solution has allowed me to build my entire fleet of NixOS configurations (servers, workstations, laptops, and VMs) in CI without paying for larger runners. All builds are cached for fast deployments.

Implementation details: <https://wimpysworld.com/posts/nothing-but-nix-github-actions...>

Try it out: <https://github.com/wimpysworld/nothing-but-nix>
by dahart | 2025-05-16 14:14:08+00:00
Looks like gcc & clang use some of the bit-twiddling tricks when you compile the original function with -O3: https://godbolt.org/z/eshd9axod

is_leap_year(unsigned int): xor eax, eax test dil, 3 jne .L1 imul edi, edi, -1030792151 mov eax, 1 mov edx, edi ror edx, 2 cmp edx, 42949672 ja .L1 ror edi, 4 cmp edi, 10737418 setbe al .L1: ret
by tialaramex | 2025-05-16 14:14:11+00:00
In C++ 26 you will be able to specifically mark that you want the initialization not to happen, whereupon of course (a) your reviewers can see this and critique it, are you sure it doesn't need initializing? Isn't this the code we run once per month that doesn't need to be fast or small? (b) the maintenance programmer coming later can identify that you did it on purpose and consider whether it's still correct

The problem was never "This is always a bad idea" and instead only "This is usually a bad idea so you should need to explicitly ask for it when you want it, so that when somebody writes it by mistake they can be told about that".

Rust chooses to need a lot of ceremony to make a MaybeUninit, and especially to then assume_init with no justification because it's not actually initialized - but that's because almost nobody who wants to write that understands what will actually happen, they typically have the C programmer "All the world's a PDP-11" understanding and in that world this operation has well understood and maybe even desirable behaviour. We do not live in that world, this is not a PDP-11 and it isn't shy about that. The thing they want is called a "freeze semantic" and it's difficult to ensure on modern systems.

But if you hate the ceremony, regardless of the fact there's a good reason for it - many languages have less ceremony, often just a handful of keystrokes to say "Don't initialize this" will be enough to achieve what you intended. What they don't do, which C++ did, was just assume the fact you forgot to write an initializer means you want the consequences - when in reality it usually means you're just human and make mistakes.
by timwis | 2025-05-16 14:14:40+00:00
I actually searched HN for “llm budget” because I wanted an LLM to help me sort one out, and not have to deal with correcting categorisations and such. And your app sounds like exactly what I searched for. But when I got there, I found myself hesitant to sign up because of data privacy concerns, piping all my financial data to it.

Rather than just close the tab and walk away, I thought I’d share the feedback with you, as you’ve clearly put a lot of time into it. I think if there were clearer messaging about how my privacy would be protected, I would have considered signing up.

Either way, best of luck with the project!