Welcome to eComStation.RU site!

Select your language: Russian English Deutch Spanish Italian Portuguese Czech Polish French

Frequently asked questions and answers:

eComStation.RU

ru · en · de · es · it · pt · cz · pl · fr
eComStation - это совершенно другая операционная система для PC (IBM OS/2 Warp)
Программы, новости, статьи, поддержка пользователей, оборудование, вопросы и ответы.
 
      Что такое OS/2?НовостиУстановкаОбновлениеПрименениеБудущееСообществоКупить    
(Карта сайта)

 
 
Отчет: OS/2 совместимое оборудование
Как получить драйверы OS/2 бесплатно

 
Обновление

 
Программы

 
(Санкт-Петербург)

 
Преимущества (1)

 
Разработчику (1)

 
(Пайпы программ)

 
Компании: (1)

 
История (1):

 
(Бонусы)

 
Советы:

 
(Барьеры и решения)

 
Технологии: (1)

 
(Применение в науке, лаборатории, ..)

 

 
Готовые решения:

 
Новая eComStation:

 
Будущее: (1)

 
(Ссылки на другие сайты)

 
(Картинка дня)

 
Артефакты OS/2

 
Гаджеты

 

Как я научил 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
  • Попробуй программу:

    eCo Tunes - интернет-радио. Слушай музыку других народов, любых жанров.

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

    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

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

    Прокомментируйте эту статью (напоминаем, автор работал над текстом несколько недель, уважайте мнение других).


    Ваше имя:

    Ваш E-Mail:

    CODE:
    ......

      

    Ваш комментарий:


    eComStation 2.0 работает быстрее (поддержка SMP x файловая система JFS) Что нового в eCS 2.0?

    Статьи

    Операционная система
    Программное обеспечение
    Оборудование
    Для разработчика
    Разное
    Колонка редактора


    Готовая eComStation на SSD диске

     





    Последний активный опрос: Какая высота барьера RPM?

    Самая комментируемая новость за месяц: OS/2 Firefox откат к старому

    IBM OS/2 Warp

     
    Обучение новичков

    Списки протестированного OS/2 оборудования

     
    Статьи


       
      Почему eComStation?
    Возможности
    Особенности
    Применение
    Ролики и скриншоты
       eComStation для
    для бизнесменов
    для студентов и инженеров
    для продавцов компьютеров
    сообщество пользователей
       Разработчик
    Распространить программу
    Описание API, библиотеки
    Начать новый проект
    Конкурсы
       Программы
    Он-лайн каталог
    Выбрать через eCo Market
       Служба поддержки
    Отправить вопрос
    Купить eComStation
    Вопросы и ответы
    Обучение новичков
     
     
    © 2001 - 2014 eCo Software, All rights reserved
    eComStation is a registered trademark of Serenity Systems International
    OS/2 Warp is a registered trademark of IBM Corporation
     

     

     
    Картинка дня: