Транспорт Татьяна Боброва
31 479

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

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

В закладки
Аудио

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

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

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

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

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

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

#новость #штрафы

{ "author_name": "Татьяна Боброва", "author_type": "editor", "tags": ["\u0448\u0442\u0440\u0430\u0444\u044b","\u043d\u043e\u0432\u043e\u0441\u0442\u044c","\u043d\u043e\u0432\u043e\u0441\u0442\u0438"], "comments": 91, "likes": 96, "favorites": 23, "is_advertisement": false, "subsite_label": "transport", "id": 79355, "is_wide": false, "is_ugc": false, "date": "Wed, 14 Aug 2019 19:39:26 +0300" }
{"average":28538,"one":95,"ten":76}
Сколько денег вы откладываете в месяц?
Ответьте и узнаете, сколько копят другие.
0 ₽
70 000+ ₽
0 ₽
{ "id": 79355, "author_id": 283507, "diff_limit": 1000, "urls": {"diff":"\/comments\/79355\/get","add":"\/comments\/79355\/add","edit":"\/comments\/edit","remove":"\/admin\/comments\/remove","pin":"\/admin\/comments\/pin","get4edit":"\/comments\/get4edit","complain":"\/comments\/complain","load_more":"\/comments\/loading\/79355"}, "attach_limit": 2, "max_comment_text_length": 5000, "subsite_id": 199115, "last_count_and_date": null }
91 комментарий

Популярные

По порядку

Написать комментарий...
108

вы зашли сюда, чтобы вспомнить эту картинку

Ответить
36

Этот тоже неплохой:

Ответить
5

как этот номер вообще одобрили?

Ответить
20

Мастер фотошопа одобрил

Ответить
3

Ну кстате если гении в транспортном департаменте США не закавычили параметр, то права на дроп уж точно не убрали и это могло бы сработать

Ответить
1

Незаескейпили

Ответить
0

Drop это не США, а восточная Европа... судя по фото

Ответить
74

Когда решил затроллить систему, но система затроллила тебя.

Ответить
19

- А здесь выдают зарплату? Моя фамилия "Итого"!
- Нет, тут собирают налоги. Так как ваша фамилия?

Ответить
34

Ещё вариант

Ответить
4

Как говорится, зашёл сюда за этой картинкой. ))

Ответить
1

Ну такое. Не хватает про бэкапы.

Ответить
5

Потому что

Ответить
30

Русское быдло в Бруклине, ничего особенного

Ответить
8

довольно популярная тема у гопников с брайтон бича

Ответить
1

видел эту телегу в квинсе, у него сейчас номер UVEREN что то типо того

Ответить
0

...а ведь столько хороших номеров свободно

Ответить
10

в некоторых языках программирования null используется как обозначение неприсвоенного значения

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

Ответить
1

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

причем тут ЯП ?
INSERT INTO fines SET plate={$_GET['plate']};

Ответить
29

За такое обычно в ебальник бьют!

Ответить
4

это если по айпи вычислят :)

Ответить
1

Судя по такому коду, вычислить будет легко

Ответить
0

В PHP NULL превратится в пустую строку.

Ответить
0

да, и штраф на тебя не запишет. это и была идея изначально.

Ответить
0

При чем тут тогда "NULL"?

Ответить
7

Если кто захочет прочитать тред под комментарием, там программисты опять сцепились каждый раз одно и то же

Ответить
2

Там всё проще, результат запроса из БД во многих языках конвертируется в строки.
Null превращается в строку 'null'

Ответить
10

>результат запроса из БД во многих языках конвертируется в строки

сколько недель / месяцев в индустрии?

Ответить
0

Тоже интересно. Желательно дату начала работы в индустрии, в UNIXTIME

Ответить
3

во многих языках

В каких многих?

Ответить
–4

Да почти во всех

Ответить
1

Вы сейчас чушь написали.

Ответить
–1

Если вы не в курсе, это ещё не чушь)
Смотрите например коннектор для mysql, он возвращает строки и от языка это вообще не зависит.

Ответить
4

Какой коннектор, в каком языке? Первый попавшийся результат из гугла: https://stackoverflow.com/questions/1576243/php-check-for-null Возвращается null, а не "null".

Ответить
–3

Он имел в виду языки, у тебя же пхп.

Ответить
1

1) У меня не php. Это просто первая ссылка из гугла.
2) То есть недоязык php работает с mysql правильнее, чем языки?

Ответить
1

Ребята, за что минусы? Если что, то я против PHP ничего не имею.

Ответить
5

Ах, ты ещё и против PHP ничего не имеешь...

Ответить
0

за то, что ты неугомон

Ответить
0

Если PHP-недоязык,то С++ и JAVA - переязык.

Ответить
2

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

Кэп, они не равны, но они и не сравниваются в данном случае. Сравнивается строка "NULL" со строкой "NULL".

Ответить
–2

Это и моя гипотеза. И значение null тут не при чем. В реализации вместо "NULL" могла быть любая другая строка.

Ответить
1

Неужели тут только дизайнеры да менеджеры на самокатах? В Java String.valueOf от null выдаст “null”

Ответить
0

И как это делает их равными?

Ответить
0

Никак. Тут даже без приведения типов не будет равенства.

Ответить
0

Я, если что, не про JavaScript

Ответить
–2

В Java есть операция сравнения (==), которая не отличит результат выполнения valueOf(null) и значение “null”

Ответить
0

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

Или вы все-таки допускаете, что между отсканированным текстом и системой все-таки должен находиться какой-то парсер?

Ответить
1

Тут программисты есть? Вы правда думаете, что отсканированный текст должен бросаться в переменную

А вы точно программист? При чем тут переменная?

между отсканированным текстом и системой все-таки должен находиться какой-то парсер

Как наличие парсера связано с "в некоторых языках программирования null используется как обозначение неприсвоенного значения"?

Ответить
0

тут развернулась оживленная дискуссия о том, как приводятся типы в языках - хотя смотреть нужно на реализацию системы

пустой спор

Ответить
0

тут развернулась оживленная дискуссия о том, как приводятся типы в языках

Где?

Ответить
0

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

Ответить
0

Да запросто, или кто-то думает, что парсер не использует переменные?

Ответить
0

доверяя встроенной конвертации типов

Зачем _отсканированный текст_ нужно конвертировать в _другой тип_???

Ответить
0

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

Ответить
0

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

Ответить
–1

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

Ответить
3

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

Ответить
0

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

Ответить
0

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

Ответить
0

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

Ответить
0

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

Ответить
0

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

Ответить
1

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

Ответить
0

то это говорит о том, что 'NULL' превратился в NULL

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

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

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

Ответить
0

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

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

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

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

Ответить
1

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

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

Ответить
0

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

Ответить
0

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

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

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

Например, в том, на котором эти гении написали систему

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

Ответить
0

ПОХАПЭ!

Ответить
0

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

Ответить
0

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

Ответить
–1

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

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

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

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

Ответить
0

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

Ответить
13

Тоже норм

Ответить
9

12 тыс. $? Это еще хорошо, что он не с российской налоговой шутки шутить изволил.

Ответить
6

Ну вот, а если бы у них там все на 1С работало, то такого бы не было (:

Ответить
4

Шел пацан к успеху, но не фартануло

Ответить
4

да все норм че.
наберет штрафов еще на полляма и подаст в суд за моральный ущерб на пару лямов.
почему бы и нет? реальный же троллинг от DMV.

Ответить
4

Когда написал код, не протестировал, и сразу — в релиз.

Ответить
2

Сорян не вам, а чуток выше парню хотел отправить

Ответить
1

Не играйте в азартные игры с государством.

Ответить

Комментарий удален

0

Какая будет путаница, если он откажется от номера ?

Ответить
0

на ноль делить нельзя, видимо

Ответить
0

такую статью может написать только придурок. потому что null во всех языках программирования с другом null НЕ РАВНО!!! это как с делением на ноль. пустые значения НЕ СРАВНИВАЮТСЯ. и главное слово NULL и значение NULL это разные типы переменных

Ответить
0

Только в 2019 догадались такой номер зарегистрировать? Ну-ну.

Ответить
0

Нет на них нашего большого брата)

Ответить

Комментарий удален

0
{ "page_type": "article" }

Прямой эфир

[ { "id": 1, "label": "100%×150_Branding_desktop", "provider": "adfox", "adaptive": [ "desktop" ], "adfox_method": "createAdaptive", "auto_reload": true, "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "bugf", "p2": "ezfl" } } }, { "id": 2, "label": "1200х400", "provider": "adfox", "adaptive": [ "phone" ], "auto_reload": true, "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "bugf", "p2": "ezfn" } } }, { "id": 3, "label": "240х200 _ТГБ_desktop", "provider": "adfox", "adaptive": [ "desktop" ], "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "bugf", "p2": "fizc" } } }, { "id": 4, "label": "240х200_mobile", "provider": "adfox", "adaptive": [ "phone" ], "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "bugf", "p2": "flbq" } } }, { "id": 5, "label": "300x500_desktop", "provider": "adfox", "adaptive": [ "desktop" ], "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "bugf", "p2": "ezfk" } } }, { "id": 6, "label": "1180х250_Interpool_баннер над комментариями_Desktop", "provider": "adfox", "adaptive": [ "desktop" ], "adfox": { "ownerId": 228129, "params": { "pp": "h", "ps": "bugf", "p2": "ffyh" } } }, { "id": 7, "label": "Article Footer 100%_desktop_mobile", "provider": "adfox", "adaptive": [ "desktop", "tablet", "phone" ], "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "bugf", "p2": "fjxb" } } }, { "id": 8, "label": "Fullscreen Desktop", "provider": "adfox", "adaptive": [ "desktop", "tablet" ], "auto_reload": true, "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "bugf", "p2": "fjoh" } } }, { "id": 9, "label": "Fullscreen Mobile", "provider": "adfox", "adaptive": [ "phone" ], "auto_reload": true, "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "bugf", "p2": "fjog" } } }, { "id": 10, "disable": true, "label": "Native Partner Desktop", "provider": "adfox", "adaptive": [ "desktop", "tablet" ], "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "clmf", "p2": "fmyb" } } }, { "id": 11, "disable": true, "label": "Native Partner Mobile", "provider": "adfox", "adaptive": [ "phone" ], "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "clmf", "p2": "fmyc" } } }, { "id": 12, "label": "Кнопка в шапке", "provider": "adfox", "adaptive": [ "desktop" ], "adfox": { "ownerId": 228129, "params": { "p1": "bscsh", "p2": "fdhx" } } }, { "id": 13, "label": "DM InPage Video PartnerCode", "provider": "adfox", "adaptive": [ "desktop", "tablet", "phone" ], "adfox_method": "createAdaptive", "adfox": { "ownerId": 228129, "params": { "pp": "h", "ps": "bugf", "p2": "flvn" } } }, { "id": 14, "label": "Yandex context video banner", "provider": "yandex", "yandex": { "block_id": "VI-223676-0", "render_to": "inpage_VI-223676-0-1104503429", "adfox_url": "//ads.adfox.ru/228129/getCode?pp=h&ps=bugf&p2=fpjw&puid1=&puid2=&puid3=&puid4=&puid8=&puid9=&puid10=&puid21=&puid22=&puid31=&puid32=&puid33=&fmt=1&dl={REFERER}&pr=" } }, { "id": 15, "label": "Плашка на главной", "provider": "adfox", "adaptive": [ "desktop", "tablet", "phone" ], "adfox": { "ownerId": 228129, "params": { "p1": "byudx", "p2": "ftjf" } } }, { "id": 16, "label": "Кнопка в шапке мобайл", "provider": "adfox", "adaptive": [ "tablet", "phone" ], "adfox": { "ownerId": 228129, "params": { "p1": "byzqf", "p2": "ftwx" } } }, { "id": 17, "label": "Stratum Desktop", "provider": "adfox", "adaptive": [ "desktop" ], "auto_reload": true, "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "bugf", "p2": "fzvb" } } }, { "id": 18, "label": "Stratum Mobile", "provider": "adfox", "adaptive": [ "tablet", "phone" ], "auto_reload": true, "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "bugf", "p2": "fzvc" } } }, { "id": 19, "label": "Тизер на главной", "provider": "adfox", "adaptive": [ "desktop", "tablet", "phone" ], "auto_reload": true, "adfox": { "ownerId": 228129, "params": { "p1": "cbltd", "p2": "gazs" } } } ]
Голосовой помощник выкупил
компанию-создателя
Подписаться на push-уведомления
{ "page_type": "default" }