#  Re: В поисках идеального фетчера
Andrew Lobanov (tavern,1) → Andrew Lobanov  –  13:00:43 2016-07-07

AL> Сейчас допишу поддержку нескольких нод и подсуну этот фетчер в цезий дабы погоняю немного. Если всё нормально будет, то внедрю в апстрим.

Как и писал, получается весьма годно. Конечно, из-за того, что индекс получается одним запросом, мы получаем лишние записи в нём (в эхе 1 2 новых сообщения, а в эхе 2 - 1 и получаем индекс на обе эхи по 2 сообщения).

Ещё надо чтобы необновлённые эхи в запрос не попадали, но это вечером или завтра.
#  Re: CutieFeed
Andrew Lobanov (tavern,1) → vit01  –  06:43:58 2016-06-30

vit01> Добавил в фетчер (и в GUI-конфигуратор) сабжа возможность принудительной обрезки удалённого индекса. Такую же функцию реализует Цезий, работая со старыми станциями на 0.3, которые не поддерживают расширенный /u/e

vit01> Теперь можно с уверенностью сказать, что этот фетчер умеет всё подряд. Ну, по крайней мере, все фишки с фетчем, которые мы когда-либо придумывали.

Умеет ли он клонировать эхи и есть ли возможность задавать все параметры (ноду, эхи, клонируемые эхи) через CLI? А то я подумываю не велосипедить, а прикрутить к цезию твой фетчер.
#  Re: В поисках идеального фетчера
Andrew Lobanov (tavern,1) → vit01  –  12:11:55 2016-07-07

vit01> Тогда ничего против не имею. Надо как-то лучше друг друга понимать учиться :)

Ну с формулировками у меня всю дорогу проблему. Именно поэтому по юности в фидо я молчал =)

vit01> Реализую-ка у себя тоже этот хак с /x/c, чтобы от прогресса не отставать.

Я уже написал. Осталось только запоминание x/c для разных нод реализовать, но уже сейчас фетчер просто молниеносный.

Сейчас допишу поддержку нескольких нод и подсуну этот фетчер в цезий дабы погоняю немного. Если всё нормально будет, то внедрю в апстрим.

Ещё хочу добавить возможность формировать строку вызова фетчера в конфиге. Тогда останется только чтобы фетчер умел принимать через аргументы адрес ноды, список эх для фетча и список эх для клонирования (последнее опционально).
#  Re: В поисках идеального фетчера
Andrew Lobanov (tavern,1) → vit01  –  09:31:23 2016-07-07

vit01> Для начала не надо мешать мух с котлетами, то есть сервера с клиентами.

Фетчинг есть фетчинг. Мечта идиота у меня - создать фетчер, который бы экономил трафик и гарантировал получение всех новых сообщений.

vit01> 1. Вычисление смещения из результата /x/c - это порочная практика. Её никто никогда не предлагал и не реализовывал.

Вот я и начинаю предлагать =)

vit01> 2. На сервере /x/c не нужен. Более того, ни один серверный фетчер его не поддерживает. Эта схема необходима только для того, чтобы клиенту не фетчить creepy.14, mlp.15 и прочие питоны, в которые пишут не больше раза в неделю. Самая частая работа /x/c - это выдать на экран надпись "новых сообщений нет".

Поверх этого вычисляем максимальное приращение в эхах у аплинка и принимаем этот результат за смещение. Теряем в трафике (например, если подписаны на ленту и забираем почту раз в день, то гарантированно получаем около 100 сообщений в индексах), но получаем всё новьё. Если запоминать количество сообщений для каждой ноды отдельно, то может получиться вполне сносно. Пока в эту сторону размшляю.

vit01> 3. Расширенный /u/e используется и там, и там. Различие лишь в том, что оптимальное значение на клиенте - это 50-100, а на сервере - немного больше. Mira station фетчит каждого аплинка со смещением 200. Уже как очень долгое время.

Эту практику я считаю приемлемой, если нас не интересует гарантированное получение всех новых сообщений.

>> Читать далее
#  Дубли
Andrew Lobanov (tavern,1) → All  –  11:37:16 2016-06-24

На http://ii-net.tk/ дублируется ii://Z1rb9LRFqSlIzt94tt5k Не критично, но всё же.
#  Re: В поисках идеального фетчера
vit01 (mira, 1) → Andrew Lobanov  –  11:13:31 2016-07-07

vit01>> Запрашиваем последние -N. Если все из них новые, то запрашиваем -2N:N и так далее, подсовывая в начало.

AL> У меня на данный момент так же точно происходит (по крайней мере при построении индекса). Фигня случается, когда одна и та же эха забирается с разных узлов. В таком случае этот подход приводит к потере сообщений из-за разного порядка сообщений на разных нодах.

Вижу только единственный вариант, при котором такое может произойти.

Есть нода1 и нода2. У клиента стоит /u/e, предположим, на 50 сообщений.
В течение 10 минут на ноде1 появляются сразу 50 сообщений. В то же самое время на ноде2 появляются 10 сообщений. После этого нода2 гейтует ноду1, забирая те 50 сообщений.

Итого на ноде1 - 50 новых, а на ноде2 - 60 новых.

В этот самый момент подключается клиент и начинает фетчить сначала первую, затем вторую.
Так как у него лимит стоит 50, то с первой ноды он забирает 100 записей индекса и успокаивается. На второй ноде он обнаруживает 50 сообщений, которые у него уже есть в базе, и не трогает её дальше.

Да, действительно, потери. Но тебе не кажется, что такой интенсивный трафик в одной единственной эхе за такое короткое время - это _слишком_ маловероятно?

>> Читать далее
#  Re: CutieFeed
vit01 (mira, 1) → Andrew Lobanov  –  10:58:32 2016-06-30

vit01>> Теперь можно с уверенностью сказать, что этот фетчер умеет всё подряд. Ну, по крайней мере, все фишки с фетчем, которые мы когда-либо придумывали.

AL> Умеет ли он клонировать эхи и есть ли возможность задавать все параметры (ноду, эхи, клонируемые эхи) через CLI? А то я подумываю не велосипедить, а прикрутить к цезию твой фетчер.

Через GUI клонирование только костылём. По факту фетчер - это всего лишь одна функция:

def fetch_messages(adress, firstEchoesToFetch, xcenable=False, one_request_limit=20, fetch_limit=False, from_msgid=False, proxy=None, pervasive_ue=False, callback=None, cut_remote_index=0):

Вызывая её только с первыми двумя параметрами, ты получаешь тот самый clone.
Думаю, CLI-морду для всех возможностей ты вполне можешь реализовать сам. Если что, спрашивай.

И тут я посмотрел на неё и понял, что, оказывается, немного ввожу народ в заблуждение.

Параметр from_msgid не работает, потому это всего лишь заглушка (а в стандарте подходящего расширения просто нет, несмотря на то что сервер ii-php его поддерживает).


>> Читать далее
#  Re: В поисках идеального фетчера
vit01 (mira, 1) → Andrew Lobanov  –  09:14:19 2016-07-07

AL> 2vit01: Да я могу взять твой навороченный фетчер, но мне он показался достаточно сложным (не в духе нашей сетки, так сказать). Хочется максимальной простоты а-ля изначальный ii, но с шахматами и гимназистками.

Тогда пиши сам, какой считаешь идеальным и юниксвейным :)
Главное, чтобы он свои задачи выполнял и не тормозил на большом количестве эх.
#  Re: В поисках идеального фетчера
vit01 (mira, 1) → Andrew Lobanov  –  10:01:27 2016-07-07

vit01>> 3. Расширенный /u/e используется и там, и там. Различие лишь в том, что оптимальное значение на клиенте - это 50-100, а на сервере - немного больше. Mira station фетчит каждого аплинка со смещением 200. Уже как очень долгое время.

AL> Эту практику я считаю приемлемой, если нас не интересует гарантированное получение всех новых сообщений.

Без обид, но у тебя плохая память :)
В моём фетчере эта проблема уже решена. Передаёшь параметр pervasive_ue=True, и ни одного сообщения потеряно не будет.

Алгоритм:
Запрашиваем последние -N. Если все из них новые, то запрашиваем -2N:N и так далее, подсовывая в начало.

А насчёт максимального приращения новых сообщений идея нравится. Но большой погоды она вряд ли сделает. В любом случае, рад буду посмотреть на рабочее решение.
#  Re: Фетчинг
vit01 (mira, 1) → All  –  10:21:10 2016-06-27

AL> // Антиэхотаг, я так и не решил как лучше организовать процесс фетчинга. Просто забирать последние N сообщений индекса мне не нравится.

Именно для этого существует схема /x/c, которая пока не поддерживается в таверне, но зато сильно ускоряет процесс фетча. Вперёд за нанотехнологиями =)
#  Re: Что-то пустуем
vit01 (mira, 1) → vit01  –  19:38:40 2016-06-08

Опять сабж. Никто ничего не пишет.
#  Re: Caesium
vit01 (mira, 1) → Andrew Lobanov  –  08:39:25 2016-06-03

AL> Приложи эту инструкцию к пулл-реквесту. Чтоб было в отдельном ридми.

Уже давно приложил. До сих пор не проверял реквест?
#  Re: Спасибо Let
Difrex (mira, 14) → vit01  –  07:52:21 2016-06-02

>Теперь https://ii-net.tk и https://alicorn.tk
Это очень хорошо!
#  Re: Упрощение документации
Andrew Lobanov (tavern,1) → vit01  –  15:44:52 2016-06-11

vit01> Хотя вот прямо сейчас нам не о клиентах и базах хлопотать надо на самом деле. А о том, что молчание.

Мне как-то совершенно нечего написать.

Так сложилось, что на меня в том числе свалилась работа по контролю блокировок ресурсов в интернете (а то роскомзапрет сам не справляется со своими же блокировками). Работа тупая и нудная. Страдают пока больше всех имейджборды, онлайн казино и всяческий досуг для взрослых. Хотя недавно целая плеяда сайтов иеговистов попала под раздачу, но неясно почему.

А ещё на этой неделе ездил по командировкам в составе комиссии. Проверяли состояние необслуживаемых РКП (радиоконтрольных пунктов). Не то чтобы тяжело, но ехать 5 часов и 3 часа работать не по мне. Тем более, что впятером в легковой машинке тесновато и ноги затекают сильно.

Пожалуй, это всё интересное, что со мной произошло в последний месяц. Но не за горами отпуск. Если всё сложится, как планировалось, то отпишусь про Миасс и Тургояк. И фоток положу.
#  Re: Упрощение документации
Andrew Lobanov (tavern,1) → vit01  –  04:10:00 2016-06-10

vit01> Перенёс в Git страницы https://ii-net.tk/iidownload и https://ii-net.tk/station.html

Хорошее дело. А я всё время выкроить на цезий не могу. Есть желание на sqlite перевести базу сообщений а то.
#  Re: Что-то пустуем
Andrew Lobanov (tavern,1) → vit01  –  06:58:13 2016-06-13

vit01> // почему у тебя в ii.stat включена music.14? Она же в архиве давно.

Этот момент как-то мимо меня прошёл просто =)

На самом деле жалко эху, но в текущих реалиях хватит и трубы. Сегодня сниму её отовсюду.
#  Re: Упрощение документации
vit01 (mira, 1) → Andrew Lobanov  –  04:48:15 2016-06-16

AL> В документации не хватает информации о стандартных ответах ноды.

Ты имеешь в виду msg ok: <msgid> или error: blablabla?
У нас эти самые ответы вообще в стандарт не включены. Могу, конечно, взять те, которые сейчас в PHP-ноде, но для остальных нод они могут отличаться.
#  Re: Caesium
Andrew Lobanov (tavern,1) → vit01  –  16:00:43 2016-06-03

vit01> Уже давно приложил. До сих пор не проверял реквест?

Извини, но да. Сейчас без задних ног валяюсь с ноутом на пузе и так лень думать и пробовать. На днях обязательно попробую и смержу.

Что-то на работе ныне жесть полнейшая. Прямо не продохнуть. А ещё инстедоз этот замыслил за каким-то лешим.
#  Упрощение документации
vit01 (mira, 1) → All  –  18:08:20 2016-06-09

Перенёс в Git страницы https://ii-net.tk/iidownload и https://ii-net.tk/station.html

Информация там не поменялась (кроме мелочей и добавления idec-utils), старые ссылки делают перенаправление.

Зачем?

1. Markdown править приятнее, чем html
2. Всё в одном месте - удобнее для поиска
3. Актуальность информации меньше зависит от ii-net.tk
#  Re: Упрощение документации
Andrew Lobanov (tavern,1) → vit01  –  16:57:24 2016-06-22

vit01> Итак, можно смотреть в репозиторий new-docs в файл errors.md. На сайте пока не синхронизировал, потому что пока рано. Специально заглянул в сорцы ii-0.3 и своей ноды, чтобы всё это записать. Надо бы в скором времени стандартизировать записи об ошибках.

Здорово. Молодец, что пишешь документацию, а то плохо без неё было.

vit01> // А ещё у моего верного нетбука сдох разъём питания. Самому его не починить, так что придётся заказывать эту мелкую деталь отдельно и несколько дней подождать из-за отсутствия свободного времени.

Удачного ремонта =)

Вспомнил как сам в прошлом году жил практически без разъёма питания на нетбуке, а это у меня основная машинка (есть десктоп, но нетбук мне удобней). Бр-р-р.
#  Re: Спасибо Let
Difrex (mira, 14) → Difrex  –  07:52:52 2016-06-02

>Спасибо Let
Опа, нашел баг в своем клиенте.
#  Re: Упрощение документации
Andrew Lobanov (tavern,1) → vit01  –  04:39:02 2016-06-16

В документации не хватает информации о стандартных ответах ноды. Этот момент было бы неплохо уточнить, хотя и не критично.
#  Re: Caesium
Andrew Lobanov (tavern,1) → vit01  –  07:58:20 2016-06-01

Приложи эту инструкцию к пулл-реквесту. Чтоб было в отдельном ридми.
#  Re: Упрощение документации
vit01 (mira, 1) → Andrew Lobanov  –  05:22:32 2016-06-10

AL> Есть желание на sqlite перевести базу сообщений а то.

Тогда надо бы это вместе обговорить, чтобы позднее было бы проще поддерживать совместимость баз друг с другом.

Хотя вот прямо сейчас нам не о клиентах и базах хлопотать надо на самом деле. А о том, что молчание.
#  Re: CutieFeed
vit01 (mira, 1) → vit01  –  06:11:07 2016-06-12

В настройки сабжа добавил пункт "Разворачивать клиент на весь экран при запуске". По умолчанию отключен.

Он может пригодиться обладателям floating WM на небольших мониторах и/или виндоюзерам. А то не все же на тайловых сидят :)
Powered by iii-php v0.11