image

Имена некоторых людей сбивают с толку посещаемые ими сайты, и это вызывает у них множество проблем. Почему так происходит?

Муж Дженнифер Нал [Jennifer Null] предупредил её до замужества, что если она возьмёт его имя, её будут преследовать постоянные расстройства. Его семья постоянно шутила на эту тему, поэтому она хорошо представляла себе ситуацию. И, конечно же, после замужества проблемы не заставили себя ждать.

«Мы переехали сразу после свадьбы, поэтому проблема тоже возникла сразу – когда я покупала билеты на самолёт»,- говорит она. С тех пор, каждый раз, когда Дженнифер пытается купить билеты, сайт выдаёт ей ошибку – он сообщает, что она не ввела свою фамилию.

Ей приходится звонить в компанию, чтобы забронировать билет. «Меня спрашивают, почему я звоню, и когда я пытаюсь объяснить ситуацию, мне говорят „не может такого быть“,- говорит она.

Программисты поймут, почему „Null“ может создать проблемы при взаимодействии с БД. Ключевое слово null обозначает поле без значения. Администраторы периодически пытаются решать подобные проблемы, но они возникают редко и иногда решить их удивительно сложно.

На резервировании билетов неудобства Null не заканчиваются. У неё возникают проблемы с вводом информации на сайте налоговой. А когда они с мужем обустраивались на новом месте, были сложности с оформлением квитанции по квартплате.

Чем более важный сайт или сервис вы выберете, тем строже на нём правила для ввода строк. Поэтому проблемы случаются именно там, где они становятся критичными.

Null до рождения ребёнка работала репетитором. О работе её могли предупреждать через онлайн-сервис или по телефону – но с вебсайтом возникали те же проблемы. „Я чувствую, что мне приходится всё делать устаревшими методами,- жалуется она. – С одной стороны, в случае необходимости эти проблемы раздражают. Но обычно они выглядят как анекдоты, которые забавно рассказывать“.

Null – не единственный пример проблемного для компьютеров имени. И в мире, зависимость которого от баз данных постоянно увеличивается, эти проблемы становятся всё более серьёзными.

У некоторых людей есть только одно имя, без фамилии. У других фамилии состоят из одной буквы. А представьте себе опыт другого человека, Дженис [Janice Keihanaikukauakahihulihe'ekahaunaele], чья гавайская фамилия занимает 36 символов. Она жаловалась, что стандартные идентификационные документы вмещают недостаточно символов имени.

Эти примеры известны как крайние случаи – неожиданные и сложные случаи, к которым система оказалась не готова. „Каждые пару лет компьютерные системы обновляются, и их тестируют с разными наборами данных – именами, распространёнными в обществе,- говорит программист Патрик Макензи. – И не обязательно их тестируют с крайними случаями“.

Макензи интересуется проблемами современных компьютерных систем, связанными с обработкой редких имён. Он подготовил список проблем, которые программисты часто не могут предвидеть, создавая базы данных для хранения имён.

Да и сам он – живой пример проблем с именем. Если для англоязычных граждан его имя не представляет проблем, то в Японии, где он живёт, это создаёт кучу неудобств.

»В Японии редко встречаются имена из четырёх символов. А в Макензи их восемь, поэтому в стандартных формах часто просто нет места для такого имени,- говорит он. – Компьютерные системы разрабатываются с оглядкой на эти формы. И каждый год при подаче налоговой декларации я подписываюсь как Макензи П, поскольку там больше нет места".

Макензи пытается встроиться в систему, и даже преобразовал своё имя в катакана – японский алфавит, допускающий фонетическую транскрипцию иностранных слов. Но с обновлением ПО его банка поддержка катаканы была удалена. И Макензи временно решился возможности использовать сайт банка.

«В конце концов, им пришлось отправить запрос своим айтишникам, чтобы те вручную поправили запись в базе,- а иначе я не мог пользоваться банковскими сервисами».

В связи с глобализацией программисты всё чаще обсуждают необходимость учёта крайних случаев, иностранных имён и имён, использующих нестандартные символы. Консорциум WWW тоже посвятил этой проблеме отдельное обсуждение.

«Мне кажется, что ситуация выправляется в связи с тем, что на неё обращает внимание всё больше людей»,- говорит он.

А люди вроде Null, скорее всего, ещё долго будут сталкиваться с проблемами. Некоторые считают, что таким людям стоит просто сменить свои фамилии. Но Null не соглашается – она уже поменяла фамилию после свадьбы. «Это сильно раздражает,- признаёт она. – Но я уже свыклась с этим».

Комментарии (16)


  1. alexxxst
    02.04.2016 12:52
    +8

    Вот не понимаю, как из-за строки «Null» может что-то сломаться. Строки! Неужели всё настолько плохо реализовано было? Не первый раз о таком читаю, но всегда казалось, что это байки.


    1. kekekeks
      02.04.2016 13:19

      У них просто дыра в безопасности — данные формы не экранируются и подставляются в SQL-запрос как есть.


      1. alexxxst
        02.04.2016 13:20
        +2

        У всех?)


      1. neolink
        02.04.2016 13:23

        тогда бы и другие строки не вставлялись (или наоборот вставлялся только null)


    1. Ogra
      02.04.2016 13:21
      -1

      Например, защита от хакеров — проверяем, есть ли в запросе NULL, и отвергаем его как "подозрительный" =)


      1. Kolonist
        02.04.2016 13:34
        +7

        Но зачем? Строки надо просто интерпретировать как строки, без всяких лишних проверок — и ничего никогда не сломается.


        1. Ogra
          02.04.2016 14:37

          Конечно надо! Строки надо интерпретировать как строки, использовать плэйсхолдеры, и т.д. и т.п.
          Фантазия кодера, который не знает как надо поистине безгранична. Знаете поговорку "Хуже дурака бывает только дурак с инициативой?" Вот это про таких кодеров =)


    1. Lockal
      02.04.2016 14:27

      Элементарно. Две системы, на отдающей стороне идёт дамп в CSV/XML с индикацией NULL-столбцов как Null (некоторые дамперы делают различия между строками и NULL с помощью кавычек), на принимающей — любая строка с текстом Null считается за NULL.


  1. Spetros
    02.04.2016 12:58
    +8

    Было неделю назад на соседнем ресурсе.
    https://geektimes.ru/post/273332/
    Из этого можно сделать вывод, что редактор SLY_G не читает постов редактора alizar


    1. pokryshkin
      02.04.2016 13:27
      +3

      Прямо таки битва титанов: alizar vs SLY_G
      Никогда бы не подумал что скажу такое, но в данном случае ализар — молодец.


      1. nikitasius
        02.04.2016 13:30
        +3

        Я за alizar, он старый проверенный и почти не глючит!


  1. potapuff
    02.04.2016 13:08
    +1

    Вспоминается вопрос на StackOverflow http://stackoverflow.com/questions/4456438/how-do-i-correctly-pass-the-string-null-an-employees-proper-surname-to-a-so
    Там тоже "employee whose last name is Null" и сериализация-десериализация без CDATA


  1. gogolinsky
    02.04.2016 13:53
    +1

    Реклама сервиса на ruby: «Приходите к нам, у нас nil!»))


  1. PapaBubaDiop
    02.04.2016 14:22

    С такой фамилией надо в QA team и просить двойной оклад.


  1. astgtciv
    02.04.2016 14:34
    +1

    И конечно нельзя не вспомнить малыша Бобби Тейблз из https://xkcd.com/327/ ...


  1. pewpew
    02.04.2016 14:41

    Была похожая ситуация. Банк выдал карточку, оканчивающуюся на 0000.
    На заправке терминал отказывался вводить карточку и более опытный кассир подсказывал практиканту "ходить через F12".