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

Are these "entities" named and shamed somewhere? I just scanned the paper but couldn't find explicit mentions.

Contactless payments work in Graphene OS. Not with Google Pay, but with other apps like Curve and Paypal.

I paid for my lunch with Curve Pay on GrapheneOS today.

A bio is not proper disclosure: it is hidden behind a link that you have to click, and it can be changed at any moment without leaving traces.

Surely you mean phone operating system landscape? There are plenty of phone manufacturers.


Sadly I did not. They’re all

> controlled either directly or indirectly by two companies

While many manufacturers physically make Android phones they all functionally play by Google’s rules as a contractual condition to get proprietary gApps.

Amazon even tried to pull off an Android fork without gApps but failed.

The only third option is Huawei’s HarmonyOS if you live in China.


Microsoft gave away Internet Explorer at a loss, and what happened to internet standards?


The article quickly mentions implementing addition:

```

impl Add for NonZeroF32 { ... }

impl Add<f32> for NonZeroF32 { ... }

impl Add<NonZeroF32> for f32 { ... }

```

What type would it return though?


Would have to be F32, no? I cannot think of any way to enforce "non-zero-ness" of the result without making it return an optional Result<NonZeroF32>, and at that point we are basically back to square one...


> Would have to be F32, no?

Generally yes. `NonZeroU32::saturating_add(self, other: u32)` is able to return `NonZeroU32` though! ( https://doc.rust-lang.org/std/num/type.NonZeroU32.html#metho... )

> I cannot think of any way to enforce "non-zero-ness" of the result without making it return an optional Result<NonZeroF32>, and at that point we are basically back to square one...

`NonZeroU32::checked_add(self, other: u32)` basically does this, although I'll note it returns an `Option` instead of a `Result` ( https://doc.rust-lang.org/std/num/type.NonZeroU32.html#metho... ), leaving you to `.map_err(...)` or otherwise handle the edge case to your heart's content. Niche, but occasionally what you want.


> `NonZeroU32::saturating_add(self, other: u32)` is able to return `NonZeroU32` though!

I was confused at first how that could work, but then I realized that of course, with _unsigned_ integers this works fine because you cannot add a negative number...


You'd still have to check for overflow, I imagine.

And there are other gotchas, for instance it seems natural to assume that NonZeroF32 * NonZeroF32 can return a NonZeroF32, but 1e-25 * 1e-25 = 0 because of underflow.


I imagine it would be something like Option<NonZeroF32>, since -2.0 + 2.0 would violate the constraints at runtime. This gets us the Option handling problem back.

I think the article would have been better with NonZeroPositiveF32 as the example type, since then addition would be safe.


So technically Github is not missing a status page like this website claims: their status page is https://www.github.com .


Exactly, that's the problem: with OIDC the ID provider gets to know which sites you visit. That is unavoidable given how the protocol works. And you don't want to give all that information to the government in the first place.


"99 red balloons" starts playing in the background.


Ninety-nine dreams I have had

In every one, a red balloon

It's all over and I'm standin' pretty

In this dust that was a city

If I could find a souvenir

Just to prove the world was here

And here is a red balloon

I think of you, and let it go


"99 red balloons" sounds almost quaint and innocent, even ironically a bit darkly refreshing, with its portrayal of the relatively clear threat of cold war nuclear annihilation.

Compare it to the constant flux of threats we now face, all given similar coverage today, large or small, sometimes plausibly real, but often ultimately fictional: brought on for distraction, by deception, incompetence, poor communication, ego, and/or other unethical agenda.


99 Decision Street, 99 ministers meet

To worry, worry, super scurry

Call out the troops now in a hurry

This is what we've waited for

This is it, boys, this is war

The President is on the line as 99 red balloons go by


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

Search: