[#] чмоки всем кто в этом чяте
spacejam(lenina,98) — All
2014-06-03 07:17:17


subj

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

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

1. даты сообщений

я считаю их необходимо отдавать в спискес идентификаторами. вы правы в том, что никому неинтересны архивы эхи за последние 2 года, но миграция - это не выход (об этом ниже). мне надо получить список сообщений с датами, положить их в склайт, сделать select id from msgs where date > вчера, перенаправить вывод в курл, выводом курла заполнить недостающие куски. потом я их попуржу из базы запросом delete from msgs where date > прошлый месяц.

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

2. склайт

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

вообще можно описать только протокол обмена сообщениями. формат хранения на диске - это специфика реализации.

3. индексы эх и миграция

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

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

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

4. должен быть способ запросить все эхи с аплинка

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

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

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

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

5. личный совет

пожалуйста не быкуйте на лоре на людей у которых есть претензии к реализации сети. топик неприятно читать.

какие-нибудь идеи?

[#] Re: чмоки всем кто в этом чяте
Romero Yakovlev(lenina,1) — spacejam
2014-06-03 07:31:22


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

не вижу проблемы - это a. нода должна принимать входящих юзеров, как я понимаю - это b.

> старые сообщения ни мне, ни поинтам не нужны. чтобы кто-то их вечно хранил я требовать не буду. если кто-то хранит архивы - честь и хвала, но мне всё равно.

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

А вообще - вы фетчер, вам и карты в руки. Хоть метод биссектрисы применяйте :) Вы же сами выбираете, что фетчить, никто вам не указ.

> 2. склайт

это обсуждали буквально вчера. и какой там формат, и какой способ БД может быть. к сожалению, обсуждали мимоходом и в im.1406, а не в dev. надо будет, наверное, это обсуждение перенести.

> 3. индексы эх и миграция
> есть ли планы убрать .14 из названий эх?

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

> я забью потому что это рутинная работа. рутинную работу должны делать компьютеры.

эту работу могут делать компьютеры


> 4. должен быть способ запросить все эхи с аплинка

да. я сегодня ещё буду объяснять, почему сложилоь так, а не иначе. только найду человека, который бы меня об этом спрашивал. :) в общем случае http://51t.ru/list.txt


> пожалуйста не быкуйте на лоре на людей у которых есть претензии к реализации сети. топик неприятно читать.

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

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

[#] Re: чмоки всем кто в этом чяте
spacejam(lenina,98) — Romero Yakovlev
2014-06-03 08:01:37


>не вижу проблемы - это a. нода должна принимать входящих юзеров, как я понимаю - это b.

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

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

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

можете объяснить на пальцах в чём конкретно проблема? хеш, автор, дата, сабж, тело - это всё части сообщения, что мешает кроме хеша выдать ещё и дату? возможно я человек новый, но проблемы я не вижу. select id, date from msgs where date >= requested_date и выдать это в вывод.

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

>А вообще - вы фетчер, вам и карты в руки. Хоть метод биссектрисы применяйте :) Вы же сами выбираете, что фетчить, никто вам не указ.

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

>это обсуждали буквально вчера. и какой там формат, и какой способ БД может быть. к сожалению, обсуждали мимоходом и в im.1406, а не в dev. надо будет, наверное, это обсуждение перенести.

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

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

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

из-за того, что вы в это упёрлись возникают другие проблемы: надо мигрировать, выдаются все сообщения с начала времён, хоть их никто и не просил. а всё что надо чтобы этого избежать - ёбаная дата в utc+0. вместе со списком сообщений, либо уметь на входе распознать откуда запрашивают. например /m/ii.dev.14/1401767669, а реализация уже сама по базе сверится. /m/ii.dev.14/0 - сообщения с начала времён.

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

>эту работу могут делать компьютеры

ну сделайте

>да. я сегодня ещё буду объяснять, почему сложилоь так, а не иначе. только найду человека, который бы меня об этом спрашивал. :) в общем случае http://51t.ru/list.txt

ну объясните уже наконец один раз, напишите на какой-нибудь страничке в интернете. я новый человек в сети, откуда я его должен взять? скачать все сообщения в сети, потом grep | sort | uniq? а не скачивая все сообщения никак? ну пиздец.

в склайт это select id from echos и отдать поинту то, что есть у меня, такой же запрос можно сделать ко всем аплинкам, а они к своим аплинкам. получится p2p сеть в которой серией запросов можно собрать весть список эх и иногда обновлять. новые эхи будут постепенно расползаться по нодам.

[#] Re: чмоки всем кто в этом чяте
Romero Yakovlev(lenina,1) — spacejam
2014-06-03 08:14:04


> когда памяти всего 32 мегабайта, 5 мегбайт для ноды - это очень много, там не отлько нода, там ещё другой софт должен работать.

поэтому и предложен был вариант либо "поток zlib + поток заголовков" либо "поток zlib в sqlite, с нужными заголовками"

> можете объяснить на пальцах в чём конкретно проблема? хеш, автор, дата, сабж, тело - это всё части сообщения, что мешает кроме хеша выдать ещё и дату? возможно я человек новый, но проблемы я не вижу. select id, date from msgs where date >= requested_date и выдать это в вывод.

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

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

> /m/ii.dev.14/1401767669

это было в версии 0.2. если хотите, сделайте hg checkout на нужную ревизию, и пользуйтесь. по нашим принципам, архив эхи XX - это архив, где всегда есть полная копия сообщений из этой эхи.

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

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


> ну объясните уже наконец один раз, напишите на какой-нибудь страничке в интернете

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


> в склайт это select id from echos и отдать поинту то, что есть у меня, такой же запрос можно сделать ко всем аплинкам, а они к своим аплинкам. получится p2p сеть в которой серией запросов можно собрать весть список эх и иногда обновлять. новые эхи будут постепенно расползаться по нодам.

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

[#] Re: чмоки всем кто в этом чяте
spacejam(lenina,98) — Romero Yakovlev
2014-06-03 08:38:10


>поэтому и предложен был вариант либо "поток zlib + поток заголовков" либо "поток zlib в sqlite, с нужными заголовками"

это не так важно, попробую объяснить. если курл читает чанками и сразу ложит в файл, то не важно злиб там или не злиб. но чтобы только запустить интерпретатор питона понадобится 3-5 секунд, а он ещё что-то делать должен. скорее всего он выест 100% 400-х мегагерцового мипса который стоит на этом роутере, залезет в своп да юсб-диске со своим сраным сборщиком мусора. тащить надо всю сеть by design. это значит, что если трафик в сети будет значительным, то роутер будет работать 24/7 постоянно копируя всю сеть. значит скорее всего он ничего другого делать не будет.

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

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

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

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

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

[#] Re: чмоки всем кто в этом чяте
Romero Yakovlev(lenina,1) — spacejam
2014-06-03 08:45:19


> это не так важно, попробую объяснить. если курл читает чанками и сразу ложит в файл, то не важно злиб там или не злиб. но чтобы только запустить интерпретатор питона понадобится 3-5 секунд, а он ещё что-то делать должен. скорее всего он выест 100% 400-х мегагерцового мипса который стоит на этом роутере, залезет в своп да юсб-диске со своим сраным сборщиком мусора. тащить надо всю сеть by design. это значит, что если трафик в сети будет значительным, то роутер будет работать 24/7 постоянно копируя всю сеть. значит скорее всего он ничего другого делать не будет.

zlib - для сжатия. для минимального места на диске.

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

откровенно говоря, если вам не нужны пойнты, то всё, что вам нужно, работает вот так, хоть на busybox:

for e in `cat subscribe.list`
do
wget http://51t.ru/e/$e -O echo/$e

for m in `cat echo/$e`
do
wget http://51t.ru/m/$m -O msg/$m
done

done


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

скажите, вы фидо вообще видели? если да, то к чему эти вопросы - все основные принципы такие же.


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

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

[#] Re: чмоки всем кто в этом чяте
spacejam(lenina,98) — Romero Yakovlev
2014-06-03 09:04:32


>zlib - для сжатия. для минимального места на диске.

zip не творит чудеса. место на диске всё равно ограничено.

>откровенно говоря, если вам не нужны пойнты, то всё, что вам нужно, работает вот так, хоть на busybox:

если мне не нужны поинты, значит я поинт

>скажите, вы фидо вообще видели? если да, то к чему эти вопросы - все основные принципы такие же.

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

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

желаю удачи.

[#] Re: чмоки всем кто в этом чяте
Romero Yakovlev(lenina,1) — spacejam
2014-06-03 09:09:24


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

вообще не понятно, к чему это.

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

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

[#] Re: чмоки всем кто в этом чяте
spacejam(lenina,98) — Romero Yakovlev
2014-06-03 09:23:52


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

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

>если вы тянете эху, она должна быть у вас целиком.

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

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

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

вы всё таки не торопитесь, подумайте. не будете менять ii, да и хуй с ним, сделаете iii.

[#] Re: чмоки всем кто в этом чяте
Romero Yakovlev(lenina,1) — spacejam
2014-06-03 10:05:48


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

оно взято из целесообразности.

> в фидо эхи пуржились, я вообще не обязан был никому эти эхи доставлять.

в ii вы вообще никому ничего не обязаны. вы догововариваетесь со своими линками, кому что нужно.

> всем было насрать, что в эхах видны только новые сообщения.

это не так. радость сидеть после подписки перед пустым голдедом, и ждать неделю получения faq - сомнительна

> то, что предлагаете вы - я получаю архив за годкоторый никому не нужен, но тратит мои ресурсы

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

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

> вы всё таки не торопитесь, подумайте. не будете менять ii, да и хуй с ним, сделаете iii.

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