Hacker Newsnew | past | comments | ask | show | jobs | submit | tomsmeding's commentslogin

The method proposed is just A - B mod n. The two are entirely equivalent.


A few extra steps to essentially manually do the mod part tbh. Would take their 20 line program to a 1 liner.


Do you really think that `*(a + i)` is clearer than `a[i]`?


Not necessarily. I think it's confusing when there are two fairly close ways to express the same thing.


It is thoughtful, that's not the problem. It's just not written in the standard language "written English", but instead in "spoken English" with some attempts towards the former ("My final thought on ...") that sound like someone trying formal writing for the first time.


Well, it is the type of that, in TS syntax. Few are the statically-typed languages that can even express that type.


Java: List<Object>

Python: list[Any]

...what am I missing?


You're missing the specialisation of Object/Any. For example Array.flat called with [int, [bool, string]] returns a type [int, bool, string]. Admittedly this is somewhat niche, but most other languages can't express this - the type information gets erased.


You're missing the input type, essentially. Those are just array types. The TypeScript type signature more of a function type, it expresses flattening a n-dimensional array (input type) into a flat array (output type).


Hypothesis: that Qualcomm and that Macbook have higher memory bandwidth than your i9 system. This is dependent on your memory and your mainboard, not so much on the CPU itself. Perhaps Teams just uses way too much memory, and actually uses it all the time.


That is an interesting hypothesis, and makes sense based on the generationality of the issue.

An i5-14500 has a comparable memory bandwidth as an i9-14900k

https://www.intel.com/content/www/us/en/products/compare.htm...


I mean dude said he's doing multitaskign stuff --in-- teams and it's slow.

To me memory latency being whatever, 30% higher, ought not to explain the issue here, in part because that's a priori assuming all is memory-bandwidth-limited vs say network limited or CPU limited far as the bottleneck

What makes more sense to me is the software is "slow and clunky" that is maybe a global mutex, maybe poor multithreading sync making it effectively single threaded, with a sprinkling of particularly slow algorithms or syscalls that are realized as a frozen GUI, or as we call such cases, Microsoft standard


but a sprinkling of singleton’s/mutex’s would indeed be less painful with higher memory bandwidths and latencies.


> According to Breyer, the existing voluntary system has already proven flawed, with German police reporting that roughly half of all flagged cases turn out to be irrelevant.

A failure rate of only 50% is absurdly good for a system like this. If we have to:

> Imagine your phone scanning every conversation with your partner, your daughter, your therapist, and leaking it just because the word ‘love’ or ‘meet’ appears somewhere.

then apparently either there are so many perpetrators that regular conversations with partners etc. are about as common as crime, or such regular conversations don't have such a high risk of being reported after all.

I don't think chat surveillance is a good idea. But please use transparent and open communication. Don't manipulate us just like the enemy does.


It is probably a reference to the report mentioned in this article from September https://reclaimthenet.org/germany-chat-control-false-reports...

  According to the Federal Criminal Police Office (BKA), 99,375 of the 205,728 reports forwarded by the US-based National Center for Missing and Exploited Children (NCMEC) were not criminally relevant, an error rate of 48.3%. This is a rise from 2023, when the number of false positives already stood at 90,950.
Indeed 50% false positive rate sounds surprisingly good, but this is under the "voluntary scheme" where Meta/Google/MS etc are not obligated to report. Notably missing from the article is the total number of scanned messages to get down to 200k reports. To my knowledge, since it's voluntary, they can also report only the very highest confidence detections. If the Danish regime were to impose reporting quotas the total number of reports would rise. And of course -- these are reports, not actually convictions.

Presumably the actual number of criminals caught by this would remain constant, so the FP rate would increase. Unless of course, the definition of criminal expands to keep the FP rate low...


I feel this is a good place to add something...

I recall a half decade back, there was discussion of the quit rate of employees, maybe Facebook?, due to literal mental trauma from having to look at and validate pedophile flagged images.

Understand there is pedophilia, then there's horribly violent, next level abusive pedophilia.

I used to work in a department where, adjacently, the RCMP were doing the same. They couldn't handle it, and were constantly resigning. The violence associated with some of the videos and images is what really got them.

The worst part is, the more empathetic you are, the more it hurts to work in this area.

It seems to me that without this sad and damaging problem fixed, monitoring chats won't help much.

How many good people, will we laden with trama, literally waking up screaming at night? It's why the RCMP officers were resigning.

I can't imagine being a jury member at such a case.


Because of this issue, many departments put in much stricter protocols for dealing with this kind of material. Only certain people would be exposed to classify/tag it, and these people would only hold that post of a limited period of time. The burden on those people doesn't change, but it can be diluted to mitigate it somewhat.

Its a real and sad problem, but not one that I think can be fixed with technology. To much is on the line to allow for a false positive from a hallucinating robot to destroy a person(s) life.


I read about that here: https://erinkissane.com/meta-in-myanmar-part-i-the-setup

This remains one of the best things I've found on HN.


OK, 50% "not criminally relevant".

How many of the other 50% were guilty and how many innocent after an investigation?


Absurdly good? What are you talking about, it means entire company processes of trying to identify this has cost so much time and effort and tracking and lost trust from the public and finally reporting... and then they still screw it up half the time


[flagged]


You're misinterpreting what they mean by "50% false positive rate". Let's say there are 10 child traffickers in the country. A 50% false positive rate might mean this system detects 7 of them, but then also detects 7 people who are not child traffickers. The reason it's an absurdly good rate is because the thing they are looking for is so rare. If one in a million people are child traffickers, and you have a false positive rate of 50%, it means that the average person has no more than a one in a million chance of being a false positive.

Let me put it another way. Let's say you are an Egyptian Pharaoh and a man tells you he can predict when solar eclipses will happen. You give him a calendar and he marks down 20 days in the next few decades where he claims there will be an eclipse. On 10 of those marked days, there actually is an eclipse. That would be a 50% false positive rate. By the standards of an Egyptian Pharaoh, that probably looks like an absurdly good false positive rate.


I agree the GP math is wrong.

But still, is this good? So 14 cases are referred to law enforcement. They catch 7 people doing really terrible things, and they also catch 7 who are innocent. The police are notorious for treating weak signals as strong and forging causes for suspicion, terrorizing suspects, getting them fired from their job, killing their pets, upending their lives, etc.

If you ruin as many lives as you save, will you sleep well at night? This is why a 50% false positive rate is terrible and privacy advocates are against this.

The consequences of a false positive for an eclipse when one is predicted is trivial, unless there's something about eclipses I don't know. Maybe there's some diffuse monetary loss across society.


Yes, this is good.

I urge anyone who thinks otherwise to wade into this arena themselves and see what they find. It is incredibly easy to be on the sidelines and hold an opinion.

It is your right to do so.

However if even a tiny bit of you is the kind of person who is driven to understand, and to hold opinions based on defensible positions, do your legwork.

Personally, I keep an arms length from the child safety side of things, simply because I know my tolerances.


The innocent people caught in the net aren't the only victims though. Entire families will be broken by the 50% false positive rate. You can easily end up doing more harm than the abusers with your line of thinking.

Granted, assuming law enforcement is reasonably competent, the false positives shouldn't result in anything other some wasted time for whoever has to look into it...but that's quite the assumption to make.


Everyone has the freedom to hold their opinions.

I am saying that if you are type of person who wants to be accurate, you should look deeper into this space. There’s many opinions that are easier to hold when not having to test them. I had to change my positions.


Why does the emotional intensity of the crime justify accepting massive collateral damage to innocent people? It's an appeal to trauma. Why can't we turn the tables on this?

Have you been woken up at 3 AM by police battering down your door? Had your home torn apart, computers seized, children screaming? Waited months for an apology that never comes while your name sits in search results next to 'investigation'?

I urge anyone who thinks aggressive enforcement is worth the cost to wade into this arena themselves and see what they find.

Personally, I keep an arm's length from these stories, simply because I know my tolerances. But if even a tiny bit of you is driven to understand and hold opinions based on defensible positions, do your legwork.


The emotional intensity of the crime of child abuse? So we are removing the emotional valence of crimes, and then comparing it to the emotional state of being in fear of police over reach?

I mean, if you need that level of handicap to make your position become defensible, then you don’t really have an apples to apples comparison.

As for leg work, would you feel better to know that I have been on the other end of doxxing attempts, and that team mates I know have had it worse?


This was merely a rhetorical exercise, holding a mirror to the initial argument. If you found it disingenuous, I hope you can see the thesis: "Wade into this arena and see for yourself" works equally well to justify opposite positions depending on which victims we center. This is a foundational legal principle going back to Beccaria and Voltaire.

You've experienced being falsely targeted and the harm it causes. How is an algorithm sending a false report to police different from a dox? Does your personal safety get overruled by theoretical public safety? Do you expect algorithmic accusations to be questioned more carefully than human ones, or institutional action to be gentler than the vigilantism you experienced?


Calling it a rhetorical exercise is… well sure.

Disingenuousness is a high bar for the argument you formulated - which is why it went no further. Disingenuousness is a matter of being insincere.

You ask others to eject the emotional cost of CSAM from their calculations, while emphasizing the most extreme version of police search in yours. Something I never did.

Further, you assumed that I had no standing to ask people to go deeper into the field. Yet, once I make the mistake of saying that I know what that feels like - yet am making the request I am (to look into this field) you double down.

The issue is not that I need to understand you - you are free to your opinion.

I AM saying, that more people need to look into the corners of online safety that we are happy to argue about. ESPECIALLY techies.

I am saying that a 50% accuracy rate is pretty damn good, because I expected it to be even worse.

I don’t know how to put it man - better people than me need to pay attention to where the gears of technology and speech engage with the fleshy parts of our information machinery.

Hell - something like sharing threat intel across major tech firms, is a challenge even today.

In tactical terms - the ideological position against government over reach is being flanked and the tolerances overwhelmed by unending tides of incidents and extreme situations.

If the position is to be defended, then it needs active measures, which mean people other than me have to get the details of what is going on and frame it for others to act on.


> Calling it a rhetorical exercise is… well sure.

It was a rhetorical exercise - I mirrored your exact wording to make that clear.

> Disingenuousness is a high bar for the argument you formulated...

I misunderstood your objection. I thought you were dismissing my argument as insufficiently sincere - that because I was constructing a hypothetical rather than drawing from lived experience, it lacked weight. But I see now you were raising a different concern, and you are arguing in good faith.

> Further, you assumed that I had no standing to ask people to go deeper into the field. Yet, once I make the mistake of saying that I know what that feels like - yet am making the request I am (to look into this field) you double down.

I do not, as that'd be a contradiction. I'm saying we must choose: either we ground our arguments in principle and reason, or we enter an escalating contest of naming a greater atrocity, flip-flopping between mutually exclusive positions every time one side succeeds in evoking greater horror.

> Further, you assumed that I had no standing...

I'm not questioning anyone's standing. I'm arguing that personal experience - yours, mine, anyone's - lies outside the scope of this legal principle. Blackstone's ratio doesn't specify what the ten guilty persons did, nor does it require you to witness the depravity of their crimes before accepting it. That omission is deliberate and load-bearing.

> I don’t know how to put it man - better people than me need to pay attention to where the gears of technology and speech engage with the fleshy parts of our information machinery.

I share your concern, but reach the opposite conclusion.

Absolute power corrupts absolutely. I have lived through the corruption of a state and the slow erosion of liberties that came with it. Now I'm watching the same pattern repeat in the nations we thought incorruptible.

If we accept mass surveillance for child abuse today, what gets added tomorrow? Sodomy? Gender degeneracy? Feminism? Child-free propaganda? Insults to religious feelings? These weren't pulled from a hat - they're lifted from the criminal code of a country bordering mine.

You may think you'll be the one writing that list, but why would the government need your permission when the elections are finally rigged, dissent is impossible, and the economy is decoupled from most of your labor?

Beyond the visible machinery of our society stand concrete pillars, holding up against the gravity of power. Without them, the entire structure would collapse. These pillars take centuries to construct - they require the surgical blade of crisis to make the incision, tonnes of compressed bone to wrench the opening, and rare wisdom to incorporate durably the great design. When you demolish them to alleviate contemporary fears, you will never have the chance to rebuild them. When one pillar falls, others follow, until inevitably the people find themselves crushed once more beneath the iron boot, each time with less breathing room than the last.

> Hell - something like sharing threat intel across major tech firms, is a challenge even today.

We have not exhausted our means to police crime without surveilling everyone's private communications. Traditional detective work, international cooperation, infiltration, informants - these tools still work. Had the billions invested in building a surveillance state been appropriated instead to these proven methods, organized CSAM rings would be decimated by now, not thriving in the jurisdictions we refuse to pressure diplomatically.


> The reason it's an absurdly good rate is because the thing they are looking for is so rare

If their 50% false positive rate resulted in 100,000 false positives among the German population of 85 million... it's not as rare as all that - you have greater than 1-in-1,000 odds of being a false positive.


> It is better that ten guilty persons escape than that one innocent suffer.

https://en.wikipedia.org/wiki/Blackstone's_ratio


This is the classic precision versus recall discussion. The discussion centers around how you think about the cost of a false positive versus false negative.

Some people think it's fine for the process to have low precision but high recall. Low precision is that of the number of conversations the process flagged as a positive, some unacceptable (to you) percentage turned out to be a not/false "positive". High recall is that of all the actually positive conversations, the process flagged an acceptable (to you) percentage of them as positive (i.e. only "missed" a few/false negative).

What does it cost to wrongly identify conversation a positive when it's really not a positive (false positive)?

What does it cost to wrongly identify a conversation as a negative when it's really a positive (false negative)?

You decide.


Standing on the street holding a bag open, and catching a fish falling from the sky one time, would also be an absurdly good catch rate no matter how long I had to wait - it's just that shit of a system

Only half the conversations being a waste of law enforcement's time is also an impressive rate - we all recognize that it's just a shite system that is bound to have a lot of false positives.


Fortunately, law enforcement was able to catch pedophiles and terrorists before they came up with the idea of permanently ending everyone's privacy, unlike your obviously ridiculous analogy - nobody has ever caught fish falling from the sky by standing in the street holding empty bags.


That, and the main author of CompCert [1], as well as (apparently) the author of the original threading support in the Linux kernel [2].

[1]: https://en.wikipedia.org/wiki/CompCert

[2]: https://en.wikipedia.org/wiki/Xavier_Leroy


Nitpick, but IEEE float operations are commutative (when relevant and appropriate). Associative and distributive they indeed are not.


Unless I’m having a brain fart it’s not commutative or you mean something by “relevant and appropriate” that I’m not understanding.

a+b+c != c+b+a

That’s why you need techniques like Kahan summation.


I think the other replies are overcomplicating this.

+ is a binary operation, and a+b+c can’t be interpreted without knowing whether one treats + as left-associative or right-associative. Let’s assume the former: a+b+c really means (a+b)+c.

If + is commutative, you can turn (a+b)+c into (b+a)+c or c+(a+b) or (commuting twice) c+(b+a).

But that last expression is not the same thing as (c+b)+a. Getting there requires associativity, and floating point addition is not associative.


"a+b+c" doesn't describe a unique evaluation order. You need some parentheses to disambiguate which changes are due to associativity vs commutativity. a+(b+c)=(c+b)+a should be true of floating point numbers, due to commutativity. a+(b+c)=(a+b)+c may fail due to the lack of associativity.


It is not, due to precision. Consider a=1.00000, b=-0.99999, and c=0.00000582618.


No, the two evaluations will give you exactly the same result: https://play.rust-lang.org/?version=stable&mode=debug&editio...

IEEE 754 operations are nonassociative, but they are commutative (at least if you ignore the effect of NaN payloads).


https://play.rust-lang.org/?version=stable&mode=debug&editio...

You're supposed to do (a+b) to demonstrate the effect, because floating point subtraction that results in a number near zero is sensitive to rounding (worst case, a non-zero number gets you a zero number), which can introduce a huge error when a and b are very similar numbers.


When you go from (a + b) + c to a + (b + c), you're invoking the associative property, not the commutative property.

The confusion between associativity and commutativity is the entire point of this thread!


Is there a case involving NaN where they are not commutative? Do you mean getting a different bit-level representation of NaN?


IEEE 754 doesn't (usually) distinguish between different NaN encodings for the purposes of semantics--if the result is a NaN, it doesn't specify which NaN the result is. Most hardware vendors implement a form of NaN propagation: when both inputs are NaN, one of the operands is returned, for example, always the left NaN is returned if both are NaN.

As a side note: all compilers I'm aware of make almost no guarantees on preserving the value of NaN payloads, hence they consider floating-point operations to be fully commutative, and there's no general way to guarantee that they evaluate in exactly the order you specified.


In practical use for simd, various min/max operations. On Intel at least, they propagate nan or not based on operand order


Also all comparisons.


Does (1.00000+-0.99999)+0.00000582618 != 0.00000582618+(-0.99999+1.00000) ? This would disprove commutativity. But I think they're equal.


You still need to specify an evaluation order …


For those to be equal you need both associativity and commutativity.

Commutativity says that a*b = b*a, but that's not enough to allow arbitrary reordering. When you write a*b*c depending on whether * is left or right associative that either means a*(b*c) or (a*b)*c. If those are equal we say the operation is associative. You need both to allow arbitrary reordering. If an operation is only commutative you can turn a*(b*c) into a*(c*b) or (b*c)*a but there is no way to put a in the middle.


We’re in very nitpicky terminology weeds here (and I’m not the person you’re replying to), but my understanding is “commutative” is specifically about reordering operands of one binary op (4+3 == 3+4), while “associative” is about reordering a longer chain of the same operation (1+2+3 == 1+3+2).

Edit: Wikipedia actually says associativity is definitionally about changing parens[0]. Mostly amounts to the same thing for standard arithmetic operators, but it’s an interesting distinction.

[0]: https://en.wikipedia.org/wiki/Associative_property


It is not a nit it is fundamental, a•b•c is associativity, specifically operator associativity.

Rounding and eventual underflow in IEEE means an expression X•Y for any algebraic operation • produces, if finite, a result (X•Y)·( 1 + ß ) + µ where |µ| cannot exceed half the smallest gap between numbers in the destination’s format, and |ß| < 2^-N , and ß·µ = 0 . ( µ ≠ 0 only when Underflow occurs.)

And yes that is a binary relation only

a•b•c is really (a•b)•c assuming left operator associativity, one of the properties that IEEE doesn't have.


IEEE 754 floating-point addition and multiplication are commutative in practice, even if there are exceptions with NaNs etc..

But remember that commutative is on the operations (+,x) which are binary operations, a+b=b+a and ab=ba, you can get accumulated rounding errors on iterated forms of those binary operations.


Sure, but that has a resolution of seconds at best. The coil whine in the power electronics is milliseconds-accurate.


Yeah I get a nice reminder to limit frame rates when I hear the atrocious coil whine from my 4090 as it renders 1500fps of a static loading screen.

First world problems.


There is some recent work on this too: https://dl.acm.org/doi/10.1145/3632880


Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: