gentoo.ru
Официальная конференция Direct Connect клиента EiskaltDC++
eiskaltdc@conference.gentoo.ru
Четверг, 12 января 2012< ^ >
tehnick установил(а) тему: Last stable release: 2.2.5 || Конференция разработчиков EiskaltDC++
Логи: http://gentoo.ru/jabber/logs/eiskaltdc@conference.gentoo.ru/2011/
Активность в багтрекере: http://code.google.com/p/eiskaltdc/updates/list
Активность разработки: http://github.com/negativ/eiskaltdcpp/network
Release schedule:
* 2012-02-05 Release EiskaltDC++ 2.2.6
TODO:
* IPv6 in DC++ Core
* Improve Lua support
ADC notes:
https://adc.svn.sourceforge.net/svnroot/adc/trunk/ADC.txt
https://adc.svn.sourceforge.net/svnroot/adc/trunk/ADC-EXT.txt
Git notes:
http://habrahabr.ru/blogs/development/68341/
http://dl.dropbox.com/u/281916/delete/book.pdf
Как удобно передать в проект свои патчи:
http://habrahabr.ru/blogs/Git/125999/
How to pass your patches to the project in convenient way:
https://github.com/blog/712-pull-requests-2-0
Как правильно задавать вопросы:
http://parallel.ru/cluster/smart-questions-ru.html
How To Ask Questions The Smart Way
http://catb.org/%7Eesr/faqs/smart-questions.html
Конфигурация комнаты
Участники комнаты

GMT+4
[00:02:16] gelraen вошёл(а) в комнату
[00:18:01] nixtrian|home вошёл(а) в комнату
[00:26:45] amfetamin вышел(а) из комнаты
[00:36:59] FiliN вошёл(а) в комнату
[00:40:12] <dhamp> tehnick: бага 1254 небезоснавательна, некоторые параметры всё же криво присваиваются
[00:42:42] medvedko вошёл(а) в комнату
[00:44:39] medvedko вышел(а) из комнаты
[00:49:02] nixtrian|home вышел(а) из комнаты: Replaced by new connection
[00:49:12] nixtrian|home вошёл(а) в комнату
[01:03:29] ONYX вышел(а) из комнаты
[01:10:53] nixtrian|home вышел(а) из комнаты
[01:14:01] nixtrian|home вошёл(а) в комнату
[01:21:55] dhamp вышел(а) из комнаты
[01:59:40] Кирилл вышел(а) из комнаты
[02:04:23] Nikoli вышел(а) из комнаты: Replaced by new connection
[02:04:33] Nikoli вошёл(а) в комнату
[02:08:39] Tilka вошёл(а) в комнату
[05:05:11] Diger вошёл(а) в комнату
[05:06:03] Diger вышел(а) из комнаты
[06:19:13] Diger вошёл(а) в комнату
[06:20:22] Diger вышел(а) из комнаты
[06:22:27] gray_graff вошёл(а) в комнату
[06:28:12] Diger вошёл(а) в комнату
[06:30:47] Diger вышел(а) из комнаты
[06:38:45] Diger вошёл(а) в комнату
[07:22:38] medvedko вошёл(а) в комнату
[07:45:38] amfetamin вошёл(а) в комнату
[08:00:40] medvedko вышел(а) из комнаты
[08:02:02] ONYX вошёл(а) в комнату
[08:53:27] ubuntu10.10 вышел(а) из комнаты: Replaced by new connection
[08:53:37] ubuntu10.10 вошёл(а) в комнату
[08:54:56] FiliN вышел(а) из комнаты
[09:46:04] Kroll вошёл(а) в комнату
[09:53:53] gray_graff вошёл(а) в комнату
[11:05:49] FiliN вошёл(а) в комнату
[11:33:15] dein.negativ вошёл(а) в комнату
[11:34:12] Kroll вышел(а) из комнаты
[11:36:06] Kroll вошёл(а) в комнату
[11:56:31] Diger вышел(а) из комнаты
[11:56:34] rzed вошёл(а) в комнату
[11:58:51] <rzed> ONYX: продолжаем разговор?
[12:24:19] <ONYX> rzed: да, можно
[12:24:24] <ONYX> на чем остановились
[12:27:50] amfetamin вышел(а) из комнаты
[12:31:39] <rzed> я сейчас в перерывах меж работой ищу откуда начать самообучение
[12:32:22] <rzed> тоесть у меня возникают некоторые вопросы на которые я немогу своим разумом ответ домыслить
[12:32:57] <rzed> для кого то эти вопросы могут показаться вообще глупыми
[12:33:30] <ONYX> ну озвучивай же
[12:34:01] <rzed> например возьмем того ейскальт-демона который есть уже. после запуска он по умолчанию сидит и слушает на определенном порту
[12:34:20] <ONYX> да, так и есть
[12:34:36] <rzed> но вот в каком формате на этот порт данные должны поступать что бы он понимал
[12:35:07] ubuntu10.10 вышел(а) из комнаты
[12:35:20] ubuntu10.10 вошёл(а) в комнату
[12:36:13] <ONYX> если демон был собран с поддержкой xml-rpc - то данные в формате xml-rpc инкапсулированные в http, если с json-rpc - то соответственно в json формате внутри http
[12:36:55] <ONYX> то есть там просто от сборки зависит какой у тебя демон будет. xml или json. вот поэтому я предлагал выпилить xml-rpc
[12:39:21] <ONYX> rzed: или тебе запилить прямо как бужет выглядеть пакет с запросом например в json?
[12:39:23] <rzed> ну мы уже по дефолту рассматриваем только json. к остальному нет интереса
[12:39:35] <ONYX> ну ок
[12:39:56] <ONYX> я ответил на твой вопрос?
[12:41:09] <rzed> ну мне нехзватает видимо каких то первоначальных знаний програмирования, что бы осознать как происходит общение с демоном
[12:42:23] <ONYX> ну вкратце так:
[12:43:36] <ONYX> демон слушает tcp порт. это механизмы socket операционной системы, вызванные и использованные средствами языков программирования. далее демон ждет пришествия в этот порт данных.
[12:44:09] <rzed> у меня под рукой есть Autoit
[12:45:14] <ONYX> клиент, пользуясь все теми же механизами и принципами, формирует запрос, при помощи классов языков програмирования оборачивает свой запрос в оболочку протокола пользовательского уровня http, и связывается с портом сервера и передаёт туда эти данные
[12:47:35] <ONYX> сервер в обратном порядке разбирает полученные данные, отрезая заголовки протоколов, как кожуру с луковицы, например, сначала ip уровень отрезается (уровень ОС), потом tcp заголовки отрезаются (тоже уровень ОС), потом ОС понимает какой сокет соответствует этому пакету, и находит программу которая слушала сокет, и передаёт данные программе, которая уже своими средствами, вернее классами языка программирования, разбирает полученные данные, понимая их как json данные
[12:47:40] <ONYX> типа того.
[12:47:59] <ONYX> я тоже не шибкий прикладной программист.
[12:48:25] <ONYX> но схемы и принцыпы знаю чотко дерзко
[12:48:26] <rzed> такс. значит у меня получается открыть сокет, соеденить на порт демону, и отправить туда данные. но вот теперь мне надо значит оформить данные в правильном формате.. и видимо это я сделать несмогу
[12:48:56] <ONYX> оформить данные нужно до
[12:49:27] <ONYX> кроме того, на клиентской стороне сокет открывается не в режиме приёма, как на серверной, а в режиме передачи
[12:50:18] <rzed> ну принять и отправить я уже могу
[12:50:20] <ONYX> то есть вся загвозка в оформлении данных у тебя? тогда резонный вопрос - на чем ты пишешь то?
[12:50:48] Kroll вышел(а) из комнаты
[12:51:20] Kroll вошёл(а) в комнату
[12:51:22] <rzed> я ж сказал выше. у меня пока под рукой только AutoIT других языков я не знаю либо за давностью времен забыл
[12:52:11] <rzed> "AutoIt v3 is a freeware BASIC-like scripting language designed for automating the Windows GUI and general scripting."
[12:52:29] <ONYX> оу, я такого не знаю. тебе нужно найти в этом языке классы/методы/модули/библиотеки для работы с json и http
[12:52:36] <ONYX> вот что тебе нужно, инфа 100%
[12:52:54] <ONYX> и фактически-это все что тебе нужно. то есть больше тебе не понадобится ничего
[12:53:56] <rzed> либо взяться снова за PHP которое я лет 10 назад пытался самообучаться
[12:54:51] <ONYX> идеально практически
[12:56:03] <ONYX> по крайней мере с интерпретаторами можно сосредоточится на сути задачи, а не на траходроме с плюсовыми ссылками, обьектами, классами и прочим говном которое с толку сбивает
[12:57:35] <rzed> и оформить управление в красивый "веб скин"
[12:58:03] <ONYX> а это будет сделано рано или поздно, гарантирую
[12:58:30] <ONYX> как только методов будет достаточно и я пойму что можно браться за веб морду-я сам планирую занятся
[12:58:31] <rzed> в рнр же и авторизацию реализовать можно
[12:58:51] <ONYX> и в cli можно, нет проблем
[12:58:58] <ONYX> ладно, пойду на обед
[12:59:33] <rzed> так поидее лучше сразу с вебмордой и пилить
[13:08:47] Kroll вышел(а) из комнаты
[13:09:10] Kroll вошёл(а) в комнату
[13:09:36] <rzed> хмм, вроде даже нашел ответ на свой вопрос. There is a JSON-library for AutoIt. Using WinHttp to send and receive and the JSON-libaray to encode/decode, it shouldn't be too difficult to access the API.
[13:12:25] <rzed> ага вот в эту сторону буду копать= Microsoft Windows HTTP Services (WinHTTP) provides developers with an HTTP client application programming interface (API) to send requests through the HTTP protocol to other HTTP servers....
[13:13:01] <rzed> пойду оформлю кружку чаю для поднятия боевого духа ))
[13:23:40] <rzed> мда, как то неудачно я сёдня оставил откомпиленые файлы дома, и на работе нету "инструментария" что бы скомпилить
[13:28:17] Kroll вышел(а) из комнаты
[13:28:29] Kroll вошёл(а) в комнату
[13:54:20] ubuntu10.10 вышел(а) из комнаты
[13:54:36] ubuntu10.10 вошёл(а) в комнату
[13:58:03] amfetamin вошёл(а) в комнату
[14:12:11] Diger вошёл(а) в комнату
[14:15:04] Kroll вышел(а) из комнаты: Replaced by new connection
[14:15:14] Kroll вошёл(а) в комнату
[14:50:43] <rzed> ONYX: ты можешь показать как выглядит запрос до отправки? допустим на примере метода show.version
[14:52:56] Kroll вышел(а) из комнаты
[14:53:21] Kroll вошёл(а) в комнату
[14:54:07] FiliN вышел(а) из комнаты
[14:56:36] dhamp вошёл(а) в комнату
[14:56:44] rzed вышел(а) из комнаты: <|> :ытанмок зи (а)лешыв dezr
[14:59:59] FiliN вошёл(а) в комнату
[15:02:30] <ONYX> ушол уже
[15:13:55] dhamp вышел(а) из комнаты
[15:14:16] dhamp вошёл(а) в комнату
[15:14:30] ONYX вышел(а) из комнаты
[15:17:10] Kroll вышел(а) из комнаты: Replaced by new connection
[15:17:20] Kroll вошёл(а) в комнату
[15:33:18] Diger вышел(а) из комнаты
[15:49:38] Kroll вышел(а) из комнаты
[15:49:59] Kroll вошёл(а) в комнату
[15:51:43] Diger вошёл(а) в комнату
[15:52:48] Diger вышел(а) из комнаты
[15:54:45] ONYX вошёл(а) в комнату
[16:07:21] FiliN вышел(а) из комнаты
[16:14:56] medvedko вошёл(а) в комнату
[16:15:25] medvedko вышел(а) из комнаты
[16:16:08] medvedko вошёл(а) в комнату
[16:20:09] Kroll вышел(а) из комнаты
[16:20:50] Kroll вошёл(а) в комнату
[16:35:42] medvedko вышел(а) из комнаты
[16:37:55] medvedko вошёл(а) в комнату
[16:46:47] Кирилл вошёл(а) в комнату
[16:54:10] Kroll вышел(а) из комнаты
[16:54:29] Kroll вошёл(а) в комнату
[16:56:37] Diger вошёл(а) в комнату
[17:08:50] ONYX вышел(а) из комнаты
[17:22:30] Kroll вышел(а) из комнаты: Replaced by new connection
[17:22:40] Kroll вошёл(а) в комнату
[17:44:08] medvedko вышел(а) из комнаты
[17:58:58] medvedko вошёл(а) в комнату
[18:02:39] Alexey вошёл(а) в комнату
[18:04:14] dhamp вышел(а) из комнаты
[18:07:31] medvedko вышел(а) из комнаты
[18:22:50] dein.negativ вышел(а) из комнаты
[18:36:42] Kroll вышел(а) из комнаты: Replaced by new connection
[18:36:52] Kroll вошёл(а) в комнату
[18:55:10] dein.negativ вошёл(а) в комнату
[19:40:24] Kroll вышел(а) из комнаты
[19:40:48] Kroll вошёл(а) в комнату
[19:57:39] tehnick вошёл(а) в комнату
[19:57:51] <tehnick> dein.negativ:
$ grep -r nullptr eiskaltdcpp-qt/eiskaltdcpp-qt/src/ScriptManagerDialog.cpp:    model = new ScriptManagerModel(nullptr);
eiskaltdcpp-qt/src/ScriptManagerDialog.cpp:    rootItem = new ScriptManagerItem(nullptr);
eiskaltdcpp-qt/src/ScriptManagerDialog.h:    ScriptManagerItem(ScriptManagerItem* = nullptr);
eiskaltdcpp-qt/src/ScriptManagerDialog.h:    ScriptManagerModel(QObject* = nullptr);
eiskaltdcpp-qt/scriptengine/MainWindowScript.cpp:    Q_ASSERT_X(engine != nullptr, Q_FUNC_INFO, "engine == nullptr");
eiskaltdcpp-qt/scriptengine/ScriptEngine.cpp:        QObject(nullptr)
eiskaltdcpp-qt/scriptengine/ScriptEngine.cpp:        if (tth != nullptr)
eiskaltdcpp-qt/scriptengine/ScriptEngine.cpp:    QObject *obj = nullptr;
eiskaltdcpp-qt/scriptengine/ScriptEngine.cpp:    QObject *obj = nullptr;
[19:58:15] tehnick вышел(а) из комнаты
[20:02:35] Kroll вышел(а) из комнаты: Replaced by new connection
[20:02:45] Kroll вошёл(а) в комнату
[21:08:21] Kroll вышел(а) из комнаты: Replaced by new connection
[21:08:31] Kroll вошёл(а) в комнату
[21:43:31] ONYX вошёл(а) в комнату
[21:44:58] rzed вошёл(а) в комнату
[21:46:05] <rzed> ONYX: все мы уходим, но возвращаясь иногда читаем логи. надо было писать если было что ))
[21:46:33] <ONYX> а что где
[21:46:51] <rzed> вопрос был выше
[21:47:34] <ONYX> а да вижу. так. тебе этот запрос на каком уровне? чисто json?
[21:47:44] <ONYX> или уже вместе с http?
[21:47:57] <rzed> а какие можешь?
[21:48:02] <rzed> да хоть оба
[21:49:25] <ONYX> ну, по идее могу и оба. мне нужно время что бы отловить пакеты в удобном виде, не tcpdump же тебе давать
[21:50:54] <rzed> мне осталось узреть конечный результат и возможно я пойму как мне сделать тоже самое теми средствами что доступны мне
[22:02:54] <ONYX> rzed: в принципе у тебя верный подход, но он неисчерпывающий. для того, что бы повторить, тебе нужны не образцы, а понимание самих используемых протоколов. советую прочитать http://en.wikipedia.org/wiki/JSON_RPC
[22:03:13] <ONYX> там есть Version 2.0 Specification_Proposal
[22:04:31] <ONYX> скажем, в нашем случае отправляемый запрос выглядит так:
{"jsonrpc": "2.0", "method": "show.version", "id": 1}
[22:04:44] <ONYX> это без заголовков http
[22:06:25] <ONYX> заголовок же http выглядит приблизительно так:
GET /  HTTP/1.1
Host: localhost:3121
User-Agent: Mozilla/5.0 (X11; U; Linux i686; ru; rv:1.9b5) Gecko/2008050509 Firefox/3.0b5
Accept: text/html
Connection: close
[22:08:51] <ONYX> ответ сервера выглядит приблизительно так (вместе с http заголовком):
HTTP/1.1 200 OK
Date: Wed, 11 Feb 2009 11:20:59 GMT
Server: eiskaltdcpp web server
Content-Language: en
Content-Type: text/application-json; charset=utf-8
Content-Length: 1234
Connection: close
{"jsonrpc": "2.0", "result": "2.2.6", "id": 1}
[22:08:56] <ONYX> приблизительно
[22:09:56] <ONYX> но. вот это все формировать вручную - апокалиптический п-дец. нужно использовать классы/библиотеки языка для работы с json и http, на котором пишеш.
[22:10:13] <rzed> ну я уже раздобыл либы.. понял каким образом отправлять принимать http
[22:10:32] <ONYX> ну вот чудненько.
[22:10:45] <ONYX> осталось в принципе научится формировать  json запросы
[22:12:19] <rzed> завтра на работе доковыряю по json крипт/декрипт и буду пробывать уже на демоне.. а то сёдня у меня в качестве подопытного только httpFileerver был
[22:14:21] <ONYX> удачечки
[22:37:56] dein.negativ вышел(а) из комнаты
[22:44:23] rzed вышел(а) из комнаты
[22:51:55] medvedko вошёл(а) в комнату
[23:14:44] WiseLord вошёл(а) в комнату
[23:16:34] medvedko вышел(а) из комнаты
[23:16:49] medvedko вошёл(а) в комнату
[23:17:55] medvedko вышел(а) из комнаты
[23:18:15] medvedko вошёл(а) в комнату
[23:29:41] ymr1 вошёл(а) в комнату
[23:30:12] ymr1 вышел(а) из комнаты
[23:44:20] medvedko вышел(а) из комнаты
[23:56:03] WiseLord вышел(а) из комнаты
Powered by ejabberd Powered by Erlang Valid XHTML 1.0 Transitional Valid CSS!