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

 
Гаджеты

ArcaOS 5.0 Русская версия
Пакет русификации ArcaOS 5.0 OS/2 давно доступен. Поддерживается любая версия: 5.0, 5.0.1, 5.0.2.

eCo Software может выпустить и другие пакеты (Немецкий, Голландский, Бразильский Португальский, Испанский, Шведский и т.д.)

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

    DVD/CD Toys - запись DVD и CD дисков. Легко установить, легко управлять. SATA, USB, SCSI

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

    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 - это выгодно: a) система имеет более компактный API, который хорошо продуман и эффективен, b) Рынок не такой бесконечный, как у Windows. Все пользователи eComStation узнают про ваш продукт, c) Один разработчик значительно влияет на всю ОС.

    Статьи

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


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

     





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

    IBM OS/2 Warp

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

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

     
    Статьи


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

     

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