MurphyA/hacker-news huggingface dataset:
by keyringlight | 2025-07-24 20:26:12+00:00
That matches my experience with Cachyos, it's a rolling and cutting/bleeding edge distro which means it maybe cuts you occasionally. They still seem to be finding their way with some aspects like changing what bootloader they want to use (I'm not sure how much difference it makes to the maintainers, but it seems a little like bike-shedding for a distro which is out in public), and there's some changes which are forced on them like the nvidia drivers splitting between open/closed.

That's in contrast with what I perceive with a lot of gamers (seeing as Valve is being mentioned a lot) where they see a PC as a deluxe console with steam as the UI, and seem to be desiring a high level of polish. That's in combination with signalling that they're using the latest and greatest, tweaking to get the most out of their rigs, showing off their pretty color coordinated builds, and somehow are expected to dive into linux (and the freedom it brings) when there's hostility to running more than one client/store/downloader/gaming package manager. Some aspects of PC gaming seem weird to me.
by 0x457 | 2025-07-24 20:26:19+00:00
It's strongly typed, but it's also duck typed. Also, in ruby everything is an object, even the class itself, so type checking there is weird.

Sure it stops you from running into "'1' + 2" issues, but won't stop you from yeeting VeryRawUnvalidatedResponseThatMightNotBeAuthorized to a function that takes TotalValidatedRequestCanUseDownstream. You won't even notice an issue until:

- you manually validate

- you call a method that is unavailable on the wrong object.
by impossiblefork | 2025-07-24 20:26:57+00:00
>Well, this is essentially löntagarfonder but worse because it's funded by the people under the threat of violence (mandatory savings), not from corporate profits.

Eveything is done under the threat of violence, including things like land ownership. We're not running some kind of country-sized anarcho-syndicalist commune, so presumably we must operate on some other basis of morality, where we don't really care about this threat of violence stuff.

>So, the people are forced to buy the ridiculously inflated marked at ridiculously inflated prices for the faint hope that "likely" they'll get lower prices on something far in the "glorious bright future" (tm). And that's not socialism?

No, the people aren't forced to buy any stock. They keep the money uninvested or whatever they want, as long as they don't spend it. They'll invest it in order to achieve returns, to use at the point when they do get to spend it.

>Well, a careful analysis reveals that "likely" is quite unlikely, the people forced to "invest" are going to lose their shirts and inflation will actually accelerate, only the well connected will benefit because they will be in control of this devious scam.

Only if they're bad at investing, but many will joint together to form funds and try to hire professionals. Presumably banks would offer services to help people deal with their mandatory savings sensibly.

>You are obviously not familier with the many forms of socialism and you argue about irrelevant details. Mandatory savings equals socialism, monopolization equals socialism - it's not Stalin's socialism, it's Mussolini's socialism - lets not forget, he was the Duce of the Italian Social Republic. As Hitler was the head of the National Socialist German Workers Party.

That's the everything-is-socialism, including capitalism is socialism. I prefer the Marxist view: socialism is to each-according-to-his-contribution.

The only thing that is like that in our society is copyright, and this proposed policy isn't either.
by hollywood_court | 2025-07-24 20:27:23+00:00
Agreed. It seems that Sig really dropped the ball with the P320. My top 3 most used hand guns are the CZ P-10 F, the Sig P365, and the Sig P322.

I honestly never thought I'd ever buy a modern handgun unless it was made by Sig. Until I tried the CZ. The P-10 F is my favorite full sized striker fired pistol. And that's coming from a guy that owns 30+ Sig pistols.
by thewebguyd | 2025-07-24 20:27:41+00:00
I think your jaded view is likely correct, at least in this case but I can see the other argument. After all, even myself I choose to use iPhone over Android purely because I align more with their practices/policies around data vs. Google, which I guess means I also have decided ahead of time to trust Apple over another entity. But I also have no illusions when it comes to law enforcement access, outside of Apple's Advanced Data Protection, which Android/Google currently offers no alternative to.
by MaxBarraclough | 2025-07-24 20:27:58+00:00
> The real value comes when you do it with the knowledge of the mathematics in hand because then it allows you to prove your Program as "Correct" (w.r.t. a specification).

At the risk of nitpicking:

Certainly it's a benefit to structure and understand code such that you can reason about it effectively, but prove goes too far. Almost no real code is proven correct, the ergonomics of formal methods are still far too poor for that.
by AlotOfReading | 2025-07-24 20:28:13+00:00
There's no extra storage because it's already storing checksums. There's technically extra processing, but a good CRC is faster than reading memory on virtually all modern systems (even in embedded) so there's no reason to prefer a fletcher unless the few extra cycles of latency to get the CRC running are deeply concerning to you.

That's not nearly the only thing missing for SQLite to provide full resistance to lower-level data corruption.

A CRC wouldn't provide full resistance anyway, so this clearly isn't what I'm arguing. What I'm saying is that a fletcher is strictly worse than a CRC here. Not an advanced algorithm, a bog-standard CRC. Fletcher actually takes more space in this case, has worse error detection, and doesn't allow recovery. A CRC would allow you to recover some of the time, from some kinds of errors, in some scenarios. It's simply better than nothing.
by amccollum | 2025-07-24 20:28:22+00:00
If everyone is using LLMs to write new code, and LLMs are trained on existing code from the internet, that creates an enormous barrier to the adoption of new programming languages, because no new code will be written in them, therefore LLMs will never learn to write the code. It is a self-reinforcing cycle.

I've experienced this to some degree already in using LLMs to write Zig code (ironically, for my own pet programming language). Because Zig is still evolving so quickly, often the code the LLM produces is wrong because it's based on examples targeting incompatible prior versions of the language. Alternatively, if you ask an LLM to try to write code for a more esoteric language (e.g., Faust), the results are generally pretty terrible.
by OhMeadhbh | 2025-07-24 20:28:29+00:00
<snark>Time spent optimizing assembly language is never wasted.</snark>

That's only half-snark. It was "wasted" in the sense that it wasn't as useful as the OP thought it would be. But diving deep into a technical problem? That left an indelible pattern on the OP's psyche. If they ever have to do something like that again, it will certainly be easier. And since AI is going to be doing all the simple coding tasks, humans will have to dive into the deep, hard tasks.
by quietbritishjim | 2025-07-24 20:29:12+00:00
Wow, that is an impressively uninsightful article.

Apart from the first option, all of those are really obviously not classes.

The first option is a suggestion to use named tuples or dataclasses. That is sensible, but you are using a class in that case – those are just helpers for making them. You can even add your own methods to dataclasses.

For named tuples, you are better off using the typed version typing.NamedTuple [1] instead of the classical one suggested in the article. Aside from providing typing, the typed version has a much nicer syntax to define it and lets you add methods (like dataclasses but unlike classical named tuples)

[1] https://docs.python.org/3/library/typing.html#typing.NamedTu...
by ozkatz | 2025-07-24 20:29:17+00:00
I agree grouping behaviors (functions) doesn't require classes, but since Python does not have structs, classes are the only way to provide types (or at least type hints) for non-scalar data. Dicts can only have a key type and value types, while lists/tuples can only carry one type.

class Person: age: int name: str

Would have to be boiled down to `dict[str, Any]` (or worse, `tuple[Any]`). You could use `typing.NamedTuple` without defining a class (`NamedTuple('Person', [('name', str), ('age', int)])`) - but subjectively, this is much less readable than simply using a data class.
by yowzadave | 2025-07-24 20:29:18+00:00
There's an interesting series of fantasy novels by the author Graydon Saunders, occasionally recommended on this website, that almost entirely avoids the use of pronouns: https://www.goodreads.com/series/242525-commonweal . The avoidance of pronouns is a stylistic choice, but not a didactic one—you might not even realize it until you're a third of the way through the book and you start questioning whether a character you'd imagined as male or female might actually be a different gender, or not gendered at all. It's interesting to see how the author achieves this in dense but readable prose, without drawing attention to it.
by tgv | 2025-07-24 20:29:24+00:00
You're connecting something you dislike to a linguistic phenomenon based on a shared link to a concept. You could just as well argue that we shouldn't use names, because all people need to be treated the same.

Removing gender from language doesn't lead to paradise. Chinese and Turkish don't have gendered third person pronouns, but China and Turkey are not shining examples of gender equality.
by adolph | 2025-07-24 20:29:37+00:00
For pbpaste/pbcopy and xclip? I've considered it and haven't decided how to do it yet given differences in how they work. Do you have one?

https://linux.die.net/man/1/xclip

https://ss64.com/mac/pbcopy.html

https://man.openbsd.org/xclipboard.1
by dimal | 2025-07-24 20:29:42+00:00
Vibe coding pushes errors rightward, but using AI to speed up typing or summarizing documentation doesn’t. Vibe coding will fail, but that doesn’t mean using AI to code will fail. You’re looking at one (admittedly stupid) use case and generalizing too hastily.

If I have an LLM fix a bug where it gets the feedback from the type checker, linter and tests in realtime, no errors were pushed rightward.

It’s not a free lunch though. I still have to refactor afterwards or else I’ll be adding tech debt. To do that, I need to have an accurate mental model of the problem. I think this is where most people will go wrong. Most people have a mindset of “if it compiles and works, it ships.” This will lead to a tangled mess.

Basically, if people treat AI as a silver bullet for dealing with complexity, they’re going to have a bad time. There still is no silver bullet.
by JustExAWS | 2025-07-24 20:29:59+00:00
There is a huge difference between “I don’t agree with your stance on supply side economics or universal healthcare” and “I would just as well see you hanging from a tree as sitting here next to me” or “because you decide to love someone of the same sex, you are going to bring an end to this great nation and I will do everything I can to make your life miserable”,

I am not trying to “understand” anyone who thinks someone doesn’t deserve to exist.
by Zigurd | 2025-07-24 20:30:20+00:00
I would still bet against the Russians taking down all of Starlink. If they had a zero day that could do that, they'd save it for just before a big war.

But Russian low-intensity hybrid warfare, including infiltration and sabotage, is very real. Particularly in Europe and especially so in eastern Europe. There's a lot of nasty things going on in border areas that isn't widely reported.
by Filmatic | 2025-07-24 20:30:43+00:00
2.8% is even worse than I’d have guessed.

2.8% of an already rare event is technically non-imaginary, but also definitely rounds down to imaginary.

[edit] on top of that, is it even a one-digit percentage of that 2.8% of a rare event in which having a round chambered made any difference? Yet there are people confidently posting as if it’d be absurd to carry without a round chambered. That’s plainly nuts.
by xoa | 2025-07-24 20:31:18+00:00
>Few big nukes are enough to take out all satellites.

Um, no. Not even vaguely remotely. "Thousands of satellites" is a lot by historical human space standards, but compare that to the number of cars you see every day and then remember these are spread out over an area bigger then the surface of the entire planet. Don't be fooled by the simulation maps you can find online, where the satellites and tracks are shown thousands of times bigger then they would be to scale because otherwise they couldn't be seen. They are very, very far apart. Even on the ground, "a few big nukes" wouldn't do diddly. And nukes do less, not more, damage in space. A lot of the damage enhancement effects of nukes comes from their interaction with atmosphere. In a vacuum, it's only direct radiation which falls by the square of the distance, and satellites are of course designed to handle plenty of thermal and ionizing radiation all the time already by virtue of being designed for space. But Starlink sats aren't so high that Kessler syndrome is a concern either, there's plenty of atmospheric drag to bring debris down without active boosting.

GP is correct and I don't understand the downvotes: as far as physical resilience goes the Starlink constellation is a pretty damn hard target on an absolute basis, even before we get into the geopolitics of some country trying to shoot down US property that is also a US strategic asset.
by buerkle | 2025-07-24 20:31:44+00:00
foo(UUID, UUID); foo(AccountId, UserId);

I'd much rather deal with the 2nd version than the first. It's self-documenting and prevents errors like calling "foo(userId, accountId)" letting the compiler test for those cases. It also helps with more complex data structures without needing to create another type.

Map<UUID, List<UUID>> Map<AccountId, List<UserId>>
by jeffbee | 2025-07-24 20:31:58+00:00
Estimate, if you can, the fraction of the "good guy" episodes that critically hinged on the 1s it takes to rack the slide.

Personally I believe it's a good feature if a guy has to give it a think for 1-2 seconds before blowing away the guy in front of him in the line at Whataburger.
by piker | 2025-07-24 20:32:33+00:00
> For named tuples, you are better off using the typed version typing.NamedTuple [1] instead of the classical one suggested in the article. Aside from providing typing, the typed version has a much nicer syntax to define it and lets you add methods (like dataclasses but unlike classical named tuples)

It's been a while since I worked in python, but aren't the original namedtuples populated with __slots__ instead of a __dict__ which makes them a much better choice for very very large datasets? Albeit at the cost of duck typing.
by chiph | 2025-07-24 20:32:39+00:00
It depends on your job in the USAF. I was a security augmentee[0] and we did not chamber a round. But the Airman who died likely protected missile silos, which are "no-lone zones" and they would be carrying with a round in the chamber.

https://en.wikipedia.org/wiki/Two-person_rule

The P320 is known to have accidental discharges for civilian owners (honestly - don't buy one). But Sig Sauer has stated that the M18 military version did not have those problems. We will need to wait on the results of the investigation to find out.

[0] An extra duty typically assigned to junior enlisted - we only armed up during exercises. Which brings back a story - we were waiting on the trucks to take us to our posts, and the room was full of Airmen armed with M16s and M60 machine guns. And we were all watching Justin Wilson cooking up some delicious Cajun food on the TV.
by JustExAWS | 2025-07-24 20:33:05+00:00
It’s more like you are choosing to use a tool when for the use case cited, there are much better tools available. Maybe the new interactive “AI mode” for Google would be a better use case. But the web has been horrible for years trying to search for developer documentation instead of going to the canonical source because of all of the mirror sites that scrape content and add ads.
by cjs_ac | 2025-07-24 20:33:11+00:00
> It's fine for small one off scripts, but as your software's complexity grows the implicit (and often entirely undocumented) schema turns into tech debt.

It's a great way to start off a project, when you're still filling in the details of how everything will fit together. Once you've worked out what the schema is, then you can solidify it into classes.
by 0x457 | 2025-07-24 20:33:24+00:00
These are two entirely different a's you're storing reference to it in the same variable. You can do the same in rust (we agree it statically and strongly typed, right?):

let a = 1;

let a = '1';

Strongly typing means I can do 1 + '1' variable names and types has nothing to do with it being strongly typed.
by rutvik2601 | 2025-07-24 20:33:46+00:00
Thanks for all the insights and discussion here, really appreciate the range of perspectives.

I’ve actually been building a long-distance carpooling app called Carpooll.com for a while now. We're starting to scale across Canada and getting great early traction, especially among students and intercity travelers.

If anyone here is curious or wants to test it out, I’d be happy to share a TestFlight link for iOS or an APK for Android. I'm also very open to feedback, feature suggestions, or just chatting about what an ideal carpooling experience should look like.

Feel free to reply here
by DonHopkins | 2025-07-24 20:33:58+00:00
https://www.donhopkins.com/home/catalog/unix-haters/x-window...

Window Manager Flames, by Don Hopkins

The ICCCM Sucks

The ICCCM, abbreviated I39L, sucks. I39L is a hash for the acronymic expansion of ICCCM for "Inter-Client Communication Conventions Manual". Please read it if you don't believe me that it sucks! It really does. However, we must live with it. But how???

[...]
by zzo38computer | 2025-07-24 20:34:38+00:00
There are benefits of such things, especially if it can be handled by the compiler so that it does not make the code inefficient. In some cases it might even automatically convert the type, but often it is better to not do so. Furthermore, there may be an operator to ignore the type and use the representation directly, which must be specified explicitly (in order to avoid bugs in the software involving doing it by mistake).

In the example, they are (it seems) converting between Celsius and Fahrenheit, using floating point. There is the possibility of minor rounding errors, although if you are converting between Celsius and Kelvin with integers only then these rounding errors do not occur.

In some cases, a function might be able to work with any units as long as the units match.

> Public and even private functions should often avoid dealing in floats or integers alone

In some cases it makes sense to use those types directly, e.g. many kind of purely mathematical functions (such as checking if a number is prime). When dealing with physical measurements, bit fields, ID numbers, etc, it does make sense to have types specifically for those things, although the compiler should allow to override the requirement of the more specific type in specific cases by an explicit operator.

There is another article about string types, but I think there is the problem of using text-based formats, that will lead to many of these problems, including needing escaping, etc.
by rickydroll | 2025-07-24 20:34:48+00:00
Multifamily housing is not terribly popular here in New England, mostly because developers are cheap ass bastards and skimp on noise proofing. When my partner was renting in a two-family house, we could hear the landlord's child running, yelling, screaming, and dropping things. It was hell. It was one of the primary motivations for us to get our own house. My only experience with good multifamily housing was in Estonia, where the walls were thick and didn't pass sound at all.

Row houses are an interesting solution as long as there is a 30 dB or greater sound attenuation between apartments and a 90-minute firewall between them. Row housing is also interesting because it allows for the inclusion of a garage and charging infrastructure beneath the house, as well as a space to store home-scale batteries charged by your rooftop solar panels.
by bee_rider | 2025-07-24 20:34:57+00:00
Switching to TSMC broke their negative feedback loop, though. In the past AMD could be relied on to somehow not have the money to invest in their fabs at some point, resulting in another Intel era.

Nowadays, there will be another process node from TSMC. If AMD doesn’t pay for the R&D, TSMC’s other customers (like Apple and… actually, Intel) will instead.
by 9rx | 2025-07-24 20:35:36+00:00
> Had Chrome team kept pushing DartVM, it might have been quite different story.

Trouble with that line of thinking is that Google never pushed Go either. It didn't even bother to use it internally (outside from the occasional side project here and there). Google paid some salaries. I'll give you that. But it has paid salaries for a lot of different languages. That is not some kind of secret sauce.

> It is officially a research project for Google themselves

It's not just a research project. It is officially "not ready for use", but its roadmap has a clear "ready for use" plan in the coming months. Rust was also "not ready for use" when it hit the streets, it officially being a Mozilla research project, but every second discussion on HN was about it and what is to come. And that was without Google backing. If what you say is true, why isn't Carbon being shouted from every rooftop right now?

I know you're struggling to grasp at straws here, but let's just be honest for a moment: If it hasn't caught attention already, it isn't going to. Just another language to add to the pile.
by jannsy | 2025-07-24 20:35:55+00:00
What problems does our FindPartner.app solve? • Lack of access to reliable CoFounders and business partners • No central hub to Find CoFounder or investors globally • Fragmented, low-quality matchmaking on Reddit, forums, or Discord • No filters to assess commitment, skill level, or compatibility Who is this FindPartner.app for? • Solo founders with a startup idea • Tech professionals seeking to join startups • Angels & micro-investors • Existing teams looking to scale • Remote workers, solopreneurs & digital nomads Features of our FindPartner.app finder platform • Advanced filtering (skills, time zone, commitment, stage) • Public profiles with professional details & equity expectations • Idea & project database to explore opportunities • Built-in messaging with icebreaker prompts • Location-based search (London, India, Australia, Singapore, and more)
by ravenstine | 2025-07-24 20:36:40+00:00
One of my favorites:

"Object-Oriented Programming is Bad"

https://www.youtube.com/watch?v=QM1iUe6IofM

Followed by "Object-Oriented Programming is Embarrassing: 4 Short Examples".

https://www.youtube.com/watch?v=IRTfhkiAqPw
by somethingsome | 2025-07-24 20:36:46+00:00
It's because you aim for a false objective!

There is no a 'proper' way to do it! It goes like this, you change it, if it looks good, well, good job, if not, ask yourself why, and try your best to take that into account next time.

It's by doing millions of small mistakes that you improve. The teacher teaches one way that is kinda easy to grasp, it's not the only way and far from unique.

The further you go, the further you will see the same mistakes, and you will start to think in terms of volumes, shapes, shadows, perspective, even anatomy if you still struggle on some human body parts