MurphyA/hacker-news huggingface dataset:
by notepad0x90 | 2025-11-19 01:22:23+00:00
> You could apply that logic to a lot of things.

Certainly you can. The solution to being poor is not being poor. how? that is a different story, but ultimately, the solution to being poor must be not being poor, otherwise it isn't a solution right? And of course it is a reductive take, but it is nevertheless correct. Solutions that don't result in poor people no longer being poor are not solutions. Solutions that don't involve in not having an authoritarian regime are not solutions to that problem either.

Your solution to authoritarian regimes is not fighting CSAM, you made the CSAM problem worse, and it does not prevent authoritarian regimes. An authoritarian regime does not need your permission to scan your phone. And most human governments in history qualify as authoritarian, and they didn't need phones let along scanning of phones.

> I think at this point you're just trying to say "don't have this thing have that thing instead" as a response to anything.

I'm saying: "If you don't like apples, don't eat apples. Don't talk about how we need to kill all the bees and worms that help apple trees reproduce".

> Differential privacy is a property of a dataset meaning you can’t tell an individual was part of a dataset.

Yeah, that's correct. And that's a violation of individual's privacy..how?

What would it take for you to consider scanning of phones a valid solution. Would mass murder, global nuclear war, pandemic containment? Is it a question of not understanding the harm being done? My frustration is that, ok, let's not scan phones. what's your solution? You have none. Your solution is to do nothing and accept things should be the way they are. If I said let's verify everyone's ID before they can access the internet, is that acceptable? Let's ban Tor and VPNs instead, is that acceptable? What is your solution? Can you at least agree what we should aggresively be working on a solution? We have people training LLMs to generat CSAM and you hear not a peep out of all these companies and devs working on the tech. Just slap knees and declare "welp, that's unfortunate".

I don't care what governments do. If it takes an authoritarian regime to stop this insanity, I'm all for it. I'll be royally screwed, it will be a nightmware. But if that is the cost, so be it. This is how authoritarians gain power by the way. You have the apathetic educated and ruling classes, and the masses crying for change, and they will actually solve the problem but destroy everything else along the way. I'm tell you that if I, someone who is relatively aware and informed of the risks of privacy loss, of tech underlying the systems we use, if I am saying this, imagine what the majority of people would say.

it took one 9/11 attack to get us the patriot act, if someone used Tor on their rooted android phone to do something worse, phone scanning will be the least of your concerns. And the public would support it. You need a solution because the public demands it, at the cost of privacy if required. But it is for technologists to device a mechanism that solves the problem without costing us privacy.
by tptacek | 2025-11-19 01:22:26+00:00
I recoil from that last statement not because I have a rooting interest in Cloudflare but because the last several years of working at Fly.io have drilled Richard Cook's "How Complex Systems Fail"† deep into my brain, and what you said runs aground of Cook #18: Failure free operations require experience with failure.

If the exact same thing happens again at Cloudflare, they'll be fair game. But right now I feel people on this thread are doing exactly, precisely, surgically and specifically the thing Richard Cook and the Cook-ites try to get people not to do, which is to see complex system failures as predictable faults with root causes, rather than as part of the process of creating resilient systems.

† https://how.complexsystems.fail/
by evil-olive | 2025-11-19 01:23:07+00:00
> What happens to it up the callstack?

as they say in the post, these files get generated every 5 minutes and rolled out across their fleet.

so in this case, the thing farther up the callstack is a "watch for updated files and ingest them" component.

that component, when it receives the error, can simply continue using the existing file it loaded 5 minutes earlier.

and then it can increment a Prometheus metric (or similar) representing "count of errors from attempting to load the definition file". that metric should be zero in normal conditions, so it's easy to write an alert rule to notify the appropriate team that the definitions are broken in some way.

that's not a complete solution - in particular it doesn't necessarily solve the problem of needing to scale up the fleet, because freshly-started instances won't have a "previous good" definition file loaded. but it does allow for the existing instances to fail gracefully into a degraded state.

in my experience, on a large enough system, "this could never happen, so if it does it's fine to just crash" is almost always better served by a metric for "count of how many times a thing that could never happen has happened" and a corresponding "that should happen zero times" alert rule.
by GZGavinZhao | 2025-11-19 01:23:27+00:00
I think at the very least they've found those rare individuals who can both code well and manage well. There are countless open source project leaders who might be the most knowledgeable person in the world on that area but have no idea how to communicate and collaborate in an open-source setting, especially as the project gets popular and attracts people who're detrimental (not necessarily malicious) to the project's growth.
by jaredklewis | 2025-11-19 01:23:37+00:00
> That's completely out of the realm of reality for many young people now and the plummeting birth rates show it.

I'm skeptical of this explanation for falling birthrates just because birthrates are falling across the world and there seems to be no correlation between fertility and financial security. America has low birthrates. Scandinavia (usually considered to have generous welfare states) has low birthrates. Hungary, where the government gives massive tax breaks (IIRC they spend around ~6% of their GDP on child incentives), has low birthrates. Europe, East Asia, India, the Middle East, the Americas, basically the whole world except for central Asia and Sub-Saharan Africa (which are catching up) has low birth rates. Obviously the economic conditions between basically all the countries in the world varies wildly, but there isn't a consistent relationship between those conditions and fertility.

Also within countries, the number of children people have is not always correlated with wealth (and at times in the past 60 years it has been negatively correlated).

Anyway, I find your argument intuitive, but it doesn't seem to align with the data we have.
by sfink | 2025-11-19 01:23:42+00:00
...and you can? try-catch is usually less ergonomic than the various ways you can inspect a Result.

try { data = some_sketchy_function(); } catch (e) { handle the error; }

vs

result = some_sketchy_function(); if let Err(e) = result { handle the error; }

Or better yet, compare the problematic cases where the error isn't handled:

data = some_sketchy_function();

vs

data = some_sketchy_function().UNWRAP_OR_PANIC();

In the former (the try-catch version that doesn't try or catch), the lack of handling is silent. It might be fine! You might just depend on your caller using `try`. In the latter, the compiler forces you to use UNWRAP_OR_PANIC (or, in reality, just unwrap) or `data` won't be the expected type and you will quickly get a compile failure.

What I suspect you mean, because it's a better argument, is:

try { sketchy_function1(); sketchy_function2(); sketchy_function3(); sketchy_function4(); } catch (e) { ... }

which is fair, although how often is it really the right thing to let all the errors from 4 independent sources flow together and then get picked apart after the fact by inspecting `e`? It's an easier life, but it's also one where subtle problems constantly creep in without the compiler having any visibility into them at all.
by dekhn | 2025-11-19 01:23:47+00:00
I wanted to learn more about computer hardware in college so I took a class called "Cybernetics" (taught by D. Huffman). I thought we were going to focus on modern stuff, but instead, it was a tour of information theory- which included various mathematical routing concepts (kissing spheres/spherical code, Karnaugh maps). At the time I thought it was boring, but a couple decades later, when working on Clos topologies, it came in handy.

Other interesting notes: the invention of telegraphy and improvements to the underlying electrical systems really helped me understand communications in the 1800s better. And reading/watching Cuckoo's Egg (with the german relay-based telephones) made me appreciate modern digital transistor-based systems.

Even today, when I work on electrical projects in my garage, I am absolutely blown away with how much people could do with limited understanding and technology 100+ years ago compared to what I'm able to cobble together. I know Newton said he saw farther by standing on the shoulders of giants, but some days I feel like I'm standing on a giant, looking backwards and thinking "I am not worthy".
by fsckboy | 2025-11-19 01:23:51+00:00
>because the richest country on Earth can't be bothered to provide for its citizens

The USA spends more on healthcare per person than any other country

Locations 2024 2023 2022 2021 2020 USA 14,885 13,818 12,898 12,375 11,926 Switz. 9,963 9,301 9,089 8,392 7,621 Norway 9,393 8,909 8,533 7,890 7,221 Germany 9,365 8,503 8,652 8,103 7,364 Nederl. 8,436 7,615 7,517 7,317 6,516 Austria 8,401 7,697 7,700 7,465 6,295 Luxemb. 8,162 7,247 6,854 6,432 5,859 Sweden 7,871 7,364 6,977 6,617 6,069 Ireland 7,813 7,027 6,748 6,221 5,619 Belgium 7,750 7,178 6,906 6,554 6,097 Austral 7,469 7,015 6,907 6,546 5,819 France 7,354 6,848 6,701 6,395 5,874 Canada 7,301 7,046 6,876 6,906 6,209 Denmark 7,071 6,555 6,661 6,913 6,147 Iceland 6,770 6,134 5,956 5,556 5,010 UK 6,747 6,412 6,188 5,785 5,381 New Zea 6,700 6,479 6,480 5,213 4,571 Finland 6,655 6,276 5,765 5,395 4,967 Japan 5,790 5,619 5,984 5,454 4,855 Slovenia 5,527 4,556 4,353 3,894 3,756 Spain 5,346 4,927 4,744 4,405 3,996 Portugal 5,212 4,713 4,594 4,208 3,555 Italy 5,164 4,847 4,744 4,409 4,027 Czechia 5,014 4,570 4,394 4,462 4,098 Korea 4,797 4,586 4,634 4,106 3,618 Israel 4,352 3,840 3,682 3,358 3,015 Poland 4,284 3,560 3,066 2,752 2,510 Slovakia 4,021 3,280 3,126 2,922 2,449 Lithuani 3,870 3,306 3,242 3,146 3,092 Chile 3,749 3,396 3,113 2,848 2,489

https://en.wikipedia.org/wiki/List_of_countries_by_total_hea...
by missedthecue | 2025-11-19 01:24:49+00:00
US Big City numbers. I'm generalizing, but these are broadly accurate.

- employees all-in-cost is ~$5000 per month paying $20-something an hour (they will be hitting OT as well, because they arrive before dropoff and stay after pickup). Typical maximum legal ratio might be 5 to 1 kids to carers depending on age. This means just for basic labor, every parent is paying $1000 a month.

- Next there is commercial rent. In a metro area, easily $5-$10k a month. Amortize that across 50 kids and that's another $200 a month.

- 2 meals + snacks daily. Adds in another $250 a month per kid assuming $11 per day per kid. More if you're prioritizing healthy fresh foods and not prepackaged garbage.

- Liability insurance which is very costly (insurers dont love cases involving dead or injured 3 year olds!)

- Utilities in a building that houses 50 people for 200+ hours a month.

- Throw in all the other costs. You have the admin costs of running a business like accounting and billing, and you've got to buy diapers, replace worn-out toys, and purchase endless crayons, and so on.

By the end of it all, you're looking at very slim margins working 55-hour weeks, your employees are paid barely more than a barista, and the parents are taking on a second mortgage with every kid.
by JumpCrisscross | 2025-11-19 01:26:50+00:00
> who thought that you'd need a bachelors to be a barista and pour coffee?

"About one-fifth of underemployed recent college graduates—roughly 9 percent of all recent graduates—were working in a low-skilled service job" between 2009 and 2013 [1]. Two fifths of baristas have college degrees [2].

[1] https://www.newyorkfed.org/medialibrary/media/research/staff...

[2] https://oysterlink.com/career/barista/demographics/
by h4kunamata | 2025-11-19 01:26:56+00:00
With Microsoft (Behind GitHub) going full AI mode, expected things to get worse.

I worked for one of the largest company in my country, they had "catch-up" with GitHub and it is not longer about GitHub as you folks are used to but AI aka CoPilot.

We are seeing major techs such as but not limited to Google, AWS and Azure going under after making public that their code is 30% AI generated (Google).

Even Xbox(Microsoft) and its gaming studio got destroyed (COD BO7) for heavily dependency on AI.

Don't you find it coincidence all of these system outage worldwide happening right after they proudly shared heavily dependency on AI??

Companies aren't using AI/ML to improve processes but to replace people, full stop. The AI stock market is having a massive meltdown as we speak with indications that the AI bubble went live.

If you as a company wanna keep your productivity at 99.99% from now on:

* GitLab: Self-hosted GitLab/runners * Datacenter: AWS/GCP/Azure is no longer a safe option or cheaper, we have data center companies such as Equinix which have a massive backup plan in place. I have visited one, they are prepared for a nuclear war and I am not even being dramatic. If I was starting a new company in 2025, I would go back to datacenter over AWS/GCP/Azure * Self-host everything you can, and no, it does not require 5 days in the office to manage all of that.
by shoo | 2025-11-19 01:27:21+00:00
The speed and transparency of Cloudflare publishing this port mortem is excellent.

I also found the "remediation and follow up" section a bit lacking, not mentioning how, in general, regressions in query results caused by DB changes could be caught in future before they get widely rolled out.

Even if a staging env didn't have a production-like volume of data to trigger the same failure mode of a bot management system crash, there's also an opportunity to detect that something has gone awry if there were tests that the queries were returning functionally equivalent results after the proposed permission change. A dummy dataset containing a single http_requests_features column would suffice to trigger the dupe results behaviour.

In theory there's a few general ways this kind of issue could be detected, e.g. someone or something doing a before/after comparison to test that the DB permission change did not regress query results for common DB queries, for changes that are expected to not cause functional changes in behaviour.

Maybe it could have been detected with an automated test suite of the form "spin up a new DB, populate it with some curated toy dataset, then run a suite of important queries we must support and check the results are still equivalent (after normalising row order etc) to known good golden outputs". This style of regression testing is brittle, burdensome to maintain and error prone when you need to make functional changes and update what then "golden" outputs are - but it can give a pretty high probability of detecting that a DB change has caused unplanned functional regressions in query output, and you can find out about this in a dev environment or CI before a proposed DB change goes anywhere near production.
by gpderetta | 2025-11-19 01:27:25+00:00
I need to re-read the paper, but:

>"LP" is not obstruction-free but is wait-free

As far as I know, wait-free is a superset of lock-free and lock-free is a superset of obstruction-free. How can LP be wait-free but not obstruction free?

In any case a wait-free algorithm can't live-lock by definition (progress and fairness of all threads is guaranteed), but the catch is that while the STM runtime itself might have this property, it doesn't necessarily translate to an algorithm implemented in the runtime (which makes sense, you should be able to implement a lock with an STM).

So, yes, the paper is interesting, but probably not relevant for this discussion and I shouldn't have brought it up.

Now the question again remains, do concrete STM implementations actually provide the guarantee you mentioned earlier, i.e. does a transaction aborting guarantees that another succeeds? I would think it doesn't as I think it would be very costly to implement: both transactions might end up aborting when detecting conflict.

Maybe what concrete runtimes actually guarantee is that there is an upper bound on the spurious aborts and restarts as worst case you can fall back on a single global lock for serialization when the upper bound is reached.
by ethmarks | 2025-11-19 01:27:34+00:00
I agree that the "will [person] say [word]" markets are stupid. "Will Brian Armstrong say the word 'Bitcoin' in the Q4 earnings call" is a stupid market because nobody a actually cares whether or not he actually says 'Bitcoin', they care about whether or not Coinbase is focusing on Bitcoin. If Armstrong manipulates the market by saying the words without actually doing anything, nobody wins except Armstrong. "Will Coinbase process $10B in Bitcoin transactions in Q4" is a much better market because, though Armstrong could still manipulate the market's outcome, his manipulation would influence a result that people actually care about. The existence of stupid markets doesn't invalidate the concept.
by SilasX | 2025-11-19 01:27:42+00:00
>there are other operations that aren’t quite involutions – “near-involutions”, one might call them2 – that nonetheless have the property that thrice is the same as once, four times is the same as twice, etc. ... Unlike mod-two arithmetic, which is about counting “zero, one, zero, one, zero, one, …,” the kind of counting that governs these operations goes “zero, one, two, one two, one two, …”

Interesting! Earlier I had a shower thought about "what would be an variant of idempotence?" That's where an operation has the same effect whether done one or many times.

One variant would be "has the same effect whether one two or many times". Another would be "can be in any one of two possible states after done one or many times" (as opposed to one possible state for idempotence). This looks like the latter!
by nine_k | 2025-11-19 01:27:48+00:00
But a panic can be caught and handled safely (e.g. via std:: panic tools). I'd say that this is the correct use case for exceptions (ask Martin Fowler, of all people).

There is already a try/catch around that code, which produces the Result type, which you can presumptuously .unwrap() without checking if it contains an error.

Instead, one should use the question mark operator, that immediately returns the error from the current function if a Result is an error. This is exactly similar to rethrowing an exception, but only requires typing one character, the "?".
by notepad0x90 | 2025-11-19 01:27:57+00:00
By your logic, we shouldn't arrest murderers? Even if they're caught on video, it could be a deepfake. It all comes down to people testifying something is real. it always comes down to convincing a jury or a judge that the defendant is guilty.

This is a common pattern I'm seeing in recent discussions. There is a practical problem, so instead of fixing the problem, let's not use the system entirely. Perhaps for victimless crimes I would agree with you, but it is not for you or I but for the victims or whoever is survived by them to relinquish their demand for justice.

For serious crimes, suspicion must be corroborated by evidence. hear-say, accusations or eye-witness testimony alone can't be used to even begin a trial.
by bigyabai | 2025-11-19 01:28:24+00:00
When are you writing a socioeconomic addendum with the conscription estimates?

Or does that damage your "materiel is strength" narrative somewhat? It must be hard to argue that Russia has enough drones to flatten Dnipro when they can't find enough warm bodies and BMPs to occupy Pokrovsk. You'd think that Russia's "total victory" would include fewer bombed refineries and burnt Tu-95s if their military-industrial complex is firing on all cylinders, no?
by nomel | 2025-11-19 01:29:21+00:00
How so? An exception is a value that's given the closest, conceptually appropriate, point that was decided to handle the value, allowing you to keep your "happy path" as clean code, and your "exceptional circumstances" path at the level of abstraction that makes sense.

It's way less book-keeping with exceptions, since you, intentionally, don't have to write code for that exceptional behavior, except where it makes sense to. The return by value method, necessarily, implements the same behavior, where handling is bubbled up to the conceptually appropriate place, through returns, but with much more typing involved. Care is required for either, since not properly bubbling up an exception can happen in either case (no re-raise for exceptions, no return after handling for return).
by donatj | 2025-11-19 01:29:26+00:00
Do these tactics ever work out for companies in the long term?

Over my 20 years in tech, I've seen a couple cases where someone installed something they shouldn't have and we got threatening emails from the companies who somehow caught wind.

It's always resulted on our side with a total corporate ban on using anything from that company, even things that are otherwise OK / open source.

For instance at a previous company I worked, Oracle came calling for "VirtualBox Tools" trying to charge us some asinine amount because like one user had it installed and they wanted us to pay seats for the entire company. This resulted in a swift and decisive total corporate ban on VirtualBox.

I've seen this at a couple companies and can't imagine we're alone in this. You're trading long-term business for short-term gains.
by zaptheimpaler | 2025-11-19 01:29:32+00:00
Yeah this is a really good question. I'd love to know more about that too. There's some good history on the website here [1].

The creator apparently was selling it as freemium software in 1998, and then the bubble burst and the corp shutdown in 2002. But the creator created a non-profit called the Blender Foundation, launched a Free Blender campaign [2] (the forum post is still up!) to raise money from its users and bought out the rights to the software from the investors.

[1] https://www.blender.org/about/history/

[2] https://blenderartists.org/t/free-blender-campaign-launched/...
by otterley | 2025-11-19 01:30:29+00:00
Suppose they did have the cellular architecture today, but every other fact was identical. They'd still have suffered the failure! But it would have been contained, and the damage would have been far less.

Fires happen every day. Smoke alarms go off, firefighters get called in, incident response is exercised, and lessons from the situation are learned (with resulting updates to the fire and building codes).

Yet even though this happens, entire cities almost never burn down anymore. And we want to keep it that way.

As Cook points out, "Safety is a characteristic of systems and not of their components."
by krapp | 2025-11-19 01:30:37+00:00
That sounds like exactly the kind of addiction-reinforcing Skinner box nonsense that leads to influencers, parasocial relationships and a content economy, and all of the dark patterns of social media that the fediverse is designed to avoid.

People shouldn't be posting to get the endorphine rush from clicks or to satisfy metrics. They should post whatever they want, whenever they want. If you like what someone posts, you can follow their account, or better yet the hashtags they use. That should be sufficient.

Not having a like button seems like a good design choice TBH.