MurphyA/hacker-news huggingface dataset:
by don-bright | 2025-07-19 23:30:37+00:00
Regarding Indexes: "When the same borrowchecker makes references unworkable, their solution is to... recommend that I manually manage them, with zero safety and zero language support?!?"

Language support: You can implement extension traits on an integer so you can do things like current_node.next(v) (like if you have an integer named 'current_node' which is an index into a vector v of nodes) and customize how your next() works.

Also, I disagree there is 'zero safety', since the indexes are into a Rust vector, they are bounds checked by default when "dereferencing" the index into the vector (v[i]), and the checking is not that slow for vast majority of use cases. If you go out of bounds, Rust will panic and tell you exactly where it panicked. If panicking is a problem you could theoretically have custom deference code that does something more graceful than panic.

But with using indexes there is no corruption of memory outside of the vector where you are keeping your data, in other words there isn't a buffer overflow attack that allows for machine instructions to be overwritten with data, which is where a huge amount of vulnerabilities and hacks have come from over the past few decades. That's what is meant by 'safety' in general.

I know people stick in 'unsafe' to gain a few percent speed sometimes, but then it's unsafe rust by definition. I agree that unsafe rust is unsafe.

Also you can do silly optimization tricks like if you need to perform a single operation on the entire collection of nodes, you can parallelize it easily by iterating thru the vector without having to iterate through the data structure using next/prev leaf/branch whatever.
by omneity | 2025-07-19 23:30:41+00:00
I just posted incidentally about Wikipedia Monthly[0], a monthly dump of wikipedia broken down by language and cleaned MediaWiki markup into plain text, so perfect for a local search index or other scenarios.

There are 341 languages in there and 205GB of data, with English alone making up 24GB! My perspective on Simple English Wikipedia (from the OP), it's decent but the content tends to be shallow and imprecise.

0: https://omarkama.li/blog/wikipedia-monthly-fresh-clean-dumps...
by mjevans | 2025-07-19 23:32:06+00:00
Office could freely continue to support their old proprietary formats if they wanted.

In an ideal world a converter would generate E.G. a 1200 PPI render of each page, then compare it to a similar render as provided in the nearest rendition in the allowed simple new format. Those could be diffed to produce a highlight of areas that changed.

The software could then ask if the transcription from one format to the other was close enough, or if there were some corner case that wasn't good enough.

Bonus points, collect feedback if the end user is willing to submit examples.
by pie_flavor | 2025-07-19 23:33:08+00:00
If you notice a rule for the first time, restricting what you want to do and making you jump through a hoop, it can be hard to see what the rule is actually for. The thrust of the piece is 'there should not be so many rules, let me do whatever I want to do if the code would make sense to me'. This does not survive contact with (say) an Enterprise Java codebase filled with a billion cases of defensive strict immutability and defensive copies, because the language lacks Rust's rules and constructs about shared mutability and without them you have to use constant discipline to prevent bugs. `derive(Copy)` as One More Pointless Thing You Have To Do only makes sense if you haven't spent much time code-reviewing someone's C++.

If you try to write Java in Rust, you will fail. Rust is no different in this regard from Haskell, but method syntax feels so friendly that it doesn't register that this is a language you genuinely have to learn instead of picking up the basics in a couple hours and immediately start implementing `increment_counter`-style interfaces.

And this is an inexperienced take, no matter how eloquently it's written. You can see it immediately from the complaint about CS101 pointer-chasing graph structures, and apoplexy at the thought of index-based structures, when any serious graph should be written with an index-based adjacency list and writing your own nonintrusive collection types is pretty rare in normal code. Just Use Petgraph.

A beginner is told to 'Just' use borrow-splitting functions, and this feels like a hoop to jump through. This is because it's not the real answer. The real answer is that once you have properly learned Rust, once your reflexes are procedural instead of object-oriented, you stop running into the problem altogether; you automatically architect code so it doesn't come up (as often). The article mentions this point and says 'nuh uh', but everyone saying it is personally at this level; 'intermittent' Rust usage is not really a good Learning Environment.
by JKCalhoun | 2025-07-19 23:33:30+00:00
Went to a wedding, 10 years ago even, and the "kids" DJ-ing the wedding party were pulling up music on YouTube.

(To be sure, this was very much a low-key affair, teens there with their parents were "DJ-ing" — but I was still surprised that is was YT. Just vanilla YT, pulling up "videos" and hitting "play".)
by moefh | 2025-07-19 23:33:54+00:00
> The western 12TET scale is not actually 12TET or 12EDO, we temper the scale itself and tweak some notes [...]

I think you and I must be using words differently. To me (and to Wikipedia, and everything else I've ever read, including[1] which I just consulted to make sure I'm not crazy), 12TET is a way to specify by how much you have to multiply the frequency of the first note of the scale to get the other notes' frequencies. Wikipedia[2] has a table with the numbers for 12TET (the column "Decimal value in 12-ET"), but it's very simple: you just multiply the value of the preceding note by 2^(1/12). If you take 12TET and adjust/change the notes a bit, then it's not 12TET anymore.

> EDO on fretted instruments goes back to at least the 16th century

I'd love to see a reference for that. I just consulted [1], it has a chapter called "Non-Keyboard Tuning" and it doesn't mention that (although admittedly it spends most of its time talking about violin, with a ton of references to stuff that Mozart said). The book does say that equal temperament was known for centuries before it was used, but the people who first discovered it simply didn't think it sounded good.

[1] "How Equal Temperament Ruined Harmony (and Why You Should Care)" by Ross W. Duffin

[2] https://en.wikipedia.org/wiki/12_equal_temperament
by gjm11 | 2025-07-19 23:33:58+00:00
It doesn't look like any exfiltration is happening? Although they use the word "telemetry", unless I'm misunderstanding the information is just stored locally on the device.

(Disclaimer: I am an HP employee, but I don't work on laptops and I think this is the first I have heard of "HPFax". Neither now nor at any other time on HN am I speaking for my employer rather than myself.)
by Jtsummers | 2025-07-19 23:34:05+00:00
> I'd honestly much prefer bool() threw an exception on receiving a string, rather than act the way it does now.

`bool` would have no value if it threw an error in this case because if strings can't be passed to it, then no other type would sensibly work either. It would basically just become `bool(False) -> False` and `bool(True) -> True`.
by phtrivier | 2025-07-19 23:34:27+00:00
Our ability to "read critically" is not incompatible with the expectation that other people will "write honestly". If it's incremental and a promising lead and it works only in mice, there are an infinite number of titles that are closer to the truth than "universal cancer vaccine".

Otherwise, I'm going to start posting things about that "AGI" that I was able to train, and that can think () !!! Trust me, it's in Rust !!

() : at the same level as a single cell organism in a simulated environment
by Arathorn | 2025-07-19 23:34:53+00:00
> Others who had similar concerns were completely dismissed and attacked by the Element/Matrix admins.

This is completely untrue, as per https://news.ycombinator.com/item?id=44599457.

We are VERY aware of the CSAM spammer problem, and have been working solidly on it, and apologising whereever we can - e.g. https://news.ycombinator.com/item?id=44599382.
by merksoftworks | 2025-07-19 23:35:16+00:00
I think the borrow checker doesn't get enough credit for supporting one of rusts other biggest selling points - it's ecosystem. In C and C++ libraries often go through pains to pass as little allocated memory over the API barrier as possible, communicating about lifetime constraints and ownership is flimsy and frequently causes crashes. In Rust if a function returns Vec<Foo> then every Foo is valid until dropped, and if it's not someone did something unsafe.
by dataflow | 2025-07-19 23:35:21+00:00
> In context, the "at least 16%" is responding to someone who said 8%, and 16 just happens to be exactly twice 8. I suspect (though I don't know) that Yudkowsky would not have claimed to have a robust way to pick whether 16% or 17% was the better figure.

If this was just a way to say "at least double that", that's... fair enough, I guess.

Regarding your other point:

> For what it's worth, I don't think there's anything even slightly wrong with using whatever estimate feels good to you, even if it happens not to fit someone else's criterion for being a nice round number

This is completely missing the point. There absolutely is something wrong with doing this (barring cases like the above where it was just a confusing phrasing of something with less precision like "double that"). The issue has nothing to do with being "nice", it has to do with the significant figures and the error bars.

If you say 20% then it is understood that your error margin is 5%. Even those that don't understand sigfigs still understand that your error margin is < 10%.

If you say 19% then suddenly the understanding becomes that your error margin < 1%. Nobody is going to see that and assume your error bars on it are 5% -- nobody. Which is what makes it a ridiculous estimate. This has nothing to do with being "nice and round" and everything with conveying appropriate confidence.
by GauntletWizard | 2025-07-19 23:35:25+00:00
I ditched Chromecast recently. They made YouTube too heavyweight for the Chromecast Ultra, to the point it regularly crashed. The new "Chromecast With Android TV" is barely more specs and has broken the interface by being... Android TV. Rather than take a well deserved second place, they chased Apple's design and ruined their niche.

Worse still, the best replacement I could find... Was Apple TV. So now I'm on that ecosystem.
by maxglute | 2025-07-19 23:35:41+00:00
Yeah. This and GShock Move. IMO pretty low effort, I'd want basic smart watch / band functions like full sensor suite, notifications, nfc. Literally just need Casio to copy a miband (which goes on sale for like <30 USD) / or fitbit and slap it in affordable f91w style body. TBH part of me feels sad / thinks JP electronic decline = they're simply not capable. Fingers crossed for day Casio figures out f91w shaped smartband/watch where the buttons can control media or be programmable like pebble. I'd pay 200+ for fancier housing, but not watch+pedometer.
by dontlaugh | 2025-07-19 23:35:59+00:00
Tracking users isn’t actually needed, though. Websites that store data only for the functionality they offer don’t need to seek consent.

The actual problem is weak enforcement. If the maximum fines allowed by the law had been levied, several companies would’ve been effectively ended or excluded from the EU. That would’ve been good incentive for non-malicious compliance.
by coldtea | 2025-07-19 23:36:17+00:00
C, C++, Python, Perl, Ruby, didn't have "millions of dollars in advertising", and yet.

Java and C# are the only one's that fit this. Go and Rust had some publicity from being associated with Google and Mozilla, but they both caught on without "millions of dollars in advertising" too. Endorsement by big companies like MS came much later for Rust, and Google only started devoting some PR to Go after several years of it already catching momentum.
by sfink | 2025-07-19 23:36:53+00:00
They are being efficient with their own time, yes, but it's at the expense of mine. I get less signal. We used to bemoan how hard it was to effectively communicate via text only instead of in person. Now, rather than fixing that gap, we've moved on to removing even more of the signal. We have to infer the intentions of the sender by guessing what they fed into the LLM to avoid getting tricked by what the LLM incorrectly added or accentuated.

The overall impact on the system makes it much less efficient, despite all those "saving [their] time" by abusing LLMs.
by shivasaxena | 2025-07-19 23:37:17+00:00
I would consider it very destabilizing idea and an affront to fairness really.

As an example, Wouldn't that mean that if my startup raises a round of 1m for 10%, my NW would go to 0 to 9m. 6% of that would be around 0.5m, and 30% tax would mean I would have to pay 162,000 EUR in taxes.

As a cash poor founder how do you suggest I pay that.

That's why taxing income and not wealth has been the norm.
by jwrallie | 2025-07-19 23:38:28+00:00
Trying to find an affordable camera / baby monitor that was both secure and offline was a tough one for me, it seems every single consumer oriented camera has a remote access functionality (= a backdoor) nowadays, and the baby monitors that don’t use wifi are only secure through obscurity with some of them being as easy to hack as buying the same model.

I ended up with an Amcrest IP2M-841 and Tinycam on Android (as I understand using RTSP), and blocking internet access of the camera through the router. As I found out, just connecting it to the internet will automatically connect to servers for allowing “easy setup” of the remote access feature.
by harrisi | 2025-07-19 23:39:19+00:00
I'm surprised by the reactions to this. It's made immediately clear in the notebook that this is a fun look at some interesting behaviors of Python. There's no implication that there are bugs - I have no idea where anyone got that idea - except for the single actual bug in CPython that is mentioned (https://github.com/python/cpython/issues/54753).

I don't feel strongly about Python, but I do think CPython is a great way for people to learn a bit about how interpreted languages work. The code is quite easy to understand, and you can easily play with these interesting aspects of how languages and runtimes work. Does every Python programmer need to know the difference between `a = 256` and `a = 257`? No. Is it interesting? Yes. Should someone on your team know? Probably.

There's a lot of interesting stuff here. Understanding the difference between the conceptual idea of each line of code and what actually happens is fun, and, in some cases, important.
by BLKNSLVR | 2025-07-19 23:39:35+00:00
I use a local NVR containing a couple of hard drives totalling maybe 8TB of storage attached to same-branded cameras (ranging between $80 and $150 each) that I can access locally, and remotely via Wireguard.

I'd say it's economical in comparison to cloud options, but, yes, not all that practical to the less technical crowd.

I specifically block the camera and NVR local IP addresses from accessing the internet. I don't really want the possibility of an private company accessing live (or recorded) video of where I live.

Brand is Reolink. I've been slowly building up the system over five-ish years and have not yet found any reason to kick myself for choosing that brand. I also have some TP-Link Tapo cameras for more temporary things, like monitoring pets.

I've also setup Frigate as an alternative system, both for my own interest and as a way to aggregate different camera brands to a single interface. Frigate can be a bit complex.
by andai | 2025-07-19 23:40:44+00:00
I used Rust for about an hour and immediately ran into an issue I found amusing.

The compiler changed the type of my variable based on its usage. Usage in code I didn't write. There was no warning about this (even with clippy). The program crashed at runtime.

I found this amusing because it doesn't happen in dynamic languages, and it doesn't happen in languages where you have to specify the types. But Rust, with its emphasis on safety, somehow lured me into this trap within the first 15 minutes of programming.

I found it more amusing because in my other attempts at Rust, the compiler rejected my code constantly (which was valid and worked fine), but then also silently modified my program without warning to crash at runtime.

I saw an article by the developers of the Flow language, which suffered from a similar issue until it was fixed. They called it Spooky Action at a Distance.

This being said, I like Rust and its goals overall. I just wish it was a little more explicit with the types, and a little more configurable on the compiler strictness side. Many of its errors are actually just warnings, depending on your program. It feels disrespectful for a compiler to insist it knows better than the programmer, and to refuse to even compile the program.
by ImaCake | 2025-07-19 23:40:57+00:00
There is nothing about LLMs that make them bias towards "better" code. LLMs are every bit as good at making low effort reddit posts and writing essays for Harper's Magazine. In fact, there's a lot more shit reddit posts (and horrible student assignment github repos) than there are Harper's Magazine articles.

The only thing standing between your LLM and bad code is the quality of the prompt (including context and the hiddem OEM prompt).
by JKCalhoun | 2025-07-19 23:42:02+00:00
That alternatives to YouTube have come to naught feels unfortunately like a de facto monopoly.

Certainly it's because the content creators stay on YouTube because that's "where the eyeballs are". (Or rather, the money is to be made there on ad revenue ... because that's where the eyeballs are.)

I don't know how you break that. eBay is probably in the same enviable position.
by abathur | 2025-07-19 23:43:34+00:00
A popular local spot has a summary on google maps that says:

Vibrant watering hole with drinks & po' boys, as well as a jukebox, pool & electronic darts.

It doesn't serve po' boys, have a jukebox (though the playlists are impeccable), have pool, or have electronic darts. (It also doesn't really have drinks in the way this implies. It's got beer and a few canned options. No cocktails or mixed drinks.)

They got a catty one-star review a month ago for having a misleading description by someone who really wanted to play pool or darts.

I'm sure the owner reported it. I reported it. I imagine other visitors have as well. At least a month on, it's still there.
by xoa | 2025-07-19 23:43:48+00:00
Yes, this is my take as well, and I think it's the correct one from both a technical and legal POV. It's one thing for the government to try to compel an organization or person to create a feature they want from scratch. They have made noises in that direction in the past (like the FBI vs Apple trying to invoke the All Writs Act) but it's been on very shaky ground, on both 1st and 13th Amendment grounds as well as others. But the government can be a lot more aggressive and courts a lot more permissive when it comes to merely making use of functionality that already exists. Even putting aside all the massive numbers of perverse incentives, but the thing is of course those shouldn't be put aside, we've seen this movie before over and over and over again. Once a feature exists that can generate a lot of direct revenue for a company and the only thing that keeps them from turning the knob up is "we're totally not evil cross our hearts!". Like holy shit, in 2025 who really goes "oh well it's opt-in!"

I think this particular one is pretty important to know about because a lot of people deploy Ring stuff almost by default, and some HNers (including me as it happens) have some level of influence or even control over it. I always meant to put some effort into updating my self-hosted security system efforts but this is a major kick in the butt. Have to know this exists and be able to offer solid credible alternatives.

Edit: to add a direct pertinent example, WE LITERALLY JUST HAD 5 DAYS AGO ON HN A 500+ COMMENT HUGE THREAD ON "Oakland cops gave ICE license plate data; SFPD also illegally shared with feds" [0]. And there are people really claiming "nothing to see here, move along, local and feds would totally never conspire to abuse anything in violation of the law let alone not in violation of the law"!?

----

0: https://news.ycombinator.com/item?id=44561716
by delfinom | 2025-07-19 23:44:00+00:00
This. There are a few areas in the US that have a long history of being incubators of engineering firms beyond Silicon Valley, all because of WW2 which had tons of money being spent to produce certain types of equipment in each area.

And of course, this is before the mega defense contractors that exist now. The military absolutely fucking hates those megacorps and does still try and actively fund new small business entrants to military contracting. The problem is mega corps buy them up as the US is owned by them.
by cmrdporcupine | 2025-07-19 23:44:07+00:00
I always say for people coming from C++ ... just imagine a std::move is there around everything (well, except for things that are Copy) ... then it will all make sense.

The problem is this mental model is entirely foreign to people who have worked in literally every other language where pass by value (copy or pass by reference are the way things work, always.
by vidarh | 2025-07-19 23:44:15+00:00
The Statue of Anne - the first recognisable copyright law in anything remotely the modern sense dates to 1709. Long after the invention of movable type. Mechanical in the sense of printing with a press using movable type, not anything highly automated.

Having to petition for monopoly rights on an individual basis is nothing like copyright, where the entire point is to avoid having to ask for exceptions by creating a right.
by parineum | 2025-07-19 23:44:25+00:00
> money equals speech

Another great and misleading quote.

> With Citizens United I started by trying to determine what rights I didn't have before the ruling.

That's an easy answer. You didn't have the right to make a movie about a politician with your friends while also forming a corporation so that, when the camera man you hired breaks his leg and sues you, you don't personally go broke.

Before Citizens United, a single (wealthy) individual could have funded a movie like that to try and turn an election. After Citizens United, collective political speech got easier.

After Citizens United, the amount if money spent on political campaigns (outside of the campaign, wink wink) has skyrocketed, that's true. However, the source of that money isn't billionaires, they were already able to use their wealth to influence politics (think Fox News/Murdoch). All that new.money is coming from smaller donations from more people.
by gcanyon | 2025-07-19 23:44:27+00:00
I work with developers every day. Between us we often give the AI directions like:

* Write a query to link table X to table Y across this schema, returning all the unique entries related to X.id 1234 * Write code add an editable comment list to this UI * Give me a design to visually manage statuses for this list * Look at this UI and give me five ideas for improving it

Some of those work better than others, but none of them are guaranteed failures.