[#] iing
Andrew Lobanov(tavern,1) — All
2017-07-07 11:17:04


Сабж теперь хранит сообщения в sqlite-базе. Просьба потестировать всех желающих помочь проекту.

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

[#] Re: iing
vit01(mira, 1) — Andrew Lobanov
2017-07-07 16:51:36


Попробовал установить ради интереса. В целом работает нода, норм всё, но есть несколько "но":

1. Сразу после скачивания из Git запускаю iing.py, жалуется на отсутствие конфига. Хорошо, копирую стандартный. Но, думаю, для развёртки на продакшене людям было бы приятнее и удобнее, если скрипт всё скопирует, даст парочку советов и интерактива.

Например, что-то вроде этого (только по-английски, наверное):

Запускаем ноду в первый раз, копируем конфиги...
Поправьте iing.cfg для настройки станции, образец в README

Создание первого пользователя

Имя: [user1] <Enter>
Пароль: [xxxxxx] <Enter>
Ещё раз: [xxxxxx] <Enter>

Authstr: yyyyyyyyyy, в дальнейшем запускайте points.py, чтобы создать нового юзверя

Listening on 0.0.0.0:3000.... ну и так далее

2. points.py также жалуется при первом запуске на отсутствующий points.txt. Это тоже минус для юзабилити. Написать пару строчек с проверкой и touch() лично тебе несложно, а юзверю хлопот меньше.

3. И уже настоящий косяк, на который нельзя закрывать глаза: iing позволяет создавать пустые сообщения через веб-интерфейс (т.е. пустые сабж и/или тело). По стандарту (да и просто ради отзывчивости интерфейса) оба поля обязаны заполняться. Тогда хотя бы проверку на JS набросай, если лень в основном коде копаться.

[#] Re: iing
Andrew Lobanov(tavern,1) — vit01
2017-07-07 19:06:31


vit01> Попробовал установить ради интереса. В целом работает нода, норм всё, но есть несколько "но":

Исправил все три замечания. Спасибо большое за тестирование. Глаз уже замылился с этим всем =)

[#] Re: iing
Andrew Lobanov(tavern,1) — vit01
2017-07-07 18:53:35


vit01> Попробовал установить ради интереса. В целом работает нода, норм всё, но есть несколько "но":

vit01> 1. Сразу после скачивания из Git запускаю iing.py, жалуется на отсутствие конфига. Хорошо, копирую стандартный. Но, думаю, для развёртки на продакшене людям было бы приятнее и удобнее, если скрипт всё скопирует, даст парочку советов и интерактива.
vit01> 2. points.py также жалуется при первом запуске на отсутствующий points.txt. Это тоже минус для юзабилити. Написать пару строчек с проверкой и touch() лично тебе несложно, а юзверю хлопот меньше.

Блин. Это було утеряно случайно при перепилинге не sqlite. Не спрашивай как - я не знаю =)

vit01> 3. И уже настоящий косяк, на который нельзя закрывать глаза: iing позволяет создавать пустые сообщения через веб-интерфейс (т.е. пустые сабж и/или тело). По стандарту (да и просто ради отзывчивости интерфейса) оба поля обязаны заполняться. Тогда хотя бы проверку на JS набросай, если лень в основном коде копаться.

А вот это реальный баг. Пофикшу.

[#] Re: iing
Andrew Lobanov(tavern,1) — vit01
2017-07-07 21:35:54


AL>> Исправил все три замечания.
vit01> А вот и не все. Чистая нода из репозитория всё так же валится при запуске, жалуясь на отсутствие конфига.

Опа о_О

vit01> Если я скопирую конфиг вручную и попробую её запустить снова, то она даже не выдаст предупреждения, что points.txt пуст (и что его следовало бы наполнить чем-то).

Мне казалось, что это логично. Открываем вебморду и регистрируемся =)

vit01> Кстати, ещё заметил, что если в points.py не до конца указать параметры командной строки (например, только -u user, без пароля), то скрипт не обрабатывает исключение, а вываливает Traceback. Тоже непорядок.

Пофикшу.

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

Да я сделаю. Мне не лень. Просто работа и всякие другие дела (я утерял диплом армейским способом и сейчас восстанавливаю). А ещё новую игру на инстеде пишу =)

В мире очень много интересного и на всё просто не хватает времени. На этой неделе пришлось пожертвовать сном немного. Так что сейчас лучше в код не лезть. Завтра поправлю эти мелкие недоразумения.

ЗЫЖ А ещё я купил sunvox под андроид и это очень классная штука даже на 5" тачскрине и она тоже пожирает моё время =)

[#] Re: iing
Andrew Lobanov(tavern,1) — vit01
2017-07-08 17:17:11


vit01> Предположим, человек хочет развернуть ноду. Обычно порядок действий таков:
vit01> 1. Качаем репу, ставим зависимости
vit01> 2. Запускаем скрипт
vit01> 3. Пытаемся получить поинта и написать "test"
vit01> 4. Если всё норм, настраиваем эхи и фетч
vit01> Пункты 2 и 3 проще совместить, чтобы всё было "не отходя от кассы".

Куда тут отходить то? Даже директорию менять не надо =) Я искренне не понимаю зачем это.

vit01> Также можно облегчить пункт 4, дав небольшие подсказки, и/или сразу конфиг подогнать.

Какого рода подсказки? Есть README, а конфиг, как только дойдут руки, будет копироваться автоматом из умолчального.

[#] Re: iing
vit01(mira, 1) — Andrew Lobanov
2017-07-07 21:02:41


AL> Исправил все три замечания.

А вот и не все. Чистая нода из репозитория всё так же валится при запуске, жалуясь на отсутствие конфига.

Если я скопирую конфиг вручную и попробую её запустить снова, то она даже не выдаст предупреждения, что points.txt пуст (и что его следовало бы наполнить чем-то).

Кстати, ещё заметил, что если в points.py не до конца указать параметры командной строки (например, только -u user, без пароля), то скрипт не обрабатывает исключение, а вываливает Traceback. Тоже непорядок.

----

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

[#] Re: iing
vit01(mira, 1) — Andrew Lobanov
2017-07-08 13:55:19


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

1. Качаем репу, ставим зависимости
2. Запускаем скрипт
3. Пытаемся получить поинта и написать "test"
4. Если всё норм, настраиваем эхи и фетч

Пункты 2 и 3 проще совместить, чтобы всё было "не отходя от кассы". Также можно облегчить пункт 4, дав небольшие подсказки, и/или сразу конфиг подогнать.

[#] Re: iing
vit01(mira, 1) — Andrew Lobanov
2017-07-08 09:40:52


vit01>> Если я скопирую конфиг вручную и попробую её запустить снова, то она даже не выдаст предупреждения, что points.txt пуст (и что его следовало бы наполнить чем-то).

AL> Мне казалось, что это логично. Открываем вебморду и регистрируемся =)

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

[#] Re: iing
Andrew Lobanov(tavern,1) — vit01
2017-07-08 11:07:09


AL>> Мне казалось, что это логично. Открываем вебморду и регистрируемся =)
vit01> Не все пользуются вебмордами. Можно хотя бы спросить юзера, вроде того, хочет он создавать первого поинта или нет.

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

[#] Re: iing
vit01(mira, 1) — Andrew Lobanov
2017-07-08 18:54:41


vit01>> 2. Запускаем скрипт
vit01>> 3. Пытаемся получить поинта и написать "test"
vit01>> Пункты 2 и 3 проще совместить, чтобы всё было "не отходя от кассы".

AL> Куда тут отходить то? Даже директорию менять не надо =) Я искренне не понимаю зачем это.

Про points.txt и points.py в твоём README нет ни слова (значит логично было бы пустить их в дело сразу же), плюс нододержатель так или иначе пойдёт сам этой нодой пользоваться (как минимум ради теста). Мелочь, а приятно.

AL> Какого рода подсказки? Есть README, а конфиг, как только дойдут руки, будет копироваться автоматом из умолчального.

Например, после копирования конфига предложить сисопу его сначала поправить в редакторе, а затем только ноду запустить. В *nix системах можно даже $EDITOR брать на вооружение, чтобы ускорить процесс.

-----------

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

Прошу высказаться насчёт идеи idec-python отсюда: ii://dvUD1leZtApAyB5AlwUC, и ещё хотелось бы услышать пожелания по поводу того, как строить GUI для фэх

[#] Re: iing
Andrew Lobanov(tavern,1) — vit01
2017-07-08 20:30:41


AL>> Куда тут отходить то? Даже директорию менять не надо =) Я искренне не понимаю зачем это.
vit01> Про points.txt и points.py в твоём README нет ни слова (значит логично было бы пустить их в дело сразу же), плюс нододержатель так или иначе пойдёт сам этой нодой пользоваться (как минимум ради теста). Мелочь, а приятно.

Ну как минимум ридми я к 0.4 цезия поправлю да =)

AL>> Какого рода подсказки? Есть README, а конфиг, как только дойдут руки, будет копироваться автоматом из умолчального.
vit01> Например, после копирования конфига предложить сисопу его сначала поправить в редакторе, а затем только ноду запустить. В *nix системах можно даже $EDITOR брать на вооружение, чтобы ускорить процесс.

А вот это мысль. Надо будет сделать.

vit01> Кажется, мы опять обсуждаем какие-то малозначащие мелочи вместо того, чтобы заниматься делом :) Все эти штуки можно и не делать, но если сделаешь, будет чуточку приятнее.

У меня сейчас в плане но я скорее хотел фэхи и sqlite чтобы gl00my мог перейти на iing.

vit01> Прошу высказаться насчёт идеи idec-python отсюда: ii://dvUD1leZtApAyB5AlwUC

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

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

vit01> и ещё хотелось бы услышать пожелания по поводу того, как строить GUI для фэх

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

Вот как лучше сделать приватные фреки в вебморде? Потому как authstr теперь передаётся только через POST-запрос. Есть мысли?

[#] Re: iing
vit01(mira, 1) — Andrew Lobanov
2017-07-08 21:29:53


AL> Что ещё туда можно запихнуть?

Как минимум, обработка тегов, работа с msgline, пара двустрочников для base64, упрощение работы с бандлами.
Также парсинг значений /x/c, строк /x/file, list.txt, тех же фэх

Вот посмотри сюда: https://github.com/vit1-irk/idec-mobile/blob/master/app/src/main/java/vit01/idecmobile/Core/IIMessage.java
Здесь, конечно, не всё необходимое (отсутствует перевод в бандл-строку, например), но в своей основе вынос работы с сообщениями с глаз долой был бы очень удобен в нашем малокачественном python-коде.

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

Из того, что сверх протокола, неплохо бы прикрутить функции для работы с сетью (думаю поделиться проксификацией через lib-socks-proxy и поддержкой таймаутов).

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

AL> Ты пробовал запустить iing, закинуть что-нить в фэху и получить это с помощью цезия? Как один из вариантов реализации.

Попробовал зафетчить фэху pictures с помощью Цезия. GUI здесь по факту отсутствует, хотя реализация и рабочая. Хотелось бы для CutieFeed'а что-нибудь и для IDEC Mobile, чтобы самому выбирать, какие файлы скачивать, и чтобы более-менее прилично выглядело.

AL> Если же говорить о idec-mobile, то не проще ли сразу кидать полученные нодой файлы на фреки, как это сделано в той же iing?

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

AL> Вот как лучше сделать приватные фреки в вебморде? Потому как authstr теперь передаётся только через POST-запрос. Есть мысли?

В вебморде можно всё в куки складывать и по ним проверять. Только проверку на csrf сделать ещё.

[#] Re: iing
Andrew Lobanov(tavern,1) — All
2017-07-11 08:35:40


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

// Это всё пока делается для перехода инстед клуба на сабж.

[#] Re: iing
Andrew Lobanov(tavern,1) — vit01
2017-07-08 21:43:07


AL>> Что ещё туда можно запихнуть?
vit01> Как минимум, обработка тегов, работа с msgline, пара двустрочников для base64, упрощение работы с бандлами.
vit01> Также парсинг значений /x/c, строк /x/file, list.txt, тех же фэх

Ну это я к реализации протокола отношу у себя в голове =)

vit01> Вот посмотри сюда: https://github.com/vit1-irk/idec-mobile/blob/master/app/src/main/java/vit01/idecmobile/Core/IIMessage.java
vit01> Здесь, конечно, не всё необходимое (отсутствует перевод в бандл-строку, например), но в своей основе вынос работы с сообщениями с глаз долой был бы очень удобен в нашем малокачественном python-коде.

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

AL>> Всё, что сверх протокола завязывается уже на конкретный способ хранения и отображения и уже не совсем понятно как добиться универсальности.
vit01> Из того, что сверх протокола, неплохо бы прикрутить функции для работы с сетью (думаю поделиться проксификацией через lib-socks-proxy и поддержкой таймаутов).

А вот я думал над этим. В итоге пришёл к мнению, что переменных http_proxy и https_proxy достаточно. Хотя, еси пускать под виндой, то таки да.

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

Ну это как минимум к выкидыванию кучи уже рабочего кода.

vit01> Попробовал зафетчить фэху pictures с помощью Цезия. GUI здесь по факту отсутствует, хотя реализация и рабочая. Хотелось бы для CutieFeed'а что-нибудь и для IDEC Mobile, чтобы самому выбирать, какие файлы скачивать, и чтобы более-менее прилично выглядело.

Просто если ты на десктопе подписан на фэху, то зачем какой-либо GUI? Сфетчилось и сфетчилось. Главное - квиток в почту и файлы описаний для разгребания.

AL>> Если же говорить о idec-mobile, то не проще ли сразу кидать полученные нодой файлы на фреки, как это сделано в той же iing?
vit01> Проще, но ведь всё равно не очень полноценно с точки зрения юзабилити. Пока что попробую реализовать только Upload-диалог, а там посмотрим.

Ну вот надо подумать. Как вариант, можно парсить имена файлов на предмет "/" и эмулировать подкаталоги в гуи работы с фреками.

AL>> Вот как лучше сделать приватные фреки в вебморде? Потому как authstr теперь передаётся только через POST-запрос. Есть мысли?
vit01> В вебморде можно всё в куки складывать и по ним проверять. Только проверку на csrf сделать ещё.

Ну можно действительно отвязаться от протокола. Как-то в голову не пришло =)

[#] Re: iing
vit01(mira, 1) — Andrew Lobanov
2017-07-09 19:41:04


AL> Просто если ты на десктопе подписан на фэху, то зачем какой-либо GUI? Сфетчилось и сфетчилось.

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

К тому же, попробуй мыслить дальше. Если пользователь сидит за графическим десктопом (будь то Иксы или Винда), то ему наверняка захочется открывать файлы кликом мыши. Картинку открыть в просмотрщике картинок, текст - в текстовом редакторе, архив - в архиваторе и так далее.

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

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

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

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

В идеале в моих фантазиях клиенты и нода будут различаться только своими GUI. То есть будет нечто вроде idec-base, к которому по желанию прикручиваются bottle-модуль, ncurses-модуль, qt-модуль и так далее.

[#] Re: iing
Peter(syscall,1) — Andrew Lobanov
2017-07-16 01:15:10


В мобильном виде вроде не работает. :)
В не-мобильном все ок.