Краткое резюме

Присутствовали: bar, cervantes, Complication, frosk, jrandom, polecat, tethra, void

Журнал встречи

16:02 <jrandom> ладно, давайте начнём 16:03 <jrandom> привет, заметки перед встречей выложены по адресу http://dev.i2p.net/pipermail/i2p/2006-August/001304.html 16:03 <jrandom> вместо того чтобы я по сути пересказывал то письмо здесь, давайте просто перейдём к нашему стандартному разделу ??? - 16:04 <jrandom> у кого‑нибудь есть что поднять и обсудить? 16:04 <@cervantes> э-эм 16:04 * cervantes спешно идёт читать пост 16:05 <+Complication> Что касается состояния сети, у меня всё в порядке... 16:05 <+Complication> Но один вопрос (на самом деле передаю из форума) про транспорт NTCP, 16:06 <+Complication> а именно: похоже ли на то, что его активация может у кого‑то вызвать проблемы с нагрузкой на CPU (они были на XP)? 16:06 <@cervantes> Должен сказать, у меня после переключения нагрузка на CPU даже ниже :) 16:07 <jrandom> ну, вы не можете его *деактивировать* (если только не читали исходники и не знаете волшебное заклинание ;) 16:07 <+Complication> Человек, упомянувший эту проблему (её трудно воспроизвести, и у меня высокой загрузки нет), сказал, что пики нагрузки на CPU, похоже, коррелировали с NTCP 16:07 <jrandom> так что полагаю, они имели в виду не принимать входящие NTCP‑соединения 16:07 <+polecat> NTCP заставляет мой router мгновенно загрузить CPU до упора; я повторил это дважды, прежде чем пришлось вручную править конфиг, чтобы вернуть router в рабочее состояние. 16:07 <jrandom> (при этом продолжая использовать исходящие NTCP‑соединения) 16:07 <+Complication> (у меня это лишь немного выше обычного уровня, вероятно, потому что качаю куда больше данных) 16:08 <+Complication> ( http://forum.i2p/viewtopic.php?t=1815 ) 16:08 <jrandom> когда устанавливается NTCP‑соединение, выполняется тяжёлая крипто‑вычислительная операция (или даже несколько) 16:08 <jrandom> если вы принимаете входящие NTCP‑соединения, можно получить сразу множество входящих попыток, поскольку в сети сотни I2P router'ов 16:09 <jrandom> polecat: это была не вина NTCP, а проблема с плохим NTP‑сервером в пуле NTP 16:09 <+polecat> Да. Значит, сам я с этим, видимо, не справлюсь. 16:09 <jrandom> (спасибо cervantes за то, что отследил тот NTP‑сервер и заставил ребят из пула его !thwap'нуть :) 16:10 <jrandom> ((и Complication за то, что сделал так, чтобы в будущем избегать этих чокнутых :)) 16:10 <@cervantes> хех, думаю, их серверные watchdog'и работают только по будням ;-) 16:10 <+Complication> Ну, текущее избегание довольно ограничено 16:10 <@cervantes> http://www.pool.ntp.org/scores/216.52.237.153 16:11 <+Complication> Надеюсь со временем прикрутить что‑нибудь более параноидальное 16:11 <+polecat> О, то есть включение NTCP больше не будет выбивать CPU на максимум? 16:11 <jrandom> (оно никогда этого не делало, polecat, просто совпадение ;) 16:12 <+Complication> «clock» в каком именно смысле? 16:12 <jrandom> (смотри ссылку от cervantes) 16:12 * polecat прикладывает Complication по голове. 16:12 <@cervantes> что ты там куришь, polecat 16:12 <+Complication> :P 16:12 <+polecat> Э, я имею в виду, съедал все такты процессора. :) 16:13 <+Complication> Если время прыгнуло на 30 секунд вперёд или назад, он мог потерять множество сессий и прибегнуть ко всяким тяжёлым‑претяжёлым крипто‑операциям 16:13 <+Complication> Это, думаю, могло «съесть» кучу циклов CPU 16:13 <+Complication> Вполне возможно, что человек на форуме видел то же самое и неверно это связал? Надо спросить… 16:13 <jrandom> ах… ну, всплески валидных входящих NTCP‑соединений дадут всплески нагрузки CPU, тогда как при только исходящем NTCP он будет пробовать общаться лишь с ограниченным числом новых NTCP‑пиров одновременно 16:14 <jrandom> нет ничего плохого в том, чтобы не включать входящий NTCP. 16:15 <@cervantes> Complication: сервер починили в середине понедельника, так что стоит посмотреть, были ли у них проблемы с тех пор 16:15 <jrandom> ок, у кого‑нибудь ещё есть темы для обсуждения? 16:16 <+Complication> cervantes: да, стоит попробовать 16:16 <@cervantes> Мне сообщали, что у некоторых периодически пропадают leases (записи в leaseSet)… это известная проблема? 16:16 <+void> насколько реализация NTCP отличается от SSU? 16:17 <+polecat> Как понять, что мы теряем leases? 16:18 <jrandom> void: в NTCP немного выше накладные расходы по полосе на одно сообщение (хотя, возможно, это компенсируется более эффективной реализацией надёжной передачи в ОС) 16:18 <+Complication> polecat: на tunnels.jsp не будет показано ни одного tunnel для конкретного tunnel pool (например, "shared clients") 16:18 <jrandom> cervantes: ага, наши показатели успешной сборки tunnel всё ещё не там, где нужно 16:18 <+void> polecat: левая панель консоли router так и сообщает 16:18 <+Complication> И как говорит void, левая боковая панель консоли это подскажет 16:19 <+polecat> У меня часто всплывают сообщения «No leases»… это вы и имели в виду, да? 16:19 <@cervantes> ага 16:20 <+polecat> Обычно это и убивает моё IRC‑соединение. Думал, так и должно быть! 16:21 * jrandom вздрагивает 16:24 <+tethra> лол ;) 16:25 <jrandom> ок, у кого‑нибудь есть что‑нибудь ещё для встречи? 16:25 <@cervantes> jrandom: есть ли прогресс по syndie в последнее время, или ты был занят NTCP/исправлением багов/поиском ISP/ездой на велосипеде ? 16:27 <+tethra> есть новости по feedspace или мне лучше просто пойти на их eepsite? 16:28 <jrandom> когда живая сеть накрылась, я отложил syndie в сторону. но теперь, когда сеть возвращается в строй, syndie снова отнимает моё время, и я надеюсь вскоре выпустить небольшой CLI (интерфейс командной строки)‑систему (а затем, опираясь на отзывы пользователей, появятся «точечные» GUI) 16:28 <jrandom> (реализованный SWT GUI в неплохой форме, но, вероятно, лучше начать с CLI, чтобы скорректировать ожидания) 16:29 * jrandom ничего не слышал новостей о feedspace 16:29 <@cervantes> круто 16:29 <jrandom> frosk: есть новости? :) 16:29 <+polecat> Рад, что ты снова работаешь над syndie. Новая версия звучит многообещающе. Есть мысли насчёт ACL (списки контроля доступа) для задач вроде удаления блогов с узла, или выполнения административных действий, не зависящих от аккаунта? 16:30 <@cervantes> <jrandom> DELETE FROM messages WHERE postedOn <NOW()-14*24*60*60; 16:31 <jrandom> локальные архивы, вероятно, останутся по сути доверенными (поскольку если у вас есть доступ к локальной БД архива, вы можете менять файл как угодно) 16:32 <jrandom> однако для общих блогов да, там предусмотрен целый набор криптографических структур для аутентификации и/или авторизации постов и изменений 16:33 <jrandom> (но будет и способ просматривать «неавторизованные» посты, хотя они будут сильно на обочине) 16:33 <+polecat> Уверен, как только кто‑нибудь зальёт синдикаты тысячами гигантских постов, техника физического удаления постов будет доведена до совершенства. 16:34 <+tethra> хе-хе 16:35 <jrandom> физическое удаление тривиально; вопрос в том, какие посты принимать изначально ;) 16:36 <jrandom> (мне неинтересно превращать syndie в платформу для распространения фильмов и т. п.) 16:36 <+polecat> Нельзя быть уверенным, что принимаешь, пока не примешь образец. Я вижу это как разрешение только белого списка блогов и допуск новых ID на испытательный срок перед добавлением, с мгновенным удалением при обнаружении спама. 16:36 <jrandom> ага 16:37 <+polecat> Меня больше интересует применение для сведения потоков бесед вместе: можно сделать BBS без центрального сервера — только общий тег! 16:37 <jrandom> (вручную допускать новые ID, вручную кикбанить ID, которые флудят, и т. д.) 16:37 <jrandom> для этого даже есть встроенная поддержка в крипто, polecat :) 16:37 <+polecat> Возможно, модератор подписывает одобренные сообщения для BBS, а люди забирают списки одобрений из блога модератора. 16:38 <+polecat> О, отлично. 16:38 <@frosk> jrandom: последнее время работаю над GUI, но это трудно совмещать с началом новой работы :( 16:39 * cervantes связывается с отделом кадров, чтобы уволить frosk 16:40 <jrandom> о, круто, надеюсь, когда syndie начнёт толкать склеенную HTTP‑синдикацию, мы снова тебя соблазним ;) 16:40 <@frosk> по крайней мере, мой начальник теперь следит за разработкой I2P :) 16:40 * jrandom машет начальнику frosk 16:40 <@frosk> о да, я всё ещё намерен (чёрт побери!) :) 16:40 <jrandom> (дайте frosk больше отгулов, он нам нужен!) 16:41 <@cervantes> надеюсь, он не прочитает, как ты выкладываешь секретную информацию компании в свой блог syndie 16:41 <bar> GUI — это хорошо, нам нравится GUI. ты прощён. 16:41 <+Complication> Хехе :) 16:41 <@frosk> странно зайти к нему в кабинет и застать за чтением syndie :) 16:41 <jrandom> ха, круто 16:42 <+polecat> Поздравляю, frosk: даже если тебя уволят в позоре и бесславии, ты хотя бы показал ещё одному человеку, насколько классным может быть syndie. 16:43 <@frosk> хе-хе, ага 16:43 <+tethra> ха-ха 16:44 <@frosk> GUI (на SWT) есть/будет тестовой площадкой для всего, что связано с feedspace, чтобы запустить проект 16:44 <jrandom> r0x0r 16:45 <+void> jrandom: возможно, стоит кросспостить в syndie всё, что уходит в рассылки? 16:45 <jrandom> нам бы полностью слить это с SWT GUI syndie (базовая парадигма — браузер, хотя во вкладках не отображаются HTML‑страницы) 16:46 <+polecat> Было бы неплохо. Похоже, я больше не получаю рассылку. 16:46 <jrandom> void: кому‑нибудь довольно просто написать небольшой шелл‑скрипт, чтобы направлять procmail в Syndie CLI 16:46 <@cervantes> эти навороченные SWT GUI привязаны к приложениям? или это оболочки для CLI‑исполняемых файлов, или они используют TCP и т. п.? 16:46 <@frosk> звучит логично 16:46 <jrandom> (если правильно помню, у меня давно был пост в блоге с объяснением, как использовать Syndie CLI для вставки постов) 16:47 <+polecat> Сейчас можно делать RSS‑ленты и подавать их в syndie, хотя это пока довольно костыльно. 16:47 <jrandom> cervantes: JDBC в обработчиках событий, встроено вместе с вызовами JNI и msvc, разумеется ;) 16:47 * jrandom ныряет 16:48 <+polecat> Microsoft Visual Classes? 16:49 <@cervantes> jrandom: значит, всё, что умеет говорить на SQL, может администрировать syndie? 16:49 <jrandom> (с точки зрения syndie, весь функционал по сути реализован множеством мелких CLI‑утилит, которые просто обновляют базу JDBC, а ещё есть SWT UI для просмотра БД) 16:51 <+polecat> И поскольку у базы два интерфейса — JDBC и SQL, клиент, говорящий по любому из них, может вмешиваться в работу syndie. 16:51 <jrandom> cervantes: и да и нет — значительная часть базы зашифрована, так что читаемы не все поля 16:51 <+void> текущий веб‑интерфейс останется? 16:51 <jrandom> (jdbc == sql) 16:51 <jrandom> void: нет 16:51 <+polecat> Я думал, ты говорил, что JDBC — это не глупый человекочитаемый протокол? 16:51 <+Complication> jdbc == интерфейс доступа к базам данных в Java, отдалённо похож на odbc 16:51 <jrandom> ((jdbc ~= sql)) 16:51 <+Complication> То, поверх чего говорят на SQL 16:52 <+void> jrandom: что будет с syndie.i2p/syndiemedia.i2p.net? 16:52 <+polecat> О. Ну и ладно, я всё равно никогда не любил SQL, для протокола. 16:52 <@cervantes> jrandom: значит, лучше сделать оболочку для syndieTools (tm), чем пытаться высасывать данные самому 16:53 <jrandom> void: время покажет. скорее всего, они будут 1) служить сайтом/eepsite syndie, 2) служить публичным архивом постов для синдикации и, в конце концов, когда появится веб‑интерфейс, 3) отдавать веб‑интерфейс 16:53 <+polecat> Почему бы не отправлять байткод как запросы к базе, вместо архаичных операторов COBOL? 16:53 <jrandom> ага, cervantes 16:53 <jrandom> !lart polecat 16:54 <+void> хехехе 16:54 <+polecat> Ах, моё тайное слабое место. 16:54 <@cervantes> * у вас осталось 6 lart'ов в инвентаре, на севере дверь и на полу без сознания polecat 16:54 <jrandom> cervantes: это на самом деле CLI‑приложение №3 (извлечение отдельных постов, которое идёт после приложения №2 — перечисление отдельных постов (после №1 — создание отдельных постов и после №0 — управление нимами))) 16:54 <jrandom> лол 16:54 <+tethra> ха-ха 16:55 <+Complication> предложение фичи: вместо байткода почему бы не отправлять живых агентов $agency в качестве запросов к базе? ;P 16:56 <+Complication> Проверять на безопасность было бы куда проще :P 16:56 <@cervantes> jrandom: понял 16:56 <+tethra> они при подходящем климате ведут себя как почтовые голуби, Complication? 16:56 <+Complication> tethra: только если удастся протолкнуть их через стек TCP без повреждений :P 16:56 <+polecat> Да, запросы к базе поверх CPP! 16:57 <+Complication> Полагаю, что помявшись в TCP, они могут испортиться 16:58 <+Complication> (сорри, шутки, конечно, надо держать в #i2p-chat, но иногда не удержаться) 16:58 * cervantes ощущает, что скоро надвигается baff 16:58 <+Complication> запросы к базе в виде shellcode? 16:59 <jrandom> ок, у кого‑нибудь есть что‑нибудь ещё для встречи? 16:59 <+polecat> http://www.blug.linux.no/rfc1149/ <- мы могли бы проложить I2P поверх этого, серьёзно. 16:59 * Complication предпочёл бы остаться с SQL 17:00 <+void> jrandom: есть ли у других языков, кроме Java, библиотеки для баз hsqldb? 17:01 <+Complication> OO, похоже, должны иметь, раз они, кажется, его используют 17:01 <+void> похоже, это "нет" 17:01 <+void> о, хм 17:01 <@cervantes> OpenOffice его использует, так что я бы сказал — да 17:01 <+Complication> Но я не уверен, на чём написан OpenOffice 17:01 <jrandom> насколько мне известно, нет. но можно запустить syndie поверх другой JDBC‑базы (MySQL, Oracle и т. п.) 17:01 <jrandom> OO использует Java 17:02 <+void> а для чего именно OpenOffice использует эту базу? 17:02 <+Complication> Но, похоже, использует его лишь частично 17:02 <jrandom> void: для генерации PDF и для их приложения баз данных в стиле Access 17:02 <jrandom> (среди прочего) 17:02 <+Complication> Учитывая, что он рекомендует внешний JRE 17:02 <+void> окей 17:03 <+void> но писать переносимый SQL — та ещё боль 17:03 <+Complication> если не использовать триггеры или хранимые процедуры, не должно быть большой болью, хотя 17:04 <jrandom> эх, не так уж плохо, и легко выносится наружу 17:04 <+void> особенно когда целишься в Oracle ;) 17:05 <jrandom> вообще‑то, hsqldb поддерживает pl/sql ;) 17:06 <bar> есть ли другие планы на эту базу, например для статистики, профилей пиров, netdb..? 17:06 <jrandom> нет, это только для syndie 17:06 <bar> ок 17:07 <jrandom> (хотя когда мы положим в поставку код hsqldb, мы сможем использовать его в I2P «бесплатно») 17:07 <@cervantes> поскольку syndie — это не приложение I2P, а просто приложение, которое может работать поверх I2P, верно? 17:07 <jrandom> ага, cervantes, зависимости от I2P нет 17:07 <+Complication> Хорошо держать Syndie переносимым, поскольку у него могут быть и другие транспорты помимо I2P 17:07 <bar> верно 17:08 <+Complication> Однако, полагаю, запустить много инстансов hsqldb на одной машине несложно 17:08 <+Complication> Так что если другим приложениям это понадобится, похоже, они смогут просто использовать его 17:08 <jrandom> тривиально и с нулевой ценой, если использовать базу внутри JVM 17:08 <+Complication> (желательно — свой собственный инстанс) 17:10 <+void> для SQLite нет JDBC‑драйвера? 17:11 <jrandom> не знаю, никогда не пользовался 17:11 <+void> ага, похоже, есть *что‑то* 17:13 <jrandom> ок, есть ещё что‑нибудь для встречи? 17:13 <jrandom> если нет... 17:13 * jrandom dinws up 17:13 * jrandom отступает 17:13 * jrandom размахивается 17:13 * jrandom *baf* закрывает встречу