Сообщения в idec.talks

Re: Разбор idec №2

Ответ на сообщение
shaos>> а вот от msgid и далее делать неохота ибо оно криво будет работать т.к. порядок может быть чуть разный на разных нодах...
revoltech> Такого, кстати, быть не должно.
Такое, кстати, является вполне штатной ситуацией. Сообщения в индексе располагаются в порядке получения нодой. Все ноды получают сообщения в разном порядке.
+++ Лично я вижу в этом перст судьбы – шли по лесу и встретили программиста.
Andrew Lobanov to revoltech (2024-11-01 07:45:04) [ссылка]

Re: Test emoji

Ответ на сообщение
shaos> Надо игру какую-нить заварганить пошаговую...
⬜️⬛️⬛️⬛️
⬜️⬜️⬜️⬛️
⬛️⬛️⬜️⬛️
⬛️⬛️⬜️⬛️
⬛️⬜️⬜️⬛️
⬛️🧑‍🏭⬛️⬛️
⬛️⬜️⬛️⬛️

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

Вспомнил такую игрушку как https://rogule.com/
tuple to shaos (2024-11-01 07:44:22) [ссылка]

Re: Test emoji

Ответ на сообщение
На ii-php всё видно :)

Надо игру какую-нить заварганить пошаговую...
shaos to tuple (2024-11-01 07:28:34) [ссылка]

Re: Разбор idec №2

Ответ на сообщение
На http://ii.blcat.ru/idec.talks правильный порядок - значит blcat берёт сообщения с меня чаще, чеми я с него, а revoltech по-видимому читает сразу всех и часто - я просто вижу его ответы раньше т.к. он мой поинт и отвечает через меня...
shaos to shaos (2024-11-01 07:27:12) [ссылка]

Re: Test emoji

Ответ на сообщение
tuple>> 🙄😬🧒👩‍🚀🙆‍♀️👩‍👦‍👦👩‍👦👒🤷‍♀️👩‍❤️‍💋‍👩🧛‍♀️☝️👻💂‍♀️🤫🍉🍰🥣🥡🍨🍢🏣
revoltech> А почему не в idec.test?
Его на ping-е нет
+++ Никто не знает, как правильно. Так зачем же выдумывать правила?
doesnm to revoltech (2024-11-01 07:26:00) [ссылка]

Re: Разбор idec №2

Ответ на сообщение
doesnm>> Отдачу сделать по CGI (читерство), а вместо nc взять /dev/tcp (фича баша)
revoltech> Да что ж везде одни теоретики... /dev/tcp только для клиентских соединений работает. Сервер сугубо на нём не сделаешь.
Я же сказал что сервер по CGI
+++ Никто не знает, как правильно. Так зачем же выдумывать правила?
doesnm to revoltech (2024-11-01 07:25:19) [ссылка]

Re: Test emoji

Ответ на сообщение
А вот этого сообщения у меня ещё нет :)
shaos to revoltech (2024-11-01 07:19:36) [ссылка]

Re: Разбор idec №2

Ответ на сообщение
Возможно revoltech берёт сообщения Ромы прямо с blcat.ru и отвечает на них через меня, а я опрашиваю blcat.ru уже после, соответствено у меня ответы появляются раньше вопросов и затем это распространяется везде, кто берёт idec.talks с меня...
shaos to doesnm (2024-11-01 07:19:03) [ссылка]

Re: Test emoji

Ответ на сообщение
tuple> 🙄😬🧒👩‍🚀🙆‍♀️👩‍👦‍👦👩‍👦👒🤷‍♀️👩‍❤️‍💋‍👩🧛‍♀️☝️👻💂‍♀️🤫🍉🍰🥣🥡🍨🍢🏣
А почему не в idec.test?
revoltech to tuple (2024-11-01 07:14:28) [ссылка]

Re: Разбор idec №2

Ответ на сообщение
doesnm> Отдачу сделать по CGI (читерство), а вместо nc взять /dev/tcp (фича баша)
Да что ж везде одни теоретики... /dev/tcp только для клиентских соединений работает. Сервер сугубо на нём не сделаешь.
revoltech to doesnm (2024-11-01 07:13:50) [ссылка]

Test emoji

🙄😬🧒👩‍🚀🙆‍♀️👩‍👦‍👦👩‍👦👒🤷‍♀️👩‍❤️‍💋‍👩🧛‍♀️☝️👻💂‍♀️🤫🍉🍰🥣🥡🍨🍢🏣
tuple to All (2024-11-01 07:07:58) [ссылка]

Re: Разбор idec №2

Ответ на сообщение
>> Такого, кстати, быть не должно.
shaos> Да запросто - например я вашу беседу у себя на ноде вижу задом наперёд - сначала твои ответы, потом сообщения на которые ты отвечаешь, а где-то наверное есть правильный порядок...
Кстати у меня тоже самое. Я думал это прикол ping
+++ Никто не знает, как правильно. Так зачем же выдумывать правила?
doesnm to shaos (2024-11-01 07:03:08) [ссылка]

Re: Разбор idec №2

Ответ на сообщение
revoltech> Если брать продвинутый шелл вроде bash или oksh, всё можно сделать непосредственно в нём, кроме самой отдачи по TCP. Я, блин, гофер-клиента на чистом баше не так давно делал (Bopher-NG), вопрос только, что это решает.
Отдачу сделать по CGI (читерство), а вместо nc взять /dev/tcp (фича баша)
+++ Никто не знает, как правильно. Так зачем же выдумывать правила?
doesnm to revoltech (2024-11-01 06:56:04) [ссылка]

Re: Разбор idec №2

Ответ на сообщение
> это как раз тот уровень сложности, от которого я стараюсь держаться подальше.
Это сложность по твоему? Это наоборот лёгкость и непринуждённость :)
> Такого, кстати, быть не должно.
Да запросто - например я вашу беседу у себя на ноде вижу задом наперёд - сначала твои ответы, потом сообщения на которые ты отвечаешь, а где-то наверное есть правильный порядок...
shaos to revoltech (2024-11-01 06:54:14) [ссылка]

Re: Разбор idec №2

Ответ на сообщение
shaos> Вот чего я родил
«...А глянешь — мамочка моя! Эт чё? О чём? А набуя?» ©
Не, прочесть-то можно (хотя да, этот код напомнил, почему я пых терпеть не могу), но вот это как раз тот уровень сложности, от которого я стараюсь держаться подальше. Могу в отдельном сабже сделать разбор сего шындевра. Но у меня в ноде такого не будет точно.
shaos> а вот от msgid и далее делать неохота ибо оно криво будет работать т.к. порядок может быть чуть разный на разных нодах...
Такого, кстати, быть не должно.
revoltech to shaos (2024-11-01 06:40:05) [ссылка]

Re: Разбор idec №2

Ответ на сообщение
ahamai> я не помню, есть echo_flt в том коде, но это вообще неважно.
Важно. Поскольку это уже не три строчки.
ahamai> лишнего оно не запросит а на неккоректное просто упадёт.
А надо, чтобы не падало, а игнорировало такие имена.
ahamai> оформление полиси, соглашений, стандартов и прочего - это вообще не технология.
Ну дык. Без чёткого ТЗ результат всегда ХЗ.
ahamai> Я не добавил фразу "как эту задачу решают программист и непрограммист"
Непрограммисты (хотя ХЗ, что ты в это слово вкладываешь) обычно в такие вещи просто не лезут.
ahamai> я, например. не программист
Я тоже. По профессии я вообще девопс, а по образованию криптограф. Но вот почему-то приходится программистам нод очевидные вещи втолковывать.
revoltech to ahamai (2024-11-01 06:31:19) [ссылка]

Re: Разбор idec №2

Ответ на сообщение
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-режиме и вообще не обязан использовать слайсы при фетчинге. Но не в голове у Ромы.

Короче, я забодался и Рома идёт лесом со своим странным нытьём. Ходить с ним кругами смысла нет, полезной нагрузки в его сообщениях нет, наезды и истерики в его сообщениях есть. Ну и нафейхоа? Пока добавил в цезий кривой и косой, но механизм твитов. Доработаю и выдам на суд общественности.
+++ Лично я вижу в этом перст судьбы – шли по лесу и встретили программиста.
Andrew Lobanov to revoltech (2024-11-01 06:24:30) [ссылка]

Re: Разбор idec №2

Ответ на сообщение
Вот чего я родил - всем сестра'м по серьга'м как говорится :)
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 и далее делать неохота ибо оно криво будет работать т.к. порядок может быть чуть разный на разных нодах...
shaos to revoltech (2024-11-01 06:19:54) [ссылка]

Re: Рома порвался

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

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

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

ps. Я считаю, что правильного подхода не существует.
ahamai to revoltech (2024-11-01 06:13:41) [ссылка]

Re: Разбор idec №2

Ответ на сообщение
> Даже не вчитываясь в on вместо in... А где здесь проверка на то, что тебе валидные имена эх подсунули? Хотя бы на наличие точки и длину от 3 до 120 символов?
я не помню, есть echo_flt в том коде, но это вообще неважно. главное, чтобы код был проще и понятнее. про валидирование и прочее это не ко мне точно, лишнего оно не запросит а на неккоректное просто упадёт. это для меня стандарт - простота превыше, поэтому ii и самодостаточна и при этом база для расширений.
> В общем, как раз то, о чём я и говорил.
Нет. это то, о чём я говорил. Последние несколько дней.
> Не понимаю, чем это знание мне поможет в плане грядущей реализации своей ноды.
оформление полиси, соглашений, стандартов и прочего - это вообще не технология. это политика. сначала политика определяет стандарты, потом стандарты технологию. так было с ii. дважды.

Блин. я специально старался писать не ответы, а новые темы, чтобы не было обсуждение деталей, а всё опять сходится к обсуждению деталей. :)
ahamai to revoltech (2024-11-01 06:10:30) [ссылка]

Re: Разбор idec №2

Ответ на сообщение
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> Но зато сейчас ты знаешь историю в ретроспективе, подумай об этом :) Ну или может кто ещё зайдёт и подумает.
Не понимаю, чем это знание мне поможет в плане грядущей реализации своей ноды. Вот если вообще свой протокол буду пилить, то, естественно, учту ваш опыт.
revoltech to ahamai (2024-11-01 06:02:59) [ссылка]

Re: Рома порвался

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

ps. проблема не в /u/e
ahamai to revoltech (2024-11-01 05:58:36) [ссылка]

Re: Рома порвался

Ответ на сообщение
ahamai> вот смотри - есть какие-то данные, всё из которых, кроме несколько строк, выбираются простым фильтром. один будет писать крутой усложнённый фильтр, чтобы он отфильтровал все данные. второй применит простой фильтр а потом удалит данные вручную. это не разные программы, это разные ПОДХОДЫ.
В современном мире применителя второго подхода взломают за считанные дни. Забывать о таком подходе надо.
revoltech to ahamai (2024-11-01 05:57:43) [ссылка]

Re: Разбор idec №2

Ответ на сообщение
> Ну скинь эти три строки тогда. Почему-то уверен, что всего необходимого там не будет.
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 и новые одинаково простые, он вообще не с той стороны смотрит. Но с другой стороны так никто и не посмотрел. Ладно. Кто как хочет, тот так и делает, жаль только обсуждение сразу ушло в совсем другую сторону. Но зато сейчас ты знаешь историю в ретроспективе, подумай об этом :) Ну или может кто ещё зайдёт и подумает.
ahamai to revoltech (2024-11-01 05:56:11) [ссылка]

Re: Рома порвался

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

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

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

ii не умел "экономить трафик"
ahamai to revoltech (2024-11-01 05:42:10) [ссылка]

Re: Рома порвался

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

Если у тебя это не так, чини ноду.
revoltech to ahamai (2024-11-01 05:39:22) [ссылка]

Re: Рома порвался

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

А почему так криво задизайнили в 2014 — это уж точно вопрос не ко мне. Но сейчас это приходится принимать как данность. Или же ломать совместимость полностью и делать как следует. Но тогда это уже будет другая сеть.
revoltech to ahamai (2024-11-01 05:21:20) [ссылка]

Re: Разбор idec №2

Ответ на сообщение
ahamai> У меня тогда две. Там три строки понятного прозрачного кода.
Ну скинь эти три строки тогда. Почему-то уверен, что всего необходимого там не будет.
revoltech to ahamai (2024-11-01 05:14:01) [ссылка]

Re: Рома порвался

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

Разговор на ту тему, что мне интересно, вас вытянуть не удалось, вы сразу переходите на совсем другую, мне неинтересную, и которая вообще ничё не даёт. Впрочем, в текущем статусе стандарт вообще ничего не даёт.
ahamai to ahamai (2024-11-01 05:11:40) [ссылка]

Re: Рома порвался

Ответ на сообщение
ahamai> Зато у вас новый стандарт будет. Ура!
А старый (до IDEC) где почитать-то? Или опять в ИМХОдники будут тыкать?
revoltech to ahamai (2024-11-01 05:09:05) [ссылка]