Американский программист зарегистрировал автомобильный номер NULL и получил штрафы на $12 тысяч из-за неопознанных авто Статьи редакции
В некоторых языках программирования null используется как обозначение неприсвоенного значения — Джозеф Тартаро рассчитывал использовать это, чтобы избежать штрафов.
В конце 2016 года американский программист Джозеф Тартаро зарегистрировал автомобильный номер «NULL» — в некоторых языках программирования null используется как обозначение неприсвоенного значения. Тартаро надеялся, что база данных нарушителей не сможет корректно обрабатывать номер, и он сможет избежать штрафов, пишет Wired.
В 2017 году Тартаро нужно было перерегистрировать автомобильный номер. Это получилось не сразу, поскольку система не принимала NULL как номер. Несмотря на это Тартаро смог продлить регистрацию и продолжил использовать номер.
В начале 2018 года Тартаро впервые попал в базу нарушителей — он получил первый штраф в $35 за то, что на номере не было наклейки о регистрации. Программист подумал, что кто-то мог переклеить её на свой автомобиль. Поскольку сумму штрафа была небольшой, Тартаро решил просто оплатить его.
После этого случая на имя Тартаро начали приходить десятки штрафов из разных городов и на разные автомобили. Вероятно, когда программист оплатил штраф, система связала значение null с его личными данными, отмечает издание. Теперь, когда сотрудник полиции забывает указать номер автомобиля, штрафы автоматически отправляются на имя Джозефа Тартаро.
В результате общая сумма штрафов превысила $12 тысяч. Тартаро связался с компанией, которая выписала штрафы, а также Управлением транспортных средств Калифорнии (Department of Motor Vehicles; DMV) и сумел оспорить половину из них. Когда Wired в последний раз проверяло базу с данными нарушителей, у Тартаро оставалось штрафов только на $140.
Сам Тартаро заявил изданию, что не планирует отказываться от своего номера, поскольку это может ещё больше запутать ситуацию.
В языках программирования специальное значение null отличается от строки "null". Они никогда не равны. Даже в sql 'null' is not null.
В нормальных языках программирования, да.
А в каких не так?
Например, в том, на котором эти гении написали систему. Конечно, дело не в том, что в языке 'null' == null, а в том, что он позволил написать софт так, что это стало возможным.
Не в языке дело, а в "гениях". В том языке может вообще null нет.
Есть языки, в которых у этих "гениев" не получится так сделать.
Например? Записывать строку NULL вместо отсутствующего знания можно в любом языке.
Результатом чтения с номера авто должна быть строка, и более ничего. Даже если там 123456 или NULL или undefined или ещё что-то. Это явно должно быть приведено к строке. Если вышла такая хрень, которая описана в статье, то это говорит о том, что 'NULL' превратился в NULL, насколько криво сделан софт.
Не говорит. Это может говорить о том, что в базе для отсутствующего номера записана строка 'NULL'.
'NULL' превратился в NULLТак какой язык не позволяет такое сделать?
Тут уже клиника совсем.
Так какой язык не позволяет такое сделать?А какой позволяет? Я имел ввиду сравнение типов, естественно. Покажи мне язык, в котором 'NULL' === NULL будет возвращать TRUE.
Не разбираюс в языках, помоему в PINE true встречается