Время работы: Пн-Пт с 10:00 до 18:00.
Меню

И снова "рогатый" штрих–код: незавершенная дискуссия или новая атака?

Главная » Информационные статьи о торговом оборудовании » Статьи о штрихкоде »И снова "рогатый" штрих–код: незавершенная дискуссия или новая атака?

Письмо анонима:

И снова рогатый штрих-код: незавершенная дискуссия или новая атака?К. Гордеев,

"Сходство этих линий с теми линиями, что означают цифру «шесть» кажется очевидным… Но сходство все же не есть тождество. Ведь все эти знаки предназначены не для прочтения их людьми, а для распознавания их компьютером.

Разница в том, что, когда мы читаем текст, мы обращаем внимание только на темные значки — буквы. Пробелы между буквами для нас не несут никакой информации. Но не так воспринимает штрих–код компьютер (для которого, собственно, штрих–код и предназначен). В магазине кассир проводит по товарному штрих–коду сканером, который испускает тонкий лазерный лучик шириной в четверть миллиметра. Датчик сканера при этом реагирует на ответный сигнал: если луч попадает на черную полосу, то свет полностью поглощается, назад в сканер отраженный свет не поступает, и тогда компьютер прочитывает это молчание как «1». Если же луч нащупывает светлую полосу незакрашенной бумаги, пробел, то свет отражается полностью, возвращается в сканер, и датчик реагирует — прочитывая полученную информацию как «0». Собственно, только эти два знака и существуют для компьютера. Основу компьютерного языка составляет так называемый «двоичный код»: все свои операции компьютер осуществляет через различное чередование импульсов, означающих или 1 или 0. Это значит, что в штрих–коде для компьютера значимы не только линии, но и пробелы, интервалы между ними.

Так вот, цифра шесть кодируется следующим чередованием знаков: 1010000 (штрих–пробел–штрих–пробел–пробел–пробел–пробел). Другие варианты, предусмотренные ГОСТом: 0000101 или 0101111 (в последнем случае на этикетке над цифрой 6 мы видим толстую сплошную черную полосу). В любом случае для штрихового начертания цифры 6 требуется нанести 7 знаков (две черты, плюс пять пробелов, разделяющих эти черты между собою и отделяющие их от соседних цифр). Это значит, что для прочтения числа 6 компьютер должен получить серию импульсов от 7 знаков (модулей). А ограничительные линии, в которых обычно и видят тайные шестерки, состоят всего лишь из трех знаков: штрих–пробел–штрих (101), то есть менее чем наполовину соответствуют той комбинации, которая обозначает 6.

Эти линии не что иное, как просто выключатель. Это простейшая комбинация символов (1–0–1), которые подсказывают сканеру, где пора начинать работу, а где пора выключаться. Эти линии в начале и в конце кода нужны для синхронизации считывающего сканера. Для сканера задается эталон того, какую толщину имеет тонкая линия. Ведь в самом деле никак нельзя отличить тонкую линию от толстой (от двух тонких), если не известна толщина одной тонкой. И как узнать какова толщина одного пробела? Именно для этого нужна эта комбинация вначале. Теперь зачем она в конце. Дело в том, что человек, проводя сканером по штрих–коду может сделать это с разной скоростью — быстрее или медленнее. Соответственно сканер "видит" эти линии по разному. Если человек проводит быстро — то и сканер "видит" черные и белые полосы меньшее время. Таким образом, они как бы становятся для него уже. И наоборот. Но человек не может провести сканером абсолютно равномерно — с постоянной скоростью. Например может случиться, что скорость движения руки вначале штрих–кода была меньше, а к концу возросла. Тогда получится, что линии в конце кода покажутся сканеру более тонкими и например толстая линия может распознаться тонкой, т.к. сканер не знает о истинной ее толщине, а оценивает ее посредством того времени, которое датчик "видит" черную полосу. При помощи комбинации 101 в конце кода сканер оценивает как изменилась скорость движения сканера по линиям кода и, если движение было неравномерным, в принципе может сделать поправку и рассчитать какой скорость была в середине и т.д. Кроме того, эта комбинация выделяет начало и конец штрих–кода. Таким образом, эта комбинация цифрой не является, а предназначена для обеспечения надежного считывания. А то, что она входит в число 6 — это только совпадение. Кроме того, комбинация 101 входит и в написание таких цифр, как 3 и 5 (которые отличаются друг от друга комбинацией пробелов вокруг этих линий).

Итак, ограничительные линии не есть «шестерки»; а потому говорить, что ограничительные линии «похожи на шестерку» — все равно, что говорить, будто начертание цифры 5 похоже на шестерку, и потому число 555 тоже является сатанинским. Буква б тоже похоже на цифру 6. Но это не значит, что если в строчке трижды встречается буква б, то эту строчку стоит вымарывать как «сатанинскую»… А если в цифре 8 подтереть одну из линий — она станет шестеркой. Такими «подтираниями» и «дописываниями» можно любой знак переделать в искомый символ и сделать из мухи слона. Вот как это делает, например, петербуржский священник Геннадий Емельянов: «Штрих–код содержит в себе число 666, хотя и утверждают, что сканер это число не считывает. И, действительно, если мы возьмем и подвергнем сканированию любой штрих–код, числа 666 мы там не найдем, но интересно то, что если наложенную информацию стереть, то в основе будут лежать голые три шестерки, которые сканер уже способен прочесть».

Когда говорят, что штрих–код плох тем, что в нем содержатся знаки, графически похожие на шестерки, это означает, что люди хотят придумать себе предмет страха. Ведь штрих–коды предназначены не для человеческого восприятия, а для компьютерного считывания. Это означает, что знаки одного языка пробуют воспринимать по законам другого языка. А ведь так можно счесть всех китайцев матерщинниками — ибо они нередко произносят слоги, которые для русского уха кажутся оскорбительными. Да, оградительные штрихи начертаны так же, как и шестерки. Но, во–первых, чтобы заметить это сходство, нужно приложить усилия по изучению символики штрих–кода (чего обычный покупатель не делает). Во–вторых, если уж за это изучение браться всерьез, то станет понятно, что пробелы в этой азбуке тоже являются буквами, а вот как раз по числу пробелов оградительные символы все же отличаются от цифровых. Кроме того, такая постановка проблемы означает, что отношение к штрих–кодам уже целиком зависит не от символики самих кодов, а от готовности относящегося акцентировать внимание на этом «графическом сходстве» или же игнорировать его или даже просто – со знанием дела – отрицать.

Система кодирования информацииВ науке же принято считать доказанной лишь ту точку зрения, которая смогла ответить на все недоумения и возражения оппонентов. Утверждение, что разделительные линии идентичны «шестерке», все же не отвечает на ряд вопросов. Один из них: разделительные линии не подписаны арабскими, «человеческими» цифрами. Если сканер у кассира выходит из строя, или линии штрих–кода загрязнены, кассир просто от руки набирает на своем кассовом компьютере тот набор цифр, который подписан под штрих–кодом. Поскольку под разделительными линиями никаких значков нет, то и кассир просто пропускает эти линии. Если же у них есть цифровое значение, то тогда те данные, что компьютер получит в результате ручного ввода цифр, окажутся совершенно отличными от тех данных, которые он получил бы, если бы сам сканировал и распознавал штрих–код. Но разные входные данные порождали бы разнобой в итоговых результатах — чего составители программы, конечно, не допустили бы (ибо тогда был бы невозможен точный учет проданных товаров). Для компьютера, оказывается, все равно — прочел ли он сам код, или получил его от кассирши, которая опустила пресловутые три шестерки. Идентичность результата означает идентичность и поступившей в компьютер информации. И, значит, разделительные линии не несут никакой цифровой информации. И, значит, компьютер как–то различает разделительные линии от тех групп линий, которые имеют цифровое значение. Как он это делает? Нет ответа на этот вопрос…

Предположение о тождественности разделительных линий шестеркам нарушает и основную аксиому кодирования информации: любой код (перевод) должен быть обратим. Если мы поставим вместо разделительных линий те комбинации штрихов и пробелов, что обозначают шестерки — будет ли работать такой код? — Нет!

Это вопрос тем более значимый, что штрих–код действительно содержит в себе тайный знак, сокрытый от непосвященных — это последняя его цифра. Она служит своего рода «паролем», который мешает подделать штрих–код и написать в нем цифры в произвольном порядке. Все цифры штрих–кода по определенным правилам должны быть вовлечены в некоторые арифметические операции с ними — чтобы в сумме получилась последняя из цифр. Но если разделительные линии компьютер читает как шестерки, то в этом случае у него никак не может получиться та же итоговая сумма, которая выходит, если в него последовательность цифр загружается вручную — кассиршей, не учитывающей «шестерки».

Второй вопрос, на который штрихофобы не дают ответа — это вопрос о том, зачем вообще нужны пробелы до начала первого штриха знака и после окончания последнего штриха . Если они ничего не значат (а только при их наличии разделительные штрихи тождественны шестеркам), то отчего же все цифры кодируются с помощью именно 7 модулей и зачем тогда нужны крайние пробелы? Почему тогда разнится число пробелов между последним штрихом, которым кончается одна цифра и первым штрихом, с которого начинается следующая цифра штрих–кода? Почему число пробелов между цифрами разное, если число этих пробелов ничего не значит? А именно это тезис — о незначимости пробелов лежит в основе экспертиз, находящих число зверя в штрих–коде. И на этот вопрос я пока не слышал ответа… А именно этот тезис о не–значимости пробелов лежит в основе экспертиз, находящих число 666 в штрих–коде. А ведь опровергается это утверждение просто: достаточно взять Ккакой–нибудь уже изготовленный штрих–код, о котором известно, какая именно последовательность арабских цифр в нем закодирована, и затем «ужать» этот штрих–код, удалив «лишние» пробелы между штрихами, о которых предполагается, что они не несут никакой информационной нагрузки. Например, согласно ГОСТу цифра шесть передается с помощью 7 знаков: 1010000. По мнению Ипатова, компьютеру для распознавания шестерки достаточно первых трех знаков (101; штрих–пробел–штрих). Четыре последующих пробела (0000) информации не несут и оказываются лишними. Хорошо, сотрите эти пробелы, оставьте лишь один (чтобы первый штрих следующей цифры не слился с последним штрихом предыдущей). Проведите эту операцию ужатия по всему штрих–коду, со всеми цифрами (в зависимости от серии удаляя лишние пробелы, оказавшиеся до начала первого штриха или же после окончания последнего штриха из группы, обозначающей каждую отдельную цифру). И дайте сканеру прочитать переделанный вами штрих–код. Что вы получите? — Ничего. Это значит, что для компьютера все–таки важно количество пробелов между группами штрихов.

Провести такой эксперимент может каждый владелец компьютера, принтера и сканера.

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

Операция вторая: отсканируйте штрих–код с этой этикетки. Переведя изображение на экран, увеличьте его.

Операция третья: Пользуясь таблицей ГОСТА определите границы между комбинациями штрихов и пробелов, обозначающих подписанные снизу под кодом арабские цифры. Уберите лишние, с точки зрения Ипатова, пробелы. То есть: те пробелы, которые находятся внутри комбинации двух штрихов, обозначающих одну цифру, не трогайте, а вот те пробелы, которые предшествуют этой комбинации штрихов или следуют за ней – сотрите на экране вашего компьютера. Например, в цифре 5 (серии А) — 0110001 — сотрите первый пробел и оставьте все остальные. А у той же цифры в серии С — 1001110 — сотрите последний пробел, оставив все срединные.

Операция четыре: распечатайте полученную вами картинку.

Операция пять: возьмите исходную этикетку и ту, которую вы “поправили” и отнесите в тот же магазин попросите кассиршу просканировать обе бумажки…

Аналогичный эксперимент можно провести, не удаляя лишние пробелы, а просто добавляя их (легче всего это сделать сразу после окончания первых двух длинных линий). Ведь если наличие или отсутствие пробелов никак не влияет на распознавание — то и появление дополнительных пяти–шести пробелов после первой ограничительной пары линий, а также перед центральным и завершающим знаками–ограничителями не должно влиять на результат распознавания.

Наконец, если по догадке “наших специалистов” ненужным является центральный знак–ограничитель (мол, он туда вставлен лишь для того, чтобы шестерок было именно три), то попробуйте удалить и его. И снова посмотрите на результат…

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

Как видим, даже добавление пробела приводит «к сбою в считывании кода». Хотя казалось бы это добавление пустоты… Если же такое добавление после окончания штрих–кода («после крайних ограничителей») приводит к сбою — то на каком основании Ипатов полагает, будто ликвидация пробелов в самом штрих–коде никак на результат распознавания не влияет? Так провел ли Ипатов соответствующий эксперимент? — Нет.

Не проведя решающего проверочного эксперимента, не оповестив суд о наличии иных точек зрения у программистов , лично не принадлежа к кругу программистов–компютерщиков, Ипатов встал на путь банального запугивания…

Кроме того, его очевидная ошибка в том, что с неинформационными, вспомогательными символами он решил обращаться как с информационными. И это несмотря на то, что стандарт предлагает две разные таблицы для их распознавания. Это означает, что сама программа работает со служебными символами иначе, чем с информационными. Впрочем, этот раздел есть только в европейском стандарте и отчего–то опущен в российском ГОСТе. Из европейского же стандарта видно, что для распознавания цифры программа учитывает два параметра (Е1 и Е2); для распознавания ограничительных крайних символов только один параметр (Е1); а для работы с центральным знаком–разграничителем она использует, напротив, целых четыре замера (Е1, Е2, Е3, Е4). Соответственно, для них используется другая таблица (5.1.1.2–2), чем та, которая используется для распознавания цифр (5.1.2–2).

Еще одна подробность, которую отчего–то упускают иннэнистские эксперты: компьютер только тогда в состоянии прочитать штрих–код, когда в его память уже заложена соответствующая комбинация цифр. Если вы принесете в магазин товар, который вы приобрели в ином месте и при этом именно этого типа товара не будет в ассортименте этой торговой точки, то вы можете сколько угодно елозить сканером по штрих–коду. Кассовый компьютер ничего не идентифицирует и будет молчать. Это значит, что для того, чтобы компьютер «увидел» число 666 в штрих–коде, кто–то из операторов должен заранее ввести именно эту комбинацию в память компьютера. Введена ли такая комбинация в память именно того компьютера, с которым предстоит общаться вам, проверить легко: дайте ему для распознавания штрих–код, состоящий из шести параллельных тонких линий. И посмотрите – увидит ли хоть что-нибудь компьютер в этом вашем творении.

Впрочем, ошибка в вопросе расшифровки штрих–кода есть ошибка в математике, но не в богословии, в математике, но не в духовной жизни. Поэтому ошибиться здесь нестрашно.

Плохо то, что церковные люди так много связывавшие с тезисом о наличии шестерок в штрих–кодах, эмоциональную реакцию поставили прежде рационального анализа. Сначала – письма протеста и громкие заявления, и лишь затем – первые попытки обращения к специалистам. Более того, и по сю пору так и не было проведено ни одного круглого стола с приглашением светских математиков. Казалось бы, если вопрос так значим и если он все же дискуссионен (Министерство по налогам и сборам категорически отрицает наличие шестерок) – то стоит организовать серьезный и совместный анализ, в котором каждый шаг спорщиков был бы проверяем и оспариваем. Но этого не было. «Наши специалисты», «доказавшие» идентичность разделительных штрихов и шестерок, знают, что сам создатель этой программы считает иначе – но тем не менее истолковывают чужую программу по своему… Цифра 0 передается с помощью символов 0001101 или 0100111 в левой части штрих–кода и 1110010 в правой его части.

Цифра 1 – 0011001 или 0110011 и 1100110
Цифра 2 – 0010011 или 0011011 и 1101100
Цифра 3 – 0111101 или 0100001 и 1000010
Цифра 4 – 0100011 или 0011101 и 1011100
Цифра 5 – 0110001 или 0111001 и 1001110
Цифра 6 – 0101111 или 0000101 и 1010000
Цифра 7 – 0111011 или 0010001 и 1000100
Цифра 8 – 0110111 или 0001001 и 1001000
Цифра 9 – 0001011 или 0010111 и 1110100

Ответ анониму:

Здравствуйте, Алексей Иванов.

Вы писали 20 марта 2003 г., 15:28:35: письмо с текстом о штрих–коде, которое я, как написал Вам прежде, переслал специалистам. Однако внимательно ознакомившись с присланным мне текстом, я, не дожидаясь ответа экспертов, позволю себе несколько замечаний (которые допускает мое "дилетантское" высшее техническое образование и степень кандидата наук).

Замечание 1 (общего плана):

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

Замечание 2.

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

Замечание 3.

Прежде всего, данная система кодирования, разработанная Дж. Лорером, является системой, т.е. чем–то целостным, внутренне согласованным и непротиворечивым, с надежно работающим и обеспечивающим выполнение целевой задачи hard&soft'ом. Поэтому всякие идиотские предложения – типа "давайте произвольно добавим или сотрем штришок или пробел!" – лучше навсегда забыть. Когда бы такое было возможным, данный технический "прибабах" следовало б выкинуть на помойку и не за какие–то там мировоззренческие штучки, а просто, как непригодную для использования вещь.

Замечание 4.

Основными системными параметрами EAN–13, опуская ненужную детализацию, можно назвать следующие:

  • количество значимых символов кода – 12;
  • один контрольный символ, соответствующий цифре, которая рассчитывается путем 6 операций с 6 четными и 6 нечетными цифрами, кодируемыми значащими символами (опять три шестерки – ну, "как на зло"!);
  • число кодируемых основных знаков – 10 цифр;
  • число модулей в каждом знаке – 7;
  • число вариантов кодирования – 3 (наборы A, B, C);
  • содержание каждого знака – 2 штриха и 2 пробела (первый пробел в наборах A, B/ первый штрих в наборе C);
  • дополнительные характеристики наборов А, В, С: сумма модулей в штрихах каждого символа наборов А и С – четное, набора В – нечетное; набор С является зеркальным по отношению к набору А;
  • при декодировании в расчет принимаются не все 4 составляющие символа, а только три из них – штрих–пробел–штрих (см. таблицу 4.10 ГОСТа);
  • число вспомогательных знаков – 5 (типовой знак ограничитель– 3 модуля – штрих–пробел–штрих, центральный знак–ограничитель– 5 модулей – пробел–штрих–пробел–штрих–пробел, специальный знак ограничитель– 6 модулей – пробел–штрих–пробел–штрих–пробел штрих, знак ограничитель дополнительного символа– 4 модуля – штрих–пробел–штрих–штрих и знак разделитель дополнительного символа– 2 модуля – пробел–штрих);
  • дополнительная характеристика типового знака ограничителя – аналог сигналов СТАРТ и СТОП в других системах кодирования.
Безусловно все эти сведения Вы и сами могли хорошо изучить в ГОСТе.

Замечание 5.

Относительно процедуры декодирования:

Система построена таким образом, что в каждых двух соседних знаках штрих–кода последний штрих предыдущего соседствует с первым пробелом последующего (или же, в зависимости от конкретного набора, последний пробел предыдущего с первым штрихом последующего). Иначе говоря, для трех соседних штрихов в знаках наборов А и В расстояние между окончанием первого из них и окончанием третьего равно 7 модулей (см. предыдущее замечание). Аналогичная дистанция содержится и между началом первого штриха и началом третьего штриха в знаках набора С. Как видите, совершенно надежный способ автоюстирования измерительного прибора в процессе измерения. И вовсе нет необходимости извращаться, чтобы сканер, как Вы пишете, делал "поправку на изменяющуюся скорость движения руки измерителя", опираясь на "истинную" толщину модуля в знаках–ограничителях. (В скобках замечу также, что Вы, вероятно, просто никогда не видели, как работают ридеры штрих–кодов: НИКТО РУКОЙ ПО ПОСЛЕДНИМ СЧИТЫВАЮЩИЙ ПРИБОР НЕ ВОЛОЧИТ – не путайте с домашним или офисным сканером, а приглянувшийся Вам случай определения штрих–кода на неровной поверхности, скажем, сыра является скорее не правилом, а артефактом, связанным с российским представлением о торговом сервисе).

Замечание 6

После того, как сканер измеряет 7–модульную ширину знака, несложным становится сделать его привязку к ширине одного модуля в пределах данного знака. С этого момента пробел, который находится на границе между двумя знаками становится ненужным, и декодирование, как это и описано в таблице 4.10 ГОСТа уверенно производится по оставшимся трем составляющим: штрих–пробел–штрих.

Из сказанного вытекают две вещи:

Во–первых, один из пробелов в знаках – первый или последний в зависимости от набора А, В или С – никакого значения для "узнавания" знака не имеет;

а во–вторых, добавлять или отнимать пробелы, как это проделывали Вы в своих экспериментах, нельзя, ибо тем самым Вы сбивали юстировку прибора и нарушали саму возможность "узнавания".

Замечание 7

Из предыдущего замечания следует, что независимо от того, какой смысл вкладываете Вы, прибор или кто–либо еще в изображение состоящее из 1–модульной черты – 1–модульного пробела – 1–модульной черты, Вам, если попытаетесь прочесть эту графическую комбинацию в системе кодирования EAN–13, придется узнать в них цифру "6". Ибо только ей это изображение, в данной системе и соответствует. Что же касается таблицы ГОСТа 4.1, где приведены параметры "кодирования" цифр в наборах А, В и С, то она, как это и делается часто в технических руководствах, без каких–либо специальных пояснений содержит, как сам код, так и правило его применения: указание где и как дополнять нулями или пробелами значение кодируемой цифры до соответствующего ей в каждом наборе стандартного 7–модульного знака. В противном случае, сравнивая табл. 4.1 и 4.10, придется признать вырожденность используемой системы кодирования EAN–13, что недопустимо (да и неверно).

Замечание 8.

О смысле знаков–ограничителей. Как уже писалось, они (по крайней мере боковые знаки–ограничители) соответствуют сигналам начала и конца сканирования. Заканчиваясь на штрих, левый знак–ограничитель дает начало отсчета для обозначающего первую цифру знака набора А. А начинаясь со штриха, правый знак–ограничитель показывает конец отсчета для обозначающего последнюю цифру знака набора С. Центральный знак–ограничитель, начинаясь с пробела и заканчиваясь пробелом, служит своеобразным переключателем для порядка расположения штрихов и пробелов вдоль штрих–кода (чтобы обеспечить переход от набора А –>...–> к набору С). Единственным объяснением для этой операции, равно как и для наличия набора С, зеркального набору А, может служить только тот факт, что разработчику данной системы штрихового кодирования очень важно было, что первый знак–ограничитель непременно заканчивался на штрих, а последний – с оного начинался.

Замечание 9.

Взглянув, как работает – и уверенно работает! – механизм системы кодирования EAN–13, остановимся на нескольких его, волюнтаристки введенных Дж. Лорером странностях.

Во–первых, центральный знак–ограничитель понадобился разработчику данной системы только для того, чтобы сделать возможным использование двух ОДИНАКОВЫХ боковых знаков–ограничителей, да еще таких, когда левый из них непременно заканчивается на черту, а правый с нее начинается. Естественно, что при структуре не служебного, а информативного знака – 2 штриха/2пробела – такая технологическая прихоть создателя системы потребовала еще ничем другим не оправдываемых усложнений: введения центрального знака–переключателя (центрального знака–ограничителя) и создания набора С, инверсного набору А. Ни один другой штрих–код подобным изгибом технической мысли не отягощен. Да и в пределах EAN–13, где существует 5 типов служебных знаков, вполне возможно было бы использовать справа и слева РАЗНЫЕ знаки–ограничители и искусственно не усложнять систему. Лорер тем не менее на это усложнение пошел, да еще таким образом, чтобы и знак–переключатель визуально не отличался от знаков включения и выключения сканирования.

Во–вторых, для обозначения трех разделителей было выбрано такое, которое и "на глазок", и согласно применяемому коду EAN–13 соответствовало бы цифре "6". Я полностью согласен с Вами, что для процессора, обрабатывающего результаты сканирования сугубо функционально, т.е. в пределах решаемой задачи, нет никакой необходимости транслировать в цифры знаки–ограничители. Но ни я, ни те, кто выступает в качестве наших экспертов, НИКОГДА И НЕ ГОВОРИЛИ НИЧЕГО ПОДОБНОГО. Вполне, вероятно, что Вы услышали таковую интерпретацию либо в силу косноязычия наших авторов – увы, язык – враг того, кто пытается им воспользоваться для объяснений, – либо потому, что очень хотели это услышать. Однако ПРОЧТЕНИЕ линий–разделителей по правилам данной системы кодирования обнаруживает их идентичность шестерке – 1–модульный штрих – 1–модульный пробел – 1–модульный штрих.

Теперь соедините обе странности вместе: искусственное – по произволу разработчика, – ничем не оправданное использование трех линий–разделителей вместо двух и обозначение этих разделителей, как цифры "6" в данной системе кодирования. Добавьте еще также и тот факт, что линии–разделители искусственно выделены из штрих–кода (только не говорите, что это необходимо для ридера!) и акцентированы таким образом, чтобы не ускользнуть от внимания ЧЕЛОВЕКА.

Нет, не для процессора сделан этот штрих–код, а для нас с Вами, чтобы, взяв любой товар в руки, или взглянув на помеченное им животное или человека, мы без труда обнаружили как бы ПОВЕРХ (точнее, понизу) штрихов число "6.......6......6". И чтобы сообразить, что написано, вовсе не требуется, как пишете Вы, "приложить усилия по изучению символики штрих–кода" – цифра шесть достаточно распространена и легко обнаруживаема по подписи под соответствующим штриховым значком. Только идиот не проведет соответствующей параллели.

Замечание 10.

К сожалению, все Ваши рассуждения о том, что три шестерки не тождественны трем шестеркам в EAN–13 и что написаны эти знаки "для компьютера" я считаю демагогическими по причине, высказанной в предыдущем замечании. Компьютер – железка, что ему до мистического числа? А вот для человека эта надпись значима, для человека искусственно вставлена и для человека же и выделена. ЛИЧНО ВЫ И ПРОЧИЕ ШТРИХОФИЛЫ МОЖЕТЕ УТЕШАТЬ СЕБЯ ТЕМ, ЧТО "отношение к штрих–кодам уже целиком зависит не от символики самих кодов, а от готовности относящегося акцентировать внимание на этом «графическом сходстве» или же игнорировать его или даже просто –со знанием дела –отрицать".

Если так велика Ваша потребность в том – пользуйтесь, пожалуйста, означенным выше плодом технического прогресса. Ни я, ни другие никого от этого не отговариваем. Если кто–то способен утешить себя сентенцией, что штрих–пробел–штрих в линиях–разделителях "только похож, но не тождественен" штриху–пробел–штриху, обозначающему цифру "6" – это его личное дело и личный же выбор. Ни к нему, ни к Вам мы с этим НЕ ПРИСТАНЕМ: поступайте, как Вам заблагорассудится.

Однако все ж, хотя бы ради любопытства, взгляните, как много искусственно созданных условий сошлось в EAN–13:

  • хотя сей штрих–код не самый продвинутый и современный, зато принудительно сделан самым распространенным;
  • хотя мог бы использовать две линии–разделителя, однако специально усложнен, чтобы использовать три;
  • хотя в качестве разделительных линий без каких–либо проблем могли бы использоваться любые комбинации штрихов и пробелов, однако используется именно тот, что по правилу декодирования соответствует цифре шесть;
  • хотя нет никакой нужды визуально выделять разделительные линии, они удлинены и обнаруживаемы человеческим глазом;
  • хотя расчет контрольной цифры мог бы вестись как угодно, он также осуществляется по правилу трех шестерок;
  • хотя подавляющее число моделей существующих сканеров способно считывать множество штрих–кодов и перенастройка технически проста, введенные в государстве правила требуют, чтобы товары маркировались преимущественно EAN–13.

Замечание 11

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

Вы пишете,"Министерство по налогам и сборам категорически отрицает наличие шестерок"... Да оно отрицает и связь своего 12–значного персонального идентификатора с 12–значным же кодом EAN–13. Точно также это делают и другие разработчики личных кодов в нашей стране. Делают просто потому, что пока не существует закона нумеровать людей и записывать их номера в виде лукавого штрих–кода. Но вот совсем недавно наш президент (а он, конечно же, никогда не врет) пообещал, что "уже очень скоро наши россияне будут ездить в Европу без виз". А такое возможно, только если Россия присоединится к Шенгену, где узаконены и личные коды и их изображение в EAN–13. А в Кананаскисе, в прошлом году, на саммите G–8 прямо говорилось (и Россия к этому присоединилась), что человека по всему миру будут сопровождать данные, записанные в стандартах UN/EDIFACT. Угадайте, кто является полномочным представителем этой организации? — Офисы EAN.

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

--

С уважением,

Константин Гордеев


Статьи о штрихкоде

Обратный звонок