RSS
Pages: 1 ... 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53
[>] Re: Разбор idec №2
idec.talks
ahamai(blackcat, 2) — shaos
2024-11-01 23:02:10


речь была о мусоре в /u/e который нужно игнорировать

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

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

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

ну блин, очевидные же вещи. протокол настолько примитивен и технология сети настолько примитивна, что как тут могут возникать такие вопросы. запрашивающий ожидает только одно, бандл. ну создал ты левый урл, получил бандл с кривыми эхами, и что? что от этого. у тебя на руках такой бандл. и что ты им сделаешь? а ничего другого ты получить не можешь. опять же вопросы инъекций, это вопросы чуть более низкого уровня, чем ii, и если сервер пропустил инъекцию, это вина не ii.

[>] я наверное тоже напишу спецификацию
idec.talks
ahamai(blackcat, 2) — All
2024-11-01 23:26:26


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

> вообще. я заметил, когда вопрос политики и проектирования уходит к программистам, они решают это с какой-то особой, программисткой точки зрения. поэтому решают вообще не ту проблему: вопрос "ты грепаешь миллион телефонных номеров но семь не подходят под фильтр" меня убил, типа лучше сделать идеальный фильтр, чем за две минуты удалить эти номера вручную, и это единственно верный способ. собственно, этот ответ объясняет вообще всё

и чем проще формат и чем меньше непонятных букв, тем больше может возникнуть желание написать клиент. для принятия решения нужно 100% пунктов, какие ты можешь выполнить. хоть одно непонятное слово может сразу подавить желание заниматься этим. желания спонтанны, но чем больше погружаешься в скуку, тем больше это тебя демотивирует. А просто меняться списками легко и приятно.

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

Там будут u/ e/ u/e u/m и u/point.

Всё. Будут ещё серверная рекомендация k/v, сейчас там только lim/XXX. это не влияет на написателей клиентов, так как это строчка в конфиге, endpoint в любом случае прописывают при начале работы в сети. это не влияет на писателей серверов, так как они делают базовую реализацию, а потом могут навешивать любые ендпоинты, и просто писать на своей станции "конфиг при подключении к станции такой-то такой-то"

И, думаю, я просто изменю list.txt, который всегда будет выдавать после описания хэш эхи, кто из клиентов-фетчеров захочет этим пользоваться. пусть пользуется, кто не захочет - и не надо.

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

[>] Re: я наверное тоже напишу спецификацию
idec.talks
ahamai(blackcat, 2) — ahamai
2024-11-01 23:31:33


Проблемы экономии трафика я не вижу, я каждый раз нажимая F5 в браузере потребляю трафика больше, чем в ii клиенте потратил бы за день. Но для этого всё равно есть list.txt, который можно даже кэшировать. lim только для новоподключившимся к большим эхам. стандарта на годовые эхи не будет, но для себя, если эха разрастётся, то поедет в эха.25 и так далее. это не вопрос спецификации, это вопрос реализации на конкретной станции.

[>] Re: я наверное тоже напишу спецификацию
idec.talks
ahamai(blackcat, 2) — ahamai
2024-11-01 23:36:22


list.txt кэшировать на сервере, чтобы уменьшить нагрузку на него

[>] Re: я наверное тоже напишу спецификацию
idec.talks
ahamai(blackcat, 2) — ahamai
2024-11-01 23:46:32


поменял list.txt

кстати, к народному фольклору. какую эху можно посмотреть клиентом но нельзя в большинстве веб-интерфейсов? эху list.txt. потому что раньше postfix обязан был быть цифрой, а теперь получили такую забавную коллизию. это можно даже как-то использовать, в духе "пиши в эху list.txt, там никто не увидит" :)

[>] Re: я наверное тоже напишу спецификацию
idec.talks
ahamai(blackcat, 2) — ahamai
2024-11-01 23:52:22


мемо забыл проставить. ну хоть так, метамемо поставлю

+++ memo:iiiiii

[>] Re: я наверное тоже напишу спецификацию
idec.talks
ahamai(blackcat, 2) — ahamai
2024-11-02 00:23:34


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

[>] Re: Разбор idec №2
idec.talks
Andrew Lobanov(tavern,1) — hugeping
2024-11-02 04:37:52


shaos>> Для минимизации количества запросов можно все эхи разом опросить - для этого придётся городить новый вызов и новый формат ответа
hugeping> Не вижу смысла минимизировать число запросов. До сих пор считаю это ложной целью.

Два чаю этому джентельмену.

+++ Лично я вижу в этом перст судьбы – шли по лесу и встретили программиста.

[>] Re: Разбор idec №2
idec.talks
shaos(spnet, 2) — Andrew Lobanov
2024-11-02 05:12:42


Ну вон я же вчера приводил замеры - каждый HTTPS запрос добавляет 3.5КБ к полезной нагрузке - будет 1000 запросов, будет лишних 3.5 мега...

[>] Re: Разбор idec №2
idec.talks
ahamai(blackcat, 2) — shaos
2024-11-02 05:24:57


Еще tcp фреймы, хендшейк и прочее. Если бы всё было так просто, все бы жили на /m и /e и были бы счастливы

[>] Re: Разбор idec №2
idec.talks
ahamai(blackcat, 2) — shaos
2024-11-02 05:27:40


Мне интересно почему срезы у нас трафик не уменьшили? До них было 2 мб в сутки, щас то 4.5 то 2.7. У тебя трафик в обе стороны считается или только входящий?

[>] Re: Разбор idec №2
idec.talks
Andrew Lobanov(tavern,1) — shaos
2024-11-02 05:50:39


shaos> Ну вон я же вчера приводил замеры - каждый HTTPS запрос добавляет 3.5КБ к полезной нагрузке - будет 1000 запросов, будет лишних 3.5 мега...

Бесплатного HTTPS не бывает. Если хочется HTTPS, всё равно будут накладные расходы.

+++ Лично я вижу в этом перст судьбы – шли по лесу и встретили программиста.

[>] Re: Стандарт
idec.talks
Andrew Lobanov(tavern,1) — Andrew Lobanov
2024-11-02 06:03:30


Очередные правки. URL тот же: http://s.spline-online.ru/idec.html

Добавил явное указание запросов бандлов по 40 сообщений. Прояснил про строку аутентификации для пушей.

+++ Лично я вижу в этом перст судьбы – шли по лесу и встретили программиста.

[>] Re: Разбор idec №2
idec.talks
shaos(spnet, 2) — hugeping
2024-11-02 06:00:12


Вроде сделал по времени сохранения - тормозов не заметил даже на больших эхах

Ща ещё немного погоняю и выложу

[>] Re: Разбор idec №2
idec.talks
shaos(spnet, 2) — ahamai
2024-11-02 06:01:39


Я считаю тупо по апачи-логам - сколько там байт написано в ответе, столько и приплюсовываю

Сегодня кстати у меня появится /u/e/lim/N/... ;)

[>] Re: Разбор idec №2
idec.talks
revoltech(spnet, 4) — ahamai
2024-11-02 06:21:31


ahamai> то есть, тебя собирается атаковать собственный аплинк.

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

[>] Re: я наверное тоже напишу спецификацию
idec.talks
revoltech(spnet, 4) — ahamai
2024-11-02 06:25:28


ahamai> кстати, к народному фольклору. какую эху можно посмотреть клиентом но нельзя в большинстве веб-интерфейсов? эху list.txt

А потому что нефиг завязываться на точку было. Сделали бы 1) что-то в духе /u/l (в моём новом несовместимом протоколе будет /r/l вместо list.txt), 2) в выводе /u/e после каждой эхи (для отличия от msgid) ставить двоеточие. И всё, никаких коллизий.

[>] Re: Разбор idec №2
idec.talks
ahamai(blackcat, 2) — shaos
2024-11-02 06:15:47


Тока он наоборот, lim/n/u/e

[>] Re: Разбор idec №2
idec.talks
ahamai(blackcat, 2) — revoltech
2024-11-02 06:27:47


Какой пойнт, если мы говорим про чистоту бандла u/e. С пойнта ты ничего не получишь по u/e

Да и пойнт тебе с u/e ничё не сделает. Он может легально с u/point спаму нагнать

[>] Re: Разбор idec №2
idec.talks
ahamai(blackcat, 2) — ahamai
2024-11-02 06:31:07


Или мы про фильтрацию эх уже говорим. Не важно, я в ответе к shaos всё расписал

[>] spnet проапгрейдился до iii-php v0.9
idec.talks
shaos(spnet, 2) — All
2024-11-02 06:51:35


Смотрим если вдруг вылезут косяки с веб-интерфейсом либо пинтовым апи. Новый поинтовый апи доступен всё так же по https://sprinternet.io/iii/ (что через rewrite вызывает iii-point.php?q=/ и если кто-то напрямую дёргает ii-point.php, то с него надо будет слазить т.к. там старый код). Основное нововведение, это насильственные действия в отношении /u/e/ в особо извращённой форме :)
Я вчера показывал свой шедевральный код, который я сегодня ещё более усугубил - ща объясню.

Всё также можно делать запросы в стародавнем стиле ii:

https://sprinternet.io/iii/u/e/retro.talks/english.talks

Всё также можно делать запросы со "слайсами" в стиле IDEC (когда диапазон указанный в конце распространяется на все перечисленные эхи):

> curl -XGET https://sprinternet.io/iii/u/e/retro.talks/english.talks/-1:1
retro.talks
XOjs0DTBN77YYkJT2drY
english.talks
HOYW7nXXHb3HPKAFLz1w

Но теперь появляется возможность писать диапазоны не только в конце, но и в середине списка эх (как я уже вчера докладывал):

> curl -XGET https://sprinternet.io/iii/u/e/retro.talks/-2:2/english.talks/-1:1
retro.talks
5B3Tra1DRJEcymDcA6Gi
XOjs0DTBN77YYkJT2drY
english.talks
HOYW7nXXHb3HPKAFLz1w

Причём вместо -1:1 можно написать волшебное слово last:

> curl -XGET https://sprinternet.io/iii/u/e/retro.talks/zx.spectrum/-2:2/english.talks/last
retro.talks
5B3Tra1DRJEcymDcA6Gi
XOjs0DTBN77YYkJT2drY
zx.spectrum
1cKGi833VgPtcN7D7uDs
ZryriIaG5IJqKHX3C6kl
english.talks
HOYW7nXXHb3HPKAFLz1w

Также в середине списка можно указать волшебное слово all если вдруг какую-то среднюю эху надо выкачать целиком:

> curl -XGET https://sprinternet.io/iii/u/e/retro.talks/-3:3/english.talks/all/zx.spectrum/last
retro.talks
yceDK3BmBJnfAZQlktjd
5B3Tra1DRJEcymDcA6Gi
XOjs0DTBN77YYkJT2drY
english.talks
Nw9ofK5x70iFMTrHzjHp
HOYW7nXXHb3HPKAFLz1w
zx.spectrum
ZryriIaG5IJqKHX3C6kl

И это уже похоже на то, что revoltech предлагал вот тут ii://El8TC509rAzTVxpWWAaa

А сегодня я даже сделал возможным указывать хеш, начиная с которого надо возвращать список хешей как revoltech предлагал вот тут ii://KmXTgt056WiPcGcdA9Mv т.е.

> curl -XGET https://sprinternet.io/iii/u/e/retro.talks/5B3Tra1DRJEcymDcA6Gi/english.talks/all/zx.spectrum/last
retro.talks
5B3Tra1DRJEcymDcA6Gi
XOjs0DTBN77YYkJT2drY
english.talks
Nw9ofK5x70iFMTrHzjHp
HOYW7nXXHb3HPKAFLz1w
zx.spectrum
ZryriIaG5IJqKHX3C6kl

Более того - можно указывать только первые символы хеша ;)

> curl -XGET https://sprinternet.io/iii/u/e/retro.talks/5B3T/english.talks/all/zx.spectrum/last
retro.talks
5B3Tra1DRJEcymDcA6Gi
XOjs0DTBN77YYkJT2drY
english.talks
Nw9ofK5x70iFMTrHzjHp
HOYW7nXXHb3HPKAFLz1w
zx.spectrum
ZryriIaG5IJqKHX3C6kl

Главное чтобы оно было не цифрой, иначе оно будет ругаться.

Ну и конечно же анонсированный вчера /u/e/lim/N/... :)

> curl -XGET https://sprinternet.io/iii/u/e/lim/3/retro.talks/english.talks/zx.spectrum
retro.talks
yceDK3BmBJnfAZQlktjd
5B3Tra1DRJEcymDcA6Gi
XOjs0DTBN77YYkJT2drY
english.talks
Nw9ofK5x70iFMTrHzjHp
HOYW7nXXHb3HPKAFLz1w
zx.spectrum
MPaCqYswUePWAAfiioBL
1cKGi833VgPtcN7D7uDs
ZryriIaG5IJqKHX3C6kl

Я вчера написал, что lim нельзя использовать вместе со слайсами, а сегодня понял, что можно, но только если lim указывается правее слайсов :)

> curl -XGET https://sprinternet.io/iii/u/e/retro.talks/-4:4/lim/3/english.talks/zx.spectrum
retro.talks
H50pJyclcYjeJbXBAi8k
yceDK3BmBJnfAZQlktjd
5B3Tra1DRJEcymDcA6Gi
XOjs0DTBN77YYkJT2drY
english.talks
Nw9ofK5x70iFMTrHzjHp
HOYW7nXXHb3HPKAFLz1w
zx.spectrum
MPaCqYswUePWAAfiioBL
1cKGi833VgPtcN7D7uDs
ZryriIaG5IJqKHX3C6kl

т.е. [-]N:M действует влево (как и all, last и hash), а lim действует вправо!

Ну и напоследок - выдача сообщений сохранённых позже какого-то времени :)

> curl -XGET https://sprinternet.io/iii/u/e/retro.talks/english.talks/zx.spectrum/1730472839
retro.talks
english.talks
HOYW7nXXHb3HPKAFLz1w
zx.spectrum

(если время совпадает, то такое сообщение тоже возвращается)

Кода это заняло не так много ( чуть больше, чем я вчера показывал ) - я больше кода выкинул, когда довыпиливал файлэхи :)

Кому интересно, то можно посмотреть на коммиты тут https://gitlab.com/shaos/iii-php

[>] Re: Разбор idec №2
idec.talks
shaos(spnet, 2) — ahamai
2024-11-02 06:52:57


> Тока он наоборот, lim/n/u/e

Не - так не получится :)

[>] Re: я наверное тоже напишу спецификацию
idec.talks
doesnm(ping,55) — ahamai
2024-11-02 07:10:47


ahamai> мемо забыл проставить. ну хоть так, метамемо поставлю

Что такое memo

+++ Никто не знает, как правильно. Так зачем же выдумывать правила?

[>] Re: Разбор idec №2
idec.talks
shaos(spnet, 2) — shaos
2024-11-02 07:22:51


По идее можно попробовать и /lim/N/u/e/ поддержать, но через хак - оно будет смотреть если это /lim/N/u/e/ то само будет переупорядочивать в /u/e/lim/N/

[>] Re: Разбор idec №2
idec.talks
ahamai(blackcat, 2) — shaos
2024-11-02 07:16:52


Тогда оно просто дублирует слайсы, смысл именно в том что оно впереди парохода

[>] Re: spnet проапгрейдился до iii-php v0.9
idec.talks
ahamai(blackcat, 2) — shaos
2024-11-02 07:18:13


Так. Я могу задать срез последней, я могу задать каждой. А если я задам не каждой, а некоторым, что будет тогда?

[>] Re: Новое лицо ii-go
idec.talks
tuple(ping,54) — hugeping
2024-11-02 07:36:46


Очень желательно сделать на станции отличие одной страницы от другой в title вкладки. А то в истории браузера сохраняется просто как:
- ping
- ping
- ping
- ...

А хотелось бы что-то вроде:
- [ping] echo/all // общая лента
- [ping] Re: разборки с IDEC // для тредов
- [ping] Жертвы разборок
- [ping] Новый протокол - VINI: VINI is not IDEC

[>] Re: Разбор idec №2
idec.talks
shaos(spnet, 2) — shaos
2024-11-02 07:37:23


Сделал

> curl -XGET https://sprinternet.io/iii/lim/3/u/e/retro.talks/english.talks
retro.talks
yceDK3BmBJnfAZQlktjd
5B3Tra1DRJEcymDcA6Gi
XOjs0DTBN77YYkJT2drY
english.talks
Nw9ofK5x70iFMTrHzjHp
HOYW7nXXHb3HPKAFLz1w

[>] Re: spnet проапгрейдился до iii-php v0.9
idec.talks
shaos(spnet, 2) — shaos
2024-11-02 07:38:50


Сделал хак для поддержки /lim/N/u/e/...

> curl -XGET https://sprinternet.io/iii/lim/3/u/e/retro.talks/english.talks
retro.talks
yceDK3BmBJnfAZQlktjd
5B3Tra1DRJEcymDcA6Gi
XOjs0DTBN77YYkJT2drY
english.talks
Nw9ofK5x70iFMTrHzjHp
HOYW7nXXHb3HPKAFLz1w

работает также как и

> curl -XGET https://sprinternet.io/iii/u/e/lim/3/retro.talks/english.talks
retro.talks
yceDK3BmBJnfAZQlktjd
5B3Tra1DRJEcymDcA6Gi
XOjs0DTBN77YYkJT2drY
english.talks
Nw9ofK5x70iFMTrHzjHp
HOYW7nXXHb3HPKAFLz1w

[>] Re: Разбор idec №2
idec.talks
revoltech(spnet, 4) — ahamai
2024-11-02 07:41:40


ahamai> Да и пойнт тебе с u/e ничё не сделает.

Без фильтрации айдишников — ой как сделает.

[>] Re: spnet проапгрейдился до iii-php v0.9
idec.talks
shaos(spnet, 2) — ahamai
2024-11-02 07:42:33


> Так. Я могу задать срез последней, я могу задать каждой. А если я задам не каждой, а некоторым, что будет тогда?

Когда ты задаёшь "срез" в конце, то он распространяется на весь список

Если надо чтобы что-то из списка брало по своему, то там надо указать свой "срез" либо волшебное слово all либо волшебное слово last

типа /u/e/echo.1/echo.2/all/echo.3/last вернёт всё для echo.1 и echo.2, но только хеш последнего сообщения для echo.3

ну ещё lim можно воткнуть в середину - вот такая запись сделает тоже самое:

/u/e/echo.1/echo.2/lim/1/echo.3

короче полная гибкость и свобода выбора :)

[>] Re: Новое лицо ii-go
idec.talks
hugeping(ping,1) — tuple
2024-11-02 07:53:09


tuple> Очень желательно сделать на станции отличие одной страницы от другой в title вкладки. А то в истории браузера сохраняется просто как:

Посмотри сейчас, лучше стало? Правда наверное не все случаи предусмотрел.

[>] Re: Разбор idec №2
idec.talks
shaos(spnet, 2) — ahamai
2024-11-02 07:52:05


ну конечно оно в каком-то смысле дублирует слайсы :)

короче с хаком теперь работает, но только применительно к /u/e т.е. например /lim/3/list.txt у меня не пройдёт ;)

[>] Re: Разбор idec №2
idec.talks
shaos(spnet, 2) — shaos
2024-11-02 07:53:48


Хак:
elseif (($opts[0] == 'u' and $opts[1] == 'e') ||
        ($opts[0] == 'lim' and $opts[2] == 'u' and $opts[3] == 'e')) {
	$work_options=array_slice($opts, 2);
	// lim/N/u/e hack
	if($opts[0] == 'lim') {
		$work_options[0] = 'lim';
		$work_options[1] = $opts[1];
	}

[>] Re: Новое лицо ii-go
idec.talks
tuple(ping,54) — hugeping
2024-11-02 07:57:45


hugeping> Посмотри сейчас, лучше стало? Правда наверное не все случаи предусмотрел.

Да, классно теперь. Только https://club.hugeping.ru/echo/all/ отображается как "club.hugeping.ru/echo/all".

[>] Re: spnet проапгрейдился до iii-php v0.9
idec.talks
shaos(spnet, 2) — shaos
2024-11-02 08:02:52


По ходу пьесы удалил около 500 строк отвечающих за файлэхи - это было порядка 20% всего кода ii-php (сейчас осталось чуть больше 2000 строк), а чтобы поддержать в /u/e/ слайсы где попало, lim/N, выдача по хешу, выдача по времени сохранения плюс хак /lim/N/e/u потребовалось добавить меньше 50 строк...

[>] Re: spnet проапгрейдился до iii-php v0.9
idec.talks
shaos(spnet, 2) — shaos
2024-11-02 08:05:56


> сейчас осталось чуть больше 2000 строк

там ведь ещё есть неиспользуемый сейчас транспорт MySQL - я пока думаю стоит туда вообще залезать или остаться в рамках файлового представления

наверное надо пересаживаться на MySQL хотя бы для хранения метаданных типа цепочек тредов, таблиц поиска и т.д.

[>] Re: Новое лицо ii-go
idec.talks
hugeping(ping,1) — tuple
2024-11-02 08:07:04


hugeping>> Посмотри сейчас, лучше стало? Правда наверное не все случаи предусмотрел.

tuple> Да, классно теперь. Только https://club.hugeping.ru/echo/all/ отображается как "club.hugeping.ru/echo/all".

Ага, ещё несколько случаев добавил. Если что, пиши. Для меня web ii-go сейчас близок к идеалу. Но иногда что-то меняю по мелочи.

[>] Re: spnet проапгрейдился до iii-php v0.9
idec.talks
ahamai(blackcat, 2) — shaos
2024-11-02 08:04:26


Жесть. Ты теперь обязан жениться на u/e

[>] Re: spnet проапгрейдился до iii-php v0.9
idec.talks
hugeping(ping,1) — shaos
2024-11-02 08:41:46


shaos> Если надо чтобы что-то из списка брало по своему, то там надо указать свой "срез" либо волшебное слово all либо волшебное слово last

Просто на всякий случай. В слайсах, установка limit в 0 означает безлимит.

https://hugeping.tk/u/e/idec.talks/0:0 - всё
https://hugeping.tk/u/e/idec.talks/-1:0 - последнее (ну или -1:1)

[>] Re: Новое лицо ii-go
idec.talks
ahamai(blackcat, 2) — tuple
2024-11-02 08:37:47


Зашёл на станцию hugeping а там уже будущее :)

[>] Re: Новое лицо ii-go
idec.talks
ahamai(blackcat, 2) — ahamai
2024-11-02 08:39:10


Моё сообщение, написанное в 8:04 пришло туда в 8:38, чёт долго :)

[>] Shaos linux.14
idec.talks
ahamai(blackcat, 2) — All
2024-11-02 08:45:19


Не могу понять, но от тебя периодически перестаёт ходить эха linux.14. Вот только эта эха. Проблему понять не могу

[>] Re: Разбор idec №2
idec.talks
Andrew Lobanov(tavern,1) — shaos
2024-11-02 11:22:19


shaos> Ну вон я же вчера приводил замеры - каждый HTTPS запрос добавляет 3.5КБ к полезной нагрузке - будет 1000 запросов, будет лишних 3.5 мега...

Если в каждой эхе у нас новых сообщений от 128 до 256 штук, то для 1000 запросов, с учётом того, что запрашиваем по одной эхе, нужно запросить 125 эх. Это раз

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

Бандлы по 40 сообщений... Если мы возьмём те самые 125 эх, в которых у нас по 256 новых сообщений и начнём их выкачивать такими вот бандлами, у нас всё равно будет 800 запросов, что меньше заявленного тобой ужасного числа на 20%.

В реальности такой оверхед будет только для новых узлов и разово. Дальше, при фетчинге хотя бы пару раз в день, количество запросов будет от силы несколько десятков на сессию, что меньше 10% от заявленного.

+++ Лично я вижу в этом перст судьбы – шли по лесу и встретили программиста.

[>] Re: Shaos linux.14
idec.talks
ahamai(blackcat, 2) — ahamai
2024-11-02 11:48:12


1. я снял срезы. они почему-то вообще трафик не экономят, как был 2-4 мб так и остался, хотя x/h сильно его экономит. не понимаю, я же тяжёлые лор-опеннет и хабр.рсс тащу.

2. я создал эху spnet.uplink и поставил её фетч на тебя. поставь её фетч на меня, будем там решать проблемы нашей связи :), проблем, эх для гейтования и прочего, думаю здесь этому не место.

[>] Re: Разбор idec №2
idec.talks
ahamai(blackcat, 2) — revoltech
2024-11-02 11:49:48


> Без фильтрации айдишников — ой как сделает.

каким образом? у нас есть только два состояния - мы делим строку и получаем список эх. для каждого, что мы решили как эху:

1. у нас есть файл с такой эхой - отдаём этот файл
2. у нас нет файла с этой эхой, отдаём пустую эху

третьего не дано

[>] Re: я наверное тоже напишу спецификацию
idec.talks
ahamai(blackcat, 2) — revoltech
2024-11-02 11:51:55


> А потому что нефиг завязываться на точку было. Сделали бы 1) что-то в духе /u/l (в моём новом несовместимом протоколе будет /r/l вместо list.txt), 2) в выводе /u/e после каждой эхи (для отличия от msgid) ставить двоеточие. И всё, никаких коллизий.

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

[>] Адаптивный фетч с несколькими эхами сразу
idec.talks
hugeping(ping,1) — All
2024-11-02 12:30:42


Я после всех этих обсуждений засомневался, а может быть и правда нам нужны множественные слайсы в u/e? Может быть это нужно для адаптивного фетча? Поговорил с Андреем и стало понятно что вроде бы не нужны.

# Идея

Идея, на самом деле, простая. Мы сканируем последние сообщения станции но ровно до тех пор, пока сами не решим - хватит или нет. А решение принимаем на основе анализа полученных msgid (есть они в базе у нас или нет?). В этом отличие от просто фетча последних n сообщений.

# Алгоритм

1. Выбрали N=16, LIM=16
2. Выбрали набор эх elist: echo.1, echo.2, ... echo.i
3. Сделали запрос /u/e/echo.1...echo.i/-N:LIM
4. Для каждой эхи в ответе:
- Все отсутствующие msgid добавляем в список, который добавляем в голову msgids
- Если таких сообщений нет или ответ содержит меньше записей чем N (выгребли всё)
удаляем эху из набора elist
5. Набор elist пуст? Да! иди на 10
6. LIM=N, N = N * 2
7. N > 1024 ? Если да, бросаем это дело и начинаем полный фетч
8. Перейти на 3
10. Делаем запрос(ы) /u/m для всех id из списка msgids

Числа 16 и 1024 тоже эвристические. 1024 - просто способ закончить фетч если мы видим, что адаптивный фетч всё никак не дойдёт до "дна".

# Можно ли проще?

Моя станция работает по-другому. Основное отличие в том, что я делаю запросы -N:1 а не -N:LIM и просто проверяю -- а есть ли у меня это сообщение или нет? Если есть, потом я делаю фетч на -N:N.

1. Выбрали N=16
2. Выбрали эху
3. Сделали запрос /u/e/echo/-N:1
4. Сообщение есть? Или такое же как в прошлый раз? На 10
5. N = N*2
7. N > 1024 ? Если да, бросаем это дело и начинаем полный фетч
8. Перейти на 3
10. Делаем запрос /u/e/echo/-N:N
11. Делаем запрос /u/m для всех id из ответа пп.10 которых у нас нет

Это немного упрощает алгоритм и, возможно?, делает ситуацию безопасней, если во время сканирования добавились новые сообщения, но я работаю только с одной эхой. Если такую штуку делать со многими эхами сразу то:
a) понадобятся множественные slice
b) алгоритм станет сложнее, а не проще

Но, конечно, можно брать просто максимальный N для всех эх а потом делать один общий фетч.

1. Выбрали N=16
2. Выбрали набор эх elist: echo.1, echo.2, ... echo.i
3. Сделали запрос /u/e/echo.1...echo.i/-N:1
4. Для каждой эхи в ответе:
- Если сообщение есть или получили тот же id что в прошлый раз, удаляем эху из набора
5. Набор elist пуст? Да! иди на 10
6. N = N * 2
7. N > 1024 ? Если да, бросаем это дело и начинаем полный фетч
8. Перейти на 3
10. Делаем запрос(ы) /u/e/все эхи/-N:N
11. Делаем запрос(ы) /u/m для всех id из ответа пп10

Написал просто, чтобы не забыть.

Pages: 1 ... 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53