Сообщения в iing

iing

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

Ни в коем случае не обновляйте боевые узлы. Скрипт миграции пока отсутствует и возможны фатальные баги, которые я проглядел.
Andrew Lobanov to All (2017-07-07 07:17:04) [ссылка]

Re: iing

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

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

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

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

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

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

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

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

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

3. И уже настоящий косяк, на который нельзя закрывать глаза: iing позволяет создавать пустые сообщения через веб-интерфейс (т.е. пустые сабж и/или тело). По стандарту (да и просто ради отзывчивости интерфейса) оба поля обязаны заполняться. Тогда хотя бы проверку на JS набросай, если лень в основном коде копаться.
vit01 to Andrew Lobanov (2017-07-07 12:51:36) [ссылка]

Re: iing

Ответ на сообщение
vit01> Попробовал установить ради интереса. В целом работает нода, норм всё, но есть несколько "но":
vit01> 1. Сразу после скачивания из Git запускаю iing.py, жалуется на отсутствие конфига. Хорошо, копирую стандартный. Но, думаю, для развёртки на продакшене людям было бы приятнее и удобнее, если скрипт всё скопирует, даст парочку советов и интерактива.
vit01> 2. points.py также жалуется при первом запуске на отсутствующий points.txt. Это тоже минус для юзабилити. Написать пару строчек с проверкой и touch() лично тебе несложно, а юзверю хлопот меньше.
Блин. Это було утеряно случайно при перепилинге не sqlite. Не спрашивай как - я не знаю =)
vit01> 3. И уже настоящий косяк, на который нельзя закрывать глаза: iing позволяет создавать пустые сообщения через веб-интерфейс (т.е. пустые сабж и/или тело). По стандарту (да и просто ради отзывчивости интерфейса) оба поля обязаны заполняться. Тогда хотя бы проверку на JS набросай, если лень в основном коде копаться.
А вот это реальный баг. Пофикшу.
Andrew Lobanov to vit01 (2017-07-07 14:53:35) [ссылка]

Re: iing

Ответ на сообщение
vit01> Попробовал установить ради интереса. В целом работает нода, норм всё, но есть несколько "но":
Исправил все три замечания. Спасибо большое за тестирование. Глаз уже замылился с этим всем =)
Andrew Lobanov to vit01 (2017-07-07 15:06:31) [ссылка]

Re: iing

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

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

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

----

Могу заняться этими вещами сам и понасылать тебе патчей, если лень реализовать консольное юзабилити до конца. Это не тяжёлая работа.
vit01 to Andrew Lobanov (2017-07-07 17:02:41) [ссылка]

Re: iing

Ответ на сообщение
AL>> Исправил все три замечания.
vit01> А вот и не все. Чистая нода из репозитория всё так же валится при запуске, жалуясь на отсутствие конфига.
Опа о_О
vit01> Если я скопирую конфиг вручную и попробую её запустить снова, то она даже не выдаст предупреждения, что points.txt пуст (и что его следовало бы наполнить чем-то).
Мне казалось, что это логично. Открываем вебморду и регистрируемся =)
vit01> Кстати, ещё заметил, что если в points.py не до конца указать параметры командной строки (например, только -u user, без пароля), то скрипт не обрабатывает исключение, а вываливает Traceback. Тоже непорядок.
Пофикшу.
vit01> Могу заняться этими вещами сам и понасылать тебе патчей, если лень реализовать консольное юзабилити до конца. Это не тяжёлая работа.
Да я сделаю. Мне не лень. Просто работа и всякие другие дела (я утерял диплом армейским способом и сейчас восстанавливаю). А ещё новую игру на инстеде пишу =)

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

ЗЫЖ А ещё я купил sunvox под андроид и это очень классная штука даже на 5" тачскрине и она тоже пожирает моё время =)
Andrew Lobanov to vit01 (2017-07-07 17:35:54) [ссылка]

Re: за жизнь

Ответ на сообщение
AL> А ещё новую игру на инстеде пишу =)
Ну-ка, это интересно. Какую игру, и что это будет? :)
AL> ЗЫЖ А ещё я купил sunvox под андроид и это очень классная штука даже на 5" тачскрине и она тоже пожирает моё время =)
Уже видел в ii://music.14 . Можешь рассказать подробнее, накидать скриншотов и, может быть, поведать про свободные альтернативы?
vit01 to Andrew Lobanov (2017-07-08 05:40:51) [ссылка]

Re: iing

Ответ на сообщение
vit01>> Если я скопирую конфиг вручную и попробую её запустить снова, то она даже не выдаст предупреждения, что points.txt пуст (и что его следовало бы наполнить чем-то).
AL> Мне казалось, что это логично. Открываем вебморду и регистрируемся =)
Не все пользуются вебмордами. Можно хотя бы спросить юзера, вроде того, хочет он создавать первого поинта или нет.
vit01 to Andrew Lobanov (2017-07-08 05:40:52) [ссылка]

Re: за жизнь

Ответ на сообщение
AL>> А ещё новую игру на инстеде пишу =)
vit01> Ну-ка, это интересно. Какую игру, и что это будет? :)
Это будет простенький текстовый квест с глагольным меню про сломанного робота.
AL>> ЗЫЖ А ещё я купил sunvox под андроид и это очень классная штука даже на 5" тачскрине и она тоже пожирает моё время =)
vit01> Уже видел в ii://music.14 . Можешь рассказать подробнее, накидать скриншотов и, может быть, поведать про свободные альтернативы?
Это удачное сочетание модульной станции и трекера. Пользователь расставляет "кубики" генераторов, звуковых эффектов, фильтров, соединяет их между собой, настраивает (там очень много крутилок да) и таким образом получает инструмент, который потом использует в своей композиции. Так же можно использовать сэмплы. Просто берётся кубик-сэмплер вместо генератора.

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

Скриншот можно взять в фэхе pictures на таверне или на фреках там же pictures/sunvox_screenshot.png для тех, кто имеет поинта у меня.

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

Sunvox хотя и не свободен, но для Windows, Linux, MacOS X и Windows CE совершенно бесплатен. Представляет собой весьма качественную программу. Автор наш соотечественник из Екатеринбурга и очень хорошо понимает матчасть звука.

// Не взирая на мою нелюбовь к несвободным программам, sunvox мне очень нравится и я был рад поддержать рублём его автора.
Andrew Lobanov to vit01 (2017-07-08 06:19:09) [ссылка]

Re: iing

Ответ на сообщение
AL>> Мне казалось, что это логично. Открываем вебморду и регистрируемся =)
vit01> Не все пользуются вебмордами. Можно хотя бы спросить юзера, вроде того, хочет он создавать первого поинта или нет.
Пользователя можно. Но мне казалось, что сисоп должен каким-то боком догадываться, что сузествуют поинты.
Andrew Lobanov to vit01 (2017-07-08 07:07:09) [ссылка]

Re: iing

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

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

Пункты 2 и 3 проще совместить, чтобы всё было "не отходя от кассы". Также можно облегчить пункт 4, дав небольшие подсказки, и/или сразу конфиг подогнать.
vit01 to Andrew Lobanov (2017-07-08 09:55:19) [ссылка]

Re: iing

Ответ на сообщение
vit01> Предположим, человек хочет развернуть ноду. Обычно порядок действий таков:
vit01> 1. Качаем репу, ставим зависимости
vit01> 2. Запускаем скрипт
vit01> 3. Пытаемся получить поинта и написать "test"
vit01> 4. Если всё норм, настраиваем эхи и фетч
vit01> Пункты 2 и 3 проще совместить, чтобы всё было "не отходя от кассы".
Куда тут отходить то? Даже директорию менять не надо =) Я искренне не понимаю зачем это.
vit01> Также можно облегчить пункт 4, дав небольшие подсказки, и/или сразу конфиг подогнать.
Какого рода подсказки? Есть README, а конфиг, как только дойдут руки, будет копироваться автоматом из умолчального.
Andrew Lobanov to vit01 (2017-07-08 13:17:11) [ссылка]

Re: iing

Ответ на сообщение
vit01>> 2. Запускаем скрипт
vit01>> 3. Пытаемся получить поинта и написать "test"
vit01>> Пункты 2 и 3 проще совместить, чтобы всё было "не отходя от кассы".
AL> Куда тут отходить то? Даже директорию менять не надо =) Я искренне не понимаю зачем это.
Про points.txt и points.py в твоём README нет ни слова (значит логично было бы пустить их в дело сразу же), плюс нододержатель так или иначе пойдёт сам этой нодой пользоваться (как минимум ради теста). Мелочь, а приятно.
AL> Какого рода подсказки? Есть README, а конфиг, как только дойдут руки, будет копироваться автоматом из умолчального.
Например, после копирования конфига предложить сисопу его сначала поправить в редакторе, а затем только ноду запустить. В *nix системах можно даже $EDITOR брать на вооружение, чтобы ускорить процесс.

-----------

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

Прошу высказаться насчёт идеи idec-python отсюда: ii://dvUD1leZtApAyB5AlwUC, и ещё хотелось бы услышать пожелания по поводу того, как строить GUI для фэх
vit01 to Andrew Lobanov (2017-07-08 14:54:41) [ссылка]

Re: iing

Ответ на сообщение
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-запрос. Есть мысли?
Andrew Lobanov to vit01 (2017-07-08 16:30:41) [ссылка]

Re: iing

Ответ на сообщение
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 сделать ещё.
vit01 to Andrew Lobanov (2017-07-08 17:29:53) [ссылка]

Re: iing

Ответ на сообщение
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 сделать ещё.
Ну можно действительно отвязаться от протокола. Как-то в голову не пришло =)
Andrew Lobanov to vit01 (2017-07-08 17:43:07) [ссылка]

Re: iing

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

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

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

В идеале в моих фантазиях клиенты и нода будут различаться только своими GUI. То есть будет нечто вроде idec-base, к которому по желанию прикручиваются bottle-модуль, ncurses-модуль, qt-модуль и так далее.
vit01 to Andrew Lobanov (2017-07-09 15:41:04) [ссылка]

Re: iing

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

// Это всё пока делается для перехода инстед клуба на сабж.
Andrew Lobanov to All (2017-07-11 04:35:40) [ссылка]

Re: iing

Ответ на сообщение
В мобильном виде вроде не работает. :)
В не-мобильном все ок.
Peter to Andrew Lobanov (2017-07-15 21:15:10) [ссылка]

Re: за жизнь

Ответ на сообщение
AL>>> А ещё новую игру на инстеде пишу =)
vit01>> Ну-ка, это интересно. Какую игру, и что это будет? :)
AL> Это будет простенький текстовый квест с глагольным меню про сломанного робота.
Кстати, как процесс? Или ты уже релизнул гамес?
1i8r4 to Andrew Lobanov (2017-07-22 12:43:56) [ссылка]

Re: за жизнь

Ответ на сообщение
AL>> Это будет простенький текстовый квест с глагольным меню про сломанного робота.
1i8r4> Кстати, как процесс? Или ты уже релизнул гамес?
В процессе. Пока накидал начало, продумываю детали, улучшаю то, что уже есть. Но работа ведётся медленно. На proxymenu у меня никогда не получалось писать быстро.
Andrew Lobanov to 1i8r4 (2017-07-22 14:21:58) [ссылка]