1. 32
    1. 9

      Interesting list, because of course it’s way more complicated than most of us thought. A shame they don’t take their own advice:

      Some people do not own phones, or do not wish to provide you with their telephone number when asked.

      Looking at you, GMail signup form. (And you too, Signal.)

      1. 9

        It’s a difficult problem, because spam and other types of abuse is rampant, and phone verification is somewhat effective at filtering some of that out. It’s not perfect, of course, and especially organized criminals find ways around it. But it’s reasonably effective.

        To give a simple example, I’ve had people persistently stalk me on WhatsApp; mostly Tinder dates and the like (including some whom I never even met in person!) I can now just block them with little fear of them creating a new account. And I’m fairly sure that women receive considerably more nonsense like this.

        I really dislike it myself too though, I don’t even want to own a smartphone, and these stupid messaging apps with their phone integration is pretty much the only reason I do :-/

      2. 4

        In fairness to Signal, it started off as an app to send encrypted text messages over SMS, so being usable without a phone number would have been somewhat strange. Obviously that’s changed, and ironically when they stopped supporting SMS some people complained about it requiring a data connection…

    2. 8

      I generally strongly dislike the “falsehoods programmers believe…” genre of post because so few of them contain useful actionable advice (i.e., they’re all “these things are wrong”, with little or no “here’s something right or at least better that you could do instead”) and many of them don’t even bother to provide counterexamples to the “falsehoods” they’re calling out.

      This one is a step up from the usual in that the author has provided examples and taken the time to add suggestions for how to handle phone numbers in a better way.

      (though a common theme of all “falsehoods” articles is that complex things are actually complex, and that one-size-fits-all solutions neither fit all nor solve the problem, and very often the real correct answer is to determine which cases are appropriate for your software to handle, rather than trying to write something truly universal, because the only universal solution will be a freeform text field with no parsing or validation)

      1. 5

        The solution in this case is to use libphonenumber or one of it’s many ports.

        1. 4

          Yes, I think it is easy to miss this is a file in libphonenumber’s root.

        2. 1

          Indeed, though I agree edge cases are not falsehoods.

          If you happen to use FreeSWITCH, a while back, I’ve created this module https://github.com/rtckit/mod_phonenumber

    3. 4

      I’ve been burnt several times by having a 7 digit phone number. Apparently that isn’t real and so I cannot book flights, withdraw funds from crypto exchanges or use public transport.

      The way we’re making technology mandatory for access to infrastructure scares me. I don’t want to play anymore, please let me throw away my phone :(

    4. 3

      This is really good, thanks for posting.

      Item 25, “Phone numbers are numbers” should really be moved to the top!

    5. 2

      I wanted to link Google’s library for handling phone numbers, which is quite good. But then I discovered this document is already part of it. Cool!

      This is one of those things you never want to roll yourself, such as handling time or crypto.