Pull to refresh

Comments 67

Уж не знаю, что там за API был, но хорошим тоном было бы перекодировать сообщения у себя и отдавать нормальный текст. А так весьма забавны бывают отголоски далекого прошлого.

Очевидно, что в общеизвестной кодировке, а не собственной придуманной (ибо фактически такую замену можно рассматривать, как еще одну кодировку...), которая, скорее всего, не была даже никак обозначена.

Очевидно, что в общеизвестной кодировке, а не собственной придуманной (ибо фактически такую замену можно рассматривать, как еще одну кодировку...), которая, скорее всего, не была даже никак обозначена.

Ну ДКОИ — это вполне себе стандартная, хотя и устаревшая и узкоспециализированная кодировка. Если верить вики, то «стандартизирована Госстандартом СССР в ГОСТ 19768-74 (СТ СЭВ 358-76)[2], заменённом в 1995 на году на ГОСТ 19768-93 (СТ СЭВ 358-88)».
ИМХО, понятно, что для условного Васи, который обычно клепает магазины — это дичь и археология, но ему вряд ли часто придётся напрямую работать с API РЖД. А тем, кто варится во всём в этом — для тех она хорошо знакома.
Надо ли переходить на новую, «современную» кодировку — а вот это вопрос уже другой. Так как в процессе можно наломать очень много дров, не говоря уж о трате моря денег.
Практика показывает, что если оставаться в Легаси, да ещё времён СССР (что это, в контексте ИТ?), то это как раз про дрова и потери денег.
Практика показывает, что если оставаться в Легаси, да ещё времён СССР (что это, в контексте ИТ?), то это как раз про дрова и потери денег

Я не скажу за Россию, но по моим наблюдениям в Европе, куча компаний спокойно живёт с кодом разработанным ещё на коболе для мейнфреймов (как раз дальние потомки тех самых IBM OS/360). А деньги там считать умеют.

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

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

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

В веб-версии pdf билет уже год как формируется с нормальной кодировкой.
Конвертации сделать не так-то просто. Точнее из нормальной кодировки в такую урезанную просто перекодировать, а обратно нет, так как информация потеряна.
MHE 0бычн0 т@ким текстOм (РЖД-style) спамеры рекламу шлют =)
На чпда порой без «кодировки»(смешивая в слове буквы разных языков) не оставишь комментарий, стоп фильтр не пропустит(пишет что коммент отправляется на премодерацию, но у меня ни один её так и не прошёл).
К примеру попробуйте напишите там: «администрация» или «самоубийство».
Интересная история. Пара замечаний:
* межведомственные войны, проталкивание собственных стандартов — это «стандартная» практика любой конкуренции, что в СССР (где конкурировали административно), что при капитализме — достаточно почитать, сколько несовместимых форматов было в 60-80-ые годы. Уже потом, когда определяются лидеры — их результаты становятся стандартами не только de facto, но и de jure. Иначе слишком рано принятый стандарт или не будет никем использоваться, или создаст кучу проблем в своей реализации
* IBM с OS/360 среди всего прочего пришла в СССР в семидесятые, так что вероятно решение об использовании форматов совместимых с ним было принято как раз в расчёте на это. Но Афган и последующие за ним новые санкции поломали планы.
Но ведь советская плановая экономика как раз и задумывалась, чтобы упорядочить все эти усилия в едином русле, и не тратить силы зря на тупиковые ветви.

Было бы понятно, если бы проводились перспективные исследования в нескольких направлениях в разумных пределах, а затем выбиралось лучшее. А на деле выходило, что многотысячные коллективы пожирают неимоверные ресурсы, делая в общем-то параллельную, но несовместимую в итоге работу, а затем выбирается стандартом даже не лучший технически, а смотря кто кому сват-брат, а остальное идет а свалку.

В итоге ресурсов на такую конкуренцию тратилось гораздо больше, чем при капитализме.

В мемуарах той эпохи запомнился случай, как крупный институт получил финансирование: директор через знакомого журналиста вышел на редактора речей Брежнева, и тот вставил в программную речь съезда пассаж «Развивать и расширять такое-то научное направление...»
Но ведь советская плановая экономика как раз и задумывалась, чтобы упорядочить все эти усилия в едином русле, и не тратить силы зря на тупиковые ветви.

Ну гладко было на бумаге…

Было бы понятно, если бы проводились перспективные исследования в нескольких направлениях в разумных пределах, а затем выбиралось лучшее. А на деле выходило, что многотысячные коллективы пожирают неимоверные ресурсы, делая в общем-то параллельную, но несовместимую в итоге работу

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

а затем выбирается стандартом даже не лучший технически, а смотря кто кому сват-брат, а остальное идет а свалку

А это и при капитализме происходит регулярно. Кому-то удалось встретится с топ-менеджером и пропихнуть свою идею первым, кого-то поддержали чтобы не давать преимуществ конкурентам итп. Вспомните, сколько было несовместимых стандартов звуко-/видео-записи начиная с пластинок и заканчивая дисками для HD видео или конкурирующих форматов файлов.
Хотя капитализм в конечном итоге обеспечивал тестирование на более широкой выборке потребителей, что лучше сказывалось на итоговом варианте.
Но ведь советская плановая экономика как раз и задумывалась, чтобы упорядочить все эти усилия в едином русле, и не тратить силы зря на тупиковые ветви.

Проблема в том, что изначально не понятно, какие ветви тупиковые, а какие нет.
А поскольку решения зачастую принимались на уровне партийного руководства, то с водой выплескивали и ребенка.

Застал советский ДОС и там была кодировка koi8. В те времена было объяснение, что при передаче по 7 битной линии она превращалась с латиницу, схожую по написанию и текст расставался читаемым

Билетные принтеры вообще используют КОИ-7, до сих пор. Как минимум в спецификациях к ним так написано.

принтеры… в Экспесс-3 и <?XML encoding=«KOI-7»?> бывает.

Стойте, как это?
Атрибут encoding, набранный строчными, в КОИ-7 превратится в ЕНКОДИНГ по идее, нет?

вот подробностей я уже за давностью лет не помню — человек лет 10 назад писал гейт к экспрессу, и выдавал подробности из официального талмуда.

Это может быть какая-то кривая наколенная имплементация XML, типа мы processing instructions выдаём как ASCII, а всё остальное у нас в той кодировке, которая указана в этих PI. Я такое видел, но в прошлом веке ещё. Помню точно, что у какого-то сервиса ФНС был такой «типа XML» в котором атрибуты без кавычек и ни одним стандартным парсером он не разбирался.

да, что-то такое и было вроде, по памяти. чуть ли не чувствительное к порядку вдобавок.
$ echo 'INVALID DEVICE' | iconv -f KOI-7
инжалид дежице

Как-то так

КОИ-7 Это как раз КОИ-8 с отрезанным битом, насколько мне известно.

Нет, если от КОИ-8 отрезать старший бит останется 7 бит ASCII, полноценная латиница. В КОИ-7 Н2 в младших семи битах содержится и кириллица, с ASCII оно совместимо очень частично.

Там два варианта было. Первый — это русские заглавные буквы на месте латинских строчных. А второй — это с символами переключения алфавита, как в телетайпе. Если прилетал символ <РУС>, дальше терминал писал русскими буквами, стоящими на месте латинских (большие на месте маленьких и наоборот, почему-то, и алфавит — ЮАБЦД...), пока не прилетал символ <ЛАТ>. А если последний пропускался — получалось иНЖАЛИД ДЕЖИЦЕ.
А в какой кодировке приходят русские буквы из API РЖД? Windows-1251, UTF8?
...«прошивка», преобразующая коды в буквы, была механическая. Обновить такую механическую «прошивку» для изменения кодировки не было никакой возможности, для этого надо было физически заменять устройство.
«Прошивка» представляет из себя 8 (5+3) металлических зубчатых линеек в нижней части аппарата, заказ и замена которых не представляла бы серьезной проблемы. Но причина, очевидно, не в этом.
заказ и замена которых не представляла бы серьезной проблемы

Заказать — Окей, можно. Но как заменить это на всех станциях одновременно в один день и в один час? Для этого нужны технические специалисты на всех странциях, чтобы разом все обновить, либо простой в несколько дней, пока специалисты объедут все станции и поменяют оборудование, так как новое оборудование несовместимо со старым. А если снова окажется, что нужны ещё более современные машинки? А если где-то стоят серверы-ретрансляторы (или скажем телеграфные центры)? В них тоже все надо разом поменять.
Как минимум, это всё — проблемы. Да, заказ новых 10 000 машинок — самая лёгкая часть!

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

скорее чисто экономическая… как переработка ПО под новую кодировку, так и разработка и закупка новых устройств — это деньги, даже если одно устройство обойдется в несколько десятков или сотен рублей, то десятки тысяч устройств — это миллионы в итоге только на железо. А зачем тратить, если всё уже стабильно работает? Чтобы порадовать любителей кодировок?
Заказать — Окей, можно. Но как заменить это на всех станциях одновременно в один день и в один час?
Зачем? Для старых станций оставить прежний сервер, на него просто дублировать данные с нового, пока не закончатся станции с протухшими железками. Другое дело, что стоит ли такая мелкая проблема всей возни в принципе?

Мне после просмотра у CuriousMarc серии видео о восстановлении телетайпа модели 19 (https://www.youtube.com/playlist?list=PL-_93BVApb5-9eQLTCk9xx16RAGEYHH1q) показалось, что это адский геморрой – там механически довольно сложный узел, который в весьма бойком ритме должен без заеданий работать. То-есть заменить-то может и можно, но вот сделать это в режиме «вынул-вставил» точно не получится.


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

Очень, очень тяжело выразить сколько боли причиняет эта статья. Через годы, через десятелетия слово КОИ отдаёт жуткой болью в затылке. Слава Богу это всё в прошлом.
Люди принимавшие эти решения в Минтрансе всё ещё живы, кстати.
Люди принимавшие эти решения в Минтрансе всё ещё живы, кстати.
Довольно угрожающе звучит.

Эммм… Так на неё ссылка же втором абзаце )

Как, тут еще нет комментария про лошадиную задницу?
Простите, но это «напомнило мне тот анекдот про виски, самолёт и лампочку».
Впрочем, спасибо за подсказку, гуглинг дал занимательный исторический факт :)
И про
иНЖАЛИД ДЕЖИЦЕ
Впрочем, это была КОИ-7, не 8.
Типичное для отрасли легаси, бережно пронесённое через десятилетия и неизвестно сколько ещё просуществующее в будущем.
немного подобного.
в новом украинском загране все поля продублированы на англ, кроме места рождения.
Я родился в городе Херсон, которое в паспорте тоже написано капсом (м — місто — город) «М.ХЕРСОН/UKR». Доблестные немецкий сотрудники проигнорировали мои слова, что город должен был Cherson и вбили всё как в паспорте. Вот так у меня и появилась в правах строчка M. Xepcoh. пруф и пример паспорта под катом
фотки
права
А вот пример бедняги, которого тоже ожидает эта судьба (пример взят гуглфото)
пример заграна
Достаточно поменять пару раз в стране правила транслитерации, потом переехать в страну, где в алфавите нет некоторых звуков и вы имеете кучу документов с разными именами и фамилиями!
Не надо никуда переезжать. В Украине меняли правила тринслитерации. Буква 'Г' раньше транслитеровалась как 'G', а сейчас как 'H'.
Так что у меня в 2 разных загранах разные фамилии.
Еще и с окончаниями "-ский" есть проблемы с транслитерацией

В российской Карелии есть места, где на дорожных знаках старые финские названия населённых пунктов написаны один раз в русской транскрипции (ну это понятно), а второй раз из русской транскрипции финских слов транскрибированы обратно в латиницу по правилам английского языка (и вот это действительно чудовищно). Финский язык и исходно отнюдь не отличается компактностью орфографии, а после русско-английского перевода это что-то с чем-то.

Я недавно ради фана решил отправить телеграмму с поздравлением своей жене ( у почты России есть онлайн шлюз, так что это было несложно ), и вот они букву Ч меняют на 4. Тоже где то Легаси код в середине сидит.

Да, в МТК-2 визуально идентичные буквы русского и латинского сделаны разными кодами (видимо, чтоб увеличить скорость передачи, т.к. переключение регистра требовало передачи дополнительного символа). А вот на Ч там места в таблице не хватило, поэтому вместо нее используется 4.

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

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

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

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

Всегда с4итал что это молодежь под х@керов косила, оказывается нет? Происки по4ты?

Статья почти из разряда «ничего не понял, но очень интересно.» Потому, что мне так и осталось не понятно, как в классике — «кто на ком стоял?» :) В смысле, что я так и не уловил, где, куда, когда, откуда, какая кодировка пришла-ушла? :) Понял только, что во всём преемственность старой техники и кода виновата.

Если коротко, там пересечение стандартов. Некоторые просто мёртвые, некоторые устаревшие, а что вышло – живее всех живых.

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

Вообще в техпроцессах заводов с давней историей глубокой автоматизации наверное можно найти много чего интересного. Например — АвтоВАЗ, там своего легаси должно быть немало. Если что, там ещё в 1982 г. была применена логическая бомба, остановившая главный конвейер :).

Мы на одном заводе заменяли физическую ЕС ЭВМ её эмулятором в 2004 году. Софт остался тем же. Там вся технология производства сидит в мейнфреймовских программах с давно утерянными исходниками, десятки тысяч технологических процессов. А этот завод всякие металлоконструкции производит, которые со временем не особо меняются.

Спасибо, спустя 4 года вы открыли мне эту тайну. Цитата на баше — это из приватного чата, где я рассказывал друзьям по универу, как мы пошли с коллегами по Яндекс.Расписаниям в бар после обнаружения таких фокусов в АПИ РЖД.

Можно ещё добавить, что, когда расширяли EBCDIC и превращали его в ДКОИ, не добавили в него все русские буквы, а только те, которые отличались по начертанию от латиницы, скорей всего, для экономии места на барабанах принтеров (число рядов на барабане соответствует числу печатаемых литер, соответственно, меньше символов -- меньше барабан, а значит, при прочих равных, принтер дешевле, а печать -- быстрей, ведь для печати одной строки нужен полный поворот барабана). О том, что будут возникать проблемы, в частности, с сортировкой, особо не думали: в СССР латиница особо не требовалась. Да и за бугром тоже не особо в те времена думали, а иногда и сейчас не думают (из-за чего даже в относительно современном ПО могут быть проблемы с символами, отличными от английского алфавита -- включая западноевропейскую латиницу со всякими там ударениями и умляутами). В общем, было бы ошибкой думать (с)

Sign up to leave a comment.

Articles