• ono
    link
    fedilink
    English
    33
    edit-2
    11 months ago

    My (least) favorite in this category is email addresses. It’s astonishing how many developers screw this up by trying to validate an email address by some means other than sending a message to it.

    • @pivot_root
      link
      2611 months ago

      100% agree.

      @tld
      user-at-fqdn@domain.tld.
      "user with spaces"@domain.tld
      "user@notdomain"@domain.tld
      endswitha_@domain.tld
      user+tag@gmail.com
      unicodedomain@🤡.tld

      All of those are valid, and the know-it-all developer’s shitty regex won’t cover most of them.

        • ono
          link
          fedilink
          English
          1511 months ago

          “Systems that break email already exist, so let’s add more to the world.”

          Please, no.

    • @[email protected]
      link
      fedilink
      English
      1011 months ago

      The problem is that if you send a message just blindly, you can be tricked into sending spam to millions of addresses. I do one thing that prevents that, but does violate the standard, I verify there’s only 1 ‘@’ in the address… this technically prevents people with '@'s in their name, but they probably find it impossible to do anything with that address anyway.

  • @[email protected]
    link
    fedilink
    2711 months ago

    It’s all reasonable stuff except maybe:

    People’s names are all mapped in Unicode code points.

    I don’t see how you could avoid this this in software that needs to ask the user their name.

    I think it’s definitely a good idea to avoid using names wherever possible, and definitely don’t try to do anything clever with them.

    When necessary, software can just be clear:

    • “in unicode, what should I call you?”
    • "in unicode, who is making this credit card transaction?’
      • @[email protected]
        link
        fedilink
        1211 months ago

        Haha, yeah, I didn’t mean literally telling them that. More like giving them a text field that can only contain unicode characters, which is pretty standard.

      • @pivot_root
        link
        911 months ago

        Programmers: “\u{004A}\u{006F}\u{0068}\u{006E}”

    • Spzi
      link
      fedilink
      English
      711 months ago

      You can do that when you control the frontend UI. Then, you can set up the input field for their name, applying input validation.

      But I would rather not rely on telling the user, in hopes they understand and comply. If they have ways to do it wrong, they will.

  • @cosmicrose
    link
    English
    1111 months ago

    One of the all-time classics! I think all devs should read this.

    • @[email protected]
      link
      fedilink
      1511 months ago

      It’s solid but I’ve always preferred the similar list about date and time - some of the answers to this list are just “Yea, but what do you want us to call you.”