Сообщения в ii.14

Re: Тестовая нода

Ответ на сообщение
AL> За двое суток я пронаблюдал нулевую активность на тестовой ноде. В связи с чем закрыл её за ненадобностью.
Когда ты только поднял ту ноду, я посмотрел, почесал репу и подумал, что пока нечего там было тестировать.

Сначала напишу поддержку фэх в PHP-ноде (+ свой отдельный скрипт с квотой), а там уже и участие появится.

// На дачу стал ездить, времени опять меньше
vit01 to Andrew Lobanov (2017-06-22 06:31:40) [ссылка]

Re: Тестовая нода

Ответ на сообщение
За двое суток я пронаблюдал нулевую активность на тестовой ноде. В связи с чем закрыл её за ненадобностью.
Andrew Lobanov to Andrew Lobanov (2017-06-22 05:03:28) [ссылка]

Re: Английская дока

Ответ на сообщение
Мы тут обсуждаем содержание вот этой странички

https://ii-net.tk/idec-doc/?p=protocol-en

Это наши внутренние разборки "под капотом", и они к инстеду не имеют никакого отношения.
vit01 to Wol4ik (2017-06-21 17:40:12) [ссылка]

Re: Английская дока

Ответ на сообщение
Когда захожу на сайт из гугл-поиска, то автоматом попадаю на английскую версию (это частная особенность моего браузера). Обратил внимание, что в ангийской версии в разделе документация нет ссылок на русские ресурсы и доклады с уроками по Instead на iFiction (они и неуместны). Это мне понравилось. В английском очень слаб.
Wol4ik to vit01 (2017-06-21 17:20:26) [ссылка]

Re: Английская дока

Ответ на сообщение
vit01> P.S. остальным сетянам тоже желательно хоть как-то прокомментировать сабж и внести исправления, если надо
Я бы и рад, но я в английском не настолько копенгаген, чтобы обнаружить некорректность.

Но попробую =)
Andrew Lobanov to vit01 (2017-06-21 15:32:00) [ссылка]

Re: Английская дока

Ответ на сообщение
Сделал некоторые исправления и смержил в мастер.
Также английская дока теперь доступна на сайте.

P.S. остальным сетянам тоже желательно хоть как-то прокомментировать сабж и внести исправления, если надо
vit01 to Difrex (2017-06-21 11:54:28) [ссылка]

Тестовая нода

Поднял сабж с фэхами. http://spline-online.tk:62200/

Краткое руководство по работе лежит прямо на ней. Регистрация открыта.
Andrew Lobanov to All (2017-06-21 04:07:55) [ссылка]

Re: Файлэхи

Ответ на сообщение
vit01>>> И всё-таки я просто настаиваю, чтобы в /f/e выдавался размер файла в байтах.
Та-да. Теперь в f/e на место имени пользователя пришёл размер файла в байтах.

Индекс, таким образом, имеет следующий формат:
fid:filename:size:address:description
Andrew Lobanov to vit01 (2017-06-20 12:52:10) [ссылка]

Re: Файлэхи

Ответ на сообщение
vit01> Готово. Теперь параметр pauth в /x/file доступен только через POST.
vit01> Документация обновлена как в репозитории, так и на сайте.
Спасибо. В свою очередь я внёс эти исправления в iing.

Так же. Не взирая на то, что фэхи хорошо легли на фреки, вернул схему f/f.

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

fid генерируется тем же алгоритмом, что и msgid, только по содержимому файла (или я об этом уже писал?).

В гите уже новая версия iing с новой версией фетчера, учитывающего фэхи. Пока для тестирования, конечно.
Andrew Lobanov to vit01 (2017-06-20 12:50:02) [ссылка]

Re: Английская дока

Ответ на сообщение
В целом меня устраивает, но есть очепятки, некоторые фактические неточности и немного недосказанности.
Как время будет, поправлю и смержу
vit01 to Difrex (2017-06-20 10:09:38) [ссылка]

Английская дока

https://github.com/vit1-irk/new-docs/pull/1

Гляньте. Если все ок, то можно помержить будет.
Difrex to All (2017-06-20 09:31:42) [ссылка]

Re: Файлэхи

Ответ на сообщение
AL> Да я только за. Перепиши стандарт - я подтянусь. Мне не тяжело.
Готово. Теперь параметр pauth в /x/file доступен только через POST.
Документация обновлена как в репозитории, так и на сайте.
vit01 to Andrew Lobanov (2017-06-19 17:01:55) [ссылка]

Re: Файлэхи

Ответ на сообщение
vit01> Вот тебе 3 различных варианта
vit01> GET /x/file/pauth/fecho.1/file1
vit01> GET /x/file/fecho.1/file2
vit01> GET /x/file/pauth/file3
Дело в том, что второй вариант не работает да. Об этом я писал несколько выше. Там, где я говорил о плоском публичном списке файлов.
vit01> Я б от этой каши (GET-API) избавился, но кроме моих скриптов и клиентов есть твои, например. Так что ты и решай.
Да я только за. Перепиши стандарт - я подтянусь. Мне не тяжело.
Andrew Lobanov to vit01 (2017-06-19 16:35:47) [ссылка]

Re: Файлэхи

Ответ на сообщение
AL>>> x/file/filename, x/file/pauth/filename:path не пересекаются.
vit01>> // Тогда уж path:filename.
AL> Тут нет двоеточия. Это я наподобии бутылковых маршрутов написал. @route("x/file/"), что означает, что принимается pauth и filename в виде some/thing/there/file.zip, например. С точки зрения ФС любой ОС всё весьма прозрачно.
Да причём здесь ФС? Как распарсить, что есть что? Надо различить и пароль, и обычный файл

Вот тебе 3 различных варианта

GET /x/file/pauth/fecho.1/file1
GET /x/file/fecho.1/file2
GET /x/file/pauth/file3

Как распарсить первый, ещё понимаю. Но как заниматься обработкой второго и третьего (т.е. как их отличить между собой), не в курсе. Самый простой способ - убрать нафиг pauth из GET-параметров. Более того, все мои клиенты и скрипты, насколько помню, используют исключительно POST, поэтому изменение пройдёт безболезненно.
Я б от этой каши (GET-API) избавился, но кроме моих скриптов и клиентов есть твои, например. Так что ты и решай.
AL> Теоретически мне без разницы адрес там или Имярек Имярекович с адресом. Мы будем знать какого сисопа пинать в обоих случаях.
Окей, согласен.
vit01 to Andrew Lobanov (2017-06-19 16:21:08) [ссылка]

Re: Файлэхи

Ответ на сообщение
vit01> Понимаю, что для автоматического. Но он нужен и так, и эдак.
vit01> И на клиенте, и на ноде размер можно приспособить для мониторинга квоты на скачивание и в целом на ограничения. Плюс на клиенте решать, действительно тебе файл нужен или нет.
vit01> Например, я не хочу, чтобы файлы размером более 5 мб (для ноды это может быть 50 мб) скачивались автоматически, пусть скрипты моего явного подтверждения запрашивают. И другие фильтры в таком же духе.
Убедил.
AL>> x/file/filename, x/file/pauth/filename:path не пересекаются.
vit01> // Тогда уж path:filename.
vit01> Окей, это уже сойдёт. Совместимость всё равно поломалась немного (не все ФС поддерживают двоеточия в имени файла), но такой формат будет самым приемлемым в долгосрочной перспективе.
Тут нет двоеточия. Это я наподобии бутылковых маршрутов написал. @route("x/file/"), что означает, что принимается pauth и filename в виде some/thing/there/file.zip, например. С точки зрения ФС любой ОС всё весьма прозрачно.
AL>> Я вот думаю нафиг там имя, если есть адрес? =)
vit01> Вот получили файл от какого-нибудь tavern,22, и народ с чужих станций (не таверны) должен будет догадываться, Вася загрузил файл или Петя.
Теоретически мне без разницы адрес там или Имярек Имярекович с адресом. Мы будем знать какого сисопа пинать в обоих случаях.

ЗЫЖ я уже поднимал вопрос с поинт-листами, но не взлетело.
Andrew Lobanov to vit01 (2017-06-19 15:42:17) [ссылка]

Re: Файлэхи

Ответ на сообщение
vit01>> И всё-таки я просто настаиваю, чтобы в /f/e выдавался размер файла в байтах.
AL> Этот индекс для автоматического фетчинга. Но добавить не долго, если он действительно нужен.
Понимаю, что для автоматического. Но он нужен и так, и эдак.
И на клиенте, и на ноде размер можно приспособить для мониторинга квоты на скачивание и в целом на ограничения. Плюс на клиенте решать, действительно тебе файл нужен или нет.
Например, я не хочу, чтобы файлы размером более 5 мб (для ноды это может быть 50 мб) скачивались автоматически, пусть скрипты моего явного подтверждения запрашивают. И другие фильтры в таком же духе.
AL> x/file/filename, x/file/pauth/filename:path не пересекаются.
// Тогда уж path:filename.

Окей, это уже сойдёт. Совместимость всё равно поломалась немного (не все ФС поддерживают двоеточия в имени файла), но такой формат будет самым приемлемым в долгосрочной перспективе.
AL> Я вот думаю нафиг там имя, если есть адрес? =)
Вот получили файл от какого-нибудь tavern,22, и народ с чужих станций (не таверны) должен будет догадываться, Вася загрузил файл или Петя.
vit01 to Andrew Lobanov (2017-06-19 14:50:49) [ссылка]

Re: Файлэхи

Ответ на сообщение
Пушнул текущие наработки в iing. Все желающие могут посмотреть как это работает.
Andrew Lobanov to All (2017-06-19 14:33:35) [ссылка]

Re: Мысли о стандартах

Ответ на сообщение
AL>> Первое (уже озвученное ранее) это нетмейл. То есть личная переписка.
Difrex> Самое важное, ИМХО.
Difrex> Не обязательно монстрячить PGP. Можно взять AES или RSA. Обмен откртыми ключами - да, доверять сисопу. Т.е. теоритически может быть MitM.
Difrex> Нужно хотя бы драфт накидать.
Да я бы только за, но пока красиво ничего не придумалось по теме. Вот единственное, что мне видится, это необходимость отделения личной переписки от общих конференций. В остальном пока чёткого представления, удовлетворяющего меня самого, нет.
Andrew Lobanov to Difrex (2017-06-19 14:10:14) [ссылка]

Re: Файлэхи

Ответ на сообщение
>> Например x/file/books/filename.
> Небольшая оговорочка: так нельзя. Цитирую документацию:
>> GET /x/file/pauth/filename
> Текущие реализации должны посчитать books как pauth
> Но я думаю, что хрен с ней, с совместимостью. Если надо будет, исправим ноды и клиенты. Мне только в ii-php пару файликов подправить, один python-скрипт в ii-db-utils, а ещё CutieFeed и IDEC Mobile.
Это была опечатка. Прошу пардону. Эх, а ведь вычитывал.

Пока получается, что на текущий стандарт ложится кривовато и публичные фреки только плоские. В остальном разночтений нет

x/file/filename, x/file/pauth/filename:path не пересекаются.
>> fileid:filename:username:address:description
> И всё-таки я просто настаиваю, чтобы в /f/e выдавался размер файла в байтах. Мы уже говорили по этому поводу. Нельзя никак качать котов в мешке, пусть даже сейчас мы и предполагаем, что файлы мелкие будут. Это сейчас они мелкие, а потом - крупные.
Этот индекс для автоматического фетчинга. Но добавить не долго, если он действительно нужен. Я вот думаю нафиг там имя, если есть адрес? =)
Andrew Lobanov to vit01 (2017-06-19 14:07:25) [ссылка]

Re: Мысли о стандартах

Ответ на сообщение
>Первое (уже озвученное ранее) это нетмейл. То есть личная переписка.
Самое важное, ИМХО.
Не обязательно монстрячить PGP. Можно взять AES или RSA. Обмен откртыми ключами - да, доверять сисопу. Т.е. теоритически может быть MitM.

Нужно хотя бы драфт накидать.
Difrex to Andrew Lobanov (2017-06-19 13:17:18) [ссылка]

Re: Файлэхи

Ответ на сообщение
AL> Например x/file/books/filename.
Небольшая оговорочка: так нельзя. Цитирую документацию:
> GET /x/file/pauth/filename
Текущие реализации должны посчитать books как pauth
Но я думаю, что хрен с ней, с совместимостью. Если надо будет, исправим ноды и клиенты. Мне только в ii-php пару файликов подправить, один python-скрипт в ii-db-utils, а ещё CutieFeed и IDEC Mobile.
Надо сам стандарт удобный, чтобы работал и неожиданностей не создавал.
> fileid:filename:username:address:description
И всё-таки я просто настаиваю, чтобы в /f/e выдавался размер файла в байтах. Мы уже говорили по этому поводу. Нельзя никак качать котов в мешке, пусть даже сейчас мы и предполагаем, что файлы мелкие будут. Это сейчас они мелкие, а потом - крупные.
vit01 to Andrew Lobanov (2017-06-19 13:06:59) [ссылка]

Re: Файлэхи

Ответ на сообщение
Peter> А так ли необходимо затачиваться на x/file?
По сути, x/file в стандарте описан так, что никто не мешает мою реализацию принять за стандартную =)

Зато сразу отпадает необходимость, например, пилить поддержку фэх на idec-mobile, те, что не хочет качать фэхи, но иногда хочет скачать нужный файл по запросу, опять таки уже имеют подходящий инструмент. Так что мне видится такая заточка весьма удачной.
Peter> Может таки свою схему и для забора? И по fid его?
Я изначально так и сделал, но потом с Виктором немного пообсуждали и он сказал, что будет реализовывать чтение индекса и скачивание по тапу на нужном файле. А это по сути дублирование x/file. Получение файла по fid может и имеет смысл, но тут повторю то, что уже писал в чате: в обычных эхах у нас просто нет выбора для идентификации сообщения. Только msgid. Тут же мы имеем имя фэхи и имя файла. fid же служит контрольной суммой. Пока моя схема себя оправдала на тестах, но если народ проголосует за fid, то буду мутить fid =)
Peter> Кажется, что x/file заточен на файловое хранилище определенной структуры. Хорошо ли это?
x/file заточен на определённый "протокол" обмена информацией. Как это устроено внутри - дело третье.
Andrew Lobanov to Peter (2017-06-19 12:35:50) [ссылка]

Re: Файлэхи

Ответ на сообщение
Интересно.
А так ли необходимо затачиваться на x/file?
Может таки свою схему и для забора? И по fid его?
Кажется, что x/file заточен на файловое хранилище определенной структуры. Хорошо ли это?
Peter to Andrew Lobanov (2017-06-19 12:12:48) [ссылка]

Файлэхи

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

Для функционирования файл-эх с удосбствами для тех, кто не хочет на них подписываться я несколько пофиксил x/flie. По сути, это не противоечит стандарту, но теперь filename в запросе может быть path. То есть представлять собой конструкцию вида pics/1.jpg.

Это позволяет нам содержать фреки в виде иерархии, а не плоского списка.

Схема f/e работает по тем же принципам, что и расширенная u/e.

Например, запрос f/e/pics/books/-2:2 вернёт следующее:
pics
fileid:filename:username:address:description
fileid:filename:username:address:description
books
fileid:filename:username:address:description
fileid:filename:username:address:description
Где fileid представляет собой хеш, сформированный как msgid, только по содержимому файла и служит для однозначной идентификации файла при фетчинге. Забрать же файл можно с помощью x/file.

Например, x/file/books/filename.

Это возможно благодаря тому, что схема f/p, принимающая файлы через POST-запрос с параметрами pauth, fecho, dsc и file (строка авторизации, имя фэхи, описание файла и сам файл), сохраняет файл в директорию files/fecho/filename.

То есть при попытке отправить файл в фэху books, у нас создастся и индекс этой фэхи в формате, указанном в описании f/e и директория для фэхи в files (ежели такая отсутствует) и файл в этой директории.

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

Например, так:
pics/1.jpg:12197:Смешная картинка
pics/1_1.jpg:364649:Красивая картинка
При попытке сохранить файл, хэш которого уже есть в фэхе, возвращается ошибка (file exists). При уникальном в рамках фэхе хеше, но повторяющимся имени, нода автоматически проставляет суфикс ("_1" в примере выше). Если же "_1" уже занят, то будет проставлен "_2" и так далее. Хотя, публикация таких файлов в больших количествах уже повод для разъяснительной работы.
Andrew Lobanov to All (2017-06-19 11:33:04) [ссылка]

Re: Мысли о стандартах

Ответ на сообщение
Demon>>> Вы знаете как выложить игру в INSTEAD?
AL>> Нет.
vit01> Сказал держатель репозитория или что ты там хостишь :)
Ну не мог я удержаться. Извиняюсь =)

2Demon: Заходишь на http://instead-games.ru/, нажимаешь кнопку "Войти" (нужен google-аккаунт). После входа появится кнопка "Загрузить игру".

ЗЫЖ На моей памяти это первый раз, когда у человека возникла проблема с загрузкой игры в репозиторий.
Andrew Lobanov to vit01 (2017-06-19 09:29:27) [ссылка]

Re: Мысли о стандартах

Ответ на сообщение
Demon>> Вы знаете как выложить игру в INSTEAD?
AL> Нет.
Сказал держатель репозитория или что ты там хостишь :)
vit01 to Andrew Lobanov (2017-06-19 09:19:15) [ссылка]

Re: Мысли о стандартах

Ответ на сообщение
Demon> Вы знаете как выложить игру в INSTEAD?
Нет.
Andrew Lobanov to Demon (2017-06-19 08:59:47) [ссылка]

Re: Мысли о стандартах

Ответ на сообщение
Вы знаете как выложить игру в INSTEAD?
Demon to Peter (2017-06-19 08:40:44) [ссылка]

Re: Мысли о стандартах

Ответ на сообщение
Имхо, имя файла имеет смысл только при записи его клиентом себе на диск. Во всех остальных случаях ключ -- это хеш контента.
В этом смысле, обмен файлами не сильно отличается от обменом сообщениями. Но я пока не могу придумать ничего конкретного. Если появятся идеи -- напишу. В принципе, у нас 2 типа информации. 1- сам бинарный блоб и 2- метаинформация (размер, имя файла, mime???). Имхо все это может быть частью одного "сообщения". Ну почти как наши текущие :)
Peter to Andrew Lobanov (2017-06-19 08:02:54) [ссылка]

Re: Мысли о стандартах

Ответ на сообщение
vit01> Кстати, а если на нескольких разных станциях поинты одновременно загрузят два файла с одинаковыми именами?
vit01> Как-то конфликты разрешать надо будет при синхронизации.
vit01> Поэтому различать файлы по хэшу - это неплохая идея.
Именно к этому я и пришёл. Получается, UID это хеш по содержимому. А имя нода локально может и поменять (например, добавить индекс в имя перед расширением). Пока обмозговываю это. С точки зрения хранения в ФС опять таки пока не придумал как быть. Если ложить на существующий x/file, то у нас нет никакой иерархии. Только плоский список файлов. Так что или расширять имя файла именем фэхи или отказаться от x/file или усложнять x/file, что совсем не хочется.

Не было у бабы забот, так купила порося. Вот нафига я это решил делать? =)
Andrew Lobanov to vit01 (2017-06-19 07:15:40) [ссылка]