Нам, программистам, иногда приходится работать с кодированием текста. Но есть ещё один вид кодирования, который мы выполняем постоянно и так быстро, что не замечаем этого и забываем о нем. Я говорю о визуальном кодировании — распознавании символов алфавита, которое вы делаете прямо сейчас при чтении этого текста. Для машин с оптическим распознаванием символы алфавита ничем не отличается от любого другого потока входящих данных, кроме того, что машины в данном случае — это мы.
Но насколько эффективен алфавит как способ кодирования данных? Рассмотрим несколько разных технологий визуального представления данных, которые можно увидеть на бумаге или на мониторе:
Перфокарта IBM 5081: до 80 букв и цифр
![codinghorror-5081-punch-card.png](https://habrastorage.org/r/w1560/getpro/habr/post_images/f05/497/f5a/f05497f5a73642334dfb621e5ab4f10b.png)
Maxicode: до 93-х букв и цифр
![codinghorror-maxicode.png](https://habrastorage.org/r/w1560/getpro/habr/post_images/0f3/468/e11/0f3468e118860118dded0c8dec272a1f.png)
Data Matrix: до 2,335 букв и цифр
![codinghorror-datamatrix.png](https://habrastorage.org/r/w1560/getpro/habr/post_images/b3f/7c9/ced/b3f7c9ced2caba33ba91c03c83364382.png)
QR Code: до 4,296 букв и цифр
![codinghorror-qr-code.png](https://habrastorage.org/r/w1560/getpro/habr/post_images/996/f79/bad/996f79badec1711f725a96c3c134ff75.png)
Aztec Code: до 3,067 букв и цифр
![codinghorror-aztec-code.png](http://www.codinghorror.com/blog/images/codinghorror-aztec-code.png)
High Capacity Color Barcode: различается по количеству цветов и плотности записи; до 3,500 символов на квадратный дюйм
![codinghorror-microsoft-tag.png](http://www.codinghorror.com/blog/codinghorror-microsoft-tag.png)
Страница печатного текста: примерно 10,000 символов на страницу
![alice-printed-page.png](https://habrastorage.org/r/w1560/getpro/habr/post_images/2c9/ade/d0a/2c9aded0af8009b3d3a246ec07cb89da.png)
Бумага при обычном её использовании совершенно неэффективна. Огромное пространство пропадает зря. И вот тут-то появляются такие программы, как PaperBack:
Как и множество других технологий визуального кодирования, перечисленных выше, PaperBack обеспечивает:
![paperback-options.png](https://habrastorage.org/r/w1560/getpro/habr/post_images/822/b45/a2d/822b45a2ddd8dc3864bb9bcfeb373ed0.png)
Вся эта технология может показаться довольно странной. Ведь единственное, что мы, бедные несчастные человеческие распознающие машины, можем более или менее свободно распознавать — это как раз алфавит. А когда мы берем лист бумаги и начинаем писать по нему цифровым «алфавитом», то прочитать это становится уже гораздо сложнее, чем обычный ASCII текст.
Но есть как минимум один разумный способ использования все этого. Заверенный бумажный ключ. И для этого даже есть специальная программа, PaperKey:
Компьютерные форматы данных и способы их хранения приходят и уходят. Вот почему так много архивных материалов выживает только в самых простых формах существования, таких как простой ASCII текст. Так что, в зависимости от ваших целей, комбинация из простого цифрового кодирования и старой доброй, надежной и очень очень проверенной временем обычной бумаги может все ещё иметь смысл.
Но насколько эффективен алфавит как способ кодирования данных? Рассмотрим несколько разных технологий визуального представления данных, которые можно увидеть на бумаге или на мониторе:
Перфокарта IBM 5081: до 80 букв и цифр
![codinghorror-5081-punch-card.png](https://habrastorage.org/getpro/habr/post_images/f05/497/f5a/f05497f5a73642334dfb621e5ab4f10b.png)
Maxicode: до 93-х букв и цифр
![codinghorror-maxicode.png](https://habrastorage.org/getpro/habr/post_images/0f3/468/e11/0f3468e118860118dded0c8dec272a1f.png)
Data Matrix: до 2,335 букв и цифр
![codinghorror-datamatrix.png](https://habrastorage.org/getpro/habr/post_images/b3f/7c9/ced/b3f7c9ced2caba33ba91c03c83364382.png)
QR Code: до 4,296 букв и цифр
![codinghorror-qr-code.png](https://habrastorage.org/getpro/habr/post_images/996/f79/bad/996f79badec1711f725a96c3c134ff75.png)
Aztec Code: до 3,067 букв и цифр
![codinghorror-aztec-code.png](http://www.codinghorror.com/blog/images/codinghorror-aztec-code.png)
High Capacity Color Barcode: различается по количеству цветов и плотности записи; до 3,500 символов на квадратный дюйм
![codinghorror-microsoft-tag.png](http://www.codinghorror.com/blog/codinghorror-microsoft-tag.png)
Страница печатного текста: примерно 10,000 символов на страницу
![alice-printed-page.png](https://habrastorage.org/getpro/habr/post_images/2c9/ade/d0a/2c9aded0af8009b3d3a246ec07cb89da.png)
Бумага при обычном её использовании совершенно неэффективна. Огромное пространство пропадает зря. И вот тут-то появляются такие программы, как PaperBack:
PaperBack — это бесплатная программа, которая позволяет вам сохранять ценные файлы на обычной бумаге в виде большого битмапа. Если у вас есть хороший лазерный принтер с разрешением 600 dpi, то вы сможете записать до 500,000 байт несжатых данных на один бумажный лист.
Вы можете спросить: «А зачем?» Зачем нужно делать бэкапы на бумаге, когда есть так много других возможностей для этого? CD-R, DVD+R, карты памяти, flash карты, жесткие диски, кассеты для стримеров, диски для ZIP Drive, файл-серверы в сети, магнитооптические диски и даже 8-ми дюймовые двухсторонние дискеты, отформатированные для DEC PDP-11? Ответ очень прост: это ни зачем не нужно. Но с другой стороны, просто посмотрев на CD-диск или на магнитную пленку, вы не сможете сказать, считаются ли с них данные. Вам нужно будет вставить их в подходящее устройство, если такое у вас вообще есть, и попытаться их прочитать.
А вот с бумагой все иначе. Помните перфокарты? Годами они использовались как основной носитель для хранения исходного кода. Да, перфокарты при работе с программами длинною в 100 тысяч строк кода были, прямо скажем, не слишком удобны. Но, черт возьми, ведь только настоящие программисты отваживались писать такие огромные программы в те годы! А использованные перфокарты можно было использовать в качестве бумаги для записок. Широкое распространение получила также и перфолента. При этом даже самые странные кодировки символов на перфокартах, такие как CDC или EBCDIC, мог вполне прочитать человек (я имею в виду настоящих программистов).
Конечно, битмапы, которые генерирует PaperBack, также доступны для чтения человеком (с помощью любого приличного микроскопа). Шучу. Вам всё-таки понадобится сканнер.
Как и множество других технологий визуального кодирования, перечисленных выше, PaperBack обеспечивает:
- Сжатие — для увеличения объема записываемых данных;
- Избыточность — на случай, когда часть изображения повреждения или не читается по какой-то другой причине;
- Кодирование — для того, чтобы защитить изображение от несанкционированного прочтения.
![paperback-options.png](https://habrastorage.org/getpro/habr/post_images/822/b45/a2d/822b45a2ddd8dc3864bb9bcfeb373ed0.png)
Вся эта технология может показаться довольно странной. Ведь единственное, что мы, бедные несчастные человеческие распознающие машины, можем более или менее свободно распознавать — это как раз алфавит. А когда мы берем лист бумаги и начинаем писать по нему цифровым «алфавитом», то прочитать это становится уже гораздо сложнее, чем обычный ASCII текст.
Но есть как минимум один разумный способ использования все этого. Заверенный бумажный ключ. И для этого даже есть специальная программа, PaperKey:
У бумаги нет цели безопасно хранить данные. Для этого есть бесконечное множество других способов. И бэкап данных на бумагу также не может быть заменой обычному резервному копированию (на CD-R, DVD-R, пленку и т.д.). Но зато он может использоваться для хранения секретных ключей на случай если-все-другие-способы-не-сработали. Большая часть современных носителей не гарантирует хранение данные действительно долго (годы и десятилетия). Когда CD-R диск и/или кассета для стримера и/или USB ключ и/или жесткий диск с секретным ключом окажутся нечитаемыми, бумага может быть использована для восстановления секретного ключа.
Для бумаги сохранность в течение 100 лет не является чем-то особенным. Качественная бумага и хорошие чернила могут храниться сотни лет даже в не самых лучших условиях.
Ещё одно достоинство бумаги — её сможет прочитать человек. Не все способы резервного копирования смогут быть прочитаны через 50 лет, так что даже если у вас будет резервная копия, покупка устройства для её чтения может оказаться непростой задачей. Сомневаюсь, что такое в ближайшее время произойдет с CD-R, уж слишком много их выпустили, но в индустрии резервного копирования полно технологий, которые сейчас уже мертвы.
Компьютерные форматы данных и способы их хранения приходят и уходят. Вот почему так много архивных материалов выживает только в самых простых формах существования, таких как простой ASCII текст. Так что, в зависимости от ваших целей, комбинация из простого цифрового кодирования и старой доброй, надежной и очень очень проверенной временем обычной бумаги может все ещё иметь смысл.