НОВОЕ: OS/2 GURU - Вопросы и ответы

Reviews / articles about OS/2

Operating systems:
ArcaOS, eComStation, IBM OS/2 Warp
Мифы о eComStation 

Unsorted

 

 

Обновите ArcaOS до уровня NeoWPS

  • Установите набор PNG иконок, нарисованных дизайнером, специализирующемся на оформлении OS/2
  • Установите eSchemes 2018, чтобы менять цвета и кнопки на рабочем столе

Как я научил BersIRC работать с KOI8-R


TITLE: Как я научил BersIRC работать с KOI8-R

DATE: 2001-09-06 18:45:41

AUTHOR: Alex Slyotov

"Когда же продолжали спрашивать Его,
Он, восклонившись, сказал им:
кто из вас без греха,
первый брось на нее камень."
От Иоанна 8:7

Предисловие

Сразу хочу сказать, что тем "фанам" OS/2, которые готовы сделать харакири себе или своему ближнему при одном только слове Windows я бы не рекомендовал читать этот обзор ибо опасаюсь за здоровье... нет, не этих "фанов" (туда им и дорога), а исключительно их ближних. Данный обзор адресован тем, кто волею судеб вынужден работать в Windows.

Сам я знаком с OS/2 уже более 7 лет. За это время мне удалось накопить довольно солидный опыт практической работы как с самой операционной системой, так и со специализированным программным обеспечением, но так уж получилось, что мне сейчас по-работе приходится часто находится в Windows и чтобы не чувствовать своего отрыва от мира OS/2 я решил, что было бы здорово иногда заглядавать на #os2russian для общения со старинными знакомыми...

Итак, приступим!

Первая задача, которую пришлось решать заключалась в выборе удобного Win32 IRC-клиента из всего того сонмища клиентов, которое доступно в интернете. Мною были опробованы:

EasyIRC, IamC, ObjIRC, dIRC, vIRC97, Pirch98, TurboIRC, WinJab, XiRCON, OpenChat87, mIRC и BersIRC.

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

В принципе эти клиенты очень похожи друг на друга, причем BersIRC может даже импортировать настройки из уже установленного в системе mIRC'a. Так что я расскажу только о главных (в моем понимании) отличиях между ними:

  • Официально BersIRC является FREEWARE, т.е совершенно бесплатной программой, в то время как mIRC - SHAREWARE, т.е его автор хочет денег за свое творение;
  • последние версии mIRC'a умеют работать не только через SOCKS-прокси, но и через обычный HTTP-прокси сервер. BersIRC умеет работать только через SOCKS4 или SOCKS5 прокси;
  • BersIRC умеет подключаться одновременно к нескольким IRC-серверам, а чтобы тоже самое сделать в mIRC 'e - надо запустить столько его копий, к скольким IRC-серверам Вы хотите подключиться;
  • BersIRC обладает более широким диапазоном настроек пользовательского интерфейса, чем mIRC;
  • язык скриптов BersIRC представляет собой ObjectPascal, т.е. тем кто знаком с Delphi написание скриптов не составит практически никакой сложности. У mIRC'a со скриптами по другому. Там тоже есть язык скриптов, но я так и не проникся им. По моему он крайне неудобен и коряв, не говоря уж о том, что для начинающего писателя он представит очень большую сложность. Хотя еще раз повторю, что это только мое мнение и оно ни в коем случае не претендует на звание истины в последней инстанции.

Способы решения задачи трансляции KOI8-R <-> CP-1251

Так как основной особенностью этих двух клиентов является корректная работа только с CP-1251 кодовой страницей мы подошли к решению главной задачи: можно ли вообще научить эти клиенты работать с KOI8-R и если можно, то как?

Для тех, кто ходит в интернет напрямую безо всяких прокси, правильным решением будет использование утилиты PXY, которая по сути сама является прокси, декодирующим KOI8-R <-> CP-1251 на лету. Т.е Вам достаточно установить эту программу и указать своему Win32 IRC-клиенту, что он должен ходить через PXY-прокси. В архиве с PXY идет вполне достаточный README, рассказывающий как все настраивается.

Однако указанный выше способ, несмотря на его универсальность для любого Win32 IRC-клиента, к сожалению, не подходит тем, кто вынужден ходить в интернет через SOCKS или HTTP прокси так как PXY утилита не умеет работать через прокси сервера. Поэтому данной катагории пользователей решать проблему KOI8-R <-> CP-1251 трансляции придется уже на уровне IRC-клиентов. Для успешного решения данной проблемы IRC-клиент должен позволять пользователю контролировать входящие и исходящие потоки. Обычно это делается с помощью встроенного в IRC-клиент скрипт-языка.

Рассмотрение второго способа трансляции применительно к mIRC и BersIRC

mIRC

После непродолжительных поисков я нашел уже готовый скрипт решающий эту задачу. Скрипт называется RECODE. Вместе со скриптом идет описание по его настройке и использованию. Работает скрипт вполне корректно и на данный момент у него замечен только один ляп - он не умеет транслировать тему канала для отображения в заголовке окна клиента. Т.е если тема содержит символы старшей половины ASCII таблицы, то отображаться в заголовке окна она будет в виде "крякозябр". Хочу сказать, что я не разбирался в содержимом этого скрипта по причине крайне корявого и неудобного для моего понимания mIRC'овского скрипт-языка, поэтому не могу сказать, что там надо подправить для правильного отображения русских KOI8-R символов в заголовке окна. Оставляю эту творческую работу Вам. :)


BersIRC

Скрипт-язык этого IRC-клиента в плане удобства для программиста кардинально отличается от скрипт-языка mIRC'a. По сути скрипт-язык BersIRC'a представляет собой ObjectPascal, т.е тем, кто знаком с Delphi, написание скриптов для BersIRC'a не составит никакого труда. Даже тем, кто не знаком ни с Delphi, ни с Pascal'ем, все равно писать скрипты для BersIRC'a будет удобнее и понятнее, чем для mIRC'a. Сам я с Delphi никогда не работал, хотя с Borland Pascal for MS-DOS и Virtual Pascal for OS/2 поработал в свое время достаточно много. Ситуацию с написанием собственных скриптов облегчает еще и тот факт, что вместе с BersIRC'ом можно скачать с сайта разработчика (и со сторонних сайтов по ссылкам) примеры уже работающих скриптов и полное описание процедур и функций допустимых к применению в скриптах. У меня лично разбирательство во всей этой "кухне" заняло всего пол-дня и уже к вечеру был готов deep-alpha набор скриптов, который мне смог транслировать KOI8-R <-> СР-1251 и я, наконец-то, увидел #os2russian по-русски. :))

Дальнейшая работа происходила в более быстром темпе и за пару дней я сделал вполне работоспособный комплект скриптов. Установка моих скриптов заключается в записи их поверх уже имеющихся файлов в каталоге ...\BersIRC\Scripts. Настройка параметров несколько неудобна, так как не является интерактивной как в случае с RECODE скриптом для mIRC'a, но тем не менее позволяет настроить имена каналов для которых надо применять трансляцию KOI8-R <-> CP-1251, а также имена пользователей PRIVATE-разговоры с которыми тоже должны подвергаться трансляции. Все эти параметры настраиваются редактированием блока констант в модуле TRANS.OPS:

  AHI = 'NO';                              //Auto Hi-messages
  PUB = '#OS2RUSSIAN,#TEST,#BEOS';         //Channels list for 
                                           //activate translation
  PRV = 'SERGEY,OS2KRNL,E-CO,OS2OK,ELI_W'; //Nicks list for 
                                           //activate PRIV translation

Переменная AHI отвечает за включение или выключение вывода автоматических приветственных сообщений при обнаружении нового пользователя на канале. Допустимые значения: 'YES' или 'NO';

Переменная PUB содержит имена каналов на которых трансляция KOI8-R <-> CP-1251 должна быть активизирована. Для каналов не указанных в этом списке трансляция производится не будет;

Переменная PRV содержит имена пользователей приватные сообщения от которых должны быть подвержены трансляции KOI8-R <-> CP-1251. Для пользователей не указанных в этом списке трансляция осуществляться не будет.

При написании имен регистр символов не важен.

После того как Вы внесли изменения в константы необходимо перезагрузить скрипты в BersIRC. Для этого Вы должны в командной строке BersIRC'a дать команду:

  /load bersirc.ops
  

или сделать тоже самое через меню:

  "Tools" -> "Options" -> "Scripts and Plugins"
  -> в поле Script File поместить bersirc.ops
  

Желающим попинать меня за отсутствие интерактивной настройки хочу напомнить, что это все еще Beta-версия скриптов. Она далека от совершенства и нуждается в доработке, но у меня сейчас катастрофически не хватает свободного времени и, честно говоря, желания "полировать глюкало". Для меня главный критерий - работает, а недостатки... я пока выявил только косметические: двоение вывода в окно клиента (но не на выход программы!) некоторой информации и невозможность "отлова" некоторых событий. Мне не удалось устранить эти ляпы сколько я не бился над этим. Изначально в скрипт-языке не хватает по крайней мере двух событий: "onTopicChange" и события "onCommandOutput". Я пообщался с автором BersIRC'a, но впечатление от этого общения у меня сложилось негативное. По-моему он весьма неотзывчивый тип и вообще у него, как бы это сказать, раздолбайское какое-то настроение. Короче мне было неприятно с ним общаться. В принципе, отчасти, его можно понять. BersIRC - бесплатный клиент и его автор никому ничего не должен. Сейчас он работает над 2.0 версией и, возможно, он учтет мои пожелания на добавление отслеживания некоторых event'ов в скрипт-язык. Было бы просто замечательно если бы кто-то из Вас, кто лучше меня разбирается в ObjectPascal, попробовал довести до ума эти скрипты. Может быть даже имеющихся event'ов Вам будет достаточно для устранения тех ляпов, которые не удалось устранить мне. А может быть кто-то из Вас решит написать свой плагин для трансляции KOI8-R <-> CP-1251. Уверен, что это будет гораздо более удобное и гибкое для конечного пользователя решение, чем скрипт. Одним словом дерзайте!

Ссылки:

  • mIRC homepage: www.mirc.com
  • BersIRC homepage: www.bersirc.com
  • Программа PXY
  • Скрипт RECODE для mIRC
  • Мои скрипты для BersIRC
  • Попробуй программу:

    DrWeb - eComStation PC вылечит зараженные компьютеры Windows.

    Комментарии:

    Timur Kazimirov
    2001-09-07 09:23:30

    Спасибо! Что ещё можно сказать автору.

    Злой Сэии Попил Пивка
    2001-09-10 22:34:07

    Очень, очень полезная статья.
    По настройке Win32 клиента на *nix кодировку koi8-r. Просто великолепно.
    BTW "тем, кто волею судеб" я бы рекомендовал читать NT`ёвые сайты, благо там инфы поболе.
    На том же irc.org.ru всё что надо есть :)
    2e-co: Так держать ! :)

    Злой Сэmm Попил Пивка
    2001-09-10 22:34:15

    Очень, очень полезная статья.
    По настройке Win32 клиента на *nix кодировку koi8-r. Просто великолепно.
    BTW "тем, кто волею судеб" я бы рекомендовал читать NT`ёвые сайты, благо там инфы поболе.
    На том же irc.org.ru всё что надо есть :)
    2e-co: Так держать ! :)

    Hitler
    2003-02-22 22:59:16

    Спасибо за информационную отдушину в нашем дерьмократическом мире

    Almer
    2004-05-08 00:53:08

    И за скрипт =))) ...

    dinky
    2006-04-25 10:19:43

    ПАСИБО! Это то что я искал!

    Как приумножить количество пользователей eComStation? Каждый осевик может установить eCS своим друзьям и родственникам, распечатать для них методичку, как пользоваться системой - Сайт LiveBook

     


     

    (C) OS2.GURU 2001-2021