• 0 Posts
  • 16 Comments
Joined 1 year ago
cake
Cake day: June 11th, 2023

help-circle





  • So, you’re talking about throwing exceptions if adding a month yields an invalid date if done without nuance, but then you’re showing an example of just trying to instantiate an invalid date in java.

    I believe java has an addMonths method, that in the situation we’re talking about doesn’t throw an exception, but rather limits the output to the 28th/ 29th/30th.

    Which illustrates my point: intuitive Datetime math involves choosing how you handle edge cases that are routine and not exceptional, like “a month from January 31st”.

    The rest of your comment arguing about how people expect months to work just makes me feel like you’ve never actually talked to a business stakeholder about requirements.

    If I say to add four days, will it throw an exception if it’s the 31st? No month has 35 days, so I should get an exception, right?

    Yeah, it’s how months work.

    That’s just insane. An API that doesn’t increment the month when you pass the end while adding days is just broken.







  • It’s because there’s no right answer, and this way gets you the intuitive answer most often.

    A month isn’t a proper unit of time. Adding a month to a date can’t be done without specifying which month you’re adding.

    You could argue that one month from January 31 is February 28, 29 (depending on the year), March 2, or 3.

    Should one month from the last day be the last day of the next month? That would mean that the 30th and the 31st of march are both the same duration from April 30th, and a month before April 30th could logically map to either one.

    So they chose the path that, for anything other than the 31st, and the 29th and 30th if it comes near February, works as you expect. "A month after 17 days from the first of January is 17 days after the first of february.”

    The other alternatives involve not allowing the addition and subtraction of irregular time intervals, but then you get frustrated that you can only deal with seconds, since those don’t change in length.


  • Unix based systems tend to be able to be hardened to a higher level than windows devices. Apple provides a lot of apis for preventing unsigned code from running, which can go a long way beyond a locked down bootloader.

    It’s less that they’re intrinsically more secure, it’s just that it’s a bit easier for a determined admin to lock it way further down while also not irritating the user.

    I seem to recall Chromebooks are even better, but you sacrifice a lot more.


  • You’re not wrong, but it can be difficult to support more than the minimum without more buy-in from a financial perspective. Things beyond SMS tend to need an enrollment process that would impact the user sign-up flow.
    You can create the user and store their phone number in one step, but totp sign-up usually needs something where you can create a provisional user, and then activate their MFA to activate the user.

    It’s why a lot of passkey stuff has a lot of potential, since it can make it easier for the user to sign-up, which has an appeal to people who are making decisions that have to consider sales and IT concerns.