[>]
Re: Мея видо?
idec.talks
revoltech(spnet, 4) — Andrew Lobanov
2024-10-24 09:47:46
Это для того, чтобы удобнее читалось в терминале на клиентах без reflow. Хотя, я так понимаю, таковых здесь нет, поэтому буду отказываться от своей гоферистской привычки. Ну и то, что GUI-клиент уже более-менее юзабелен, тоже этому способствует.
[forwarded from idec.test]
[>]
Re: Мея видо?
idec.talks
revoltech(spnet, 4) — revoltech
2024-10-24 09:55:32
Во, вылезло ещё одно место, где trim не делался, щас должно быть нормально.
[forwarded from idec.test]
[>]
Re: Мея видо?
idec.talks
revoltech(spnet, 4) — shaos
2024-10-24 10:04:08
Умеют, но далеко-далеко не все, я вон раньше на баше вообще пилил со своим reflow...
Я на gopher://hoi.st обитаю, если что.
[forwarded from idec.test]
[>]
Re: Мея видо?
idec.talks
revoltech(spnet, 4) — shaos
2024-10-24 11:12:10
Насчёт tii/tiix, как и насчёт ii вообще, в понедельник свежий псто в гофер выкачу. Уже точно есть что сказать. В idec.talks тоже что-то длиннотекстовое на днях появится, думаю.
А так да, я давно уже свой софт в public domain выкладываю, мне ограничения ни с одной из сторон (как копирайта, так и копилефта) не импонируют. Ну и Tcl/Tk, особенно начиная с 8.6, настолько хорош, что позволяет в довольно ограниченные сроки пилить вещи типа tiix и BFG. На sqlite3 мигрировать, конечно, не хотелось, но пришлось: некоторые ноды отдают сообщения не по порядку их фактической публикации (видимо, смёржены позже), поэтому, чтоб не сортировать на лету, пришлось сортировать уже скулайтом при выводе.
[forwarded from idec.test]
[>]
Re: Мея видо?
idec.talks
revoltech(spnet, 4) — Andrew Lobanov
2024-10-24 15:32:16
> А потом с дальней станции прилетает сообщение полугодовой давности :)
Ну, ради такого можно добавить ещё одну галочку — сортировать не хронологически, а по внутреннему id в базе, который сохраняет именно порядок добавления туда. Делов-то...
Наверное, добавлю-таки. Но по дефолту всё равно оставлю хронологическую сортировку.
[forwarded from idec.test]
[>]
Re: Мея видо?
idec.talks
revoltech(spnet, 4) — shaos
2024-10-24 15:34:12
o_O А оно у тебя не в базу сохраняет? В моём случае оказалось, что ORDER BY при выводе сделать всё-таки проще.
[forwarded from idec.test]
[>]
Re: Полуневдимые эхи
idec.talks
revoltech(spnet, 4) — ahamai
2024-10-25 14:49:04
ahamai> Ну и есть всякие плюшки типа минимальной гарантии доставки
А TCP для чего вообще создавался, если не для минимальной гарантии доставки? Зачем дублировать то же самое на уровень выше, но с обязательными метаданными?
ahamai> Для меня простота - это возможность в несколько строк написать фетчер хоть на python, хоть на busybox, поэтому я буду поддерживать реализацию только через http. Но всегда интересно посмотреть на сторонние проекты.
Мысль понял, никого не заставляю, но nc и awk имеются и в busybox (как, впрочем, и декодер base64).
[>]
Re: Полуневдимые эхи
idec.talks
revoltech(spnet, 4) — ahamai
2024-10-25 14:51:32
ahamai> увеличил буферы в nginx. скормил url на 89 кбайт - сожрало
Так и оставил? Я могу быть уверенным, что выгребу 4238 сообщений за один запрос?
[>]
Re: Полуневдимые эхи
idec.talks
revoltech(spnet, 4) — Andrew Lobanov
2024-10-25 15:46:14
AL> Удивительно. 9 лет у всех всё доходит, а у тебя нет. Может, надо что-то в фетчере поменять?
Наверное, мы о разных вещах говорим.
1. Фетчер по server-side слайсу качает 100 последних сообщений вечером.
2. За ночь в эхе появляется 103 сообщения.
3. Фетчер по server-side слайсу качает 100 последних сообщений утром.
Вопрос знатокам: увидит ли клиент те несчастные три сообщения?
AL> У тебя соединения платные или что?
У меня идеология не тратить вычислительные ресурсы там, где их можно не тратить. Пермакомпьютинг так называемый.
[>]
Re: Полуневдимые эхи
idec.talks
revoltech(spnet, 4) — Andrew Lobanov
2024-10-25 16:13:54
AL> Только если узел, внезапно, пишет в середину индекса, а не только в конец.
В общем, я понял, какой алгоритм до меня пытаются донести:
1. Делаем GET /x/features, чтобы проверить на предмет x/c и u/e. Если они имеются, то выполняем следующие пункты, если нет, скачиваем все айдишники через GET /u/e/имя.эхи и слайсим только на клиенте.
2. Делаем GET /x/c/имя.эхи, чтобы сравнить количество сообщений с локальным. Пишем разницу между полученным и локальным в diff.
3. Потом делаем GET /u/e/имя.эхи/-diff:diff и получаем список новых айдишников.
Так, что ли?
[>]
Re: Полуневдимые эхи
idec.talks
revoltech(spnet, 4) — hugeping
2024-10-25 17:26:43
hugeping> Алгоритм ii-go:
hugeping>
hugeping> 1) если есть поддержка слайсов то используем её. иначе - полный синк
hugeping> 2) n = 1
hugeping> 3) берем /u/e/эха/-n:1
hugeping> 4) это сообщение есть в базе? да - не нужен синк (goto 7)
hugeping> 5) n = n * 2
hugeping> 6) идём на 3
hugeping> 7) забираем сообщения от -n:n
А зачем так сложно? Если нода умеет слайсы, то она, по идее, умеет и /x/c, который неубываемый. Тогда мы, сравнивая с количеством уже скачанных локально сообщений, знаем, сколько надо ещё запросить.
[>]
Re: Полуневдимые эхи
idec.talks
revoltech(spnet, 4) — hugeping
2024-10-25 17:32:38
hugeping> Алгоритм ii-go:
hugeping>
hugeping> 1) если есть поддержка слайсов то используем её. иначе - полный синк
hugeping> 2) n = 1
hugeping> 3) берем /u/e/эха/-n:1
hugeping> 4) это сообщение есть в базе? да - не нужен синк (goto 7)
hugeping> 5) n = n * 2
hugeping> 6) идём на 3
hugeping> 7) забираем сообщения от -n:n
hugeping>
А почему бы просто не сравнить результат /x/c с тем количеством, что уже локально скачано?
[>]
Re: Полуневдимые эхи
idec.talks
revoltech(spnet, 4) — shaos
2024-10-25 18:05:58
shaos> Количество в общем случае не показатель - сообщения могут не только добавляться, но и удаляться
На этот счёт спецификация явно говорит, что счётчик может только увеличиваться. Лучше стянуть один-два уже существующих локально айдишника, чем потерять какие-либо.
Это как на стрелочных дайверских часах, где безель можно вращать только в направлении против часовой стрелки. Если случайно ударить обо что-то, он повернётся в направлении уменьшения интервала. Вынырнешь раньше, зато точно с запасом кислорода.
[>]
Re: Полуневдимые эхи
idec.talks
revoltech(spnet, 4) — hugeping
2024-10-25 18:21:04
hugeping> Потому что в разных нодах могут быть особенности. Например блеклист - учитывается или нет в счётчиках? Нода может не хранить все сообщения, а только часть (последние 10000).
Если верить документации с гитхаба idec-net, то всё это не должно уменьшать счётчик. Сообщение добавилось — инкрементировали. Сообщение удалилось — счётчик не трогаем.
[>]
Re: Полуневдимые эхи
idec.talks
revoltech(spnet, 4) — shaos
2024-10-25 18:49:53
shaos> в ii-php уменьшается
Ну, это печально. Получается, спецификации оно не соблюдает. Соответственно, в клиентах вся завязанная на счётчики логика тоже идёт лесом.
Придётся и у себя откатить. Или перепилить на нечто подобное алгоритму из ii-go, посчитав накладные расходы.
[>]
Re: Полуневдимые эхи
idec.talks
revoltech(spnet, 4) — Andrew Lobanov
2024-10-25 20:55:30
AL> Это было в ii.
А почему документация описывает это как IDEC-расширение?
AL> Внимание! Вопрос: какая у тебя OS и какое окружение? Пользуешься веб-браузером?
К сожалению, пользуюсь. К вопросу об ОС и окружении — Alpine Linux, X/Fluxbox.
[>]
Re: Полуневдимые эхи
idec.talks
revoltech(spnet, 4) — Andrew Lobanov
2024-10-26 09:48:43
AL> Потому что документация описывает IDEC.
Возникает вопрос: её здесь вообще кто-нибудь ещё читал?
Первый же абзац в
https://github.com/idec-net/new-docs/blob/master/extensions.md:
> Здесь описаны расширения протокола, являющиеся основным отличием IDEC от ii. Многие из них реализовывать совсем необязательно.
И далее чуть ниже пункт «Список эхоконференций», описывающий GET /list.txt.
То есть документация называет GET /list.txt одним из основных отличий IDEC от ii. А мне тут рассказывают, что «это было в ii». Ну так документацию тогда поправьте, если это было в ii, а не эксклюзив IDEC.
Я вот вместе с кодобазой tii начал вести свой ii-doc.txt, где описываю только реализованные в tii части протокола. И с пометкой IDEC extension у меня там только GET /x/features и один из вариантов /u/e, который со слайсами.
AL> Слишком много оверхеда.
Слишком много сарказма. Если уж позиционируем протокол как альтернативу щитвебу и если уж спецификация не обязывает именно к HTTP(S)-транспорту (опять гитхаб процитировать?), то вполне логично принимать и предложения по более легковесным протоколам вместо упора в жирный HTTP(S).
[>]
Re: Полуневдимые эхи
idec.talks
revoltech(spnet, 4) — ahamai
2024-10-26 10:03:40
ahamai> ну 16 норм, но потом бы я шаги увеличивал, там 64, потом 256 потом все сообщения. или вообще 16 если чё-то не хватает то забирать все. думаю, такие триггеры будут редко срабатывать.
Сделал у себя с шагом кратности 12 (потом 24, 48 и т.д.), чтобы в самом распространённом случае можно было даже с tgi и подобных за один запрос стянуть.
ahamai> стоп. -16:1 - это взять один хэш? а почему не -16:16? или я что-то не понял.
Ну в том алгоритме главная идея состоит в экономии трафика, полагаю. Сначала пробный запрос с -16:1, а потом, если в базе есть сообщение, то можно и -16:16.
[>]
Re: Полуневдимые эхи
idec.talks
revoltech(spnet, 4) — tuple
2024-10-26 15:09:01
tuple> Почему жирный-то? Почти натуральный plaintext. Куда меньше?
Потому что статусы и заголовки, например. См. как в гофере или нексе сделано: строка запроса — ответ, всё.
Пример запроса по Nex: echo /u/e/idec.talks | nc station.domain 1900
Ничего, кроме нетката, телнета или подобного, в основе не требуется.
Отвечаю заранее на вопрос «а как же постить»? Как в NPS — на другой порт:
cat <<EOF | nc station.domain 1915
/u/point
[auth_string]
[base64_message]
.
EOF
Вот тут уж действительно меньше некуда.
[>]
Re: Полуневдимые эхи
idec.talks
revoltech(tgi,15) — tuple
2024-10-26 15:06:44
tuple> Почему жирный-то? Почти натуральный plaintext. Куда меньше?
Потому что статусы и заголовки, например. См. как в гофере или нексе сделано: строка запроса — ответ, всё.
Пример запроса по Nex: echo /u/e/idec.talks | nc station.domain 1900
Ничего, кроме нетката, телнета или подобного, в основе не требуется.
Отвечаю заранее на вопрос «а как же постить»? Как в NPS — на другой порт:
cat <<EOF | nc station.domain 1915
/u/point
[auth_string]
[base64_message]
.
EOF
Вот тут уж действительно меньше некуда.
[>]
Re: Полуневдимые эхи
idec.talks
revoltech(spnet, 4) — shaos
2024-10-26 15:56:20
shaos> Меньше это Gopher или Nex овер телнет :)
Да не обязательно овер телнет, но да, суть в том, чтобы не относящихся непосредственно к ii метаданных меньше гонять. Здесь и так сообщения в base64 оборачиваются, что уже 4/3 от полезной нагрузки...
[>]
Re: Полуневдимые эхи
idec.talks
revoltech(spnet, 4) — doesnm
2024-10-26 19:19:39
doesnm> Го дропнем base64
Для /u/m не получится без глубинного перелопачивания самого формата бандла, а вот для /u/point, в принципе, легко.
Кто-нибудь скажет, какие проблемы решает base64 именно при постинге, каких не решает тот же самый x-www-form-urlencoded, в который сообщение по итогу всё равно заворачивается?
[>]
Re: Полуневдимые эхи
idec.talks
revoltech(spnet, 4) — ahamai
2024-10-26 19:30:41
ahamai> остаётся вопрос в том, как узнать, докачалось ли всё или оборвалось.
Для сообщений: посчитать хэш, преобразовать в айдишник по алгоритму и сравнить с тем айдишником, который в начале строки в бандле.
Для эх: сравнить количество айдишников с тем, которое мы запрашиваем, и удостовериться в том, что все скачанные айдишники имеют 20 символов.
[>]
Re: Полуневдимые эхи
idec.talks
revoltech(spnet, 4) — ahamai
2024-10-26 21:16:33
ahamai> ну тогда это оверхед в коде. когда я делал, сравнить мне было не с чем, просто сделал на ровном месте, но по http оно работает ровно так, как было сделано в первой версии (хотя я много что забыл, но всё равно как-то работает). поэтому мой вариант естественно не оптимален и не идеален, и если кто-то сделает гораздо красивее, я с радостью перейду на этот формат.
Ну вот, кстати, я начал просто отслеживать хэши сообщений вместе с айдишниками, и после перефетча (со всего, кроме spline-online) из 17614 сообщений 14067 оказались с корректными айдишниками (сравнивал по функции LOWER() в базе, так что нюансы с A-z не важны), а вот 3547 сообщений имеют айдишники, которые вообще описанному в доках хэшу не соответствуют. Вопрос: был/имеется ещё какой-то алгоритм хэширования или что за фигня там происходит? А потом коллизиям удивляются.
Статистика сообщений с левыми ID по эхам (не считая spline):
sqlite> SELECT DISTINCT `echoname`, COUNT(`id`) FROM `msg` WHERE LOWER(`msgid`) != LOWER(`content_id`) GROUP BY `echoname`;
blcat.local|1
develop.16|17
game.rogue.14|39
idec.talks|322
idec.test|13
ii.stat|7
linux.14|341
lit.14|4
lor-opennet.17|1
lor.gold|31
music.14|34
ping.local|4
pipe.2032|1123
plan.9|2
python.15|8
retro.talks|27
ru.humor.14|35
spnet.stats|1
std.club|1241
std.favorites|2
std.game|139
std.hugeping|68
std.hugeping.micro|2
std.prog|36
std.rein|1
std.tech|47
zx.spectrum|1
[>]
Re: Полуневдимые эхи
idec.talks
revoltech(spnet, 4) — shaos
2024-10-27 08:32:04
shaos> Многие узлы допускают редактирование сообщений без изменения хеша
Что есть маразм by design. Хэш — он на то и хэш, чтобы отражать изменения в содержимом, иначе на... зачем он нужен?
shaos> base64 нужен т.к. позволяет ii транспорту работать в том числе и по последовательным 7-битным каналам - через COM порт там или прямо в тексте е-мейлов без mime кодирования (которое также в текст по сути)
Интересно девки пляшут. То у нас без HTTP(S) никуда, то семибитные каналы через ком. Надо бы уж определиться.
В почте это сделано просто ради кучи легаси-софта из 1980-х, а первая версия ii появилась в 2014 году, когда весь нормальный мир давно перешёл на UTF-8. Для реальных семибитных каналов есть вполне себе другие решения, которые любой восьмибитный трафик через себя туннелируют. Но для 99% населения, умеющего и желающего общаться только по TCP/IP, это реальный оверхед.
И да, ранее описанный подход мог бы применяться и к POST /u/point:
POST /u/point
Content-Type: text/plain; charset=utf-8
[auth_str]
[message]
.
shaos> Я для себя хочу попробовать новый вызов /u/n с ascii85+ вместо base64 - будет покомпактнее чуток
Вот это уж точно не упростит жизнь никому. Всем придётся пилить свою реализацию этого.
shaos> > мощно я задвинул? внушает? :)
Спасибо, с изначальным подходом к проектированию ii всё ясно.
shaos> в старой "болталке с девочками" hc.51 почти все хеши вида 7lwguohJulissiiuliss и mPJSJAI3ulissiiuliss а в других местах видимо просто отредактированные сообщения без изменения msgid...
И с реализациями тоже.
shaos> вот поэтому и нужны железобетонные хеши в качестве msgid - если хеш не сошёлся, то мессага битая или подменянная - т.е. одновременно проверяем и целостоность данных, и подлинность, причём не добавляя никаких лишних сущностей!
Полностью согласен.
[>]
Re: xc: lor
idec.talks
revoltech(spnet, 4) — ahamai
2024-10-27 08:41:51
ahamai> а вообще, у нас сейчас фанаты технологии, но нет фанатов распределённости и локального хранения.
Есть. Поэтому все подвижки в сторону «выкачивать не всё и не отовсюду» предлагаю отметать, как вредоносные.
В идеале — дайте мне возможность скачать все эхи одним файлом, а дальше уж разберусь локально, что с этим делать.
[>]
Re: Полуневдимые эхи
idec.talks
revoltech(spnet, 4) — ahamai
2024-10-27 08:59:39
ahamai> как отличить "конец передачи" от "оборвалось", чтобы не запарсить что не то
В том же гофере (как минимум при выдаче гофермапов) наши деды решили это гениальным способом: точкой на конце. Просто точка без ничего на отдельной строке после текста (CRLF . CRLF). Здесь в спецификации я вижу, что содержимое эхи заканчивается пустой строкой (LF LF). Но такое может возникнуть и в результате преждевременного закрытия соединения. А вот точка там не возникнет сама по себе никогда.
[>]
Re: Полуневдимые эхи
idec.talks
revoltech(spnet, 4) — shaos
2024-10-27 09:28:56
В сухом остатке _на данный момент_ имеем следующее:
* айдишник сообщения не может использоваться для проверки целостности, поскольку битые есть даже среди относительно новых (за 2024);
* длина файла с айдишниками эхи не настолько велика, чтобы заморачиваться со слайсами, а локально накладные расходы они увеличивают существенно (наверное, откачу логику tiifetch до простого выкачивания эх);
* на данный момент докачанность списка айдишников можно проверять наличием \n\n в конце, но в теории можно придумать сценарий, в котором это не сработает, пусть и крайне маловероятный.
[>]
Re: Полуневдимые эхи
idec.talks
revoltech(spnet, 4) — shaos
2024-10-27 11:52:44
shaos> не будем забывать про слабые ретроплатформы где память 64КБ и меньше
А на такие платформы уже портировали Tcl 8.6, sqlite3 и прочее? Я же конкретно насчёт своего клиента/фетчера говорю. Там-то понятное дело, что другие подходы ко всему нужны.
shaos> и потом возможность создания "листающих" клиентов, как было описано чуть ранее, должна оставаться, т.е. слайсы выкидывать ненадо...
Да я не против того, чтобы в стандарте они оставались.
[>]
Re: Полуневдимые эхи
idec.talks
revoltech(spnet, 4) — shaos
2024-10-27 11:54:57
shaos> а на старых "классических" эхах несходящиеся сообщения можно продолжать показывать помечая специальным символом...
Ну я у себя теперь просто делаю приписку (ID hash mismatch!) рядом с айдишником у таких сообщений.
[>]
Re: Стандарт
idec.talks
revoltech(spnet, 4) — Andrew Lobanov
2024-10-27 14:48:26
AL> Ты бы хоть иногда из крупных городов куда-то выезжал. Слайсы позволяют мне использовать IDEC в деревне, где интернет настолько нестабилен, что без слайсов можно просто забить на эти ваши эхи и общение в них.
Внезапно, я сам в селе. Интернет спутниковый.
По поводу слайсов на своём клиенте пока окончательно не решил. В принципе, для тестирования симулировать медленный трафик довольно легко: достаточно делать фетч через torsocks.
AL> Просто сделай новый транспорт. Там уже можно считать хоть точку в конце, хоть любую другую метку как частью протокола транспортного уровня, а не ii/idec.
Сделаю. Клиент tii (а конкретнее — компонент tiifetch), собственно, уже поддерживает выкачивание по гоферу, нексу, спартану и джемини. Не на чем только это всё потестить покамест.
AL> Почему?
А кто её передаст, точку эту?
AL> Для этого вообще никакой протокол не нужен. Просто паковать всю станцию в бандл и сразу отдавать клиенту. Ну и что что там несколько сотен мегабайт? Зато всё и клиент сам разберётся что ему надо, а что нет.
Вот для первого выкачивания такая опция не помешала бы. Иначе ему придётся качать те же несколько сотен мегабайт, но маленькими фрагментами.
AL> Мы и определились и отказались от максимализма.
Вместе с минимализмом.
[>]
Re: Стандарт
idec.talks
revoltech(spnet, 4) — Andrew Lobanov
2024-10-27 16:02:29
AL> Твой клиент не работает с твоей нодой?
Моей ноды ещё не существует.
AL> Что повышает надёжность передачи на нестабильном канале.
Каким образом, если проверка целостности по msgid, как мы выяснили, идёт лесом, а проверка целостности самого списка в эхе сейчас вообще отсутствует?
Ну то есть давай смоделируем ситуацию — обрыв соединения при фетче эхи. Этот обрыв может произойти во время:
1) скачивания списка айдишников в эхе (GET /u/e),
2) скачивания бандла (GET /u/m).
В случае номер 1, если обрыв произошёл до последнего известного нам айдишника, мы не знаем, что там между ними (последним известным нам и тем, где произошёл обрыв), поэтому всё равно придётся запрашивать тот же список заново, независимо от размера.
В случае номер 2, который на слабом канале критичнее, мы сравниваем список полученных сообщений со списком запрошенных и при несоответствии оных просто перекачиваем с последнего полученного (т.к. его тело могло быть выкачано не полностью). Изначальный размер бандла при этом значения также не имеет.
И это ещё с допущением, что само соединение установлено успешно. А чем нестабильнее канал, тем дольше устанавливается соединение. И накладные расходы на кучу мелких запросов в этом случае ещё сильнее влияют.
[>]
Re: Стандарт
idec.talks
revoltech(spnet, 4) — shaos
2024-10-27 16:05:45
shaos> опиши подробнее как по нексу планиуешь работать - я подниму сервачок :)
Ну геты с порта 1900 точно так же, как в хттп (просто путь в сокет, \n и забираем ответ), а посты по порту 1915 — каноничная NPS-форма такова:
cat <<EOF | nc station.domain 1915
/u/point
[auth_string]
[base64_message]
.
EOF
[>]
Re: Неожиданное наблюдение
idec.talks
revoltech(spnet, 4) — tuple
2024-10-27 17:36:01
tuple> IDEC протокол нужен только для обсуждения IDEC-реализаций.
Sad but true. Хотя мне, наверное, было бы достаточно корректно работающего ii. Просто по ходу дела выяснилось, что это ближе к мифу или оксюморону.
[>]
Re: Неожиданное наблюдение
idec.talks
revoltech(spnet, 4) — hugeping
2024-10-27 19:48:52
hugeping> Драматизировать тоже не стоит.
А кто владелец репы idec-net? Он здесь есть? Он способен привести документацию в адекватный и недвузначно трактуемый вид?
* Раз GET /list.txt всегда был в ii, надо его описать в базе, а не в расширениях.
* Раз айдишники в виде волшебного шопопало до сих пор проскакивают, надо указать, что алгоритм их генерации рекомендован. И указать правила замены на A-z, которые все ноды между собой понимали бы.
* Раз счётчики де-факто могут убывать, надо убрать ту приписку «Важно: параметр неубывающий».
Ну и так далее. В общем, привести теоретическую базу к тому, как оно всё на самом деле функционирует. Чтобы новые авторы клиентов (а тем более серверов) не путались в этих трёх соснах как минимум.
Я могу выложить свою (англоязычную) доку где-то здесь. Либо в english.talks, либо в какуюто новую эху. Там сейчас базовый ii без расширений по факту. Есть желание привлечь нексовских, гоферистов, джеминистов и прочих активистов смолнета к этой теме, но для начала неплохо было бы довести документацию до удобоваримого вида без разночтений.
[>]
Re: Стандарт
idec.talks
revoltech(spnet, 4) — hugeping
2024-10-27 20:25:13
hugeping> В стандарте написано что это расширение. Значит - расширение. Было оно в ii или нет, не важно.
В extensions.md: написано: «Здесь описаны расширения протокола, являющиеся основным отличием IDEC от ii.» — и там перечислен в том числе /list.txt. Это читается так, как будто IDEC от ii отличается в том числе /list.txt, т.е. в ii его не было.
hugeping> Рекомендованный алгоритм описан в стандарте. Но проверять на его соответствие -- в стандарте такого нет. В стандарте указаны не A-z, а A-Z. Но, подумав, не могу сказать что это тоже требует изменения стандарта. Ну, алгоритм отличается немного от ii, и что?
А то, что если IDEC декларирует обратную совместимость, то одно и то же сообщение не должно приводить к разным айдишникам в разных версиях стандарта. А по факту мы видим не то, что там написано.
hugeping> С счётчиками я не знаю что делать. Возможно, надо признать что этот стандарт большинство не исполняет и всё.
Как и многое другое оттуда же.
hugeping> А что ещё? Ну, переводы строк?
Про переводы строк как минимум нужно явно указать, что разделитель строки — строго LF, да. Пока вроде всё, но вычитать остальное не мешало бы.
[>]
Re: Стандарт
idec.talks
revoltech(spnet, 4) — Andrew Lobanov
2024-10-27 21:23:33
AL> Повод написать :)
Напишу. С нексом и слайсами. :) Пока на стадии проектирования.
AL> При этом, если вернулось не 200, то всё идёт лесом до следующего раза.
Если вернулось не 200 (имеется в виду ведь хттпшный 200?), то мы в самом начале понимаем, что что-то не то, и размер бандла снова-таки значения не имеет.
AL> Переводы строк могут быть какими угодно. Символ возврата каретки ни на что не влияет.
У меня на клиенте не влияет, а у пинга (вроде) на ноде с ними были проблемы.
Но вообще если уж под старину подстраиваться (семибитные каналы и всё такое), то у всех подобных протоколов де-факто стандартом является CRLF.
AL> Ну новый стандарт будет компактный и простой.
Это хорошо. Ждём-с.
AL> Жди и всё будет. У меня сейчас не очень простой период в жизни в плане свободного времени.
Понимаю, сам вот только недавно из отпуска вышел.
[>]
Re: Неправильный Subj
idec.talks
revoltech(spnet, 4) — hugeping
2024-10-27 21:26:02
hugeping> Зачем так делать? :)
Сам же просил все связанные со стандартом вещи начать тегировать как ответы на сабж «Стандарт». Или нет?
[>]
Re: Стандарт
idec.talks
revoltech(spnet, 4) — Andrew Lobanov
2024-10-28 13:30:13
AL> Накинул приблизительный черновик стандарта.
AL>
AL> http://s.spline-online.ru/idec.html
AL>
AL> Просьба посмотреть на предмет неоднозначностей и непонятностей. Постарался учесть всё, что мы тут обсуждали.
Выглядит неплохо. Но несколько моментов:
1) было бы неплохо уточнить символ переноса строки;
2) было бы неплохо уточнить для непосвящённых, что такое аплинки и даунлинки;
3) в старом стандарте указано, что для постинга именно через GET /u/point поле tmsg должно быть закодировано не просто в Base64, а в Base64-urlsafe. В новом стандарте это требование убирается или как?
[>]
Re: Стандарт
idec.talks
revoltech(spnet, 4) — Andrew Lobanov
2024-10-28 19:30:41
AL> Всё ещё не считаю это задачей стандарта. Мы передаём текст. Любой. Хотя, если большинство согласится, что нам нужно это стандартизировать, соглашусь.
А как же интероперабельность? Вот, допустим, человек решил написать клиента под старый Макинтош. Очень старый, ещё на процессоре архитектуры 68k, где ещё MacTCP отдельным пакетом шёл. Знаешь, какой на тех макосях тогда был стандартный символ перевода строки? Не LF и даже не CRLF, а именно CR. И как, будет тот клиент работать с существующими нодами, если стандарт не уточнит этот момент?
[>]
Re: Стандарт
idec.talks
revoltech(spnet, 4) — shaos
2024-10-28 21:10:34
shaos> Ну можно написать, что принимаем любой текст, но сохраняем только с \n (и сервер считает хеш уже по сконверченному тексту)
Это усложнит логику сервера и, что важнее, замедлит обработку постов.
[>]
Re: Стандарт
idec.talks
revoltech(spnet, 4) — shaos
2024-10-28 21:31:43
shaos> Что значит усложнит? Валидацию входящего в любом случае надо делать - вот вместе с валидацией и делать конверсию если надо
Ну то и значит, что валидация требует одни ресурсы, а конверсия — уже другие. Вот как раз нужно или не нужно делать конверсию — это уже дело конкретной станции. Например, с \r\n можно обрезать \r, а только с \r уже не принимать.
[>]
test
idec.talks
revoltech(tgi,15) — All
2024-10-22 18:20:27
ВоÑ, теперь всё работает.
Интересное кинцо, однако...
--- Revoltech ---