Сообщения в idec.talks

Re: Разбор idec

Ответ на сообщение
AL> И это ломает поддержку стандарта.
Ладно. Ломает, так ломает, будем контекстозависимые парсеры городить. А что насчёт /u/mc?
revoltech> А ещё предлагаю ввести /u/mc, возвращающий число, чтобы клиент знал максимум сообщений, который нода может ему отдать за один GET-запрос /u/m.
Сейчас у меня в фетчере это значение по умолчанию равно 12, пока явно не указано обратное. Было бы неплохо, если бы станция сообщала эту информацию клиенту для оптимального выкачивания мессаг.
revoltech to Andrew Lobanov (2024-10-31 05:31:53) [ссылка]

Re: тестовый архив

Ответ на сообщение
ahamai> смотрю я на это и думаю, а давайте ru.humor.14 на бон вернём?
У нас нет бона.
+++ Лично я вижу в этом перст судьбы – шли по лесу и встретили программиста.
Andrew Lobanov to ahamai (2024-10-31 05:21:40) [ссылка]

Re: Разбор idec

Ответ на сообщение
shaos> Не надо драматизировать :)
shaos> Индексы тоже пару строк кода добавляют (ну может чуть больше)
shaos> Для разнообразия можно множественные "слайсы" тоже сделать, типа
shaos> /u/e/echo.1/echo.2/-1:1/echo.3/-100:100/echo.4
shaos> будет означать, что echo.1 и echo.2 должны вернуть одно последнее сообщение, echo.3 должно вернуть 100 последних, а echo.4 должно вернуть всё - в этом случае всё будет логично и гибко ;)
И это ломает поддержку стандарта.
+++ Лично я вижу в этом перст судьбы – шли по лесу и встретили программиста.
Andrew Lobanov to shaos (2024-10-31 05:21:40) [ссылка]

Re: Разбор idec

Ответ на сообщение
ahamai> кто будет переписывать цезий или фетчеры под замену стандартов? стандарты уже такие, какие получились. у меня вопрос - чому так?
Из стандарта выкидывается то, что по факту никому не нужно. Стандарты полностью совместимы с ii. Так что не понимаю твоего бухчения. Ты можешь взять хоть свой горячо любимый ii-0.3 и работать в сети полноценно.
+++ Лично я вижу в этом перст судьбы – шли по лесу и встретили программиста.
Andrew Lobanov to ahamai (2024-10-31 05:21:40) [ссылка]

Re: Разбор idec

Ответ на сообщение
>> кто будет переписывать цезий или фетчеры под замену стандартов?
shaos> никто - сервер может поддерживать и ванильный ii без индексов, и старый IDEC где индексы в конце, и новый многоиндексный вариант - ничто ничему не противоречит!
Ну просто всё несовместимое снимается с фетча. Зачем нам поломанные узлы?
+++ Лично я вижу в этом перст судьбы – шли по лесу и встретили программиста.
Andrew Lobanov to shaos (2024-10-31 05:21:40) [ссылка]

Re: Разбор idec

Ответ на сообщение
shaos> Блин как эти ==== в этом ii-php работают?
Это знает только автор. И то вряд ли вспомнит.
shaos> Ненавижу регулярные выражения...
Что может быть проще? Грамматики? Конечные автоматы?
+++ Лично я вижу в этом перст судьбы – шли по лесу и встретили программиста.
Andrew Lobanov to shaos (2024-10-31 05:21:40) [ссылка]

Re: Срез

Ответ на сообщение
ahamai> Понятия не имею, что это слово означает, но вопросы имеются - раньше я вообще никогда не задумывался, как работают слайсы.
ahamai> Во-первых, формат. /u/e/ чётко определён, там перечисляются эхи.
Читай документацию внимательнее. Там не только эхи перечисляются.
ahamai> Почему не использовать что-то типа ?s=-100:100 или любой другой способ?
Мы и используем один из любых других способов.
ahamai> Если в фетчер ii 0.3 просунуть такой формат url и запросить что-то с ii 0.3, фетчер упадёт, не растоссив пакет, потому что будет считать -100:100 хэшем сообщения.
Почему у тебя фетчер считает имя эхи хэшем сообщения? Это явно что-то не так в ii 0.3. Зачем с аплинком на ii использовать то, что ii не умеет?
ahamai> Зачем плодить неоднозначность просто на ровном месте, там, где есть куча способов её избежать?
Никакой неоднозначности нет. Не может быть двоеточия в имени эхи. Если софт такое допускает, значит софт надо исправлять.
ahamai> Ладно, раз уж решили изнасиловать формат /u/e, почему не использовать /u/e/эха/срез/эха/срез.
Зачем?
ahamai> Это же для экономии трафика всё затевалось? А какая экономия, если у тебя может быть куча эх, и ради одной роботной, где всегда куча сообщений, тянется куча ненужных?
1. Ты тоже в максималисты подался? Затем, что лишних несколько сотен байт на фоне нескольких сотен килобайт это экономия трафика.

2. Ненужные сообщения не тянутся. Только новые. u/e, если ты забыл, даёт только индекс, но не сообщения.
ahamai> А если поодиночке - то это лишние запросы, на медленном и нестабильном интернете каждый запрос это всегда больно, и он может даже не состояться
И этот человек защищал кучу маленьких бандлов вместо всего в одном запросе.
ahamai> Формат /u/e был придуман ровно для того, что дёргать /e на каждую эху было медленно и неэффективно.
Однопоточный фетчер на срезах на перле, который тянет индекс по одной эхе и использует бандлы по 40 сообщений, утягивает клуб за 3 минуты. На медленном канале.

Он же, но с парой десятков сообщений новых сообщений работает 3-5 секунд.

Без новых сообщений он отрабатывает за 3-4 секунды.

ВНИМАНИЕ! Вопрос: куда ты так спешишь, что у тебя каждая секунда на счету?
+++ Лично я вижу в этом перст судьбы – шли по лесу и встретили программиста.
Andrew Lobanov to ahamai (2024-10-31 05:21:39) [ссылка]

Re: игры в эхах

Ответ на сообщение
>> Можно передавать уровни сокобана в plaintext-формате (.sok).
ahamai> это всё не так весело, тут играешь в одиночку. а я именно про игры всей компанией и совместную вовлечённость
Многие НРИ годятся для такого занятия. Всей гурьбой, увлекательно, разнообразно.
+++ Лично я вижу в этом перст судьбы – шли по лесу и встретили программиста.
Andrew Lobanov to ahamai (2024-10-31 05:21:39) [ссылка]

Re: Срез

Ответ на сообщение
ahamai> - если сообщений в базе мало
ahamai> + если новых сообщений в эхах разное количество, непонятно почему просто не запрашивать с каждой нужное (ну, или, с гарантией +1, +5 сообщений, это небольшой оверхед, по сравнению со случаем когда опращиваются одним запросом эхи с 1 и 110 сообщениями)
ahamai> 111
ahamai> Вообще, связка h и sf реально сокращает количество запросов и реально экономит трафик. Если это кому-то важно.
Оверхед меньше килобайта в подавляющем большинстве случаев. Это даже на 9600 бод можно не считать оверхедом. При этом ты предлагаешь более сложный и неработающий в части случаев вариант.
+++ Лично я вижу в этом перст судьбы – шли по лесу и встретили программиста.
Andrew Lobanov to ahamai (2024-10-31 05:21:39) [ссылка]

Re: игры в эхах

Ответ на сообщение
tuple> Ещё есть вариант найти мастера, сыграть в D&D.
В общем случае неудобно. Карту надо и токены.
tuple> P.S. Чур я бард-человек.
+++ Лично я вижу в этом перст судьбы – шли по лесу и встретили программиста.
Andrew Lobanov to tuple (2024-10-31 05:21:39) [ссылка]

Re: Разбор idec

Ответ на сообщение
Я честно пытался с тобой обсуждать, но ты, похоже, наркоман. Ты видишь то, чего нет.

За сим считаю, что обсуждение стандарта с тобой можно завершать. Какие счётчики? Какое скачивание лишних сообщений? Если ты не читал то, что я сюда приносил как черновик, то открой хотя бы исходники своего ii-0.3. Почитай на досуге. Сразу увидишь где ты неправ в своих претензиях. Ну а если не увидишь, то обсуждать с тобой дизайн, стандарт и реализацию тем более нет смысла.
+++ Лично я вижу в этом перст судьбы – шли по лесу и встретили программиста.
Andrew Lobanov to ahamai (2024-10-31 05:21:39) [ссылка]

Re: Срез

Ответ на сообщение
ahamai> Хэш в блеклисте это вообще ничего не меняет, нужны же "сообщения от", если в файле эхи сообщение есть, то от него и пойдёт. Если хэша нет, то отдастся вся эха. По сравнению с текущим случаем, преимуществ два - хэш гораздо более надёжный источник, чем количество сообщений, и не сработает только в одном случае: если конкретная нода инъектировала в эху сообщения сверху - но на это нужно иметь настолько серьёзные основания, что это повод говорить об этом в сисопской эхе.
Какие-то количества сообщений придумал. Нет их уже, считай. Легаси, который в скором времени выставим на мороз.
> Ну и второе - точно отдадутся только самые новые сообщения, одним запросом (я думал, реализация срезов вообще не так работает, в текущем виде она вообще какая-то непонятная, почему на все эхи один лимит, если сообщений в базе мало)
Как количество сообщений влияет на работу срезов? Out of range невозможен.
ahamai> не использовалось это никогда потому что я не вижу смысла экономить и так копеечный трафик. но на такой случай реализация в моей станции была
Если не видишь смысла экономить трафик, то тогда непонятно что тебе не нравится в том, что срез один на запрос, а не для каждой эхи отдельно. Я думал, ты байтики экономишь и не хочешь получать в индексе сообщения, которые у тебя уже есть в базе.
+++ Лично я вижу в этом перст судьбы – шли по лесу и встретили программиста.
Andrew Lobanov to ahamai (2024-10-31 05:21:38) [ссылка]

Дополнения к стандарту

Предлагаю ввести общий слайсинг вида «ключ-значение», в котором вместо диапазона можно писать all или же msgid (в таком случае берётся содержимое эхо от него):

/u/e/echo.1/all/echo.2/some_msgid_blablabla/echo.3/-10:10

А ещё предлагаю ввести /u/mc, возвращающий число, чтобы клиент знал максимум сообщений, который нода может ему отдать за один GET-запрос /u/m.
revoltech to revoltech (2024-10-31 05:14:34) [ссылка]

Re: Разбор idec

Ответ на сообщение
revoltech> /u/e/echo.1/all/echo.2/-3:3/echo.3/-10:10
И да, в моём варианте вместо диапазона легко подставить msgid, и так же легко на стороне сервера проверить, что именно там стоит. Если диапазон, берём диапазон, если msgid, берём от этого msgid.
revoltech to revoltech (2024-10-31 05:03:54) [ссылка]

Re: Разбор idec

Ответ на сообщение
Я про это тоже собирался вечером написать. Это было в bosfor
ahamai to revoltech (2024-10-31 05:03:00) [ссылка]

Re: Разбор idec

Ответ на сообщение
ahamai> Складывается впечатление, что idec это пример плохого проектирования.
На это я пытался намекнуть чуть ли не с первого дня появления здесь.
ahamai> MSGID? по логике вроде бы да.
Нет, в msgid тоже двоеточий быть не может. И длина должна быть 20 символов.

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

Я ещё могу понять, почему всё через / — это проще парсить, чем отдельно компоненты пути и компоненты HTTP query, особенно учитывая, что от HTTP в общем случае можно (и нужно) отходить. Но я не могу понять, почему бы не сделать в запросе такую же железобетонную структуру ключ-значение, как и в тегах бандла ii/ok/repto/blabla:

/u/e/echo.1/all/echo.2/-3:3/echo.3/-10:10

Этот формат (после удаления первого слэша) однозначно парсится в ключ-значение, на тикле он вообще одним сплитом преобразуется в список, читающийся через dict. И тогда и дополнительных проверок на то, где название эхи, а где диапазон, делать не нужно. Первый ключ — u со значением e, второй ключ — echo.1 со значением all и так далее. А сейчас всё как-то дико контекстозависимо получается, потенциал допустить ошибку куда выше.
revoltech to ahamai (2024-10-31 05:00:09) [ссылка]

Re: Разбор idec

Ответ на сообщение
Кстати я ошибся мой код ломает

Вечером напишу
ahamai to shaos (2024-10-31 04:52:41) [ссылка]

Re: Разбор idec

Ответ на сообщение
У меня вообще в ноде на парсере нет регулярных выражений :)
ahamai to shaos (2024-10-31 04:52:03) [ссылка]

Re: Разбор idec

Ответ на сообщение
Можно хоть xml регекспами парсить. Я спрашиваю зачем добавлять в список эх что то ещё, делать проверки которые можно было не делать, терять в прозрачности, если всё это можно было сделать кучей способов, каждый из которых лучше. Какую проблему решили добавив неэховую инфу в /u/e?
ahamai to shaos (2024-10-31 04:28:59) [ссылка]

Re: Разбор idec

Ответ на сообщение
Блин как эти ==== в этом ii-php работают? Ненавижу регулярные выражения...
shaos to shaos (2024-10-31 04:21:32) [ссылка]

Re: Разбор idec

Ответ на сообщение
> Индексы тоже пару строк кода добавляют (ну может чуть больше)
Ну ок не 2 строки, а 20, но тем не менее :)
elseif ($opts[0] == 'u' and $opts[1] == 'e') {
        $work_options=array_slice($opts, 2);
        $w_opts_count=count($work_options);

        if (
                $w_opts_count > 1 and
                strstr($work_options[$w_opts_count-1], ":")!==false
        ) {
                $buffer="";
                $numbers=explode(":", $work_options[$w_opts_count-1]);

                $a=intval($numbers[0]);
                $b=intval($numbers[1]);

                $echoareas=array_slice($work_options, 0, $w_opts_count-1);
                $messages=[];

                foreach ($echoareas as $echo) {
                        $slice = $access->getMsgList($echo, $a, $b);

                        if (count($slice) > 0) {
                                $buffer.=$echo."\n".implode("\n", $slice)."\n";
                        } else {
                                $buffer.=$echo."\n";
                        }
                }
                echo $buffer;

        } else {
                foreach($work_options as $echo) {
                        echo $echo."\n".implode("\n", $access->getMsgList($echo))."\n";
                }
        }
}
Это так в ii-php и я думаю не сильно сложнее будет поддержать "слайсы" в любом месте строки, а не только в конце...
shaos to shaos (2024-10-31 04:20:41) [ссылка]

Re: Разбор idec

Ответ на сообщение
Это надо дополнительно разбирать. Когда иожно было бы этого не делать. Это неочевидно, теряется простота. И это порождает артефакты там, где это не поддерживается. Я всё написал выше, это ненужная работа вследствие плохого дизайна. Не надо пихать что то в список эх, это кривит архитектуру.
ahamai to shaos (2024-10-31 04:10:09) [ссылка]

Re: Разбор idec

Ответ на сообщение
> если менять это, то надо убирать неэхи из стрки для эх
очевидно, что запись [-]N:M не является эхой т.к. там не точка, а двоеточие (и может быть минус вначале)
shaos to ahamai (2024-10-31 03:46:24) [ссылка]

Re: Разбор idec

Ответ на сообщение
> кто будет переписывать цезий или фетчеры под замену стандартов?
никто - сервер может поддерживать и ванильный ii без индексов, и старый IDEC где индексы в конце, и новый многоиндексный вариант - ничто ничему не противоречит!
shaos to ahamai (2024-10-31 03:42:10) [ссылка]

Re: тестовый архив

Ответ на сообщение
Ещё момент - lor-opennet.17 есть в таверне тоже, только она там глючит (сразу после сбойного сообщение оно размножается)
shaos to shaos (2024-10-31 03:39:57) [ссылка]

Re: Разбор idec

Ответ на сообщение
кто будет переписывать цезий или фетчеры под замену стандартов? стандарты уже такие, какие получились. у меня вопрос - чому так?
> будет означать, что echo.1 и echo.2 должны вернуть одно последнее сообщение, echo.3 должно вернуть 100 последних, а echo.4 должно вернуть всё - в этом случае всё будет логично и гибко ;)
если менять это, то надо убирать неэхи из стрки для эх. чтобы оно прозрачно накладывалось, а не как у меня пишет -100:100 в файле списка, потому что на это вообще не рассчитвалась. в /u/e должны быть только эхи, это изначальный стандарт
ahamai to shaos (2024-10-31 03:30:31) [ссылка]

Re: тестовый архив

Ответ на сообщение
Интересно, что ii.stat я взял с таверны, и сам добавляю туда еженедельную статистику, а там остался старый вариант остановившийся в 2018 году :)

Люди, дайте ii.14 у кого есть? Очень хочется в промежуточную историю окунутся между тем что было на alicorn и тем что сейчас - я письмо ake написал (у него на станции было), но он не отвечает...
shaos to ahamai (2024-10-31 03:22:35) [ссылка]

Re: Разбор idec

Ответ на сообщение
Не надо драматизировать :)

Индексы тоже пару строк кода добавляют (ну может чуть больше)

Для разнообразия можно множественные "слайсы" тоже сделать, типа

/u/e/echo.1/echo.2/-1:1/echo.3/-100:100/echo.4

будет означать, что echo.1 и echo.2 должны вернуть одно последнее сообщение, echo.3 должно вернуть 100 последних, а echo.4 должно вернуть всё - в этом случае всё будет логично и гибко ;)
shaos to ahamai (2024-10-31 03:17:33) [ссылка]

Re: тестовый архив

Ответ на сообщение
смотрю я на это и думаю, а давайте ru.humor.14 на бон вернём?
ahamai to ahamai (2024-10-31 00:46:10) [ссылка]

Re: тестовый архив

Ответ на сообщение
добавил в архив сравнение станций

http://ii.blcat.ru:50000/compare

чёто боты по all=1 долбятся, сервер грузят, надо будет недоделанный архив скоро погасить, доделать, разобрать и перебрать
ahamai to ahamai (2024-10-31 00:44:27) [ссылка]