{"id":14270,"url":"\/distributions\/14270\/click?bit=1&hash=a51bb85a950ab21cdf691932d23b81e76bd428323f3fda8d1e62b0843a9e5699","title":"\u041b\u044b\u0436\u0438, \u043c\u0443\u0437\u044b\u043a\u0430 \u0438 \u0410\u043b\u044c\u0444\u0430-\u0411\u0430\u043d\u043a \u2014 \u043d\u0430 \u043e\u0434\u043d\u043e\u0439 \u0433\u043e\u0440\u0435","buttonText":"\u041d\u0430 \u043a\u0430\u043a\u043e\u0439?","imageUuid":"f84aced9-2f9d-5a50-9157-8e37d6ce1060"}

Американский программист зарегистрировал автомобильный номер NULL и получил штрафы на $12 тысяч из-за неопознанных авто Статьи редакции

В некоторых языках программирования null используется как обозначение неприсвоенного значения — Джозеф Тартаро рассчитывал использовать это, чтобы избежать штрафов.

В конце 2016 года американский программист Джозеф Тартаро зарегистрировал автомобильный номер «NULL» — в некоторых языках программирования null используется как обозначение неприсвоенного значения. Тартаро надеялся, что база данных нарушителей не сможет корректно обрабатывать номер, и он сможет избежать штрафов, пишет Wired.

В 2017 году Тартаро нужно было перерегистрировать автомобильный номер. Это получилось не сразу, поскольку система не принимала NULL как номер. Несмотря на это Тартаро смог продлить регистрацию и продолжил использовать номер.

В начале 2018 года Тартаро впервые попал в базу нарушителей — он получил первый штраф в $35 за то, что на номере не было наклейки о регистрации. Программист подумал, что кто-то мог переклеить её на свой автомобиль. Поскольку сумму штрафа была небольшой, Тартаро решил просто оплатить его.

После этого случая на имя Тартаро начали приходить десятки штрафов из разных городов и на разные автомобили. Вероятно, когда программист оплатил штраф, система связала значение null с его личными данными, отмечает издание. Теперь, когда сотрудник полиции забывает указать номер автомобиля, штрафы автоматически отправляются на имя Джозефа Тартаро.

В результате общая сумма штрафов превысила $12 тысяч. Тартаро связался с компанией, которая выписала штрафы, а также Управлением транспортных средств Калифорнии (Department of Motor Vehicles; DMV) и сумел оспорить половину из них. Когда Wired в последний раз проверяло базу с данными нарушителей, у Тартаро оставалось штрафов только на $140.

Сам Тартаро заявил изданию, что не планирует отказываться от своего номера, поскольку это может ещё больше запутать ситуацию.

0
94 комментария
Написать комментарий...
Nikita
в некоторых языках программирования null используется как обозначение неприсвоенного значения

В языках программирования специальное значение null отличается от строки "null". Они никогда не равны. Даже в sql 'null' is not null.

Ответить
Развернуть ветку
Paul Denisevich

В нормальных языках программирования, да.

Ответить
Развернуть ветку
Svetoslav Dorofeev

а в каких языках нет?

Ответить
Развернуть ветку
Игорь Богданов

"В тех, на которых пишут ПО для правительственных организаций"

Ответить
Развернуть ветку
Nikita

Скоре дело в том _как_ пишут ПО для правительственных организаций. Вряд ли тут дело в языке.

Ответить
Развернуть ветку
Nikita

А в каких не так?

Ответить
Развернуть ветку
Paul Denisevich

Например, в том, на котором эти гении написали систему. Конечно, дело не в том, что в языке 'null' == null, а в том, что он позволил написать софт так, что это стало возможным.

Ответить
Развернуть ветку
Nikita

Не в языке дело, а в "гениях". В том языке может вообще null нет.

Ответить
Развернуть ветку
Paul Denisevich

Есть языки, в которых у этих "гениев" не получится так сделать.

Ответить
Развернуть ветку
Nikita

Например? Записывать строку NULL вместо отсутствующего знания можно в любом языке.

Ответить
Развернуть ветку
Paul Denisevich

Результатом чтения с номера авто должна быть строка, и более ничего. Даже если там 123456 или NULL или undefined или ещё что-то. Это явно должно быть приведено к строке. Если вышла такая хрень, которая описана в статье, то это говорит о том, что 'NULL' превратился в NULL, насколько криво сделан софт.

Ответить
Развернуть ветку
Nikita
то это говорит о том, что 'NULL' превратился в NULL

Не говорит. Это может говорить о том, что в базе для отсутствующего номера записана строка 'NULL'.

'NULL' превратился в NULL

Так какой язык не позволяет такое сделать?

Ответить
Развернуть ветку
Paul Denisevich
Это может говорить о том, что в базе для отсутствующего номера записана строка 'NULL'.

Тут уже клиника совсем.

Так какой язык не позволяет такое сделать?

А какой позволяет? Я имел ввиду сравнение типов, естественно. Покажи мне язык, в котором 'NULL' === NULL будет возвращать TRUE.

Ответить
Развернуть ветку
Nikita
Покажи мне язык, в котором 'NULL' === NULL будет возвращать TRUE.

Вы сейчас себе противоречите? В моем первом комменте написано, что "В языках программирования специальное значение null отличается от строки "null"". Дальше сами можете прочитать как тред развивался.

Ответить
Развернуть ветку
Paul Denisevich

Лень дальше объяснять, честно говоря. Вот именно, всё написано выше.

Ответить
Развернуть ветку
Nikita

Объясните хотя бы что вы тут имели в виду?

В нормальных языках программирования, да.
А в каких не так?
Например, в том, на котором эти гении написали систему

Что это за язык такой?

Ответить
Развернуть ветку
Paul Denisevich

ПОХАПЭ!

Ответить
Развернуть ветку
Nikita

В PHP 'NULL' не равен NULL.

Ответить
Развернуть ветку
Paul Denisevich

Опять же, я наверное не так выразился. Дело не в самом языке, а в неправильно написанном софте. Какой там язык - я хз, явно один из десятки популярных, но если он позволил так написать, то это ненормально.

Ответить
Развернуть ветку
Nikita

Я перестаю вас понимать:

Не в языке дело, а в "гениях". В том языке может вообще null нет.
Есть языки, в которых у этих "гениев" не получится так сделать

Зачем вы пишите мысли, которые выше оспаривали?

Ответить
Развернуть ветку
Азат Белеков

Не разбираюс в языках, помоему в PINE true встречается

Ответить
Развернуть ветку
91 комментарий
Раскрывать всегда