Page 1 of 3

Клиент IRC

Posted: Tue Sep 29, 2009 1:35 pm
by CleverMouse
Я представляю вашему вниманию airc 0.6, новую версию клиента IRC. Она представляет собой развитие программы, давно лежащей в репозитории Колибри и, похоже, давно не развиваемой. Я переписала взаимодействие с сетью, теперь программа получает IP-адрес по имени через библиотеку, считывает принятые данные большими кусками, а не с системным вызовом на каждый байт, не подвисает на время соединения, не тратит ресурсов в состоянии ожидания. Интерфейс программы теперь показывает статус соединения не в виде маловразумительного числа, а человекопонятной строкой. Кроме того, я добавила к существовавшей перекодировке в cp1251 поддержку cp866 и utf-8, причём переключаться между ними можно динамически в процессе работы.
Для работы программы нужно свежее ядро и библиотеки network и msgbox.
Скомпилированная версия и исходники прилагаются. Поскольку в репозитории программа присутствует, я обновила исходники и там.

EDIT 10/07/2013 yogev_ezra: это устаревшая программа для старой сетевой подсистемы. Новая программа здесь: viewtopic.php?f=40&t=2248

Re: Клиент IRC

Posted: Tue Sep 29, 2009 2:40 pm
by <Lrz>
Рекомендую посмотреть макрос load_lib.mac, доступен в разделе библиотеки box_lib. При использовании макроса более информативно отображается информация, если произошел сбой при загрузки библиотеки или импорте.

Re: Клиент IRC

Posted: Tue Sep 29, 2009 4:04 pm
by andrew_programmer
Сеть в KolibriOS я тестирую в Qemu, потому что мой ADSL модем KolibriOS по понятным причинам не понимает (сетевая карта работает).
HTTP клиент работает, а вот AIRC, что старый, что новый, дальше сообщенияresolving server name... ничего не отображает. Сетью в KolibriOS я не занимался, поэтому даже не знаю, в чём может быть дело.

CleverMouse, желаю удачи в дальнейшем развитии сети в KolibriOS.

Re: Клиент IRC

Posted: Tue Sep 29, 2009 4:29 pm
by CleverMouse
<Lrz>, я смотрела на этот макрос, и мне он не понравился по следующим причинам:
- он включает в программу код, который я считаю избыточным: в реальных условиях и дистрибутивах нужные библиотеки будут, так что получится, что программе придётся расплачиваться за обработку ситуаций, которые не случатся, мёртвым балластом кода
- он не вызывает функцию инициализации, с ним не будут работать библиотеки libs-dev
andrew_programmer, раз программа задумывается на этапе разрешения имени, то библиотека не получает ответа от DNS-сервера. Клиент httpc обращается к фиксированному серверу далеко в Интернете, библиотека network считывает системные настройки - провайдеры предоставляют свой сервер, и лазить в Интернет за каждым именем не нужно. Следовательно, в этих настройках DNS-сервер не указан или указан неверно. Можно, например, запустить конфигурацию сети, программу stackcfg, и установить там нужный адрес вручную. Если нет никаких идей, что ставить, можно прописать адрес, зашитый в httpc, - 194.145.128.1.
В qemu можно поднимать сеть разными способами, и задание адресов в настройках самого qemu зависит от того, какой способ используется.

Re: Клиент IRC

Posted: Tue Sep 29, 2009 7:45 pm
by <Lrz>
С функцией инициализации я что-нибудь придумаю. На счет избыточности кода - можно поспорить. Макрос более информативен и удобен для пользователя. Не каждый пользователь полезет смотреть на доску отладки, если что не так, если программа не запустилась. Конечному пользователю вообще без разницы, или работает или не работает. Разница даже в +1 Кб от использования макроса незначительно увеличивает объем программы.

Рекомендую использовать возможности библиотеки box_lib.obj. Желаю удачи в твоей работе!
Все выше сказанное только мое мнение.

Re: Клиент IRC

Posted: Wed Sep 30, 2009 12:24 am
by diamond
Если, сидя на канале, сменить ник, то он действительно меняется, но новые сообщения продолжают отображаться со старым ником.

Re: Клиент IRC

Posted: Wed Sep 30, 2009 11:03 am
by s1n
все замечательно, но можно ли добавить readme с кратким описанием, возможностями, ограничениями и нуждами/зависимостями в библиотеках, ну и конечно об авторе(можно и с фото).. ^__^

Re: Клиент IRC

Posted: Thu Oct 01, 2009 1:41 pm
by CleverMouse
<Lrz>, не каждый пользователь самостоятельно собирает дистрибутив, а те пользователи, которые это всё же делают, сами могут позаботиться о нужных библиотеках. Загрузчик от mike.dld, который я сейчас использую, вообще не содержит избыточного кода даже для вывода на доску отладки.
s1n, это клиент IRC, описания команд IRC разной степени подробности легко найти в Интернете. Программа не использует никаких дополнительных зависимостей по сравнению с последней ночной сборкой. Автором является Ville, его фото у меня нет, если тебе интересно, можешь поискать сам.

Re: Клиент IRC

Posted: Thu Oct 01, 2009 6:22 pm
by Mario
CleverMouse
При всем моем уважении к мнению автора, которое имеет наивысший приоритет (и это не стеб, а правда), но заявлять о какой-либо существенной экономии от не использования макроса, когда приложение начинается с:
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;; ;;
;; IRC CLIENT for KolibriOS ;;
;; ;;
;; License: GPL / See file COPYING for details ;;
;; Copyright 2004 (c) Ville Turjanmaa ;;
;; Copyright 2009 (c) CleverMouse ;;
;; ;;
;; Compile with FASM for Kolibri ;;
;; ;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

version equ '0.6'


;__DEBUG__ equ 1
;__DEBUG_LEVEL__ equ 1

use32
org 0x0

db 'MENUET01' ; 8 byte id
dd 0x01 ; required os
dd START ; program start
dd initialized_size ; program image size
dd 0x100000 ; required amount of memory
dd 0x100000

dd 0,0
имхо не очень уместно.

Re: Клиент IRC

Posted: Fri Oct 02, 2009 2:10 pm
by CleverMouse
Mario, уместно, потому что ты спутал размер занимаемой памяти и размер исполнимого файла, а это не одно и то же.

Re: Клиент IRC

Posted: Fri Oct 02, 2009 2:43 pm
by Mario
CleverMouse
а это не одно и то же.
Я конечно могу быть не прав, но я как-то считал, что размер занимаемый программой в памяти не менее важен, чем размер занимаемый бинарником на диске и это величины приблизительно одного значения и порядка. Видимо есть другие оценочные категории, которые мне не доступны.
Впрочем не важно, дальнейшую дискуссию в этом русле продолжать не рационально. Ты автор это твое дело.

З.Ы. Да и так на всякий случай - я не путал эти значения (все-таки давно прогаю в Колибри), только провел аналогию указанную в моем тексте выше.

Re: Клиент IRC

Posted: Fri Oct 02, 2009 3:09 pm
by CleverMouse
Я тоже хочу пофлудить! Во-первых, из предыдущего поста явно следует, что, по мнению автора, "размер, занимаемый бинарником на диске" неважен, если нет оптимизации "размера, занимаемого программой в памяти" - если бы пост был в стиле "раз ты так заботишься о размере бинарника, обрати внимание ещё и на размер используемой памяти", то ответа, проясняющего мой взгляд на вещи, не было бы. Во-вторых, в условиях, когда дистрибутив занимает полтора мегабайта, а размер оперативной памяти типичного не очень старого настольного компьютера сегодня измеряется сотнями мегабайт и даже гигабайтами, "размер, занимаемый программой в памяти" всё же является менее важным, чем "размер, занимаемый бинарником на диске". Но, безусловно, я согласна с тем, что обе эти величины важны.
Спорим, что, хотя ясно, что все друг друга поняли, Mario не сможет удержаться от флуда в ответ?

Re: Клиент IRC

Posted: Sat Dec 12, 2009 5:25 pm
by CleverMouse
Я вроде исправила отображение ников в сообщениях и в списке пользователей на канале при изменении ников. Я обновила исходники в репозитории, также я прилагаю исходники и скомпилированную версию к посту.

Re: Клиент IRC

Posted: Tue Jan 19, 2010 7:47 am
by maximYCH
Wine-KlbrInWin-AIRC

Re: Клиент IRC

Posted: Tue Jan 19, 2010 9:00 am
by Mario
maximYCH
А ты сам то под wine запускал KlbrInWin? И как успехи? :lol: