gentoo.ru
Официальная конференция Direct Connect клиента EiskaltDC++
eiskaltdc@conference.gentoo.ru
Суббота, 8 октября 2011< ^ >
tehnick установил(а) тему: Last stable release: 2.2.4 || Конференция разработчиков 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:
* 2011-10-30 Release EiskaltDC++ 2.2.5
TODO:
* IPv6 in DC++ Core
* JSON interface in EiskaltDC++ Daemon
* Gtk3 support in EiskaltDC++ Gtk
ADC notes:
https://adc.svn.sourceforge.net/svnroot/adc/trunk/ADC.txt
https://adc.svn.sourceforge.net/svnroot/adc/trunk/ADC-EXT.txt
http://www.adcportal.com/wiki/ADC_Proposals_list
Git notes:
http://habrahabr.ru/blogs/development/68341/
http://dl.dropbox.com/u/281916/delete/book.pdf
JSON:
http://ru.wikipedia.org/wiki/JSON
http://en.wikipedia.org/wiki/JSON
http://en.wikipedia.org/wiki/JSON-RPC
JSON parser from Boost:
http://plaincodesource.blogspot.com/2011/03/json-c-boost.html
http://stackoverflow.com/questions/717618/simple-server-client-boost-example-not-working
HTTP and TCP client/server examples:
http://www.boost.org/doc/libs/1_39_0/doc/html/boost_asio/examples.html
Как правильно задавать вопросы:
http://parallel.ru/cluster/smart-questions-ru.html
Конфигурация комнаты
Участники комнаты

GMT+4
[00:00:10] <tehnick> С нашим-то менталитетом...
[00:00:32] <tehnick> Если гаишников не видно => ПДД не обязательны.
[00:02:00] <tehnick> Да и мнение автора этого мода стронга значения вообще не имеет.
[00:02:23] <tehnick> Он не имеет полных прав на весь код.
[00:02:32] <tehnick> И разрешение давать не может.
[00:14:53] <Diger> tehnick: нереально IFDEF'ами с синглом вырулить, функции часть переписывать надо
[00:18:14] <Diger> tehnick: тот же https://github.com/negativ/eiskaltdcpp/blob/master/eiskaltdcpp-qt/src/MainWindow.h#L488 , вызывается из main
[00:20:05] <tehnick> Diger: реально
[00:20:38] <tehnick> Diger: но лучше на свежую голову...
[00:21:07] <tehnick> Diger: там не так много вызовов
[00:39:59] WiseLord вошёл(а) в комнату
[00:40:06] FiliN вышел(а) из комнаты
[00:47:28] ONYX вышел(а) из комнаты
[01:29:02] tehnick вышел(а) из комнаты
[01:39:02] Alexey вышел(а) из комнаты
[02:17:46] ONYX вошёл(а) в комнату
[02:22:12] Diger вышел(а) из комнаты
[02:24:52] WiseLord вышел(а) из комнаты
[02:45:04] Kroll вышел(а) из комнаты
[04:17:18] amfetamin вышел(а) из комнаты
[06:08:23] ubuntu11.04 вошёл(а) в комнату
[06:34:48] FiliN вошёл(а) в комнату
[06:35:23] FiliN вышел(а) из комнаты
[06:35:38] FiliN вошёл(а) в комнату
[08:24:17] Kroll вошёл(а) в комнату
[10:49:31] Alexey вошёл(а) в комнату
[11:22:21] Diger вошёл(а) в комнату
[11:38:48] ONYX вышел(а) из комнаты
[11:45:07] amfetamin вошёл(а) в комнату
[11:49:56] ONYX вошёл(а) в комнату
[14:23:03] FiliN вышел(а) из комнаты
[15:08:32] manhattan вошёл(а) в комнату
[15:12:10] manhattan вышел(а) из комнаты
[18:04:27] gray_graff вышел(а) из комнаты
[18:05:04] gray_graff вошёл(а) в комнату
[19:07:40] gray_graff вышел(а) из комнаты
[19:29:05] gelraen вошёл(а) в комнату
[19:35:49] ubuntu11.04 вышел(а) из комнаты
[19:49:16] ubuntu11.04 вошёл(а) в комнату
[20:36:00] gray_graff вошёл(а) в комнату
[21:20:51] pavelvat вошёл(а) в комнату
[21:26:45] WiseLord вошёл(а) в комнату
[21:30:35] <pavelvat> dhamp: под Windows не собирается после твоих правок в структуре каталогов:
[  3%] Building CXX object extra/CMakeFiles/extra.dir/upnpc.cpp.obj
/home/pavel/builds/eiskaltdcpp/eiskaltdcpp/extra/upnpc.cpp:31:33: fatal error: miniupnpc/miniupnpc.h: No such file or directory
compilation terminated.
причём это происходит только в сборке для Windows под Linux в той же ситуации почему то всё находится.
Зачем вообще было делать отдельный каталог upnp и внутри него файл CMakeLists.txt и каталог miniupnpc, нельзя что ли было оставить каталог miniupnpc и внутрь него положить файл CMakeLists.txt ?
Я предлагаю для решения этой проблемы вернуть старую структуру каталогов для miniupnpc.
[21:40:31] <pavelvat> dhamp: а ещё лучше привести все каталоги к единообразному виду:
внутри каждой цели-каталога с исходным кодом сделать подкаталог src/ и в нём хранить исходники.
[21:42:11] pavelvat вышел(а) из комнаты
[21:56:56] FiliN вошёл(а) в комнату
[22:34:36] pavelvat вошёл(а) в комнату
[22:38:22] <pavelvat> dhamp: а если исправить в файле
eiskaltdcpp/extra/upnpc.cpp
строки:
#include <miniupnpc/miniupnpc.h>
#include <miniupnpc/upnpcommands.h>
#include <miniupnpc/upnperrors.h>
на
#include <upnp/miniupnpc/miniupnpc.h>
#include <upnp/miniupnpc/upnpcommands.h>
#include <upnp/miniupnpc/upnperrors.h>
то под Windows собирается зато под Linux перестаёт собираться: http://pastebin.com/vDVJAs1U
[22:42:28] pavelvat вышел(а) из комнаты
[22:48:19] tehnick вошёл(а) в комнату
[22:55:57] <tehnick> pavelvat: пинг
[23:06:05] Diger вышел(а) из комнаты
[23:08:00] Kroll вышел(а) из комнаты
[23:12:26] dein.negativ вошёл(а) в комнату
[23:12:36] <dein.negativ> tehnick: пинг
[23:12:49] <tehnick> dein.negativ: понг
[23:13:34] <dein.negativ> tehnick: как лучше сохранять список ранее скачанных файлов: с помощью sqlite или просто списком в файле?
[23:14:10] <dein.negativ> я лично склоняюсь к тому чтобы просто хранить список в файле
[23:14:18] <tehnick> dein.negativ: у нас уже sqlite используется
[23:14:42] <tehnick> Причем реализация быстрая и не полноценная.
[23:15:02] <tehnick> dein.negativ: зависит от объема файла
[23:15:33] <tehnick> Выгода от БД будет заметна на большом числе файлов.
[23:15:43] <dein.negativ> ну думаю список более чем на 100-200 файлов хранить бессмысленно и накладно будет, тем более что хранить его придется в памяти
[23:15:43] <ubuntu11.04> :-(  опять со смайликами баг воскрес
[23:16:20] <ubuntu11.04> если пишешь смайлики в лс, то после отправки они становяться расплывчитыми
[23:16:39] <dein.negativ> ubuntu11.04: скрин можно?
[23:16:43] <ubuntu11.04> или если тебе пишут.в чате всё нормально.напрягает,ибо нераспозноваемо
[23:16:49] <ubuntu11.04> dein.negativ, хорошо
[23:16:49] <tehnick> dein.negativ: я считаю, что этот функционал не нужен совсем.
[23:17:03] <tehnick> 100-200 файлов --- это мало
[23:17:16] <tehnick> Люди годами дц-клиент используют...
[23:18:19] <tehnick> dein.negativ: короче, реализация этого запроса затратна и бессмысленна
[23:18:40] ubuntu11.04 вышел(а) из комнаты: Replaced by new connection
[23:18:45] <dein.negativ> tehnick: ну так в ручную скачанных файлов я так полагаю надо список вести. http://code.google.com/p/eiskaltdc/issues/detail?id=1034
[23:18:50] ubuntu11.04 вошёл(а) в комнату
[23:19:32] <tehnick> dein.negativ: да, я именно про него
[23:19:42] <tehnick> dein.negativ: в том-то и дело, что не надо
[23:20:04] <tehnick> dein.negativ: ты огнелисом пользовался?
[23:20:23] <tehnick> dein.negativ: помнишь, как там история посещенных страниц работает?
[23:20:24] <dein.negativ> хотя почему бы не заюзать для этих целей FinishedDownloads...
[23:20:32] <dein.negativ> tehnick: не помню..
[23:20:54] <tehnick> dein.negativ: число запоминаемых ссылок настраивается
[23:21:05] <tehnick> dein.negativ: есть возможность быстрой очистки
[23:21:33] <tehnick> dein.negativ: для хранения используется внутренняя БД
[23:22:28] <tehnick> [22:20:37] <dein.negativ> хотя почему бы не заюзать для этих целей FinishedDownloads...
Этот список конечно же можно задействовать. Тем более, что только для сборки с БД.
[23:22:42] <tehnick> dein.negativ: но не забывай про цену...
[23:22:59] <tehnick> dein.negativ: тебе придется делать запросы к БД
[23:23:21] <tehnick> Для проверки наличия файла в истории.
[23:23:58] <tehnick> Результаты приходят асинхронно.
[23:23:59] <dein.negativ> tehnick: я просто думаю как сделать: запрашивать TTH файла в FinishedDownloads, а этот класс в свою очередь дернет модель данных и если в модели файл есть - его раньше качали, нет - значит нет
[23:24:10] <tehnick> Клево.
[23:24:12] FiliN вышел(а) из комнаты
[23:24:26] <dein.negativ> и не надо велосипедов
[23:24:30] <tehnick> В модели данных сейчас сколько строк всего?
[23:24:30] FiliN вошёл(а) в комнату
[23:24:41] <tehnick> Там это жестко зашито.
[23:25:03] <tehnick> И да, она все время хранится в памяти?..
[23:25:27] <tehnick> Если виджет не создан, ее быть не должно.
[23:25:58] <dein.negativ> ну а как еще модель FinishedTransfersModel нужна как минимум для фунционирования QTreeView. если ее не содавать при старте программы то будет эпичный баг с именами пользователей
[23:26:00] <tehnick> [22:24:40] <dein.negativ> и не надо велосипедов
Это как раз ты предлагаешь велосипед. Причем одноколесный и неуправляемый.
[23:26:16] <tehnick> А я предлагаю не делать этот функционал вообще.
[23:26:29] <tehnick> Лучше пусть его совсем не будет.
[23:26:39] <tehnick> Чем будет какое-то убожество для галочки.
[23:27:48] <tehnick> dein.negativ: тебя мертваяеда пинал по поводу плагина?
[23:29:26] <dein.negativ> если данные уже хранятся в памяти то почему не воспользоваться этим? тем более подсветка ранее скачанных файлов будет реализовыватся 3-4 строками в SearchModel, и новым методом в FinishedDownloads
[23:29:40] <dein.negativ> tehnick: пинал, но пока времени нету толком
[23:29:52] <dein.negativ> только сейчас освободился
[23:29:55] <tehnick> Тем более.
[23:30:05] <tehnick> Если времени нет, зачем его так тратить? =)
[23:30:37] <tehnick> [22:29:39] <dein.negativ> если данные уже хранятся в памяти
Еще раз перечитай выше плз.
[23:30:56] <tehnick> Если виджет не создан, в памяти этого шлака нет.
[23:31:01] <tehnick> Правильно?
[23:31:13] <dein.negativ> но виджет создается при старте
[23:31:26] <dein.negativ> ибо нужно чтобы модель начала работать как можно раньше
[23:32:15] <tehnick> dein.negativ: т.е. память не освобождается при закрытии виджета?
[23:32:31] <dein.negativ> это же синглтон виджет
[23:32:35] <dein.negativ> нет конечно
[23:32:43] <tehnick> Блин.
[23:32:51] <tehnick> Тогда делай конечно.
[23:33:35] FiliN вышел(а) из комнаты
[23:33:41] <tehnick> Но это печально.
[23:33:55] FiliN вошёл(а) в комнату
[23:33:59] <tehnick> Не зря юзеры пишут, что gtk-морда меньше памяти ест.
[23:34:26] <dein.negativ> в gtk-морде эти виджеты тоже насколько я помню постоянно работают
[23:34:44] <dein.negativ> у нас главная причина потребления памяти всякие QtScript и QML
[23:34:47] <tehnick> pavelvat: после моего коммита, должно собираться
[23:35:02] <dein.negativ> без них разница в потреблении памяти почти незаметна
[23:35:28] <dein.negativ> я бы даже сказал Qt морда с памятью обращается лучше - фрагментация меньше
[23:39:52] dein.negativ вышел(а) из комнаты
[23:52:51] FiliN вышел(а) из комнаты
[23:54:33] <tehnick> dein.negativ: не используй табы для отступов плз
[23:54:43] <tehnick> --- a/eiskaltdcpp-qt/CMakeLists.txt
+++ b/eiskaltdcpp-qt/CMakeLists.txt
@@ -118,6 +118,7 @@ set (MOC_HDRS
             src/CustomFontModel.h
             src/DownloadQueue.h
             src/DownloadQueueModel.h
+        src/EiskaltApp.h
             src/EmoticonDialog.h
             src/EmoticonFactory.h
             src/EmoticonObject.h
[23:54:55] <tehnick> Та еще лестница.
[23:55:49] FiliN вошёл(а) в комнату
[23:55:57] <tehnick> dein.negativ: кстати, есть более актуальная задача
[23:56:51] <tehnick> dein.negativ: можешь сделать сборку с QtSingleCoreApplication опциональной?
[23:57:17] <tehnick> dein.negativ: а то сборщик под гайку все никак не может пропатчить
Powered by ejabberd Powered by Erlang Valid XHTML 1.0 Transitional Valid CSS!