Христианство на пределе истории - Андрей Кураев
Шрифт:
Интервал:
Закладка:
Когда говорят, что штрих-код плох тем, что в нем содержатся знаки, графически похожие на шестерки, это означает, что люди хотят придумать себе предмет страха. Ведь штрих-коды предназначены не для человеческого восприятия, а для компьютерного считывания. Это означает, что знаки одного языка пробуют воспринимать по законам другого языка. А ведь так можно счесть всех китайцев матерщинниками – ибо они нередко произносят слоги, которые для русского уха кажутся оскорбительными. Да, оградительные штрихи начертаны так же, как и шестерки. Но, во-первых, чтобы заметить это сходство, нужно приложить усилия по изучению символики штрих-кода (чего обычный покупатель не делает). Во-вторых, если уж за это изучение браться всерьез, то станет понятно, что пробелы в этой азбуке тоже являются буквами, а вот как раз по числу пробелов оградительные символы все же отличаются от цифровых. Кроме того, такая постановка проблемы означает, что отношение к штрих-кодам уже целиком зависит не от символики самих кодов, а от готовности относящегося акцентировать внимание на этом «графическом сходстве» или же игнорировать его или даже просто – со знанием дела – отрицать.
В науке же принято считать доказанной лишь ту точку зрения, которая смогла ответить на все недоумения и возражения оппонентов. Утверждение, что разделительные линии идентичны «шестерке», все же не отвечает на ряд вопросов. Один из них: разделительные линии не подписаны арабскими, «человеческими» цифрами. Если сканер у кассира выходит из строя, или линии штрих-кода загрязнены, кассир просто от руки набирает на своем кассовом компьютере тот набор цифр, который подписан под штрих-кодом. Поскольку под разделительными линиями никаких значков нет, то и кассир просто пропускает эти линии. Если же у них есть цифровое значение, то тогда те данные, что компьютер получит в результате ручного ввода цифр, окажутся совершенно отличными от тех данных, которые он получил бы, если бы сам сканировал и распознавал штрих-код. Но разные входные данные порождали бы разнобой в итоговых результатах – чего составители программы, конечно, не допустили бы (ибо тогда был бы невозможен точный учет проданных товаров). Для компьютера, оказывается, все равно – прочел ли он сам код, или получил его от кассирши, которая опустила пресловутые три шестерки. Идентичность результата означает идентичность и поступившей в компьютер информации. И, значит, разделительные линии не несут никакой цифровой информации. И, значит, компьютер как-то различает разделительные линии от тех групп линий, которые имеют цифровое значение. Как он это делает? Нет ответа на этот вопрос…
Предположение о тождественности разделительных линий шестеркам нарушает и основную аксиому кодирования информации: любой код (перевод) должен быть обратим. Если мы поставим вместо разделительных линий те комбинации штрихов и пробелов, что обозначают шестерки – будет ли работать такой код? – Нет![211]
Это вопрос тем более значимый, что штрих-код действительно содержит в себе тайный знак, сокрытый от непосвященных – это последняя его цифра. Она служит своего рода «паролем», который мешает подделать штрих-код и написать в нем цифры в произвольном порядке. Все цифры штрих-кода по определенным правилам должны быть вовлечены в некоторые арифметические операции с ними – чтобы в сумме получилась последняя из цифр. Но если разделительные линии компьютер читает как шестерки, то в этом случае у него никак не может получиться та же итоговая сумма, которая выходит, если в него последовательность цифр загружается вручную – кассиршей, не учитывающей «шестерки».
Второй вопрос, на который штрихофобы не дают ответа – это вопрос о том, зачем вообще нужны пробелы до начала первого штриха знака и после окончания последнего штриха[212]. Если они ничего не значат (а только при их наличии разделительные штрихи тождественны шестеркам), то отчего же все цифры кодируются с помощью именно 7 модулей и зачем тогда нужны крайние пробелы? Почему тогда разнится число пробелов между последним штрихом, которым кончается одна цифра и первым штрихом, с которого начинается следующая цифра штрих-кода? Почему число пробелов между цифрами разное, если число этих пробелов ничего не значит? А именно это тезис – о не-значимости пробелов лежит в основе экспертиз, находящих число зверя в штрих-коде. И на этот вопрос я пока не слышал ответа… А именно этот тезис о не-значимости пробелов лежит в основе экспертиз, находящих число 666 в штрих-коде.
Вот и Алексей Ипатов опубликовал только вывод из своей «экспертизы», но не опубликовал саму экспертизу, то есть те пути, коими он пришел к своим выводам: в ключевом пункте о наличии сатанинского числа в штрих-коде он без всяких доказательств просто повторил домысел других «наших экспертов» из «Русского вестника» о том, что «количество пробелов не существенно»[213].
Здесь начинает протестовать мое богословское воспитание. Ведь если по такой методе обращаться с Евангелием – это верный путь к ереси. Если автор некоего текста (штрих-код это тоже текст, правда, предназначенный для компьютерного глаза, а не человеческого) счел нужным что-то в него вставить, а интерпретатор по своему вкусу считает, что этот авторский замысел был излишним и что без этих «частностей» можно обойтись, то такой читатель явно вычитывает из текста совсем не то, что в него вкладывал автор. В богословии такое обращение с первоисточником ведет к ереси. В науке – к ошибке.
А ведь опровергается это утверждение просто: достаточно взять какой-нибудь уже изготовленный штрих-код, о котором известно, какая именно последовательность арабских цифр в нем закодирована, и затем «ужать» этот штрих-код, удалив «лишние» пробелы между штрихами, о которых предполагается, что они не несут никакой информационной нагрузки. Например, согласно ГОСТу цифра шесть передается с помощью 7 знаков: 1010000. По мнению Ипатова, компьютеру для распознавания шестерки достаточно первых трех знаков (101; штрих-пробел-штрих). Четыре последующих пробела (0000) информации не несут и оказываются лишними. Хорошо, сотрите эти пробелы, оставьте лишь один (чтобы первый штрих следующей цифры не слился с последним штрихом предыдущей). Проведите эту операцию ужатия по всему штрих-коду, со всеми цифрами (в зависимости от серии удаляя лишние пробелы, оказавшиеся до начала первого штриха или же после окончания последнего штриха из группы, обозначающей каждую отдельную цифру). И дайте сканеру прочитать переделанный вами штрих-код. Что вы получите? – Ничего. Это значит, что для компьютера все-таки важно количество пробелов между группами штрихов.
Провести такой эксперимент может каждый владелец компьютера, принтера и сканера.
Операция первая: пойти в ближайший супермаркет, в котором кассовые рассчеты совершаются с помощью ручного сканера кассирши. Купите какой-либо продукт. Сохраните его этикетку со штрих-кодом и принесите ее домой.
Операция вторая: отсканируйте штрих-код с этой этикетки. Переведя изображение на экран, увеличьте его.
Операция третья: Пользуясь таблицей ГОСТА ЕАN[214] определите границы между комбинациями штрихов и пробелов, обозначающих подписанные снизу под кодом арабские цифры. Уберите лишние, с точки зрения Ипатова, пробелы. То есть: те пробелы, которые находятся внутри комбинации двух штрихов, обозначающих одну цифру, не трогайте, а вот те пробелы, которые предшествуют этой комбинации штрихов или следуют за ней – сотрите на экране вашего компьютера. Например, в цифре 5 (серии А) – 0110001 – сотрите первый пробел и оставьте все остальные. А у той же цифры в серии С – 1001110 – сотрите последний пробел, оставив все срединные.
Операция четыре: распечатайте полученную вами картинку.
Операция пять: возьмите исходную этикетку и ту, которую вы «поправили» и отнесите в тот же магазин попросите кассиршу просканировать обе бумажки…
Аналогичный эксперимент можно провести, не удаляя лишние пробелы, а просто добавляя их (легче всего это сделать сразу после окончания первых двух длинных линий). Ведь если наличие или отсутствие пробелов никак не влияет на распознавание – то и появление дополнительных пяти-шести пробелов после первой ограничительной пары линий, а также перед центральным и завершающим знаками-ограничителями не должно влиять на результат распознавания.
Наконец, если по догадке «наших специалистов» ненужным является центральный знак-ограничитель (мол, он туда вставлен лишь для того, чтобы шестерок было именно три), то попробуйте удалить и его. И снова посмотрите на результат…
Приходила ли в голову Ипатова мысль о необходимости такого проверочного эксперимента с вручную исправленным штрих-кодом? – Да. Вот фрагмент из его экспертизы: «Крайние ограничители в штрих-коде являются необходимыми, т. к. по ним определяется единичная ширина элемента. Центральный ограничитель не является необходимым. Подтверждением этому может служить нижеприводимый распознаваемый программой „вручную исправленный“ штрих-код. В данном штриховом коде к центральному ограничителю справа и слева добавлено по дополнительному пробелу. Аналогичное добавление пробелов после крайних ограничителей приводит к сбою в считывании кода».