Сообщения в Полуневдимые эхи

Re: Полуневдимые эхи

Ответ на сообщение
hugeping> Алгоритм ii-go:
hugeping>
hugeping> 1) если есть поддержка слайсов то используем её. иначе - полный синк
hugeping> 2) n = 1
hugeping> 3) берем /u/e/эха/-n:1
hugeping> 4) это сообщение есть в базе? да - не нужен синк (goto 7)
hugeping> 5) n = n * 2
hugeping> 6) идём на 3
hugeping> 7) забираем сообщения от -n:n
hugeping>
А почему бы просто не сравнить результат /x/c с тем количеством, что уже локально скачано?
revoltech to hugeping (2024-10-25 13:32:38) [ссылка]

Re: Полуневдимые эхи

Ответ на сообщение
revoltech> А почему бы просто не сравнить результат /x/c с тем количеством, что уже локально скачано?
Потому что в разных нодах могут быть особенности. Например блеклист - учитывается или нет в счётчиках? Нода может не хранить все сообщения, а только часть (последние 10000). Причём это может быть особенность как собственной ноды, так и той ноды с которой мы фетчим. Ну и другие ситуации, которые можно придумать. А хеши - надёжно.
hugeping to revoltech (2024-10-25 13:48:58) [ссылка]

Re: Полуневдимые эхи

Ответ на сообщение
hugeping> Ну и другие ситуации, которые можно придумать. А хеши - надёжно.
Чуть лучше, хранить счётчик на диске для конкретной станции - свой счётчик. Но тоже ненадёжно.
hugeping to hugeping (2024-10-25 13:50:03) [ссылка]

Re: Полуневдимые эхи

Ответ на сообщение
Номер может остаться тот же когда скажем добавили 1 сообщение, но в то же время заблеклистили 1 из середины - поэтому идея с хешами списков хешей мне кажется более работоспособной
shaos to revoltech (2024-10-25 13:53:52) [ссылка]

Re: Полуневдимые эхи

Ответ на сообщение
Количество в общем случае не показатель - сообщения могут не только добавляться, но и удаляться
shaos to revoltech (2024-10-25 13:57:26) [ссылка]

Re: Полуневдимые эхи

Ответ на сообщение
shaos> Количество в общем случае не показатель - сообщения могут не только добавляться, но и удаляться
На этот счёт спецификация явно говорит, что счётчик может только увеличиваться. Лучше стянуть один-два уже существующих локально айдишника, чем потерять какие-либо.

Это как на стрелочных дайверских часах, где безель можно вращать только в направлении против часовой стрелки. Если случайно ударить обо что-то, он повернётся в направлении уменьшения интервала. Вынырнешь раньше, зато точно с запасом кислорода.
revoltech to shaos (2024-10-25 14:05:58) [ссылка]

Re: Полуневдимые эхи

Ответ на сообщение
> На этот счёт спецификация явно говорит, что счётчик может только увеличиваться.
Но на практике у всех разные номера для тех же самых эх...
shaos to revoltech (2024-10-25 14:10:24) [ссылка]

Re: Полуневдимые эхи

Ответ на сообщение
hugeping> Потому что в разных нодах могут быть особенности. Например блеклист - учитывается или нет в счётчиках? Нода может не хранить все сообщения, а только часть (последние 10000).
Если верить документации с гитхаба idec-net, то всё это не должно уменьшать счётчик. Сообщение добавилось — инкрементировали. Сообщение удалилось — счётчик не трогаем.
revoltech to hugeping (2024-10-25 14:21:04) [ссылка]

Re: Полуневдимые эхи

Ответ на сообщение
> Но вред файлэх в чём?
1. Там передаётся нетекстовая информация т.е. через терминал уже не будет работать
2. Функционально файл из файлэхи это просто забирание файла по HTTP - зачем городить лишние абстракции?
3. Сейчас (на таверне) оно используется в основном только для раздачи порнухи и пиратских книг...
shaos to Andrew Lobanov (2024-10-25 14:22:31) [ссылка]

Re: Полуневдимые эхи

Ответ на сообщение
Сообщение можно не только заблеклистить, но и удалить
shaos to revoltech (2024-10-25 14:24:37) [ссылка]

Re: Полуневдимые эхи

Ответ на сообщение
shaos> Сообщение можно не только заблеклистить, но и удалить
Да пожалуйста, но счётчик при этом трогаться не должен.

Из https://github.com/idec-net/new-docs/blob/master/extensions.md:
> Важно: параметр неубывающий. Если в эхе удалили сообщения, то возвращаемое число не должно уменьшаться.
revoltech to shaos (2024-10-25 14:28:00) [ссылка]

Re: Полуневдимые эхи

Ответ на сообщение
в ii-php уменьшается

технически это немножко сложно его неуменьшать

это если хранить по простому в файлах

а если в SQL то там можно просто max(index) выдавать и он всегда будет расти (но фактически сообщений будет меньше)
shaos to revoltech (2024-10-25 14:37:46) [ссылка]

Re: Полуневдимые эхи

Ответ на сообщение
shaos> в ii-php уменьшается
Ну, это печально. Получается, спецификации оно не соблюдает. Соответственно, в клиентах вся завязанная на счётчики логика тоже идёт лесом.

Придётся и у себя откатить. Или перепилить на нечто подобное алгоритму из ii-go, посчитав накладные расходы.
revoltech to shaos (2024-10-25 14:49:53) [ссылка]

Re: Полуневдимые эхи

Ответ на сообщение
Там ещё идея с подменой (amend) сообщений выглядит интересной - идеологически верная альиернатива редактированию старых мессаг...
shaos to shaos (2024-10-25 14:55:13) [ссылка]

Re: Полуневдимые эхи

Ответ на сообщение
хотя не - max(index) не будет работать т.к. индекс общий на все эхи
видимо надо запрещать удалять сообщения физически...
shaos to shaos (2024-10-25 14:58:21) [ссылка]

Re: Полуневдимые эхи

Ответ на сообщение
shaos>> в ii-php уменьшается
revoltech> Ну, это печально. Получается, спецификации оно не соблюдает. Соответственно, в клиентах вся завязанная на счётчики логика тоже идёт лесом.
У меня тоже, наверное, не соблюдается в полной мере. И когда делал свою реализацию понял, что затачиваться на счётчики - потенциальная стрельба в ногу. К сожалению. На мой взгляд пример непродуманного элемента стандарта. Например, упал винт и ставишь всё заново. Откуда брать счётчик? Если у нас все базы данных зеркальные копии - то, вероятно, можно взять его у "соседа". Но рассинхронизация этих счётчиков между узлами с одинаковой эхой может произойти очень легко. К тому же, та другая нода скорее всего хранит последнее состояние моего счётчик у себя для проверки изменений при фетче. Короче, малейшие отличия в реализации и всё... А счётчик оказывается и не счётчиком сообщений и не счётчиком изменений...

Но! Главная мысль в другом. Даже если бы эта штука работала у всех одинаково и хорошо, она не решает ничего. Она просто позволяет сказать - стоит ли делать фетч или нет. Эту же вещь дают и слайсы, но надёжным способом. Важнее другая фича. А именно - да, нужно фетчить но фетчить не всё. Потому что в обычной ситуации в эхе всегда будут новые сообщения. Эту проблему тоже решают слайсы но только в режиме адаптивного фетча. Мне кажется адаптивный фетч - это вообще мое изобретение к которому я пришёл вынужденно. Все другие способы имели свои проблемы и нюансы. Но вот это "двоичное" сканирование истории - даёт хороший результат. Но.... сложно!

Конечно, сейчас хочется сказать - а давайте вернёмся и придумаем что-то более простое и надёжное и сделаем что-то среднее между ii и idec... Но боюсь, лишние потрясения нам не к чему.
hugeping to revoltech (2024-10-25 15:00:34) [ссылка]

Re: Полуневдимые эхи

Ответ на сообщение
shaos> хотя не - max(index) не будет работать т.к. индекс общий на все эхи
shaos> видимо надо запрещать удалять сообщения физически...
Идея с счётчиками работает ТОЛЬКО в условиях ii. Когда все базы одинаковы. Тогда ничего не надо городить и счётчик - полное число сообщений эхи, включая блеклист. Вот меня тоже давно грызёт мысль что нужно что-то упрощать. Но я боюсь что то менять. :)
hugeping to shaos (2024-10-25 15:03:30) [ссылка]

Re: Полуневдимые эхи

Ответ на сообщение
shaos>> хотя не - max(index) не будет работать т.к. индекс общий на все эхи
shaos>> видимо надо запрещать удалять сообщения физически...
hugeping> Идея с счётчиками работает ТОЛЬКО в условиях ii. Когда все базы одинаковы. Тогда ничего не надо городить и счётчик - полное число сообщений эхи, включая блеклист. Вот меня тоже давно грызёт мысль что нужно что-то упрощать. Но я боюсь что то менять. :)
Работает - не трогай?
+++ Никто не знает, как правильно. Так зачем же выдумывать правила?
doesnm to hugeping (2024-10-25 15:09:44) [ссылка]

Re: Полуневдимые эхи

Ответ на сообщение
doesnm> Работает - не трогай?
Тут скорее боязнь конфликтов и войны "стандартов". Всё-таки, стандартны - вторичны. Первичны - люди. Так то, по мне, нужен откат к идеям ii но с опытом полученным в idec.

И центральный вопрос, конечно, это стандартизованный способ фетча, без необходимости полного сливания индексов и без адаптивного фетча. Но для того чтобы начать думать, предлагать решения и обсуждать их -- нужно желание и осознание "проблемы". А я не уверен, что это случилось. В целом, меня устраивает как всё работает. :)

Ну и не всё так однозначно. Например, нужны слайсы или нет, если проблема фетча будет решена без них? Я бы сказал - не нужны! Но ведь действительно, бездисковый клиент мог бы пользоваться слайсами для "браузинга" сообщений! Так что рубить с плеча не стоит.
P.S. Edited: 2024-10-25 16:18:07
hugeping to doesnm (2024-10-25 15:17:34) [ссылка]

Re: Полуневдимые эхи

Ответ на сообщение
> Конечно, сейчас хочется сказать - а давайте вернёмся и придумаем что-то более простое и надёжное и сделаем что-то среднее между ii и idec... Но боюсь, лишние потрясения нам не к чему.
если shaos введёт ?h=1, то я при его запросах буду действовать по следующей стратегии, сначала смотреть хэши эх, потом дёргать изменившиеся, полностью, крохоборить и выбирать кусочки списков я не буду. думаю, это сократит трафик. потребует минимальных изменений фетчера. и сама фича в моей ноде есть сто лет в обед, только никогда не использовалась.
ahamai to hugeping (2024-10-25 15:23:14) [ссылка]

Re: Полуневдимые эхи

Ответ на сообщение
> Идея с счётчиками работает ТОЛЬКО в условиях ii. Когда все базы одинаковы.
у меня изначально было понимание что базы будут разные, и блеклист появился чуть ли не сразу
ahamai to hugeping (2024-10-25 15:24:03) [ссылка]

Re: Полуневдимые эхи

Ответ на сообщение
> Там ещё идея с подменой (amend) сообщений выглядит интересной - идеологически верная альиернатива редактированию старых мессаг...
изнаачально задумывался механизм revoke, но это бы сильно всё усложнило, проще заблеклистить и выпустить ещё раз. я не знаю, щас блеклистами не меняются вроде, а раньше менялись. заблеклистил и сделал новое, дополнительные сущности тут не нужны
ahamai to shaos (2024-10-25 15:26:07) [ссылка]

Re: Полуневдимые эхи

Ответ на сообщение
Я тут подумал и понял, что не могу предложить никакого другого варианта фетчинга. Кроме того, что сделал в ii-go (на основе слайсов). Опишу варианты, которые рассматривал.

1) Вариант с запросом "дай мне все, что позже такого-то хеша" не сработает так как порядок сообщений в базе может быть разным;

2) Вариант с хешом эхи как индикатором изменений - не решает проблему забирать не всё, а только часть. Да и предполагает хранить на диске или в базе последний хеш;

3) Вариант "дай мне всё, что пришло после такого-то времени", возможно, самый интересный. Но уже накладывает ограничения: синхронное время, необходимость делать выборку по времени итд

4) Вариант возвращать список id в обратном порядке. Идея в том что если я получаю список в обратном порядке я могу закрыть соединение в тот момент когда мне уже больше не надо. :) Но, как-то на хак похоже. А как вам? Не знаю... Нет красоты.

Получается, ничего проще слайсов и не сделать? :)
hugeping to hugeping (2024-10-25 15:32:06) [ссылка]

Re: Полуневдимые эхи

Ответ на сообщение
hugeping> Я тут подумал и понял, что не могу предложить никакого другого варианта фетчинга. Кроме того, что сделал в ii-go (на основе слайсов). Опишу варианты, которые рассматривал.
hugeping> 1) Вариант с запросом "дай мне все, что позже такого-то хеша" не сработает так как порядок сообщений в базе может быть разным;
Хотя, сработает. Если брать с разумным "запасом" на самом деле... Правда опять вопросы с блеклистами и удалениями могут быть.
hugeping to hugeping (2024-10-25 15:34:09) [ссылка]

Re: Полуневдимые эхи

Ответ на сообщение
у меня фетчер, оказывается, вообще без поддержки blacklist :)
ahamai to ahamai (2024-10-25 15:34:09) [ссылка]

Re: Полуневдимые эхи

Ответ на сообщение
shaos>> И кстати зачем родили IDEC если ii был такой уютненький и самодостаточный? ;)
revoltech> Да вот не знаю, кстати, мне пока что только расширение с list.txt полезным показалось.
Это было в ii.
+++ Лично я вижу в этом перст судьбы – шли по лесу и встретили программиста.
Andrew Lobanov to revoltech (2024-10-25 16:12:03) [ссылка]

Re: Полуневдимые эхи

Ответ на сообщение
AL>> Удивительно. 9 лет у всех всё доходит, а у тебя нет. Может, надо что-то в фетчере поменять?
revoltech> Наверное, мы о разных вещах говорим.
revoltech> 1. Фетчер по server-side слайсу качает 100 последних сообщений вечером.
revoltech> 2. За ночь в эхе появляется 103 сообщения.
revoltech> 3. Фетчер по server-side слайсу качает 100 последних сообщений утром.
revoltech> Вопрос знатокам: увидит ли клиент те несчастные три сообщения?
Зачем брать сто, а не то, чего у тебя нет?
AL>> У тебя соединения платные или что?
revoltech> У меня идеология не тратить вычислительные ресурсы там, где их можно не тратить. Пермакомпьютинг так называемый.
Внимание! Вопрос: какая у тебя OS и какое окружение? Пользуешься веб-браузером?
+++ Лично я вижу в этом перст судьбы – шли по лесу и встретили программиста.
Andrew Lobanov to revoltech (2024-10-25 16:26:17) [ссылка]

Re: Полуневдимые эхи

Ответ на сообщение
>> Но вред файлэх в чём?
shaos> 1. Там передаётся нетекстовая информация т.е. через терминал уже не будет работать
Постоянно работаю с файлами в терминале.
shaos> 2. Функционально файл из файлэхи это просто забирание файла по HTTP - зачем городить лишние абстракции?
Транспорт может быть любым.
shaos> 3. Сейчас (на таверне) оно используется в основном только для раздачи порнухи и пиратских книг...
Не подписывайся. Вопрос был концептуальный, а не по конкретным фехам.
+++ Лично я вижу в этом перст судьбы – шли по лесу и встретили программиста.
Andrew Lobanov to shaos (2024-10-25 16:26:24) [ссылка]

Re: Полуневдимые эхи

Ответ на сообщение
AL> Это было в ii.
А почему документация описывает это как IDEC-расширение?
AL> Внимание! Вопрос: какая у тебя OS и какое окружение? Пользуешься веб-браузером?
К сожалению, пользуюсь. К вопросу об ОС и окружении — Alpine Linux, X/Fluxbox.
revoltech to Andrew Lobanov (2024-10-25 16:55:30) [ссылка]

Re: Полуневдимые эхи

Ответ на сообщение
> Это было в ii.
А почему тогда list.txt и blacklist.txt перечисляется в /x/features?
curl -XGET http://idec.spline-online.ru/x/features
u/e
list.txt
blacklist.txt
x/file
x/small-echolist
x/caesium
x/c
О - кстати, а что такое x/small-echolist?
shaos to Andrew Lobanov (2024-10-25 17:10:49) [ссылка]