MurphyA/hacker-news huggingface dataset:
by badosu | 2025-08-22 09:10:54+00:00
I contribute to an open-source game with decades of legacy and employing many unusual patterns.

Two weeks ago someone asked me to review a PR, which I did pointing out some architectural concerns. The code was not necessarily bad, but it added boilerplate to a point it required some restructuring to keep the codebase maintainable. I couldn't care less if it was written by AI or not in this case, it was not necessarily simple but was straightforward.

It took considerable effort to conjure a thoughtful and approachable description of the problem and the possible solutions. Keep in mind this is a project with considerable traction and a high amount of contributions are from enthusiasts. So having a clear, maintainable and approachable codebase is sometimes the most important requirement.

They asked for a second pass but it took two weeks for me to get around it, in the meantime they sent 3 different PRs, one closed after the other. I found it a bit strange, then I put some effort to review the last iteration. It had half baked solutions where for example there would be state cleanup functions but state was never written in the first place, something that would never go through normally, I gave the benefit of the doubt and pointed it out. I suspected it was AI generated most likely.

Then they showed me another variation of the PR where they implement a whole different architecture, some incredibly overengineered fluent interface to resolve a simple problem with many layers of indirection that reflects complete indifference to the more nuanced considerations relevant to the domain and project, that I tried to impair. The code might work, but even if it does it's obvious that the change is a net negative to the project.

What I suspected indeed was the case, as they finally disclosed the use of AI, but that is not necessarily the problem, as I hope to convey. The problem is that I was unable to gauge the submitters commitment to perform the humble job of _understanding_ what I proposed. The proposal, in the end, just becoming mere tokens for inclusion into a prompt. Disclosure wouldn't necessarily have caused me to not take the PR seriously, instead I would invested my time in the more productive effort of orienting the submitter on the tractability of achieving their goal.

I would rather have known they didn't intend or gauged their capacity beforehand. It would have been better for both of us: they would have had their initial iteration merged (which was fine, I would just have shrugged the refactor for another occasion) and I wouldn't have lost time.
by VagabundoP | 2025-08-22 09:10:55+00:00
Two things that will hurt us in the long run, working from home and AI. I'm generally in favour of both, but with newbies it hurts them as they are not spending enough face to face time with seniors to learn on the job.

And AI will hurt them in their own development and with it taking over the tasks they would normally cut their teeth on.

We'll have to find newer ways of helping the younger generation get in the door.
by stinos | 2025-08-22 09:11:33+00:00
This is just the explanation of why it's "drugs and alcohol", and OP probably is well aware of that. The point is there's an argument to be made that even though history shaped this distinction it's harmful in some ways and progress should be made towards removing this partcular distinction and make it one based on science, e.g. a more fair classification based on toxicity/negative effects.
by dmurray | 2025-08-22 09:11:36+00:00
I think you're broadly correct. But it's not one "faulty study". Every attempt to do a broad population-based study of alcohol use vs health outcomes finds this effect.

Controlling for why people don't drink is difficult to do without introducing bias. So there are still two competing theories: either the non-drinkers were a less healthy cohort to begin with, or moderate drinking has net health benefits.
by Aeolun | 2025-08-22 09:12:07+00:00
That's nonsense. It's like feeling you need to disclose that your IDE has autocomplete. Nobody discloses that, since it's ridiculous. You only disclose that you used Claude Code if you are not certain of the result (e.g. you think it is correct, but the maintainer might be a better judge).

If it's exactly the same as what you'd have written manually, and you are confident it works, then what's the point of disclosure?
by thrance | 2025-08-22 09:12:11+00:00
Stock buybacks is sacrificing the long term. It's artificially inflating the stock price with money that should have been used to grow the company.

And speculators don't care about any of that while the line is going up. They're not stupid, they just don't care about the actual health of the company, since today it is almost completely decorellated from its share price.

Look at Tesla and tell me why the investors have not yet fleed the scene, in light of the disastrous signals that keep popping up. Because it doesn't matter to speculators.
by prmoustache | 2025-08-22 09:12:43+00:00
> Larger stores in Sweden also use the coin system, even though as in the Netherlands it feels like use is declining in favor of just unlocked carts.

The coins are so that people put them back in their designated storage area, not to prevent theft. A significant fraction of the population are lazy asshole who tend to leave carts next to where their car was parked instead of walking the 10-20 meters it take to return them.
by xg15 | 2025-08-22 09:12:59+00:00
I was referring to this part, in "Shouldn’t the Nudge Go All the Way to Extended Grapheme Clusters?":

"For example, the Unicode version dependency of extended grapheme clusters means that you should never persist indices into a Swift strings and load them back in a future execution of your app, because an intervening Unicode data update may change the meaning of the persisted indices! The Swift string documentation does not warn against this.

You might think that this kind of thing is a theoretical issue that will never bite anyone, but even experts in data persistence, the developers of PostgreSQL, managed to make backup restorability dependent on collation order, which may change with glibc updates."

You're right it doesn't say "codepoints" as an alternative solution. That was just my assumption as it would be the closest representation that does not depend on the character database.

But you could also use code units, bytes, whatever. The problem will be the same if you have to reconstruct the grapheme clusters eventually.

> Why would software need to have a permanent, durable mapping between a string and the number of grapheme clusters that it contains?

Because splitting a grapheme cluster in half can change its semantics. You don't want that if you e.g. have an index for fulltext search.
by seszett | 2025-08-22 09:13:07+00:00
> which is pretty cheap for a whole ass trolley.

It's not an incentive to "not steal the trolley", it's an incentive to put it back in its place for people who were already not planning on stealing one.

This way the store and the customers don't have to deal with trolleys strewn around everywhere and blocking parking spaces, among other advantages.

I think when they removed the coins during Covid they just noticed that most people were already well-behaved enough to return the carts to their places, so the incentive is just not needed anymore. Actually in Belgium, Colruyt had never had coins for their carts and it just works.
by imtringued | 2025-08-22 09:14:43+00:00
Uhm, no? Unity is just the UI. The RNG algorithm runs on a centralised server.

The real problem is that the gambling business model is inherently incompatible with revenue sharing, because unlike a video game, you're paying money back to your customers every time they get a small win.

Let's say a gambler is wasting away $500 and getting back 95% every day and he plays until he runs out of money. Then unity would be getting $400 and the casino would be getting $100.
by M0r13n | 2025-08-22 09:15:18+00:00
Personally, I have never liked the PEP 634 pattern matching. I write a lot of code in Python. 99% of the time when I could use pattern matching, I am going to use simple if statements or dictionaries. Most of the time, they are more straightforward and easier to read, especially for developers who are more familiar with traditional control flow.
by algo_lover | 2025-08-22 09:15:24+00:00
I hit the same issue, building on mac to deploy to linux.

I added this build step before `scp`ing the binary to the server

docker run --rm --platform=linux/amd64 \ -v "$PWD":/app -w /app \ golang:1.22-bullseye \ /bin/bash -c "apt update && apt install -y gcc sqlite3 libsqlite3-dev && \ CGO_ENABLED=1 GOOS=linux GOARCH=amd64 go build -o app-linux-amd64 ./cmd/main.go"

Looking at the article, I should give modernc sqlite driver a try.
by palata | 2025-08-22 09:16:29+00:00
Well the e-ID is an ID, so to the government it's tied to a person. But I know that in multiple countries it's possible to use the e-ID to only share the information necessary with the receiver in a way that the government cannot track. Typically, share only the fact that you are 18+ without sharing your name or birthday, and without the government being able to track where you shared that fact.

This is privacy-preserving and modern.
by pornel | 2025-08-22 09:17:02+00:00
This can be done with exclusively owned objects. That's how io_uring abstractions work in Rust – you give your (heap allocated) buffer to a buffer pool, and get it back when the operation is done.

&mut references are exclusive and non-copyable, so the hot potato approach can even be used within their scope.

But the problem in Rust is that threads can unwind/exit at any time, invalidating buffers living on the stack, and io_uring may use the buffer for longer than the thread lives.

The borrow checker only checks what code is doing, but doesn't have power to alter runtime behavior (it's not a GC after all), so it only can prevent io_uring abstractions from getting any on-stack buffers, but has no power to prevent threads from unwinding to make on-stack buffer safe instead.
by lou1306 | 2025-08-22 09:17:16+00:00
A big advantage of QR code is that it's just a square, whereas URLs occupy short, wide rectangles of space. They are also robust to a number of situations where OCR may struggle: small size, low light, fading...

And they are human-inspectable. It is regrettable that iOS's camera app just prompts you to open a QR-encoded URL in a Web browser, but you can use a "passive" scanner that just reveals the payload without risk.
by 0xDEAFBEAD | 2025-08-22 09:17:29+00:00
I don't mind them having an opinion. I do mind them (for example) stating that individuals at a particular political conference "look like they had been bullied as children, or else should have been bullied".

How do you rank the Economist, WSJ, Bloomberg, and FT? I view them as the big 4 English-language "serious investor publications" -- curious if you can think of others. (Generally I view investor publications as more incentivized towards accuracy. Investors will pay for information which allows them to make accurate predictions about asset prices. That's a better feedback loop for truth than most publications get. Lots of real-world events are reflected in asset prices.)
by jillesvangurp | 2025-08-22 09:17:45+00:00
I think even a 20 mile an hour crash can do quite a bit of damage. It doesn't take much to crack a skull or break some bones.

My response to any kind of scooter has always been "No thanks. I like having teeth.". Just not worth it to me. I'll use an ebike if I need to. Feels much more stable to me.
by lm28469 | 2025-08-22 09:17:49+00:00
> so you’re more likely to land on your feet

Try jumping of a car at 25kmh. You'll be on your feet for some time indeed, the next step is both your wrist buckling (or snapping) because you'll instinctively put your hands up, and after that your head contacting the ground. Even at 15kmh I doubt most people would handle that gracefully.

From what I gather the injuries are similar, but escooters are used by more diverse people whereas regular bicycles are more of a lifestyle choice, much more nighttime accidents and accidents involving alcohol

https://www.nature.com/articles/s41598-025-12627-x
by latentsea | 2025-08-22 09:18:23+00:00
Yeah... Yeah... my bad, I totally forgot about that. Get the community involved, makes perfect sense. Just send them to the Boy Scouts of America... Oh wait... oh shit... Oh that didn't turn out great. Never mind we'll just take em to church. Whoops... damn. Alright, well how about we put them in the local sports club. Shit.

Your super responsible community based approach just got your kids diddled hard.
by account42 | 2025-08-22 09:19:33+00:00
But why care if it's malformed UTF-8? And specifically, what do you want to happen when you get a malformed UTF-8 string. Keep in mind that UTF-8 is self-synchronizing so even if you encode strings into a larger text-based format without verifying them it will still be possible to decode the document. As a user I normally want my programs to pass on the string without mangling it further. Some tool throwing fatal errors because some string I don't actually care about contains an invalid UTF-8 byte sequence is the last thing I want. With strings being an arbitrary bag of bytes many programs can support arbitrary encodings or at least arbitrary ASCII-supersets without any additional effort.
by josephg | 2025-08-22 09:20:24+00:00
It’s a bit of a niche use case, but I use the codepoint counts in CRDTs for collaborative text editing.

Grapheme cluster counts can’t be used because they’re unstable across Unicode versions. Some algorithms use UTF8 byte offsets - but I think that’s a mistake because they make input validation much more complicated. Using byte offsets, there’s a whole lot of invalid states you can represent easily. Eg maybe insert “a” at position 0 is valid, but inserting at position 1 would be invalid because it might insert in the middle of a codepoint. Then inserting at position 2 is valid again. If you send me an operation which happened at some earlier point in time, I don’t necessarily have the text document you were inserting into handy. So figuring out if your insertion (and deletion!) positions are valid at all is a very complex and expensive operation.

Codepoints are way easier. I can just accept any integer up to the length of the document at that point in time.
by noodletheworld | 2025-08-22 09:20:34+00:00
How can a benchmark be secret if you post it to an API to test a model on it?

"We totally promise that when we run your benchmark against our API we won't take the data from it and use to be better at your benchmark next time"

:P

If you want to do it properly you have to avoid any 3rd party hosted model when you test your benchmark, which means you can't have GPT5, claude, etc. on it; and none of the benchmarks want to be 'that guy' who doesn't have all the best models on it.

So no.

They're not secret.
by gnfargbl | 2025-08-22 09:20:55+00:00
Here's an example of the "moderate drinking is healthy" risk curves that the article refers to: https://publications.parliament.uk/pa/cm201012/cmselect/cmsc...

This newer work seems basically to be arguing that the effect on the lefthand size of the curve is because drinking alcohol is so common that people who drink nothing are likely to be in poor health already.
by dmurray | 2025-08-22 09:21:23+00:00
Something has deterred smokers: the overall rate of adults who smoke has fallen from 50% to 25% in the last 50 years [0] - the source gives measures by gender and birth cohort, but you can aggregate them any way you want to see a big drop off.

[0] https://pmc.ncbi.nlm.nih.gov/articles/PMC2566030/
by jasode | 2025-08-22 09:21:50+00:00
>and proghress should be made towards removing the distinction. [...] history shaped this distinction

The point I'm trying to make is that society can't make progress towards unifying alcohol into a category with fetanyl -- because society will continue to use alcohol in socially acceptable functions.

It's not just about the past. It's this ongoing use of alcohol that's very different from fetanyl that will continue to keep alcohol as a separate category in the public's mind. Our future behaviors will keep reinforcing the separate categories in future discussions. Yes, you can scientifically unify "alcohol is a drug" together with "fetanyl is a drug" ... but our deep cultural integration with alcohol prevents society from doing that. E.g. Do we expect the bride of a future wedding in 2026 to choose which wine to serve at the reception? Yes and behaviors like that means we'll continue to categorize alcohol as a separate thing from fetanyl in 2026. If the hired wedding planner tells the bride, "how can you order wine when it's in the same scientific category of toxic danger like fetanyl?!?", that planner will get fired.
by socalgal2 | 2025-08-22 09:21:50+00:00
That science should take into account it positive effects on society at large. it’s possible society wouldn’t exist without alcohol. There are customs about drinking with new partners (tribe leaders, business leaders) because until you see them with their shields down you can’t trust them.

https://longnow.org/talks/02022-slingerland/

There’s also a lot of joy people get. Removing that joy might be a net negative over all. It’s like another said, cupcakes, ice cream, candy, donuts are bad for you but people get joy from them so we just encourage moderation
by kisamoto | 2025-08-22 09:22:04+00:00
I would argue that just being in the office or not using AI doesn't guarantee any better learning of younger generations. Without proper guidance a junior would still struggle regardless of their location or AI pilot.

The challenge now is for companies, managers and mentors to adapt to more remote and AI assisted learning. If a junior can be taught that it's okay to reach out (and be given ample opportunities to do so), as well as how to productively use AI to explain concepts that they may feel too scared to ask because they're "basics", then I don't see why this would hurt in the long run.
by pjmlp | 2025-08-22 09:22:45+00:00
On the contrary, I was there when game devs took some convincing that C / Object Pascal compilers were getting good enough over Assembly, even if some inline Assembly was still required in hot paths.

When the whole C vs C++ quality of code generation debates started, that were the genesis for Matt Goldbolt while still working at the games industry, to have created Compiler Explorer as means to shutdown discussions regarding C++'s adoption, which nonethless persist to this day, especially in the Handmade community.

Burst was necessary, to have industry legends like Mike Acton come and join Unity, despite their strong opinions against C++.
by reify | 2025-08-22 09:23:30+00:00
Plague

Wasnt he the hacker in the The Millennium Trilogy by Stieg Larsson

The girl with the dragon tattoo, The girl who played with fire and The girl who kicked the hornets nest.

Bubonic plague however is the most common form of plague worldwide.

According to the WHO, between 2010 and 2015 there were 3,248 cases out of the worlds population of 8.2 billion, of which 584 people died. so we can safely say we are safe

I love the word Plague, I keep saying it in my head.

Dont get bitten by a rat
by klondike_klive | 2025-08-22 09:23:50+00:00
One thing I've come to understand about myself since my ADHD diagnosis is how hard thinking actually is for me. Especially thinking "to order", like problem solving or planning ahead. I'm great at makeshift solutions that will hold together until something better comes along. But deep and sustained thought for any length of time increases the chance that I'll become aware that I'm thinking and then get stuck in a fruitless meta cognition spiral.

An analogy occurred to me the other day that it's like diving into a burning building to rescue possessions. If I really go for it I could get lucky and retrieve a passport or pet, but I'm just as likely to come back with an egg whisk!
by simsla | 2025-08-22 09:24:29+00:00
This relates to one of my biggest pet peeves.

People interpret "statistically significant" to mean "notable"/"meaningful". I detected a difference, and statistics say that it matters. That's the wrong way to think about things.

Significance testing only tells you the probability that the measured difference is a "good measurement". With a certain degree of confidence, you can say "the difference exists as measured".

Whether the measured difference is significant in the sense of "meaningful" is a value judgement that we / stakeholders should impose on top of that, usually based on the magnitude of the measured difference, not the statistical significance.

It sounds obvious, but this is one of the most common fallacies I observe in industry and a lot of science.

For example: "This intervention causes an uplift in [metric] with p<0.001. High statistical significance! The uplift: 0.000001%." Meaningful? Probably not.
by d4rkn0d3z | 2025-08-22 09:24:54+00:00
In physics, the change from classical to quantum theory was a change from determinism to probabilistic determinism. There is not one physicist on earth that would ever exhort you to use quantum theory where classical theory will do. Furthermore, when you study physics you must learn the classical theory first or you will be hopelessly lost, just like the author of this article.

The central analogy of the article is entirely bogus.

This article does not rise to the level of being wrong.
by mdemare | 2025-08-22 09:25:54+00:00
- "they were more small than large" (what?)

- "even in the thirties little had been done to them" (done to them?)

- "Welgelegen Buitenrust Nooitgedacht Rustenburg" (Untranslated!)

- "his father had first called it Eleutheria" (his father'd rather called it)

- "just as extraordinary does not refer to the ordinary nature of the outside" (complete non-sequitur)
by zahlman | 2025-08-22 09:26:03+00:00
How is "uv format" a better name, or more "abstract", etc. etc., than "ruff check"? Why is it easier to think of my formatter and package manager (or whatever other pieces) as being conceptually the same tool, given that they are doing clearly different, independent and unrelated things?

And why is any of this relevant to first-time Python learners? (It's already a lot to ask that they have to understand version control at the same time that they're learning specific language syntax along with the general concept of a programming language....)
by chrismorgan | 2025-08-22 09:26:33+00:00
> it doesn't say "codepoints" as an alternative solution. That was just my assumption …

On the contrary, the article calls code point indexing “rather useless” in the subtitle. Code unit indexing is the appropriate technique. (“Byte indexing” generally implies the use of UTF-8 and in that context is more meaningfully called code unit indexing. But I just bet there are systems out there that use UTF-16 or UTF-32 and yet use byte indexing.)

> The problem will be the same if you have to reconstruct the grapheme clusters eventually.

In practice, you basically never do. Only your GUI framework ever does, for rendering the text and for handling selection and editing. Because that’s pretty much the only place EGCs are ever actually relevant.

> You don't want that if you e.g. have an index for fulltext search.

Your text search won’t be splitting by grapheme clusters, it’ll be doing word segmentation instead.
by ivanjermakov | 2025-08-22 09:26:48+00:00
Your story highlights the clash of two mindsets regarding open source development. On one side there are artisans who treat programming as a craft and care about every line of code. On the other side, vibe-coders who might not even seen the code LLMs have generated and don't care about it as long as the program works.

And of course there is everything in between.