• 0 Posts
  • 3 Comments
Joined 1 year ago
cake
Cake day: August 3rd, 2023

help-circle
  • It’s more down to trust and attestation than a technical implementation. Whoever makes an NFC payment system needs to prove to payment processors that the chain of software and hardware from the payment terminal to whatever proves you’re the account holder (a card or a phone) can be identified. And, separately, the implementation needs to be audited.

    This may sound like they’re trying to make this horrible walled garden on the surface, but bank users expect their money to not get stolen. And if it is, they expect the bank to make that problem disappear. The bank can only provide these assurances if they control everything.

    This is why they use hardware attestation and a chain of trust all the way through to the OS to identify the specific implementation of an NFC payment system. They want to know they can go after whoever created the buggy NFC payment implementation to recover the money or to least stop partnering with them.

    Not a lot of FOSS developers would go through the trouble.


  • It’s weird how I didn’t really care about the pinhole camera or my Pixel 5 weird dimensions until Ambient Mode started highlighting it. When ambient mode shipped (silently), I seriously thought I forgot that the aspect ratio wasn’t 16:9 and the pinhole was so visible all these years. Turns out the bars hid these distractions.

    The feature looks great on Desktop, but on mobile, I kinda prefer the bars actually hiding the edges of the screen, esp in fullscreen mode in a darker room.

    It’s cool that you can just turn it off, and hopefully, in the future, they let you toggle the feature in fullscreen and portrait mode separately.


  • tl;dr - Second option usually.

    I think a huge part of shell programming (besides recognizing when anything more maintainable will do 😂😂😂) is trying to allow others who aren’t as familiar to maintain what you’ve written. Shell is full of pitfalls, not the least of which is quoting and guaranteeing how many arguments you pass to commands and functions.

    To me, the whole point of quoting here is to be crystal clear about where command arguments begin and end in spite of variable substitution. For this reason I usually go for the second option. It very clearly describes how I’m trying to avoid a pitfall by wrapping each argument to find in a pair of quotes: in this case, double quotes to allow variable substitution.

    Sometimes it’s clearer to use the first approach. For example, if the constant parts of one of those arguments contains a lot of special characters, it may make it clearer to use the first approach with the constant parts wrapped in single quotes.

    But even then there are more clear ways to create a string out of other strings. For example, the slightly slower, and more verbose use of printf and a variable, and then using that variable as an argument…wrapped in double quotes since it could contain special characters.