разговоры об ii/IDEC


\/ . revoltech to ahamai @ Re: Разбор idec №2 31/10/24 20:11

ahamai> это полностью ломает единость формата. /u/e должна быть везде, и должна реализовываться в 3 строках.

Так она и реализуется в 3-5 строках, если нормальные ЯП юзать. И поведение от запроса со слайсом на ноду, которая слайсы не реализует, меняться не будет: этот последний компонент просто не является валидным именем эхи. Нода, которая не умеет слайсить, должна его просто отбросить. Если она так не делает, чини реализацию.

kk8c1G... . ОТВЕТИТЬ



\/ . shaos to ahamai @ Re: Разбор idec №2 31/10/24 20:21

> Во-первых, изначально у меня была ошибка, ?sf не прозрачна, её нельзя добавить вообще везде. Потому что есть php-ноды, и там должно быть &.

Ну я ведь у себя поддержал list.txt?h=1 :)

Просто парсить надо будет вручную

Kmf2eY... . ОТВЕТИТЬ



\/ . ahamai to revoltech @ Re: Разбор idec №2 31/10/24 20:32

> Так она и реализуется в 3-5 строках, если нормальные ЯП юзать. И поведение от запроса со слайсом на ноду, которая слайсы не реализует, меняться не будет: этот последний компонент просто не является валидным именем эхи. Нода, которая не умеет слайсить, должна его просто отбросить. Если она так не делает, чини реализацию.

1.
> ВЕСЬ ЗАПРОС СПИСОК ЭХ
> ПОЛУЧИЛИ СПИСКИ
> ЕСЛИ ЕСТЬ ЛИМИТ, УСТАНОВИЛИ
> становится
> ПОЛУЧИЛИ СПИСОК ЭХ
> ПРОВЕРИЛИ ПОСЛЕДНЮЮ
> ЕСЛИ ЭТО СРЕЗ, ТО РАСПАРСИЛИ СРЕЗ
> СОХРАНИЛИ ЛИМИТ
> УДАЛИЛИ ПОСЛЕДНЮЮ ЭХУ
> ПОЛУЧИЛИ СПИСКИ
> УСТАНОВИЛИ ЛИМИТ, ЕСЛИ ЕСТЬ

2. речь не о нормальных языках, речь о том, чтобы реализовать это в 3х шагах даже на posix shell и чтобы это было просто. ну не нужны там они нахрен, есть куча других неймспейсов, там пусть будут парсеры, шмарсеры и прочее. в чём проблема, запустил свой парсер, который можно расширять хоть до посинения, нету его - фалбакнулся. а "ну легко же реализовать" - это не дизайн. теперь туда включается и критерий "нужны нормальные языки". а сеть планировалась работать в аномальных условиях, хоть на дискете с openbsd. и для этого все протоколы простые. и не надо их усложнять, они не для того делались.

3.
ii.dev.2014
1396262024
51t
lenina,1
ksa242
Re: Адреса msgfrom/msgto
...
список - либо /e

номер
номер
номер

либо /z/e (у эхи есть символ ".", у номера сообщения - нет)

эха
номер
номер
номер
эха
номер
номер
номер
...

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

KNXDnF... . ОТВЕТИТЬ



\/ . shaos to ahamai @ Re: Разбор idec №2 31/10/24 20:30

Ну расширенный слайсами /u/e существует уже тоже 10 лет и поддержан кучей клиентов и серверных реализаций - так что проще добавить одну проверку в blcat.ru дабы исключить падучесть и далее сосуществовать в мире и согласии :)

2uKGzC... . ОТВЕТИТЬ



\/ . ahamai to shaos @ Re: Разбор idec №2 31/10/24 20:36

> Просто парсить надо будет вручную

это не есть прозрачная замена. прозрачная замена, это когда ты в любом клиенте просто прописываешь этот url вместо нужного, и ровно ничего не меняется кроме того случая, когда фильтр срабатывает, независимо от того, знает ли нода что-то или нет. если добавлять везде ?sf, то нода с запросом ?q=, ничего не знающая о ?sf, на запросе брякнется

вот /lim/ совместима с любыми существующими клиентами, просто меняешь url в конфиге и всё.

6HXYAL... . ОТВЕТИТЬ



\/ . ahamai to shaos @ Re: Разбор idec №2 31/10/24 20:41

Я вообще не про это. Я про то, что не надо было трогать протокол, который для трогания совсем не предназначался. В чём проблема была вместо проверки x/feautures всяких просто использовать новый, а при отказе - фэлбекаться? Ну самый же очевидный дизайн. Зачем там, где всё было предельно просто, зачем-то совершенно ненужно это усложнять?

MjwO6O... . ОТВЕТИТЬ



\/ . ahamai to ahamai @ Re: memo 31/10/24 20:43

или пойдёт. у меня уже столько расхождений между текущей станцией и 0.7, что надо на 0.7 переползать и уже в неё изменения вносить. в общем, вся хрень типа девочек-аватарок и advent удаляется, я перееду на 0.7

ce1Zzs... . ОТВЕТИТЬ





\/ . shaos to ahamai @ Re: Разбор idec №2 31/10/24 21:05

> тут нет никаких "что-то ещё", либо эха либо msgid.

… либо мусор

Если нет проверки на то, что тебе не подсунули мусор, то это неработоспособное решение - как POC для запуска в песочнице для ограниченного круга лиц - годится, а для реальных применений в массах - нет…

JerZ7Q... . ОТВЕТИТЬ



\/ . ahamai to shaos @ Re: Разбор idec №2 31/10/24 21:31

> Если нет проверки на то, что тебе не подсунули мусор, то это неработоспособное решение - как POC для запуска в песочнице для ограниченного круга лиц - годится, а для реальных применений в массах - нет…

ЕСЛИ МУСОР - ПАДАЙ. Не надо разбирать мусор. Топология сети такая, итить. Ты качаешь с доверенных узлов по предварительной договорённости. Формат бандла определён. Если оттуда летит мусор, то это уже красный код, не надо с него качать и не надо ничего разбирать, надо снимать с фетча.

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

Это базовый вопрос - НАХРЕНА ВЫ ЛЕЗЕТЕ В /U/E, ЕСЛИ ВЫ ТУПО ДАЖЕ НЕ ПОНИМАЕТЕ, ЧТО ЭТО И ЗАЧЕМ ЭТО НУЖНО???

ну я читаю такую ахинею
> Если нет проверки на то, что тебе не подсунули мусор, то это неработоспособное решение
и вижу люди тупо не понимают, о чём это вообще.

> а для реальных применений в массах - нет…
для каких млять применений в каких млять массах. ii это реализация строго конкретной задачи. основным критерием этой задачи является максимальная простота. НИКТО, НИКТО МЛяТЬ В ЦЕЛОМ СВЕТЕ НЕ МЕШАЕТ ТЕБЕ НАВЕШИВАТЬ СВОИ НАВОРОТЫ. Ну оставь ты млять в покое /u/e, это лингва франка, это база, это долгими бессонными ночами вытачивалось, чтобы удалить всё лишнее и оставить только базу, из которой можно свинтить что угодно, хоть босфор, хоть улисс - и никто при этом не трогал /u/e. Когда человечество вымрет и останутся только ветки и палки, чтобы можно было быстро собрать /u/e, как базовый компонент. И ПОЭТОМУ ОН МЛЯТЬ ДОЛЖЕН БЫТЬ ОФОРМЛЕН, ПРОСТ И ОДНОЗНАЧЕН, чтобы любая макака могла написать его реализацию. Любая. На любом языке. С любым млять навыком. Не мусор собирала.

И это млять не POC. Это и есть млять сама концепция сети. Нахрена переписывать базовый класс, наследуйся от него и потом пиши, как хочешь. А основные 4 стержня, которые работают в любых, любых млять условиях, они для того и сделаны такими простыми чтобы быть такими простыми. Без проверок, х..рок и прочей хрени. Обмен между нодами регламентируется ТОЛЬКО самими нодами. Могут хоть через git обмениваться и индексы по timestamp генерировать, это изначально была валидная версия обмена. Но помимо этого должна быть база, которая должна работать ВСЕГДА, ВЕЗДЕ, она должна быть МАКСИМАЛЬНО ПРОСТОЙ и МАКСИМАЛЬНО ВОСПРОИЗВОДИМОЙ. Поверх этого уже какие хошь расширения, это вообще пофиг, лишь бы клиент и сервер поддерживали. Но когда есть два стандарта на работу /u/e (один мой, другой неправильный (ц)) - это уже маразм.

Я смотрел старую переписку и кто какие фишки предлагал. Это могло быть перетряханием стандартов, какой из них стандартнее, уже тогда. Но я волевым решением отправил всех в лес и зафиксировал самую базовую базу, которая могла быть. Поэтому это всё и работает, поэтому и не было обсуждений стандартов а просто всё работало, а простота рекламировала эту технологию саму за себя. А потом /u/e взяли и изнасиловали.

+++ memo:marazm

marazm... . ОТВЕТИТЬ



\/ . ahamai to ahamai @ Re: Разбор idec №2 31/10/24 21:36

Многие проблемы решаются кодом, а ещё большие её отсутствием. Плохой дизайн нельзя исправить кодом, или стандартами. Как пример это e-mail/smtp.

47w3N4... . ОТВЕТИТЬ



\/ . ahamai to shaos @ Re: Разбор idec №2 31/10/24 21:48

и да, если ты делаешь расширяемый формат, то делай его РАСШИРЯЕМЫМ. потому что кроме x:y это расширение не умеет, и добавить туда, не делая очередные псевдозаменители эх. Типа /эха/x;y/эха/x:y

bosfor имел полноценное key/value api, и при простой внутренней структуре позволял делать крутые вещи, типа выборок "дай мне сообщение с такого-то таймстампа по такой-то таймстамп", хоть в конкретных эхах, хоть во всех, хоть с выборкой по юзеру. и при этом был в обе стороны полностью совместим с ii. можно было просто сделать api, и там кто хочет в серверах, кто хочет в клиентах, использует хоть выборку по сообщениям, хоть выборку по msgid, а клиент/фетчер уже схемой в конфиге указывает, что и где он берёт. отсутствие нужного фильтра просто не фильтрует по этому параметру. у босфора просто ни одного клиента не было, чтобы это где-то использовать :) но когда люди сами пишут клиентов - это самая разумная схема. нет, надо наделать проверок в клиенте, проверок в сервере, чтобы хакнуть /u/e, и теперь у нас два /u/e

XhwLCb... . ОТВЕТИТЬ



\/ . ahamai to ahamai @ Re: Разбор idec №2 31/10/24 21:54

/u/e и /u/m захаркожены в урлах именно потому что они топорные, примитивные и неизменяемые. у босфора был свой неймспейс /bb, который решал все задачи и слайсов, и ...яйсов. делай выборку так, как тебе хочется, делай проверку так, как тебе хочется. кода каждая проверка занимала примерно одну-две строчки. Поэтому любое расширение добавить дело было пары минут. И это расширение даже не надо делать мейнстримным, это может быть расширение, которое служит чисто для удобство обмена двух нод (как твой /h/x). И вообще ничего нигде не ломает и не хачит by design. Единый урл, который собирает все key/value в словарик, примерно как тэги в первой строке каждого ii сообщения типа repto, которые тоже позволяют развивать формат, добавляя свои тэги, которые не понимающие их станции игнорят (см. elp, там были тэги topicid и tags, и elp тоже отлично гейтовался в ii)

M5lWfv... . ОТВЕТИТЬ



\/ . ahamai to ahamai @ Re: Разбор idec №2 31/10/24 22:00

кстати, я нашёл в инете сырцы bosfor. поменять размер msgid с 11 до 20 и добавить обязательные точки в эхах - и будет вообще полноценная прозрачная замена, полностью совместимая с ii и при этом обладающая развитым api

7Q2hzY... . ОТВЕТИТЬ





\/ . shaos to ahamai @ Re: Разбор idec №2 31/10/24 22:30

> Ты качаешь с доверенных узлов по предварительной договорённости.

Каких нахрен доверенных узлов? Оно всё в интернет торчит голыми жопами - кто-то напишет сырой клиент который при переполнении чего-нибудь где-нибудь зашлет тебе дамп своей памяти вместо корректного запроса и чо?

PScN9S... . ОТВЕТИТЬ



\/ . ahamai to shaos @ Re: Разбор idec №2 31/10/24 22:35

> Каких нахрен доверенных узлов?

таких же как в фидо

> Оно всё в интернет торчит голыми жопами - кто-то напишет сырой клиент который при переполнении чего-нибудь где-нибудь зашлет тебе дамп своей памяти вместо корректного запроса и чо?

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

4zzPKR... . ОТВЕТИТЬ



\/ . shaos to ahamai @ Re: Разбор idec №2 31/10/24 22:40

> которые не понимающие их станции игнорят

А вдруг не игнорят? Там ведь может быть только либо ii/ok, либо repto/msgid если там не ii/ok то это должно быть repto - где написано что там может быть мусор? :)

oA5pej... . ОТВЕТИТЬ



\/ . ahamai to shaos @ Re: Разбор idec №2 31/10/24 22:57

> А вдруг не игнорят? Там ведь может быть только либо ii/ok, либо repto/msgid если там не ii/ok то это должно быть repto - где написано что там может быть мусор? :)

парсинг сообщения это вообще другая тема, с запросом сообщений не связанная

а вообще, ii/ok там только для того, чтобы в любом случае не было пустой строки, которая где-нибудь может отфильтроваться.

zMRleU... . ОТВЕТИТЬ



\/ . shaos to ahamai @ Re: Разбор idec №2 31/10/24 23:15

если бы создатели сетевых протоколов всецело доверяли друг другу, то интернет бы давно умер…

XMaT1z... . ОТВЕТИТЬ



\/ . ahamai to shaos @ Re: Разбор idec №2 31/10/24 23:34

> если бы создатели сетевых протоколов всецело доверяли друг другу, то интернет бы давно умер…

если бы все протоколы были одинаковые, они были бы не нужны, достаточно было бы одного

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

8wFxFw... . ОТВЕТИТЬ



\/ . ahamai to All @ голдификация вестей 31/10/24 23:41

голдифицировал ябическую тему "Вестям Linux не нравится". На это ушло несколько недель, исправления адского форматирования, перевода с транслита. Из более 200 сообщений выбрал в итоге 89. Думаю, другие выбранные темы будут попроще.

глянуть можно здесь: http://ii.blcat.ru/rr/lor.gold/Ct8espwtEvwcPsbg9bTU

ну или тянуть lor.gold с меня :)

3ckPQF... . цепочка . ОТВЕТИТЬ







\/ . ahamai to shaos @ Re: Разбор idec №2 01/11/24 00:19

это простая смена эндпоинта:

где было прописано http://ii.blcat.ru/u/, будет написано http://ii.blcat.ru/lim/100/u/

какая разница где эндпоинт задан? он всё равно записан в конфиге, и туда можно написать как первую строку, так и вторую. с запросом ровно ничего не делается, он ровно такой же. /list.txt, только эндпоинт другой

8GAEOa... . ОТВЕТИТЬ



\/ . ahamai to ahamai @ Re: Разбор idec №2 01/11/24 00:29

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

q5yzLY... . ОТВЕТИТЬ



\/ . ahamai to All @ Разбор idec №3 01/11/24 01:23

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

На вопрос "где архив, где посмотреть сообщения за какой-то год" говорят "архив не нужен, эхи для общения". Это IRC для общения, а формат сохранения сообщения предусматривал их сохранение. Если это для общения, зачем тогда вообще нужны эхи на кучу тысяч сообщений, почему их не trunc-ать со старостью. То есть, в архив выгрузить эху нельзя, но старые сообщения хранить будем. Но будем рекомендовать их не выкачивать. Зачем делать распученые эхи, таская архивы, которые и не архивы вовсе. То есть, взяли идею "каждая эха это законченная капсула, которая или в активной работе или в архиве", потом сделали из неё чатилку, потом сделали средства бороться с оверхедом, которые это породило, сейчас надо бороться с последствиями последствий. Когда всё изначально работало ровно так, как задумано. Шарман.

Окей, если это средство общения, то зачем нужен стандарт. ДЛЯ КОГО он нужен? Что он стандатизирует. Что он декларирует: idec это чатилка или idec это для хранения сообщений на века или idec это для экономии трафика. Это разные вещи, а чатилка и на века вообще противоположные. Стандарт должен быть не для отношения нода-нода, тут вообще никогда стандарта не было, в этом и смысл гибкости сети, стандарт нужен был для написания новых клиентов и новых серверов. И он должен был давать что-то. Когда /u/e бывает и таким, и таким, это не стандарт. Когда возникает вопрос "если есть разное количество сообщений в эхах и надо их взять" и ответ "не нужно" - это не стандарт, есть механизм срезов но он неясен непосвящённому (мне, например, до сих пор неясен). И это в сети, которая была простой и элегантной. А этот неявный и грубый хак вообще неэлегантен - это именно хак. Я хочу чтобы непосвящённому объяснили про адаптивный фетч, чтобы он понял. Я, например, не понял. Про "сравнение двух списков и взятие элементов из одного, которого нет в другом" я могу объяснить даже пробегающей мимо кошке. Это основа дизайна сети и от неё все пляшет, поэтому это стандарт. А так, для каких софтописателей это стандарт, чтобы трём пользователям между собой общаться? А нафига вам стандарт-то нужен, сами не можете договориться?

hLsGAP... . цепочка . ОТВЕТИТЬ





\/ . Andrew Lobanov to ahamai @ Re: Разбор idec 01/11/24 03:43

>> Ты хочешь в срезе получить нецелое количество сообщений? Зачем тебе точка в срезе? Типа, -12.5:12.5?
ahamai> если точка в срезе, то старый софт будет воспринимать это не как непонятный msgid и падать с ошибкой его запросить, а как пустую эху и просто игнорировать. двоеточие можно уронить, 12..12. или нарисовать ху^W самолётик 12.:.12. это мелочи, но мелочи это именно то, что отделяет плохой дизайн от хорошего, когда всё предусмотрено заранее.

Хороший дизайн это когда несуразные запросы не отрабатывают. Если ты пишешь наивный код это всегда будет плохой дизайн. Приведённые тобой запросы просто не будут работать даже в таверне, а там самый старый idec-софт.

Я не очень понимаю почему ты обход кривых запросов считаешь хорошим дизайном.

Как ii отработает /u/e/idec.talks/vfAqnGW9yupgQFEFzDk5 ? И почему?

+++ Caesium/0.4 RC1

qNsAPy... . ОТВЕТИТЬ



\/ . Andrew Lobanov to ahamai @ Re: Дополнения к стандарту 01/11/24 03:43

>> Ну и во-вторых, sf решает одну конкретную задачу, а слайсы - универсальны. Слайсы делают возможным адаптивный фетч и онлайн просмотр.
ahamai> То, что называется слайсы, у меня называется lim. Сделано одной строчкой кода. Совместимо вообще со всем, не ломает /u/e/, и даже клиенты, которые понятия не имеют о lim, могут им пользоваться.

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

Ну или я не понимаю как работает твой lim. Как им получить индекс эхи с 20 сообщения по 30?

ahamai> Адаптивный фетчинг это оверинжиниринг, программирование ради программирования, он вообще не даёт гарантий, в станциях где нет формальных эх а сортировка идёт по timestamp, могут быть вкинуты старые сообщения и такой фетчинг их не увидит. В нормальных условиях я вообще не вижу проблем гонять полные эхи, ибо только они дают полную гарантию. Для экономии трафка можно использовать ?h, его использование в гейтовании с shaos сократило дневной трафик с 12 мб до 2.

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

>> В общем, попытки решить какие-то несуществующие проблемы и навязать какие-то свои оценки. Чего я боялся, то и происходит. Лебедь рак и щука.
ahamai> Проблема была в проектировании. Некорректном дизайне. В сломе того, что просто работало и было простым, как три копейки, ради решения несуществующих проблем и каких-то непонятных смен стандарта, которые ничего не дают, кроме экономии трафика, которой тоже нет, потому что у тебя либо постоянные новые запросы, новые коннекции, новые строчки в логе сервера и так далее, да там tcp фреймы больше сожрут чем трафика сэкономится :)

Кто о чём, а Рома снова о том, что idec это не ii. Потому и не ii, что ii имел фундаментальные проблемы в дизайне.

ahamai> Забавно, я посмотрел архив старых эх - я постоянно из протокола что-то выкидывал, пока не остались /e /m /u/e /u/m, и всё это не достигло предельной простоты. А щас только что-то добавляют. Да сколько угодно. Но не надо лезть в /u/e.

В твой ii никто не лезет. Ты можешь взять хоть ii-0.3 и работать с idec. Но и ты в свою очередь не лезь в idec. Постоянно добавляют, это одни только слайсы. Если у тебя от них пригорает, просто не используй их. Нет, мы будем изобретать несовместимые со стандартом велосипеды.

Я даже больше скажу, никто не мешает фетчить ii в idec. Фетчер может не использовать слайсы вполне.

ahamai> Это база из баз, фейлбек из фейлбеков, он должен быть простым, примитивным, кодиться за три строчки кода на любом языке и быть единой везде.

Он никогда не кодился за три строчки даже на петухоне. Я твою референсную реализацию читал.

ahamai> Расширяйте как хотите, но расширяйте отдельные методы, без x/feaures и прочего фиг пойми зачем, может нода работать по новому - запрашиваем, не может - фэлбэчимся на старое.

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

Кто что для своих фантазий сделает у себя не имеет значения пока он соблюдает стандарт.

+++ Caesium/0.4 RC1

DVzWKn... . ОТВЕТИТЬ



\/ . Andrew Lobanov to revoltech @ Re: Дополнения к стандарту 01/11/24 03:43

AL>> 10+ лет качаем по 40. Полёт нормальный.
revoltech> Ну а мне откуда было это знать? Нигде о 40 не было написано. А tgi уже на 13 посылает куда подальше, например.

Готовый софт уже делал так. Всё на гитхабе есть - бери и смотри, раз уж начал своё писать.

AL>> Хорошо. Я укажу в стандарте 40. Все, кто качает больше или предоставляют меньше, не соблюдают стандарт.
revoltech> Ну вот так бы сразу.

Договорились.

+++ Caesium/0.4 RC1

Ihv7pX... . ОТВЕТИТЬ



\/ . Andrew Lobanov to ahamai @ Re: Разбор idec №2 01/11/24 03:43

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

В рамках idec она везде. То, что ты не соблюдаешь стандарт - исключительно твоя проблема.

+++ Caesium/0.4 RC1

DLYZeM... . ОТВЕТИТЬ



\/ . Andrew Lobanov to ahamai @ Re: Разбор idec №2 01/11/24 03:43

ahamai> вот /lim/ совместима с любыми существующими клиентами, просто меняешь url в конфиге и всё.

Праада она не решает задач слайсов. И делает адаптивный фетчинг удобным. Зато в отдельном неймспейсе ага.

+++ Caesium/0.4 RC1

93zo5Y... . ОТВЕТИТЬ



\/ . Andrew Lobanov to ahamai @ Re: Разбор idec №2 01/11/24 03:43

ahamai> Я вообще не про это. Я про то, что не надо было трогать протокол, который для трогания совсем не предназначался. В чём проблема была вместо проверки x/feautures всяких просто использовать новый, а при отказе - фэлбекаться? Ну самый же очевидный дизайн. Зачем там, где всё было предельно просто, зачем-то совершенно ненужно это усложнять?

Будь последовательным. Твой ii никто не трогает. Просто на его основе сделали нечто другое. Всё строго по твоим заветам из 2014-го. А то сперва ты говоришь одно, потом приходишь и вдруг оказывается, что то, что ты говорил, не имеет значения. Почему тогда то, что ты говоришь сейчас, вдруг должно иметь значение? Завтра ты опять переобуешься и снова будешь делать вид, что ты не говорил того, что говоришь сегодня.

+++ Caesium/0.4 RC1

gA2rrZ... . ОТВЕТИТЬ



\/ . Andrew Lobanov to shaos @ Re: Разбор idec №2 01/11/24 03:43

>> тут нет никаких "что-то ещё", либо эха либо msgid.
shaos> … либо мусор
shaos> Если нет проверки на то, что тебе не подсунули мусор, то это неработоспособное решение - как POC для запуска в песочнице для ограниченного круга лиц - годится, а для реальных применений в массах - нет…

Очень правильные слова.

ЗЫЖ А где посмотреть на ноду на шелле. А то Рома бьёт себя пяткой в грудь, а ноду на шелле не видать.

+++ Caesium/0.4 RC1

KyZAf1... . ОТВЕТИТЬ



\/ . Andrew Lobanov to ahamai @ Re: Разбор idec №2 01/11/24 03:43

ahamai> Какое, итить, неработоспособное решение, если оно работает. Сколько раз повторять, что /u/e/ это базовый фалбак и он должен быть простым и легко воспроизводимым, нигде не должно быть проверки в коде и в стандарте. Как работает твой конкретный фетчер, по барабану. Есть базовая реализация, эталонная. И она должна быть максимально простая. И она должна быть одна.

Где взять эталонную реализацию?

ahamai> Это базовый вопрос - НАХРЕНА ВЫ ЛЕЗЕТЕ В /U/E, ЕСЛИ ВЫ ТУПО ДАЖЕ НЕ ПОНИМАЕТЕ, ЧТО ЭТО И ЗАЧЕМ ЭТО НУЖНО???

Нахоена ты своими ii-ручонками лезешь в idec, если ты тупо даже непонимаешь что это и зачем это нужно?

ahamai> ну я читаю такую ахинею

Ты её пишешь. В больших количествах.

ahamai> и вижу люди тупо не понимают, о чём это вообще.

Да. Некоторые не понимают о чём idec. Застряли в 2014, на эхотаг не смотрят, лезут с какими-то левыми фичами.

>> а для реальных применений в массах - нет…
ahamai> для каких млять применений в каких млять массах. ii это реализация строго конкретной задачи. основным критерием этой задачи является максимальная простота. НИКТО, НИКТО МЛяТЬ В ЦЕЛОМ СВЕТЕ НЕ МЕШАЕТ ТЕБЕ НАВЕШИВАТЬ СВОИ НАВОРОТЫ. Ну оставь ты млять в покое /u/e, это лингва франка, это база, это долгими бессонными ночами вытачивалось, чтобы удалить всё лишнее и оставить только базу, из которой можно свинтить что угодно, хоть босфор, хоть улисс - и никто при этом не трогал /u/e. Когда человечество вымрет и останутся только ветки и палки, чтобы можно было быстро собрать /u/e, как базовый компонент. И ПОЭТОМУ ОН МЛЯТЬ ДОЛЖЕН БЫТЬ ОФОРМЛЕН, ПРОСТ И ОДНОЗНАЧЕН, чтобы любая макака могла написать его реализацию. Любая. На любом языке. С любым млять навыком. Не мусор собирала.
ahamai> И это млять не POC. Это и есть млять сама концепция сети. Нахрена переписывать базовый класс, наследуйся от него и потом пиши, как хочешь. А основные 4 стержня, которые работают в любых, любых млять условиях, они для того и сделаны такими простыми чтобы быть такими простыми. Без проверок, х..рок и прочей хрени. Обмен между нодами регламентируется ТОЛЬКО самими нодами. Могут хоть через git обмениваться и индексы по timestamp генерировать, это изначально была валидная версия обмена. Но помимо этого должна быть база, которая должна работать ВСЕГДА, ВЕЗДЕ, она должна быть МАКСИМАЛЬНО ПРОСТОЙ и МАКСИМАЛЬНО ВОСПРОИЗВОДИМОЙ. Поверх этого уже какие хошь расширения, это вообще пофиг, лишь бы клиент и сервер поддерживали. Но когда есть два стандарта на работу /u/e (один мой, другой неправильный (ц)) - это уже маразм.

Рома, иди проспись. Где ты увидел ii, млять. Это так печально, что интернетом пользуются те, кто так и не научился читать.

ahamai> Я смотрел старую переписку и кто какие фишки предлагал. Это могло быть перетряханием стандартов, какой из них стандартнее, уже тогда. Но я волевым решением отправил всех в лес и зафиксировал самую базовую базу, которая могла быть. Поэтому это всё и работает, поэтому и не было обсуждений стандартов а просто всё работало, а простота рекламировала эту технологию саму за себя. А потом /u/e взяли и изнасиловали.

Ты сделал слишком много ошибок в словосочетании "довели до ума мёртворождённое недоразумение".

+++ Caesium/0.4 RC1

IPXk0B... . ОТВЕТИТЬ



\/ . Andrew Lobanov to All @ Рома порвался 01/11/24 03:43

Сабж. Опять. Ставлю на него твит, так как читать этот бессвязный поток сознания, оторванный от реальности, уже нет сил.

+++ Caesium/0.4 RC1

2mMCkV... . цепочка . ОТВЕТИТЬ



\/ . revoltech to ahamai @ Re: Разбор idec №2 01/11/24 04:37

ahamai> 1.
ahamai> > ВЕСЬ ЗАПРОС СПИСОК ЭХ
ahamai> > ПОЛУЧИЛИ СПИСКИ
ahamai> > ЕСЛИ ЕСТЬ ЛИМИТ, УСТАНОВИЛИ
ahamai> > становится
ahamai> > ПОЛУЧИЛИ СПИСОК ЭХ
ahamai> > ПРОВЕРИЛИ ПОСЛЕДНЮЮ
ahamai> > ЕСЛИ ЭТО СРЕЗ, ТО РАСПАРСИЛИ СРЕЗ
ahamai> > СОХРАНИЛИ ЛИМИТ
ahamai> > УДАЛИЛИ ПОСЛЕДНЮЮ ЭХУ
ahamai> > ПОЛУЧИЛИ СПИСКИ
ahamai> > УСТАНОВИЛИ ЛИМИТ, ЕСЛИ ЕСТЬ

Немного не так. Точнее, совсем не так. То, что ты написал — это манипуляция. «ЕСЛИ ЕСТЬ ЛИМИТ, УСТАНОВИЛИ» тоже не из одного пункта состоит, его тоже надо где-то взять и распарсить. Это раз. Два — «распарсили срез» — это одна операция. Правильнее было бы слегка иначе:

1. Получили список эх (сохранили путь, разделив его по /).
2. Взяли последнюю.
3. Если там есть двоеточие, сохранили всё до него в смещение и всё после него в лимит.
4. Удалили из списка ВСЕ невалидные имена эх (u и e тоже таковыми являются, не только слайс).
5. Выгребли списки из базы по уже установленному лимиту.

Пять шагов. Корректных.

mhCVNL... . ОТВЕТИТЬ



\/ . revoltech to Andrew Lobanov @ Re: Разбор idec №2 01/11/24 04:50

AL> ЗЫЖ А где посмотреть на ноду на шелле.

Могу сделать хоть на busybox sh (+ busybox nc + busybox sed, возможно), но зачем? Это будет лютый тормоз. Как и связка busybox awk + busybox nc.

Если брать продвинутый шелл вроде bash или oksh, всё можно сделать непосредственно в нём, кроме самой отдачи по TCP. Я, блин, гофер-клиента на чистом баше не так давно делал (Bopher-NG), вопрос только, что это решает.

AL> А то Рома бьёт себя пяткой в грудь

Это от неосиляторства инструментов, не более. Я вот довольно быстро согласился и с 40 айдишниками вместо 380, и с контекстным парсингом /u/e вместо ключ/значение, поскольку принципиально это мало что меняет (алгоритмически тут можно всё тотально упростить, но для этого надо отказаться от обратной совместимости, иначе смысла немного). Те же вещи, на которых настаивает Рома, предложены даже не с позиции оптимизации, а с позиции «лишь бы существующий кривой код не чинить». Противно.

HaOuvs... . ОТВЕТИТЬ



\/ . ahamai to Andrew Lobanov @ Re: Рома порвался 01/11/24 04:59

За 10 лет каких то продвижений и изменений нет. И да, я 100% уверен, что я хотел сказать. Ибо умные люди притчами говорят, а глупые в них за частности цепляются, не видя целого.

Зато у вас новый стандарт будет. Ура!

x1ogLB... . ОТВЕТИТЬ



\/ . ahamai to revoltech @ Re: Разбор idec №2 01/11/24 05:02

Можно вопрос. На каких вещах я настаиваю. Хоть на одной. Хоть на одной единственной,? Я ВООБЩЕ НИЧЕГО НЕ ПРЕДЛАГАЮ. НИЧЕГО. НИЧЕГО. Неужели это так трудно заметить? Я только разбираю кривой дизайн idec 10 летней давности. Всё. То есть это абсолютно всё. Как можно увидеть то, чего нет вообще, мне непонятно.

NJRzAA... . ОТВЕТИТЬ







\/ . ahamai to ahamai @ Re: Рома порвался 01/11/24 05:11

И это вы раздули тему, рассуждая о том, что я не говорил. Я надеялся на обсуждение типа тут сделано так, тут сделано так. А разговор ушёл в тему тут сделано так потому что тут сделано так. И прочего лишнего. Разговор от ДИЗАЙНА перешёл к ДЕТАЛЯМ и РЕАЛИЗАЦИЯМ. Эта тема меня вообще не интересовало но каждый начинает лезть в неё. Боюсь, вы вообще не поняли, о чём я. Потому что вы не делали Дизайна проекта, принимая много решений "как поступить", а базируетесь на уже готовой реализации, когда те решения, которые есть, кажутся уже сами собой разумеющимися.

Разговор на ту тему, что мне интересно, вас вытянуть не удалось, вы сразу переходите на совсем другую, мне неинтересную, и которая вообще ничё не даёт. Впрочем, в текущем статусе стандарт вообще ничего не даёт.

e5T1Uj... . ОТВЕТИТЬ



\/ . revoltech to ahamai @ Re: Разбор idec №2 01/11/24 05:07

ahamai> Можно вопрос. На каких вещах я настаиваю. Хоть на одной. Хоть на одной единственной,?

На изменении формата срезов, например. Как минимум на выносе оных из /u/e.

В моём варианте реализации /u/e (из 5 пунктов) нода, которая не умеет срезы, просто их проигнорирует как невалидное имя эхи, и отдаст все сообщения из запрошенных эх. Это так сложно?

sew4wi... . ОТВЕТИТЬ



\/ . revoltech to ahamai @ Re: Рома порвался 01/11/24 05:09

ahamai> Зато у вас новый стандарт будет. Ура!

А старый (до IDEC) где почитать-то? Или опять в ИМХОдники будут тыкать?

GtLqqh... . ОТВЕТИТЬ



\/ . revoltech to ahamai @ Re: Разбор idec №2 01/11/24 05:14

ahamai> У меня тогда две. Там три строки понятного прозрачного кода.

Ну скинь эти три строки тогда. Почему-то уверен, что всего необходимого там не будет.

Nv6O4g... . ОТВЕТИТЬ



\/ . revoltech to ahamai @ Re: Рома порвался 01/11/24 05:21

ahamai> Потому что вы не делали Дизайна проекта, принимая много решений "как поступить", а базируетесь на уже готовой реализации, когда те решения, которые есть, кажутся уже сами собой разумеющимися.

С моей колокольни стороннего наблюдателя и имплементатора мне важны чётко документированные элементы протокола и как бы всё. С точки же зрения дизайна здесь, как говорится, есть два стула: либо ломаем вообще всю обратную совместимость и радикально упрощаем протокол (а упрощать и правда есть куда даже после выпиливания кучи эндпоинтов из стандарта), либо же проще оставить как есть, т.к. любые оптимизации ПРИ сохранении обратной совместимости приведут только к усложнению.

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

FzSwM3... . ОТВЕТИТЬ



\/ . ahamai to revoltech @ Re: Рома порвался 01/11/24 05:42

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

так об этом то и речь! речь не о проектировании, речь о проблеме проектирования! для чего я все последние дни весь 2014 год в ретроспективе пересказал!

вот смотри - есть какие-то данные, всё из которых, кроме несколько строк, выбираются простым фильтром. один будет писать крутой усложнённый фильтр, чтобы он отфильтровал все данные. второй применит простой фильтр а потом удалит данные вручную. это не разные программы, это разные ПОДХОДЫ. они даже задачи разные решают, один хочет написать фильтр, второй хочет получить данные.

можно простым способом решать 97% задач, а можно накодить ещё и решить 99.9% задач. это разные подходы.

ii не умел "экономить трафик"

7VWtbz... . ОТВЕТИТЬ



\/ . revoltech to ahamai @ Re: Рома порвался 01/11/24 05:39

ahamai> Проблема собственно только в том что вы проблемы не видите. Только и всего.

С /u/e проблемы действительно нет. Невалидные имена эх должны отбрасываться, даже если нода не умеет слайсы, она просто этот последний пункт выкинет и отдаст содержимое всего остального.

Если у тебя это не так, чини ноду.

8kQFW8... . ОТВЕТИТЬ



\/ . ahamai to revoltech @ Re: Разбор idec №2 01/11/24 05:56

> Ну скинь эти три строки тогда. Почему-то уверен, что всего необходимого там не будет.

url.split('/')
for ea on this
out.append([ea] + open('e/ea').splitlines()]

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

если для чего-то нужно 2 навыка, то под этот фильтр может попасть 80% людей. а если их, скажем, 5, которые чуть посложнее, то с каждым новым фильтрация будет гораздо сильнее (команду cat на лоре осилило процентов 99, а парсеры на sh - процентов 20-40). для того, чтобы не понимать, достаточно не знать одного навыка - например я знаю 4 из 5, но я не понимаю, как работают срезы, потому что в разных языках разные нумерации, и я этого просто не понимаю.

этим и отличается простое от очень простое. для того, кому и то и то просто, не видит разницы.

я не говорю, какой путь правильный - правильного пути нет. я говорю о том, как изменилось ПРОЕКТИРОВАНИЕ ii при переходе в idec. Правильно-неправильно, хорошо-плохо - это вообще не важно. Раз тут началась тема с новым стандартом, я просто хотел напомнить 2014, когда делали расширения для ii, чтобы экономить трафик. Почему все на внешнее смотрит и ни один вообще не посмотрел вглубь? Зачем код, причём здесь код. 10 лет назад делали расширение. Я напомнил, как это было, в деталях. Расписал отличия и недостатки НА МОЙ ВЗГЛЯД. Из этого, блять, вообще не следует, что это недостатки для других. Я ПРО РАЗНИЦЫ ПОДХОДОВ. Если кто-то говорит, что старые /u/e и новые одинаково простые, он вообще не с той стороны смотрит. Но с другой стороны так никто и не посмотрел. Ладно. Кто как хочет, тот так и делает, жаль только обсуждение сразу ушло в совсем другую сторону. Но зато сейчас ты знаешь историю в ретроспективе, подумай об этом :) Ну или может кто ещё зайдёт и подумает.

BQpz1T... . ОТВЕТИТЬ



\/ . ahamai to revoltech @ Re: Рома порвался 01/11/24 05:58

> Если у тебя это не так, чини ноду.

я не могу починить референсную ii 0.3, которая является базовым и законченным стандартом ii, потому что она осталась в 2014 году

ps. проблема не в /u/e

axlE5X... . ОТВЕТИТЬ



\/ . revoltech to ahamai @ Re: Рома порвался 01/11/24 05:57

ahamai> вот смотри - есть какие-то данные, всё из которых, кроме несколько строк, выбираются простым фильтром. один будет писать крутой усложнённый фильтр, чтобы он отфильтровал все данные. второй применит простой фильтр а потом удалит данные вручную. это не разные программы, это разные ПОДХОДЫ.

В современном мире применителя второго подхода взломают за считанные дни. Забывать о таком подходе надо.

RJLj1Q... . ОТВЕТИТЬ



\/ . revoltech to ahamai @ Re: Разбор idec №2 01/11/24 06:02

ahamai> > Ну скинь эти три строки тогда. Почему-то уверен, что всего необходимого там не будет.
ahamai>
ahamai> url.split('/')
ahamai> for ea on this
ahamai> out.append([ea] + open('e/ea').splitlines()]

Даже не вчитываясь в on вместо in... А где здесь проверка на то, что тебе валидные имена эх подсунули? Хотя бы на наличие точки и длину от 3 до 120 символов?

В общем, как раз то, о чём я и говорил.

ahamai> вот парсер со срезами я сейчас на sh/bash и не напишу

А я напишу, но зачем?

ahamai> Но зато сейчас ты знаешь историю в ретроспективе, подумай об этом :) Ну или может кто ещё зайдёт и подумает.

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

hNOG2U... . ОТВЕТИТЬ



\/ . ahamai to revoltech @ Re: Разбор idec №2 01/11/24 06:10

> Даже не вчитываясь в on вместо in... А где здесь проверка на то, что тебе валидные имена эх подсунули? Хотя бы на наличие точки и длину от 3 до 120 символов?

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

> В общем, как раз то, о чём я и говорил.

Нет. это то, о чём я говорил. Последние несколько дней.

> Не понимаю, чем это знание мне поможет в плане грядущей реализации своей ноды.

оформление полиси, соглашений, стандартов и прочего - это вообще не технология. это политика. сначала политика определяет стандарты, потом стандарты технологию. так было с ii. дважды.

Блин. я специально старался писать не ответы, а новые темы, чтобы не было обсуждение деталей, а всё опять сходится к обсуждению деталей. :)

cLmRcG... . ОТВЕТИТЬ



\/ . ahamai to revoltech @ Re: Рома порвался 01/11/24 06:13

> В современном мире применителя второго подхода взломают за считанные дни. Забывать о таком подходе надо.

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

Ещё в первоначальной версии было написано, что сторонники обоих подходов считают свой подход единственно верным.

Зря я две этих строчки удалил, видимо, хотя мне казалось, что так будет лучше :)

ps. Я считаю, что правильного подхода не существует.

Ld9sR7... . ОТВЕТИТЬ



\/ . shaos to revoltech @ Re: Разбор idec №2 01/11/24 06:19

Вот чего я родил - всем сестра'м по серьга'м как говорится :)

====
elseif ($opts[0] == 'u' and $opts[1] == 'e') {
$work_options=array_slice($opts, 2);
$aecho = [];
$aoff = [];
$alen = [];
$lim = 0;
$count = 0;
foreach ($work_options as $work) {
if(is_numeric($work)) {
if($lim >= 0) die("error: unexpected single number");
$lim = intval($work);
if($lim < 0) die("error: unexpected negative number");
} elseif(strpos($work,".")!==false) {
if($lim < 0) die("error: missing lim value");
array_push($aecho,$work);
if($lim > 0) {
array_push($aoff,-$lim);
array_push($alen,$lim);
} else {
array_push($aoff,NULL);
array_push($alen,NULL);
}
$count = $count + 1;
} elseif(strpos($work,":")!==false || strcmp($work,"all")==0 || strcmp($work,"last")==0) {
if($lim != 0) die("error: slice can not be used with lim");
if(strcmp($work,"all")==0) {
$a = 0;
$b = 0;
} elseif(strcmp($work,"last")==0) {
$a = -1;
$b = 1;
} else {
$numbers=explode(":", $work);
$a = intval($numbers[0]);
$b = intval($numbers[1]);
}
for($i=$count-1;$i>=0;$i--) {
if(!is_null($aoff[$i])) break;
$aoff[$i] = $a;
$alen[$i] = $b;
}
} elseif(strcmp($work,"lim")==0) {
$lim = -1;
} else die("error: wrong arguments");
}
$buffer = "";
for($i=0;$i<$count;$i++) {
$echo = $aecho[$i];
if($aoff[$i]==0 && $alen[$i]==0) {
$slice = $access->getMsgList($echo); // NULL, NULL
} else {
$slice = $access->getMsgList($echo, $aoff[$i], $alen[$i]);
}
if (count($slice) > 0) {
$buffer.=$echo."\n".implode("\n", $slice)."\n";
} else {
$buffer.=$echo."\n";
}
}
echo $buffer;
}
====


тут тебе и стандартный ii, и со слайсами в конце [-]N:M как в IDEC, и со слайсами внутри (между именами эх) как я предлагал ранее, и можно писать last вместо -1:1, и можно писать all внутри если в конце стоит last или какие другие нумера (типа /u/e/echo.1/all/echo.2/echo.3/last если надо только последнее сообщение для последних двух эх и всё для первой), и можно после каждой эхи писать, как предлагал revoltech, и даже lim/N в начале пройдёт как у Ромы (правда при этом уже нельзя будет слайсы воткнуть), а вот от msgid и далее делать неохота ибо оно криво будет работать т.к. порядок может быть чуть разный на разных нодах...

idqUu3... . ОТВЕТИТЬ



\/ . revoltech to ahamai @ Re: Разбор idec №2 01/11/24 06:31

ahamai> я не помню, есть echo_flt в том коде, но это вообще неважно.

Важно. Поскольку это уже не три строчки.

ahamai> лишнего оно не запросит а на неккоректное просто упадёт.

А надо, чтобы не падало, а игнорировало такие имена.

ahamai> оформление полиси, соглашений, стандартов и прочего - это вообще не технология.

Ну дык. Без чёткого ТЗ результат всегда ХЗ.

ahamai> Я не добавил фразу "как эту задачу решают программист и непрограммист"

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

ahamai> я, например. не программист

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

Aphlr7... . ОТВЕТИТЬ



\/ . Andrew Lobanov to revoltech @ Re: Разбор idec №2 01/11/24 06:24

AL>> ЗЫЖ А где посмотреть на ноду на шелле.
revoltech> Могу сделать хоть на busybox sh (+ busybox nc + busybox sed, возможно), но зачем? Это будет лютый тормоз. Как и связка busybox awk + busybox nc.

Вопрос то не в теоретической возможности. Вот Рома писал про ноду на шелле и, мол, там это сделать сложно (непонятно почему, правда). Но не показал этой мифической ноды, где это сделать сложно.

revoltech> Если брать продвинутый шелл вроде bash или oksh, всё можно сделать непосредственно в нём, кроме самой отдачи по TCP. Я, блин, гофер-клиента на чистом баше не так давно делал (Bopher-NG), вопрос только, что это решает.
AL>> А то Рома бьёт себя пяткой в грудь
revoltech> Это от неосиляторства инструментов, не более. Я вот довольно быстро согласился и с 40 айдишниками вместо 380, и с контекстным парсингом /u/e вместо ключ/значение, поскольку принципиально это мало что меняет (алгоритмически тут можно всё тотально упростить, но для этого надо отказаться от обратной совместимости, иначе смысла немного). Те же вещи, на которых настаивает Рома, предложены даже не с позиции оптимизации, а с позиции «лишь бы существующий кривой код не чинить». Противно.

Там не только кривой код кривой подход ещё. В идеальном случае, единственно верной реакцией на некорректный запрос должна быть ошибка. Это правильная практика.

Почему ii ходит в idec по своим стандартам я могу понять. Но idec позволяет работать в ii-режиме и вообще не обязан использовать слайсы при фетчинге. Но не в голове у Ромы.

Короче, я забодался и Рома идёт лесом со своим странным нытьём. Ходить с ним кругами смысла нет, полезной нагрузки в его сообщениях нет, наезды и истерики в его сообщениях есть. Ну и нафейхоа? Пока добавил в цезий кривой и косой, но механизм твитов. Доработаю и выдам на суд общественности.

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

Yik0hV... . ОТВЕТИТЬ



\/ . revoltech to shaos @ Re: Разбор idec №2 01/11/24 06:40

shaos> Вот чего я родил

«...А глянешь — мамочка моя! Эт чё? О чём? А набуя?» ©
Не, прочесть-то можно (хотя да, этот код напомнил, почему я пых терпеть не могу), но вот это как раз тот уровень сложности, от которого я стараюсь держаться подальше. Могу в отдельном сабже сделать разбор сего шындевра. Но у меня в ноде такого не будет точно.

shaos> а вот от msgid и далее делать неохота ибо оно криво будет работать т.к. порядок может быть чуть разный на разных нодах...

Такого, кстати, быть не должно.

30BtPN... . ОТВЕТИТЬ



\/ . shaos to revoltech @ Re: Разбор idec №2 01/11/24 06:54

> это как раз тот уровень сложности, от которого я стараюсь держаться подальше.

Это сложность по твоему? Это наоборот лёгкость и непринуждённость :)

> Такого, кстати, быть не должно.

Да запросто - например я вашу беседу у себя на ноде вижу задом наперёд - сначала твои ответы, потом сообщения на которые ты отвечаешь, а где-то наверное есть правильный порядок...

3WvTiR... . ОТВЕТИТЬ



\/ . doesnm to revoltech @ Re: Разбор idec №2 01/11/24 06:56

revoltech> Если брать продвинутый шелл вроде bash или oksh, всё можно сделать непосредственно в нём, кроме самой отдачи по TCP. Я, блин, гофер-клиента на чистом баше не так давно делал (Bopher-NG), вопрос только, что это решает.

Отдачу сделать по CGI (читерство), а вместо nc взять /dev/tcp (фича баша)

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

rW6SWj... . ОТВЕТИТЬ



\/ . doesnm to shaos @ Re: Разбор idec №2 01/11/24 07:03

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

Кстати у меня тоже самое. Я думал это прикол ping

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

yAk5eh... . ОТВЕТИТЬ



\/ . revoltech to doesnm @ Re: Разбор idec №2 01/11/24 07:13

doesnm> Отдачу сделать по CGI (читерство), а вместо nc взять /dev/tcp (фича баша)

Да что ж везде одни теоретики... /dev/tcp только для клиентских соединений работает. Сервер сугубо на нём не сделаешь.

G4Ix9W... . ОТВЕТИТЬ



\/ . revoltech to tuple @ Re: Test emoji 01/11/24 07:14

tuple> 🙄😬🧒👩‍🚀🙆‍♀️👩‍👦‍👦👩‍👦👒🤷‍♀️👩‍❤️‍💋‍👩🧛‍♀️☝️👻💂‍♀️🤫🍉🍰🥣🥡🍨🍢🏣

А почему не в idec.test?

Vf8ARx... . ОТВЕТИТЬ



\/ . shaos to doesnm @ Re: Разбор idec №2 01/11/24 07:19

Возможно revoltech берёт сообщения Ромы прямо с blcat.ru и отвечает на них через меня, а я опрашиваю blcat.ru уже после, соответствено у меня ответы появляются раньше вопросов и затем это распространяется везде, кто берёт idec.talks с меня...

y7oqvE... . ОТВЕТИТЬ





\/ . tuple to All @ Test emoji 01/11/24 07:07

🙄😬🧒👩‍🚀🙆‍♀️👩‍👦‍👦👩‍👦👒🤷‍♀️👩‍❤️‍💋‍👩🧛‍♀️☝️👻💂‍♀️🤫🍉🍰🥣🥡🍨🍢🏣

qGxNSs... . цепочка . ОТВЕТИТЬ



\/ . shaos to shaos @ Re: Разбор idec №2 01/11/24 07:27

На http://ii.blcat.ru/idec.talks правильный порядок - значит blcat берёт сообщения с меня чаще, чеми я с него, а revoltech по-видимому читает сразу всех и часто - я просто вижу его ответы раньше т.к. он мой поинт и отвечает через меня...

11HUBD... . ОТВЕТИТЬ





\/ . doesnm to revoltech @ Re: Разбор idec №2 01/11/24 07:25

doesnm>> Отдачу сделать по CGI (читерство), а вместо nc взять /dev/tcp (фича баша)
revoltech> Да что ж везде одни теоретики... /dev/tcp только для клиентских соединений работает. Сервер сугубо на нём не сделаешь.

Я же сказал что сервер по CGI

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

uZ8F2u... . ОТВЕТИТЬ



\/ . doesnm to revoltech @ Re: Test emoji 01/11/24 07:26

tuple>> 🙄😬🧒👩‍🚀🙆‍♀️👩‍👦‍👦👩‍👦👒🤷‍♀️👩‍❤️‍💋‍👩🧛‍♀️☝️👻💂‍♀️🤫🍉🍰🥣🥡🍨🍢🏣
revoltech> А почему не в idec.test?

Его на ping-е нет

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

1R7pBZ... . ОТВЕТИТЬ



\/ . shaos to tuple @ Re: Тест скорости фетча (+потеряшки) 01/11/24 07:46

Если кому интересно вот разница в траффике между HTTPS и HTTP ответами на один и тот же запрос с моей ноды:

HTTPS:
24.130.121.38 - - [01/Nov/2024:00:36:38 -0700] "GET /iii/x/h/bot.habr.rss/lor.opennet HTTP/1.1" 200 3977 "-" "curl/7.64.0"

HTTP:
24.130.121.38 - - [01/Nov/2024:00:38:43 -0700] "GET /iii/x/h/bot.habr.rss/lor.opennet HTTP/1.1" 200 216 "-" "curl/7.64.0"

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

nT0fA6... . ОТВЕТИТЬ



\/ . Andrew Lobanov to revoltech @ Re: Разбор idec №2 01/11/24 07:45

shaos>> а вот от msgid и далее делать неохота ибо оно криво будет работать т.к. порядок может быть чуть разный на разных нодах...
revoltech> Такого, кстати, быть не должно.

Такое, кстати, является вполне штатной ситуацией. Сообщения в индексе располагаются в порядке получения нодой. Все ноды получают сообщения в разном порядке.

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

9R2KJp... . ОТВЕТИТЬ



\/ . revoltech to shaos @ Re: Разбор idec №2 01/11/24 07:58



\/ . revoltech to shaos @ Re: Разбор idec №2 01/11/24 08:02

shaos> а revoltech по-видимому читает сразу всех и часто

Не так уж и часто. У меня фетч чисто в ручном режиме по кнопке на данный момент. Но порядок чтения уже написал.

R2MgOo... . ОТВЕТИТЬ



\/ . tuple to shaos @ Re: Test emoji 01/11/24 07:44

shaos> Надо игру какую-нить заварганить пошаговую...

⬜️⬛️⬛️⬛️
⬜️⬜️⬜️⬛️
⬛️⬛️⬜️⬛️
⬛️⬛️⬜️⬛️
⬛️⬜️⬜️⬛️
⬛️🧑‍🏭⬛️⬛️
⬛️⬜️⬛️⬛️

Напишите ваше дальнейшее движение. :P

Вспомнил такую игрушку как https://rogule.com/

rdQcuH... . ОТВЕТИТЬ



\/ . Andrew Lobanov to revoltech @ Re: Разбор idec №2 01/11/24 07:51

doesnm>> Отдачу сделать по CGI (читерство), а вместо nc взять /dev/tcp (фича баша)
revoltech> Да что ж везде одни теоретики... /dev/tcp только для клиентских соединений работает. Сервер сугубо на нём не сделаешь.

Перечитай на что отвечаешь. Серверная часть на CGI, клиентская на /dev/tcp. Как раз то, что ты пишешь, и выходит. Ну блин.

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

oTd6Jx... . ОТВЕТИТЬ



\/ . Andrew Lobanov to doesnm @ Re: Test emoji 01/11/24 07:51

tuple>>> 🙄😬🧒👩‍🚀🙆‍♀️👩‍👦‍👦👩‍👦👒🤷‍♀️👩‍❤️‍💋‍👩🧛‍♀️☝️👻💂‍♀️🤫🍉🍰🥣🥡🍨🍢🏣
revoltech>> А почему не в idec.test?
doesnm> Его на ping-е нет

Так создай :)

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

BZIkGi... . ОТВЕТИТЬ



\/ . Andrew Lobanov to ahamai @ Re: Рома порвался 01/11/24 08:31

Не везде твит поставил. Нечаянно прочитал.

ahamai> За 10 лет каких то продвижений и изменений нет.

Изменения ради изменений. Ты бы классно вписался в современную IT-индустрию с такими подходами.

ahamai> И да, я 100% уверен, что я хотел сказать.

Я не сомневаюсь в том, что ты сказал то, что ты хотел сказать. Правда ты противоречишь сам себе, игнорируешь объективную реальность и скатываешься в истерику. Но зато делаешь это всё уверенно.

ahamai> Ибо умные люди притчами говорят, а глупые в них за частности цепляются, не видя целого.

Умные люди не путают причину и следствие. Если умные человек говорит притчами, это совсем не означает, что тот, кто говорит притчами, умён.

ahamai> Зато у вас новый стандарт будет. Ура!

Да. Выкинули хлам. И новый хлам затаскивать не будем. /lim тот же вещь совершенно глупая. Об этом я тебе и 10 лет назад писал, и сейчас писал, но ты слишком умён, чтобы понять. Про хешики для каких-то там разных индексов вообще говорить не хочется. Это сломается моментально. Но кто я такой, чтобы что-то объяснять такому могучему мудрецу?

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

ykWjya... . ОТВЕТИТЬ



\/ . Andrew Lobanov to revoltech @ Re: Рома порвался 01/11/24 08:31

ahamai>> Зато у вас новый стандарт будет. Ура!
revoltech> А старый (до IDEC) где почитать-то? Или опять в ИМХОдники будут тыкать?

Всё там же, где он лежит уже чёрт знает сколько лет. Ты же с ним сюда и приходил. Если ты про стандарт ii, то за этим к Роме. У него должен быть, ведь не может же быть такого, чтобы это великолепие да осталось без описания.

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

LHIwMb... . ОТВЕТИТЬ



\/ . Andrew Lobanov to revoltech @ Re: Рома порвался 01/11/24 08:31

ahamai>> Потому что вы не делали Дизайна проекта, принимая много решений "как поступить", а базируетесь на уже готовой реализации, когда те решения, которые есть, кажутся уже сами собой разумеющимися.
revoltech> С моей колокольни стороннего наблюдателя и имплементатора мне важны чётко документированные элементы протокола и как бы всё. С точки же зрения дизайна здесь, как говорится, есть два стула: либо ломаем вообще всю обратную совместимость и радикально упрощаем протокол (а упрощать и правда есть куда даже после выпиливания кучи эндпоинтов из стандарта), либо же проще оставить как есть, т.к. любые оптимизации ПРИ сохранении обратной совместимости приведут только к усложнению.

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

revoltech> А почему так криво задизайнили в 2014 — это уж точно вопрос не ко мне. Но сейчас это приходится принимать как данность. Или же ломать совместимость полностью и делать как следует. Но тогда это уже будет другая сеть.

Будет. И Рома снова придёт со своим нытьём про ii.

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

EOLd0x... . ОТВЕТИТЬ



\/ . Andrew Lobanov to ahamai @ Re: Рома порвался 01/11/24 08:31

ahamai> Потому что вы не делали Дизайна проекта, принимая много решений "как поступить"

То есть, ты принимал много решений чтобы сделать ii с его родовыми травмами? Ну что я могу сказать... Тут ты больше себя очерняешь, чем нас.

ahamai> Разговор на ту тему, что мне интересно, вас вытянуть не удалось, вы сразу переходите на совсем другую, мне неинтересную, и которая вообще ничё не даёт. Впрочем, в текущем статусе стандарт вообще ничего не даёт.

Тебе интересно ii. Но это не эхотаг.

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

s6l2XH... . ОТВЕТИТЬ



\/ . Andrew Lobanov to ahamai @ Re: Рома порвался 01/11/24 08:31

>> Если у тебя это не так, чини ноду.
ahamai> я не могу починить референсную ii 0.3, которая является базовым и законченным стандартом ii, потому что она осталась в 2014 году

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

ahamai> ps. проблема не в /u/e

Да. Проблема в ii 0.3.

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

CPRdEO... . ОТВЕТИТЬ



\/ . Andrew Lobanov to All @ Извините 01/11/24 08:31

Сабж. Почитал и понял, что проще везде Рому в твит добавить, чем читать эту галиматью. Превратил эху в помойку и рад. Видимо, воссоздаёт привычную среду.

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

yGXpt4... . цепочка . ОТВЕТИТЬ



\/ . revoltech to Andrew Lobanov @ Re: Рома порвался 01/11/24 09:21

AL> Всё там же, где он лежит уже чёрт знает сколько лет. Ты же с ним сюда и приходил. Если ты про стандарт ii, то за этим к Роме.

Да я уже запутался. Наверное, про стандарт ii. Короче, про то, что было до ребрендинга в IDEC и появления той доки на гитхабе.

AL> У него должен быть, ведь не может же быть такого, чтобы это великолепие да осталось без описания.

Ну надеюсь. А то если окажется, что вместо описания остался только кривой референсный код, то совсем печаль.

C93ksX... . ОТВЕТИТЬ



\/ . hugeping to ahamai @ Re: Разбор idec №2 01/11/24 09:45

Рома, не нервничай. У меня 3й день подряд мигрень, но я решил немного пояснить ситуацию, не влезая в детали. Как ты предложил. Но по существу! Мой ответ частично обращён к твоим другим сообщениям.

# Про дизайн и простоту ii

Я прекрасно понимаю твои доводы о простоте и сам практикую решения проблем "не в лоб". Это действительно круто, когда проблему можно "обойти" не решая её вообще. Plan9, кстати, отличный пример этого подхода. Я пришёл к этому не сразу, но когда так понял - сразу начал с радостью практиковать. На работе и в быту. И про питон + падения некорректных данных я тоже нормально отношусь. Мы пишем "чистые (сейчас не в терминах ФП)" функции при этом. А контролируемое падение питона (да ещё в рамках веб-фреймворка, например) это, обычно, не является проблемой безопасности.

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

# Проблемы "базового" ii

Собственно это и есть краеугольный момент. Либо мы воспринимаем особенности ii проблемами либо нет. Я согласен, можно проявить аскетичность, смирение и "вложить" себя в базовый ii который предполагает:

- полный фетч;
- архивирование и "бегучесть" эх.

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

# Обсуждаемые изменения стандарта idec

Обсуждаемые изменения стандарта - в основном, реакция на взгляд со стороны о двусмысленных моментах. Андрей выкинул из текущего idec то, что посчитал лишним. Так что это упрощение. А то, что было неточно сформулировано - сформулировал. Речь вроде бы и не шла о "принципиально новом" стандарте. То-есть, мера хаоса была уменьшена, не революционно, но тем не менее. В этом и есть его ценность.

# Новый стандарт

Вот. А теперь самое интересное. Есть чистый стол. Есть ii. Есть упрощённый idec. И дальше развилка.

1) мне достаточно ii
2) мне достаточно idec
3) я могу сделать лучше

Ты можешь мне сказать где ты? Вроде бы ты на пп1, но при этом я вижу в твоих сообщения обсуждения решений тогоже sf, h которые вроде бы демонстрируют что то из пп3.

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

Я лично могу сформулировать несколько вариантов:

1) ii с полным фетчем но с надёжным механизмом проверки изменений в эхах узла (это то, что у тебя hash эх
2) ii с возможностью забирать n последних сообщений (это твой lim и/или sf)
3) ii с отдачей списка msgid в обратном порядке (моя идея)

Каждая из них мне не нравится по своим причинам:

1) Необходимостью хранить счетчики/хеши/что угодно - мой шкурный интерес. Я тоже иногда люблю экстремальную простоту. Приемлемо, но не прекрасно.

2) Невозможно "чётко" подобрать лимит такого захлёста. Сколько надо ставить чтобы и разброс порядка не влиял и интенсивность чата? 100? А если сисоп уехал в круиз а за пол года его отсутствия пришло 10000 пользователей? Нет, не надёжно.

3) Вроде всё четко технически (читаем и обрываем связь когда считаем нужным) но.. Есть элемент хака.

Текущий idec в терминах простоты мне тоже НЕ НРАВИТСЯ, но! Я НЕ МОГУ придумать лучше и так, чтобы были решены те недостатки, о которых я говорю. И вот слайсы, достаточно просты и их таки решают! И этот адаптивный фетч который ты называешь оверинженирингом, для меня это вынужденный шаг. Другого пути я просто не вижу. Если хочу избавиться от полного фетча и при этом иметь надёжность которая позволила бы мне бросить ноду и не следить за ней год (хотя бы и гипотетически)

В общем, давай конструктивно. Дружно. Корректно! (Мою ноду дети читают!) Предлагай решения если есть что предложить дополнительно или скажи, что тебя устраивает ii в чистом виде, но тогда и не нервничай. Дай нам двигаться своим путём.

wZtICH... . ОТВЕТИТЬ



\/ . Andrew Lobanov to revoltech @ Re: Рома порвался 01/11/24 09:58

AL>> Всё там же, где он лежит уже чёрт знает сколько лет. Ты же с ним сюда и приходил. Если ты про стандарт ii, то за этим к Роме.
revoltech> Да я уже запутался. Наверное, про стандарт ii. Короче, про то, что было до ребрендинга в IDEC и появления той доки на гитхабе.

Сначала был ii. Вещь хорошая, но недоделка. И даже стандарта не было - был только кривой референсный код. Потом Рома написал что-то типа стандарта. С кучей воды, неоднозначностями и вот это вот всё. Потом мы тут начали думать как ii довести до юзабельного состояния и родили слайсы. Конечно, это плохое решение, но все остальные ещё хуже. Были идеи и со счётчиками (они остались, но ими никто не пользуется, да и выкину я их), с хешем последнего сообщения (вообще максимально плохой вариант), с хешем всего индекса (тоже хреновый вариант, к тому же не позволяет определить откуда качать).

Идея указывать слайс для каждой эхи тоже была. Но была отметена. Уже и не помню почему. Единственное, что страдает с общим слайсом, это чувство прекрасного. Технологически он работает. А адаптивный фетчинг близок к красивому решению.

AL>> У него должен быть, ведь не может же быть такого, чтобы это великолепие да осталось без описания.
revoltech> Ну надеюсь. А то если окажется, что вместо описания остался только кривой референсный код, то совсем печаль.

Скорее всего, так и есть. Но надо спрашивать Рому.

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

H5KlO0... . ОТВЕТИТЬ



\/ . revoltech to Andrew Lobanov @ Re: Рома порвался 01/11/24 10:34

Я там в revoltech.local (у Шаоса) пофантазировал на тему, как можно было бы весь протокол упростить, не будь необходимости держать обратную совместимость с ii/IDEC. Причём там и файлэхи тоже в общую структуру прекрасно ложились бы, например.

Но сначала актуальный стандарт IDEC реализую в ноде своей, а потом уж посмотрим. Так что там, 40 мессаг на запрос устаканили, больше дополнений к доке не будет, можно приступать к запилу?

eoQxBz... . ОТВЕТИТЬ



\/ . Andrew Lobanov to revoltech @ Re: Рома порвался 01/11/24 11:02

revoltech> Я там в revoltech.local (у Шаоса) пофантазировал на тему, как можно было бы весь протокол упростить, не будь необходимости держать обратную совместимость с ii/IDEC. Причём там и файлэхи тоже в общую структуру прекрасно ложились бы, например.

Ну я Шаоса, вроде, не тяну. Если кто-то транзитом протащит, затащу к себе.

revoltech> Но сначала актуальный стандарт IDEC реализую в ноде своей, а потом уж посмотрим. Так что там, 40 мессаг на запрос устаканили, больше дополнений к доке не будет, можно приступать к запилу?

Ну... На самом деле, я ещё думаю, что есть смысл выкинуть e/ и m/ :)

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

e7pDR4... . ОТВЕТИТЬ



\/ . hugeping to Andrew Lobanov @ Re: Рома порвался 01/11/24 11:11

AL> Ну... На самом деле, я ещё думаю, что есть смысл выкинуть e/ и m/ :)

m/ постоянно использую для отладки. Удобно. Про e/ сходу не могу вспомнить.

Dnp1zy... . ОТВЕТИТЬ



\/ . Andrew Lobanov to hugeping @ Re: Рома порвался 01/11/24 11:45

AL>> Ну... На самом деле, я ещё думаю, что есть смысл выкинуть e/ и m/ :)
hugeping> m/ постоянно использую для отладки. Удобно. Про e/ сходу не могу вспомнить.

Ну m/, по размышлению, мне тоже кажется полезным. Даже просто взять и получить сообщение с помощью curl это удобно. А вот e/ никогда не видел, чтобы использовали. Разве что на заре ещё ii был клиент на баше и dialog, который был онлайн-клиентом и использовал как раз e/ и m/, если мне не изменяет память. Хотя, по факту, разделить строчку и декодировать base64 на баше всё равно просто.

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

vzmybi... . ОТВЕТИТЬ





\/ . shaos to Andrew Lobanov @ Re: Рома порвался 01/11/24 14:02

> Ну я Шаоса, вроде, не тяну.

Ну как не тяну? Тянешь, но по старому списку эх 2021 года и по старому адресу…

tqZ25q... . ОТВЕТИТЬ



\/ . shaos to shaos @ Re: Рома порвался 01/11/24 14:35

TOP10 VISITORS:

[1] Facebook point=0 web=1027 up=22.9MB (33%)
[2] 176.109.111.x point=46 web=0 up=16.7MB (24%) <--- tavern (2/hr)
[3] 92.63.98.x point=70 web=0 up=5.9MB (8%) <--- tgi (3/hr)
[4] Google point=42 web=480 up=5.7MB (8%) <--- Google (2/hr)
[5] 145.224.100.x point=115 web=1 up=5.0MB (7%) <--- 145.224.100.x (5/hr)
[6] Amazon point=0 web=83 up=4.1MB (5%)
[7] 95.165.9.x point=135 web=2 up=3.3MB (4%) <--- ping (6/hr)
[8] 217.197.116.x point=150 web=0 up=2.7MB (3%) <--- blackcat (6/hr)
[9] 24.130.121.x point=35 web=58 up=2.0MB (2%) <--- spnet (1/hr)
[10] 172.56.42.x point=0 web=35 up=0.2MB (<1%)

TOTAL TRAFFIC: 68MB

IhSBUV... . ОТВЕТИТЬ



\/ . hugeping to hugeping @ Re: Разбор idec №2 01/11/24 14:35

Подумал тут ещё... Хочу добавить. Может какой-то мозговой штурм начнётся. Но это все в рамках некоторого "потенциально нового" ii-подобного протокола. idec3 :)

Адаптивный фетч тоже не 100% надёжен. Но ненадёжен по-другому. Речь о той точке алгоритма, когда мы останавливаемся. Когда видим что такое сообщение у нас есть и начинаем фетч. Это лучше чем жёсткий лимит, но всё-ещё не абсолютно надёжно.

Поэтому мне кажется, что в "идеальном" протоколе нужно выбрать что-то принципиально иное.

1) Либо полный sync если хоть что то поменялось (но тогда стоит вернуться и к перекатыванию эх, потому что в этом решении нет масштабировании при бесконечном росте эхи. Короче - это "принятие" ii)

2) Выборка, основанная на времени.

Вроде бы Рома делал такое когда-то, может ошибаюсь. Запрос вида: дай мне сообщения которые пришли с такого-то времени (время - ну пусть секунды эпохи unix в utc).

Да, тогда мы немного завязаны на время, но это вроде бы окончательно решает всё. Или нет?

Что думаете?

OXDsX5... . ОТВЕТИТЬ



\/ . tuple to hugeping @ Re: Разбор idec №2 01/11/24 14:41

hugeping> Но это все в рамках некоторого "потенциально нового" ii-подобного протокола. idec3 :)

Стоило прийти в idec, как его уже хоронят :)

TcA3cJ... . ОТВЕТИТЬ



\/ . hugeping to tuple @ Re: Разбор idec №2 01/11/24 14:42

tuple> Стоило прийти в idec, как его уже хоронят :)

Не надо вбросов! Давай по существу.

P.S. Ipv4 тоже хоронят давно, но что-то никак. :)

T0kx0h... . ОТВЕТИТЬ



\/ . hugeping to hugeping @ Re: Разбор idec №2 01/11/24 14:50

hugeping> Что думаете?

Продолжаю рассуждать. sf=hash становится надёжной, если только мы после последнего фетча запоминаем hash последнего сообщения которое зафетчили и сохранили. Возможно, о таком режиме Рома и говорил, но я до сих пор воспринимал sf=hash совсем по другому. Так что пишу это, если вы тоже воспринимали это по другому...

Так что sf=hash так же надёжна как и время, если мы после каждого фетча успешного записываем hash последнего взятого сообщения для этой ноды.

Мне, правда, не нравится необходимость хранить эти хеши для фетчей (причём для каждой ноды), поэтому идея с временем нравится больше. Но тем не менее.

HyD52Y... . ОТВЕТИТЬ



shaos to hugeping @ Re: Разбор idec №2 01/11/24 15:34

Если сохранять хеш последнего принятого сообщения для КАЖДОЙ опрашиваемой ноды, то тогда да - имеет право на жизнь. По идее оно может собой заменить хеш списка сообщений для эхи (мой /x/h или /list.txt?h=1) т.к. список не может расти изнутри - только с конца...

w1Y45E... . ОТВЕТИТЬ


1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 .24. 25 26 27 28 29 30 31