#  Re: Полуневдимые эхи
ahamai (blackcat, 2) → revoltech  –  07:15:21 2024-10-25

Кросспостинг был изначально, но я от него сразу отказался, он создаёт больше проблем, чем решает. Он тут не нужен
#  Re: Полуневдимые эхи
shaos (spnet, 2) → ahamai  –  07:09:41 2024-10-25

> Сначала научи их utf8 :)

А я уже - ещё в декабре 2021 :)

https://www.youtube.com/live/p20rd0bqZTs
#  Re: Полуневдимые эхи
shaos (spnet, 2) → shaos  –  07:06:15 2024-10-25

Там у него была историческая эха ii.14 которой похоже больше нигде нету :(

https://web.archive.org/web/20211023211000/http://gears.headake.win/idec/ui2/channel/ii.14/
#  Re: Полуневдимые эхи
revoltech (spnet, 4) → shaos  –  07:05:38 2024-10-25

shaos> Кстати вопрос про POST в /u/m периодически поднимался, например вот тут ii://w6o5S9CleUqqm4Lgc8O9 (декабрь 2021) что так ни к чему и не привело - вот полное обсуждение

И там AL написал, что POST /u/m не решает ни одной проблемы. Как же не решает, если решает? Вот вам проблема: куча лишних соединений и метаданных, т.к. владельцы станций ограничивают длину GET-запросов, либо сознательно, либо оставляя дефолт на веб-сервере. С POST запрос будет всегда одним в идеале.

С тем же успехом можно на Gemini/Spartan перелезть полностью — там длина запроса 2048 символами ограничивается, если не ошибаюсь. В Nex и такого ограничения нет.
#  Re: Полуневдимые эхи
ahamai (blackcat, 2) → revoltech  –  07:02:24 2024-10-25

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

За 10 лет не помню проблем с текущим фетчем
#  Re: Полуневдимые эхи
ahamai (blackcat, 2) → ahamai  –  06:57:32 2024-10-25

На мобильном интернете
#  Re: Полуневдимые эхи
ahamai (blackcat, 2) → revoltech  –  06:57:09 2024-10-25

У меня в фетчере то ли по 20 то ли по 40. Вся текущая сеть выкачивается довольно быстро.
#  Re: Полуневдимые эхи
ahamai (blackcat, 2) → shaos  –  06:56:09 2024-10-25

> если IDEC уже имеет все средства как часть стандарта, то зачем для него городить кастомные гейты?..

Без гейта ты нормально не отобразишь ничего ни на zx spectrum ни на msdos, ни на atari st. Сначала научи их utf8 :)

Хочется хоть одно реальное применение слайсов, кроме "забрать последние сообщения"
#  Re: Полуневдимые эхи
shaos (spnet, 2) → revoltech  –  06:58:03 2024-10-25

Кстати вопрос про POST в /u/m периодически поднимался, например вот тут ii://w6o5S9CleUqqm4Lgc8O9 (декабрь 2021) что так ни к чему и не привело - вот полное обсуждение:

https://tgistation.ru/echo/subj/8/%D0%9F%D1%80%D0%B5%D0%B4%D0%BB%D0%BE%D0%B6%D0%B5%D0%BD%D0%B8%D1%8F%20%D0%B8%D0%BB%D0%B8%20%22%D0%9A%D0%B0%D0%BA%20%D0%BD%D0%B0%D0%BC%20%D0%BE%D0%B1%D1%83%D1%81%D1%82%D1%80%D0%BE%D0%B8%D1%82%D1%8C%20idec%3F%22/

А куда делся ake кстати? Его сайт http://gears.headake.win/idec/ui2/ тоже пропал где-то в 2022 году:

https://web.archive.org/web/20220120232845/http://gears.headake.win/idec/ui2/
#  Re: Полуневдимые эхи
shaos (spnet, 2) → ahamai  –  06:40:40 2024-10-25

> зачем тебе там список сообщений, если ты там и одно сообщение не отобразишь? :)

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

> для таких вещей вообще абсолютно кастомные гейты надо делать, а не стандартные средства

если IDEC уже имеет все средства как часть стандарта, то зачем для него городить кастомные гейты?...
#  Re: Полуневдимые эхи
revoltech (spnet, 4) → shaos  –  06:33:48 2024-10-25

shaos> гугол говорит 8192

Да, в теории 389 айдишников туда поместятся. Всё равно маловато, но лучше, чем по 12 группировать.

Может, сделаю в stations.txt напротив каждой урлы поле, которое указывает максимальное количество адишников. Мол, если не знаем, ставим 12.
#  Re: Полуневдимые эхи
ahamai (blackcat, 2) → shaos  –  06:17:39 2024-10-25

> Например ZX Spectrum с сетевой карточкой Spectranet - у этого компа 48КБ ОЗУ только, но т.к. Spectranet использует бейсик (который в ПЗУ прошит в первых 16КБ) у которого есть свои переменные и ещё экран занимает 6912 байт ОЗУ т.е. под буфера останется 32КБ или даже меньше...

зачем тебе там список сообщений, если ты там и одно сообщение не отобразишь? :)

для таких вещей вообще абсолютно кастомные гейты надо делать, а не стандартные средства

ps. блин, опять потерялся текст про спектрум в коробке из под обуви, интересно в какую эху я его запульнул в итоге... в рухуморе14 нет
#  Re: Полуневдимые эхи
shaos (spnet, 2) → shaos  –  06:25:33 2024-10-25

гугол говорит 8192
#  Re: Полуневдимые эхи
revoltech (spnet, 4) → shaos  –  06:18:24 2024-10-25

shaos> это тоже можно

Это было бы здорово. С любым ударением на этом слове.
#  Re: Полуневдимые эхи
shaos (spnet, 2) → revoltech  –  06:14:01 2024-10-25

кстати у меня апач - у него тоже ограничение на 256 символов в урле?
#  Re: Полуневдимые эхи
revoltech (spnet, 4) → hugeping  –  06:11:15 2024-10-25

hugeping> Нет.

Вполне достаточный ответ.

hugeping> А слайсы решают проблему больших индексов.

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

Мой юзкейс — зашёл утром, запустил tiifetch.tcl или нажал на кнопочку Fetch all echos в tiix, клиент докачает изменения всех эх за ночь и в течение дня дофетчиваю только новое содержимое конкретно интересующих эх, вручную жмякая на Fetch this echo при необходимости. За это время в них может собраться куда больше 100 сообщений, и в случае слайсинга ещё на серверной части до клиента они уже не дойдут никогда.

Поэтому придерживаться базового протокола мне пока кажется более разумным, только вот с выгребанием по /u/m надо что-то решать. 12 айдишников на запрос — слишком мало, а многопоточность всё равно не решает проблему с кучей TCP-соединений и HTTP-метаданных.
#  Re: Полуневдимые эхи
shaos (spnet, 2) → ahamai  –  06:02:59 2024-10-25

ok - попробую для начала list.txt?h=1
#  Re: Полуневдимые эхи
shaos (spnet, 2) → revoltech  –  06:01:07 2024-10-25

> Эх, лучше бы поддержали POST /u/m, тогда не пришлось бы по куче мелких запросов при перефетче делать.

это тоже можно
#  Re: Полуневдимые эхи
shaos (spnet, 2) → ahamai  –  05:59:54 2024-10-25

> Вообще не понимаю, можно какой-то конкретный пример.

Например ZX Spectrum с сетевой карточкой Spectranet - у этого компа 48КБ ОЗУ только, но т.к. Spectranet использует бейсик (который в ПЗУ прошит в первых 16КБ) у которого есть свои переменные и ещё экран занимает 6912 байт ОЗУ т.е. под буфера останется 32КБ или даже меньше...

> у меня и постраничного вида нет

ну может у кого-то есть, ну или будет ;)
#  Re: Полуневдимые эхи
revoltech (spnet, 4) → shaos  –  05:57:21 2024-10-25

shaos> ну и GET /list.txt?h=1 заодно тоже можно поддержать ;)

Эх, лучше бы поддержали POST /u/m, тогда не пришлось бы по куче мелких запросов при перефетче делать.

А то тут предложили многопоточность, но я ориентируюсь в том числе и на одноядерное железо. И, конечно, вопроса оптимизации (а оптимизация ≠ скорость) многопоточность при выгребании сообщений не решает — всё равно при полном перефетче будет гоняться куча метаданных и создаваться куча TCP-соединений неизвестно с какой целью.
#  Re: Полуневдимые эхи
ahamai (blackcat, 2) → shaos  –  05:09:21 2024-10-25

у меня это так было сделано

https://github.com/gk11-ru/ii-elp/blob/master/run.py#L24
#  Re: Полуневдимые эхи
ahamai (blackcat, 2) → shaos  –  05:08:11 2024-10-25

в протокол ничё добавлять не надо, но если волнует трафик можешь сделать это в любом виде, хоть как у меня через list.txt, хоть как угодно иначе - я приспособлю фетчер, чтобы хабры и опеннеты зря не гонять лишний раз (выборки никакие юзать не буду, просто не дёргать эху если она не изменилась)
#  Re: Полуневдимые эхи
ahamai (blackcat, 2) → shaos  –  05:04:07 2024-10-25

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

Вообще не понимаю, можно какой-то конкретный пример. Зачем брать кусками список? И мегабайт хэшей - это 49000 сообщений. Вообще не могу представить юзкейс.

> допустим надо взять последние 5 хешей из retro.talks:
> /u/e/retro.talks/-5:5
> в данном случае смещение отрицательное - значит считаем с конца ну и после двоеточия количество

я всё равно не могу понять, зачем это может быть нужно кроме юзкейса "запросить n последних сообщений". Я в слайсах не разбираюсь, там вечно массив 20 может быть или 19, или 20, или 21, у меня и постраничного вида нет, потому что у меня и реверс и разбирать это я с ума сойду. Вот это я сделать не смогу, мне слишком нудно разбираться. Достаточно было одного крайнего случая "н последних сообщений", это гораздо проще кодить и на клиенте, и на сервере. Мой lim прозрачен для вообще любых клиентов, какие существовали в истории, если кто-то не хочет тянуть 49000 файлов. А по факту в txt клиенте у меня уже ограничение на запрос только 100 последних мессаг. Средств для больших эх никогда не задумывалось потому что изначально, и это была часть концепции, не должно было быть больших эх.

> по идее "жобавляется" всегда в конец, а из середины только удаляется (блеклистается) и если брать частями, то наверное надо брать с перехлёстом на 1, чтобы точно ничего не удалилось на границах блоков пока ты их вычитываешь...

ну если бы я делал фетчер, я бы ещё штук 5 сверху проверял, на всякий случай. и раз в день полная проверка списка.
#  Re: Полуневдимые эхи
shaos (spnet, 2) → ahamai  –  05:30:15 2024-10-25

да - хэш надёжнее, но действительно придётся хранить хеши для каждого узла

вобчем я наверное сделаю у себя вызов GET /x/h/echo.1/echo.2 по аналогии с GET /x/c/echo.1/echo.2

ну и GET /list.txt?h=1 заодно тоже можно поддержать ;)

idec.talks:1699:hsh/wHerzeypz8j1d8tviSRh
blcat.local:6:hsh/kAIYYMMc5DWK0FJhsW64
retro.talks:62:hsh/bahvlLwAzK2ArGHvXWat
bot.habr.rss:157:hsh/dwqigyrvKJQURxn88dwq
lor.opennet:127:hsh/12hqQwDfGoRXxD5ILIfj
ru.humor.14:817:hsh/4GxIyw2R69G75LlwnG0r
lor.gold:47:hsh/f4BQcuDnC7LTwzQHZ42k
linux.14:919:hsh/k8AiOJGrmMm1Q30W0Stz
#  Re: Полуневдимые эхи
shaos (spnet, 2) → ahamai  –  05:22:56 2024-10-25

Действительно:

a45cdfa3 (user 2014-04-01 19:19:03 +1100 9) @route('/list.txt')
a45cdfa3 (user 2014-04-01 19:19:03 +1100 10) def list_txt():
a45cdfa3 (user 2014-04-01 19:19:03 +1100 11) response.set_header ('content-type','text/plain; charset=utf-8')
08c516db (user 2014-04-06 00:06:51 +1100 12) lst = api.load_echo(False)[1:]
08c516db (user 2014-04-06 00:06:51 +1100 13) if request.query.n:
08c516db (user 2014-04-06 00:06:51 +1100 14) return '\n'.join([t[0] for t in lst])
08c516db (user 2014-04-06 00:06:51 +1100 15) else:
08c516db (user 2014-04-06 00:06:51 +1100 16) return '\n'.join(['%s:%s:%s' % t for t in lst])
08c516db (user 2014-04-06 00:06:51 +1100 17)
Powered by iii-php v0.11