Мой сервис удаленного доступа. Обновление 1
Всем привет! Я знаю, что немного вылетел из информационного поля, в этом посте хочу рассказать почему и что изменилось в сервисе за последнее время.
Прежде всего хочу поблагодарить тех людей, что проявляли активность, кто добавился в группу (нас уже около 360 человек), и особенно тех, кто выразил заинтересованность проектом и поддержали словами, именно ваш интерес и побуждал меня продолжить разработку.
Так же не могу не поблагодарить всех пикабушников, кто выкладывал мало постов или воздержался от этого, благодаря чему я не задерживался в прокрастинации и смог сосредоточиться на работе. Особенно радует переход из горячего прямо в свежее, что бы я без этого делал.
Спустя неделю после публикации статьи мне прилетело много багов, прикинув примерное время, требующееся на их устранение, прибавив к этому время необходимое для реализации тех возможностей, что были в планах, а так же учитывая, что Python язык больше скриптовый, мало подходит для тиражируемого релизного приложения, особенно учитывая компилируемый размер файла и меньшую производительность, я пришел к выводу, что рано или поздно это всё придется переписывать на другом языке, а это большие затраты времени, и чем дальше бы я зашел, тем больше бы вложений потребовалось, а учитывая что финансирую разработку только я сам, это могло бы вылиться в стагнацию или вообще повлиять на жизнеспособность сервиса.
Давайте теперь вернемся в настоящее. И вот спустя примерно пять недель работы, пару бутылок виски и четыре дня в депрессии, я все таки переписал клиента программы на более низкоуровневом языке, который пришлось изучать с нуля, попутно лысея. И как по мне - получилось весьма неплохо, давайте расскажу подробнее.
Начнем с самого частого, на что обращаешь внимание - размер программы, для сравнения:
Windows, было 58,6 мб, стало 3,3 мб в консольном варианте и 6,1 мб с GUI. Разница в 17,7 раз!
Linux, было 233,6 мб, стало 7,5 мб. Еще большая разница в 31,1 раз!
MacOS, ничего не изменилось, потому что клиента для неё пока нет. Но я увидел проголосовавших в группе по этому вопросу, буду его прорабатывать.
Конечно еще можно считерить и упаковать файл в zip архив, тогда размер получается 1,79 мб, это примерно 32,7 раз. Моя небольшая победа.
В windows пришлось разбить программу на две версии, т.к. можно скомпилировать или консольное или графическое приложение, изначально была задумка запускать консольное при наличии соответствующего аргумента. Объединить можно, но это займет время и добавит сложности в разработке.
Вот скриншоты интерфейсов, в консольном варианте он стал попроще:
По производительности тоже есть изменения. Потребление памяти при обновлении процессов в новой версии 37 мб против 70 мб в старой. На первый взгляд все открывается быстро, хоть это сейчас и не сильно важно, но при требовательных операциях в будущем будет конечно ощутимо в сравнении с Python.
Сервис стал доступнее для большего количества версий операционных систем, например я понизил архитектуру до x86, и минимальная поддерживаемая версия на которой тестировалась программа — windows 7, а для linux — ubuntu 18. Правда обе доступны только в консольном варианте, в графическом режиме отказывалось запускаться, думаю потом поменяю на другой GUI фреймфорк. Для более новых версий windows всё осталось так же.
Еще сделал наверное самую нужную функцию на текущий момент - автоматическое обновление, что бы не пришлось ручками переставлять на каждой машине, особенно если у вас много станций.
Так же были внесены небольшие изменения:
Исправлен баг с открытием окна командной строки на пару секунд при выполнении команд и при запуске.
Не всегда отображались IP адреса, особенно на linux.
Баг с отключением сервиса программы через 3 дня, из за чего станции были в офлайне. Никто об этом не написал, но я исправил.
Вывод результата кастомной команды теперь более приближен к оригинальному.
Генерация пароля каждый час, если он не был задан вручную.
Поправлена немного админка.
Было еще много изменений по мелочи, из того что успел прочитать в чате проекта и в личке, которые делал буквально на лету, не записывая.
Немного изменил логику, в том числе взаимодействие между клиентом сервером, поработал с безопасностью последнего, так что Python версию нужно будет заменить на новую.
По правде говоря, чистая работа с кодом сама по себе заняла около 3 недель, а последние две ушло на сборку и отладку под разные дистрибутивы, и на каждом встречались свои ошибки, и когда я закрывал ошибку скажем на ubuntu 22, на 18 вылазила новая. Меня это печалило до такой степени, что по ночам снились кошмары, например где я нахожу баг, но не могу его описать, не могу найти логов, хотя четко понимаю и вижу как приложение крашится, или еще сон с бесконечной сборкой, когда запускаешь команду и ждешь, ждешь, ждешь и больше ничего делать не можешь, просыпаешься в холодном поту и приходит радость, что это всё не в заправду. Для справки - мне обычно снились приятные или нейтральные сны, которые я часто забывал проснувшись, но эти я помню до сих пор.
Ну еще немного выскажусь, если вы не против. Хоть переписывать было и интересно в технологическом плане, но всё же я немного приуныл, так как мне хочется реализоввывать новые фишки, и удивлять вас ими, а так получается я делал всё одно и то же. В планах было запустить релизную версию уже на шестой месяц проекта (сейчас), и получать хоть какую ни будь отдачу, что бы были деньги раскручивать проект, а не двигаться со скоростью черепахи. И единственное что меня мотивировало — это ваши добрые пожелания и отзывы, которые показывают потребность в этом сервисе, только благодаря им я сделал спринт и выпустил это обновление раньше, чем работая в нормальном темпе.
Итак к делу, что бы обновиться на новую версию — нужно удалить старую, скачать новую и установить. Что бы ID станции и привязка к вашему аккаунту сохранились — переместите файл config.json из "C:\ProgramData\Cusco\CuscoRemoteControl" в "C:\ProgramData\Cusco\RemoteControl"
Новые файлы уже залиты на сайт, находятся в разделе загрузки.
В ближайшем будущем начну работу над визуальным управлением, попутно реализовывая ваши пожелания, если будет время.
Всё так же было бы классно увидеть ваши результаты тестирования, если можно то со скриншотами и подробностями как воспроизвести найденную ошибку.
Спасибо за ваше время, жду вас в группе. Обращу внимание, что в ней есть подгруппы: баги, основная — для общения, и идеи — которую в скором времени подчищу от флуда.

ИТ-проекты пикабушников
598 постов3.4K подписчиков
Правила сообщества
0. Запрещены посты вне тематики сообщества
1. Уважайте труд людей, пишите только конструктивную критику,
2. Не выкладывайте информацию по своему проекту чаще 2ух раз в месяц