Это сайт — моя персональная записная книжка. Интересна мне, по большей части, история, своя жизнь и немного программирование.

В какой кодировке?

Попался мне недавно на глаза вот этот разворот из детской книжки «Энциклопедия профессора Фортрана» 1991-го года. На ней, как мы видим, высоколобый Новосельцев с указкой говорит, что справа закодирована фраза «ПРОЧИТАЙ ГЛАВУ "ЯЗЫКИ ПРОГРАММИРОВАНИЯ"».

Сразу бросается в глаза, что бинарные строки справа не восьмибитные, как мы все привыкли, а на бит короче. Ещё, при внимательном рассмотрении, в закодированных числах узнаются пробелы, у них код 32 или 0100000. Только первый почему-то на одиннадцатой позиции, а не на девятой, как в фразе на русском.

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

Воспользовавшись программой для распознавания, я перевёл текст на картинке в буквы и цифры, вырезал оттуда закодированное и попробовал перегнать этот кусок в буквы. Получилась следующая строка: pro~itajte glawu "qzyki programmirowaniq".

Какой-то странный транслит, но что написано догадаться можно. Заодно стало понятно почему позиции пробела не совпадают — на самом деле закодировано не «прочитай», а «прочитайте».

Теперь осталось понять что это за кодировка. Не уверен, что я когда-либо в жизни сталкивался с КОИ-7, но название такое слышал. Предположил, что это она и не ошибся.

Латинские символы видно, потому что эта кодировка содержит в себе несколько наборов символов, которые надо переключать специальным кодом. Русские символы находятся в тех же позициях, что и латинские, а поскольку кодировка ЮТФ-8, который мы все пользуемся, совместима с латинским набором КОИ-7, мы видим не бинарный мусор, а какие-то буквы.

В конечном счёте, я написал небольшую программу на Перле, чтобы вывести строку на русском:

#!/usr/bin/perl
use Text::Iconv;

my @codes = qw(
    1110000 1110010 1101111
    1111110 1101001 1110100
    1100001 1101010 1110100
    1100101 0100000 1100111
    1101100 1100001 1110111
    1110101 0100000 0100010
    1110001 1111010 1111001
    1101011 1101001 0100000
    1110000 1110010 1101111
    1100111 1110010 1100001
    1101101 1101101 1101001
    1110010 1101111 1110111
    1100001 1101110 1101001
    1110001 0100010
);

$conv = Text::Iconv->new("KOI-7", "UTF-8");

# ПРОЧИТАЙТЕ ГЛАВУ "ЯЗЫКИ ПРОГРАММИРОВАНИЯ"
print $conv->convert(chr oct "0b$_") for @codes, "\n";

Перл, конечно, малопопулярный язык, но тут вполне читаемый даже для тех, кто его не знает. Его я выбрал из-за лени — у него есть конструкция qw( … ), которая позволяет создавать массивы из строк без кавычек и запятых, так что в него просто было удобно запихнуть закодированный текст, каким он получился после распознавания.

В конечном счёте раскодированный текст выглядит так: ПРОЧИТАЙТЕ ГЛАВУ "ЯЗЫКИ ПРОГРАММИРОВАНИЯ". Лобастый Новосельцев немного нас обманывает.

11 комментариев
sas 11 дн

Не, все еще хуже. Это ванильный КОИ-7 времен PDP. Нет там никаких переключающих кодов, и прописных букв нет. Вместо прописных латинских — заглавные кирилические и все.

Евгений Степанищев 11 дн

Я книжку не читал, поэтому не в курсе. Интересно, имеет ли смысл читать её современным детям?

sas 11 дн

А исче оттуда же прекрасная кодировка RADIX-50, совсем недавно видел этот атавизм в какой то современной проге...

Евгений Степанищев 11 дн

Какая дичь )

sas 10 дн

Я тоже не читал. Просто мой первый компьютер это pdp-11 :) Читать думаю не стоит не современным, ни детям тех времен. Кроме тупых головоломок с обложки типа «эвона как оно бывает у машин» думаю там ничего полезного нет.

А по поводу дичи, с ее отголосками вы сталкиваетесь до сих пор, например три символа в расширении файлов, или 9 в имени, последнее конечно уже основательно стерлось, но трехсимвольные расширения пока все равно превалируют. :) Памяти раньше мало было, ее экономили как могли, а вы «дичь» :)

Евгений Степанищев 10 дн

Памяти раньше мало было, ее экономили как могли, а вы «дичь» :)

Мне ли не знать ) Два моих первых компьютера — «Радио 86-РК» и клон «Спектрума» ) Я под них программировал )

Читать думаю не стоит не современным, ни детям тех времен.

Недавно на «Хабре» вышла хвалебная статья, я впечатлился.

Роман 10 дн

Книга прекрасна. В 90е была зачитана мною до дыр и скорее всего она и предопределила мою будущую профессию. Но сейчас она уже безнадежно устарела конечно и представляет только ностальгический интерес.

Евгений Степанищев 10 дн

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

Евгений Суреев 10 дн

У меня «Энциклопедия...» была в виде отдельной книги, без сказки. Сказку я и не читал никогда. А книга может и сейчас у родителей где лежит.

sas 10 дн

После «книга прекрасна» я таки пошел и пролистал ее. Вобщем все даже хуже чем я предполагал, Мурзилка из серии «обо всем по немногу, передача для дебилов». Птичка машет крыльями поэтому летает. а самолетик машет пропеллерами и тоже летает, а теперь дети давайте вырежем из бумаги и склеем самолетик, и птичку, и представим как они летают, а потом давайте разгадаем кроссворд: 1. У него есть крылья но не чирикает [][][][][].

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

Впрочем, почитайте сами https://www.docdroid.net/qu4g/professora-fortrana-pdf

Евгений Степанищев 10 дн

Надо как-нибудь выбрать время, посмотреть самому всё же, спасибо за ссылку!

Роман 9 дн

Очень странно конечно читать такие отзывы о книге написанной для младших школьников в эпоху, когда дети вживую компьютеры особо и не видели. Ну да, веселые картинки про кота, воробья и гусеницу, где они узнаю что такое дисковод и помогают составить алгоритм чистки картошки. Я думаю, количество теплых отзывов на хабре (да и, надеюсь, мой тоже не в самую последнюю очередь) о чем-то да говорит.

Мне кажется, товарищ sas очень молод и просто не может себе представить ту эпоху. Сейчас, когда ребенок рождается со смартфоном в руках, действительно не нужно на картинках объяснять что такое дисплей.

sas 9 дн

Так не только дети в живую не видели но и автор книги, причем с 90% вероятностью я назвал место время и общения его с компютерами, на что намекает и ванильный кои-8 и рисунок жесткого диска от майнфрейма, на фоне дисковода, который он видел либо по телеку либо на эскурсии по более современным компьютерным классам, зазор между первым и вторым как раз лет в 10. В начале 80х как раз во многих втузах с вц создавались факультеты повышения квалификации, куда на три месяца загоняли работников околотехнических отраслей, и самые ненужные преподаватели эти три месяца вдалбливали им методички, потом 7-10 часов машинного времени на рыло, диплом и свободен. Вот безсвязные отрывки из этих методичек я в этой книге и увидел. И никаких обяснений. даже у упомянутого вами дисплея, у которого и описание то не дисплея а терминала от тех самых майнфреймов. Вобщем как я и говорил «эвона оно как бывает» не актуальное на сегодняшний день и практически ноль практических знаний и понимания что такое компьютер. Я конечно не пейсатель про заек, но по моему скромному «прекрасная» книга должна была наверное с описания музыкальных шкатулок, програмных барабанов, перфолент, перфокарт, ткацких станков, счет, арифмометров, постепенно переходя к компютерам и алгоритмам. тогда ребенок бы прекасно понял и почему биты, и двоичный код, и что компьютер уж не такая волшебная и загадочная штука...

Ну а насчет того что вам кажется, то помоему как раз наоборот, фраза «мой первый компьютер pdp-11» прекрасно говорит о моем возрасте, впрочем и о вашем тоже )

Евгений Степанищев 9 дн

По поводу авторов есть цитата из интервью:

Как рассказывают авторы в обоих интервью, уже в конце 80-х они постоянно использовали в работе компьютеры. Сначала это были два микрокомпьютера. Во-первых, ввезённый хитрым образом в обход санкций норвежский NORD от Norsk Data. Во-вторых, ЭВМ MERA, модульный микрокомпьютер разработки польского Института систем управления в Катовице: они использовались в СССР и других странах СЭВ в научных, инженерных и военных целях. Затем появились ещё и персональные компьютеры, тоже польские, но уже клоны IBM PC под брендом Mazovia…

Роман 9 дн

Вобщем как я и говорил «эвона оно как бывает» не актуальное на сегодняшний день и практически ноль практических знаний и понимания что такое компьютер.

Конечно не актуальное. Иного никто и не предполагал. Ладно, очень странный разговор. Не могу и конечно не буду запрещать хейтить детскую книжку 30летней давности.

Ну а насчет того что вам кажется, то помоему как раз наоборот, фраза «мой первый компьютер pdp-11» прекрасно говорит о моем возрасте, впрочем и о вашем тоже )

Мой первый компьютер был на Intel 8088. Это ни о чем не говорит вообще.

sas 8 дн

«Во-первых, ввезённый хитрым образом в обход санкций норвежский NORD от Norsk Data. Во-вторых, ЭВМ MERA»

Все сходится, по временному промежутку, ну кроме легенд и баек. Nord, единственный, в 70х притащили в cccр вояки на предмет содрать, но отказались от этой мысли по причине непопулярности и проблемы с ПО, по сравнению с PDP с ее практически open sourсe, публичным, ПО, поддержкой, и толерантностью инженеров DEC к передиральщикам из СССР (на поздних кристаллах процессоров PDP было вытравлено на кириллице «мы рады что вы копируете самое лучшее в мире»). В 80х его уже подарили куда на гражданку в качестве «сувенира» и помоему еще раза два или три передаривали, так как запустить его и использовать никто не мог. Эдакое почетное переходящее красное знамя. Т.ч. насчет постоянного использования на работе уже гон, возможно автора вывозили на экскурсию «эвона оно как» к очередному месту хранения и показывали бивень мамонта, нормальная практика ...

Ну а MERA это уже поставленный на поток в СЭВ клон PDP-11, наши, болгары (ИЗОТ), немцы (РОБОТРОН) гнали их под унифицироваными названиями СМ, но поляки как обычно выпендрились и гнали под MERA. Причем, на серьезные предприятия ставили как правило более «скрепные» СМ, а поляки попадали во всякие НИИ и прочая. Вполне возможно, что автор «работал» в таком вузе тем самым «ненужным преподавателем» зачитывающим методички, что не меняет сути его знакомства и общения с компьютерами. Да, и NORD и PDP не являются микрокомпьютерами, просто так их «на работу» было не поставить...

Вот Мазовия, да, уже микрокомпьютер, опять же польский выпендреж с названием, на предмет серии ИСКРА СМ (клоны IBM PC), конец 80х, начало 90х. Распихивался уже по простым учебным заведениям и предприятиям.

Вобшем не вижу никаких расхождений с моей первой оценкой того что автор никогда с компьютерами не работал (в смысле постоянного использования) и источников где он нахватался «знаний». :)

Константин Голота 8 дн

На «Демодуляции» проводили сессию общения с авторами. Очень интересно: https://youtu.be/LfmjHZCovFg?si=wt1tYGho91GltMTM