ПроектыФорумОцените

Wisor - Desktop AI - блог разработки (5 стр)

Страницы: 14 5 6 710 Следующая »
#60
23:17, 15 янв 2026

В рамках респект-апа.

Будет какая-то презенташка в нуль посте?

#61
14:31, 16 янв 2026

Seneca
> В рамках респект-апа.
благодарности 🙏

Seneca
> Будет какая-то презенташка в нуль посте?

мне ради видео необходимо собрать несколько вариантов подложек интерфейса, просто что бы показать кастомизацию. А ещё мне надо перенести приложение на основной компьютер, здесь весь софт для записи и монтажа, ну и в целом это такой ачивмент в разработке "запустилось с нуля на другой машине". Я уже выполз немного на реддит и в твиттер, пока конечно никакого внимания, но надо вести эти блоги и хоть где то в интернете светиться. Просто где то в ближайшем будущем, после... эммм.. 150 часов где то. вот после этого времени предстоит тратить каждый день какое то количество внимания на написание текстов. Благодарности kamti, я посмотрел как должны выглядеть страницы товаров на маркетплейсах. блин, ещё где то надо вымутить кажется 125 долларов на то что бы купить место в стиме. а вообще мне нейросеть сказала - есть несколько путей - по подписке за 5-6$ в месяц, либо однократная продажа вечной лицензии за 20$, либо freeware + ads + in-apps + премиальные функции по подписке. в будущем я обязательно сделаю внутри магазин шкурок-оформлений и модулей персонажей, а возможно и кастомизацию самих персонажей (шапочки, цацки). Короче работы предстоит ещё много, но сейчас один из центральных ачивментов - это выпустить самую первую версию в плаванье что бы её можно было скачать и установить себе.

#62
5:04, 19 янв 2026

Приветствую, дорогой читатель.

У меня появился кандидат на девятый модуль.

Объясняю контекст и предысторию и вообще это (надеюсь) будет интересно почитать. Свежак из кухни разработки.


Так вот.


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

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

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

Но всё же меня внезапно посетило аж две конкурирующие за это время мысли.

Мысль первая - одна повседневная моя боль заключается в том что мой ПК и мой Ноутбук являются двумя отдельными пространствами. Из-за особенностей домашней сети они у меня находятся в разных подсетях, и какого то удобного способа перекидывать файлы между этими компами нет. То есть в моём мире сейчас что бы на компе появилась песенка которую я скачал на ноутбук - я её перекидываю через телеграмм. В принципе для музыки - норм. А вот для синхронизации проектов в разработке - не норм. И в будущем я всё ещё планирую связать Qwa и iMeYou в единую систему, и я хочу что бы файлы доступные Qwa на пк были доступны iMeYou на телефоне. А так же все остальное общее - общий клипборд, общий Essentials, и так далее. Это далёкая мечта к которой я подойду вплотную вероятно не раньше следующей осени. Однако размышляя о том как это организовать меня посетила идея написания своего лайтового клиента для Google Drive - что бы можно было драг-н-дропать внутрь файл, и драг-н-дропать оттуда, что бы был удобный поиск (возможно по содержанию), и возможность сделать синхронизируемые файлы. Это __нужная__ лично мне опция и я понимаю её ценность.

Мысль вторая - супер-поиск. В принципе весь концепт приложения строится на организации данных в удобную быструю и доступную инфраструктуру. Это приложение про быстрый доступ к своим самым часто используемым файлам и разнообразным данным. Оно нужно тому кто много пользуется компьютером, и хочет что бы это было удобней. Соответственно сейчас у меня в каждом окошке уже реализуется поиск, оно уже есть, но каждый модуль живёт своей собственной жизнью. И я подумал что могу создать идеальный вкуснейший инструмент - просто строку поиска (с голосовым вводом) которая:

1. проверит все модули и достанет оттуда всё что подходит под поиск.
2. залезет в гугл и покажет тебе первые 10 элементов поисковой выдачи
3. залезет в гуглокартинки и покажет тебе ближайшие 10 картинко
4. залезет в википедию и попробует найти там подходящую статью
5. залезет в историю твоего общения с нейросетью через приложение, и найдёт там соответствующие посты
6. залезет в твою историю предыдущих действий в приложении и попробует найти там нечто подходящее
7. пошариться в файловой системе по индексированным папкам (documents / downloads  и прочим)

и выдаст тебе на весь экран вкусные виджеты того что оно там нашло. Очень важно - это должно быть __красиво__.

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

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

В сторону второго - это может быть супер удобной точкой входа для работы в приложении (ALT+D —> вписал что ищешь —> нажал на виджет с целевым действием или выбрал его через hotkey). Это супер понятно зачем оно нужно в приложении, и оно в отличии от гуглодрайва - вполне нужно почти любому пользователю из моей целевой аудитории. Из минусов, почему я сомневаюсь (немного до сих пор) - потому что я могу по сути расширить уже существующий модуль Virtual Keyboard, там уже есть строка поиска, которая гуглит, и в принципе расширить этот интерфейс. Но там другое назначение, поэтому вынести в отдельную кнопку - допустимо.

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

Спасибо что читаете. <3

#63
19:41, 19 янв 2026

100-300р + наценки стима + наценки по переводам из банка в банк.

#64
6:35, 21 янв 2026

paveloid1982
хм) Я думаю поставить цену в 20$ в качестве однократной лицензии.

****


UPDATE:


Вот да, именно этим словом я и хочу поделиться)

Чеклист:

• Апдейт корректно загружается в гитхаб
• Метаданные апдейта корректно скачиваются с гита
• Интерфейс апдейтера корректно отображается
• Апдейт корректно скачивается
• Апдейт корректно распаковывается

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

#65
8:22, 22 янв 2026

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

У меня получилось обновить приложение (по факту откатить, но это не суть).

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

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

1. Узявимость localhost:port. Для общения модулей между собой я открываю порты, но эти порты уязвимы к атакам. Соответственно предстоит переписать на другой способ взаимодействия, безопасный и защищённый от атак. В частности меня интересует команда --forceCloseForUpdate которая фактически закрывает приложение, и тот метод который у меня реализован для защиты от запусков нескольких инстансов тоже стоит изменить.

2. Уязвимость master ключа для шифрования. Я как то проглядел реализацию текущего способа хранения ключей, и оказалось что ключ буквально лежит в папке documents в двух кусочках. В общем это конечно тот ещё кринж. Буду переносить на защищённое виндоусовское хранилище ключей и фетчить оттуда. А то в текущей реализации при условии открытого исходного кода это шифрование не надёжней base64. Поскольку clipboard и essentials вполне могут содержать требующие дополнительной защиты данные, я размышляю над тем что бы добавить мастер-пин к приложению, который вводится однократно при запуске и является частью ключа для расшифровки. Беспечный пользователь может убрать галочку в настройках, параноидальный будет вводить пин при первом открытии модуля в сессии.

На счёт super-search.

Я некоторое время мыслил по поводу этого модуля, и чувствую его колоссальный потенциал, но и огромный технический вызов для реализации. Необходимо создать единый интерфейс который фактически включает в себя часть функционала почти всех существующих интерфейсов, рисует для них виджеты. Так же я вижу этот интерфейс потенциально весьма выразительным с точки зрения реализации. То есть да, единая кнопка которая найдёт данные и в гугле, и в википедии, и в системе приложения и на компьютере пользователя - потенциально очень вкусно, но работы тут поле не паханное. Я все ещё думаю над тем - сделать это до первой публикации (или ЗБТ), либо после, но это может быть самым главным интерфейсом приложения и главным killer-feature с точки зрения UX. We are cooking! :)

#66
(Правка: 12:59) 12:28, 22 янв 2026

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

#67
8:49, 27 янв 2026

Доброго времени, читатель!

Что ж, я наконец накопил достаточно маны, и взялся за финальный модуль - super-search.

К настоящему моменту он ещё не полностью готов, и потому покажу я его в следующий раз.

Но у меня есть рисунок ключа (С), или даже лучше - рассказ о ключе который открывает все двери.

Что уже есть:

1. строка поиска. Нажимаете на клавиатуре ALT+F и можете сразу начать вводить текстовой промпт.

2. После ввода программа проверит Essentials, Clipboard, EatenFiles и несколько папок с системными файлами (можно добавлять свои папки по желанию) - будет искать вхождения как целиком промпта, так и отдельных его элементов. Поддерживает несколько языков.

3. Долго возился с поисковыми системами. Гугл, прости, но 5$ за 1000 запросов - как то чересчур. Поэтому я выбрал поисковик DuckDuckGo, бесплатный и не требует ключей

4. Запрос идёт в википедию, из неё извлекаются релевантные запросу статьи если промпт короче 5 слов (ну что бы не искать портянки текста)

5. Запрос идёт в несколько баз с изображениями, и извлекаются несколько релевантных изображений (6 шт)

Это то что получилось сделать за один день. Суммарно я просидел, кажется, часов 14.

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

Примерно такой рывок я совершил за сегодня.

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

Такой вот отчёт о разработке )

#68
8:51, 27 янв 2026

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

#69
10:01, 27 янв 2026

PeeKay
В каком смысле "вообще всему"? Какой локальный канал открыт меньше?

"дефолтно более защищенные каналы" это какие?

#70
10:50, 27 янв 2026

С графикой беда! Логотип не внушает доверия.  Надо бы заморочиться на эту тему.

#71
17:36, 27 янв 2026

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

kkolyan
> "дефолтно более защищенные каналы" это какие?
Нейронка мне говорила про какие то проименованные каналы, которые подписываются процессом, что-то такое. Потом ещё передача запроса через локальный файл шифрованный + слушатель этого файла. Хотя мне кажется почти избыточным просто зашифровать сообщение (--forceCloseForUpdate) тем же симметричным шифрованием которым я шифрую файлы.

#72
(Правка: 17:54) 17:47, 27 янв 2026

PeeKay
именованные каналы (named pipes) и файлы - это все не более защищено чем просто сокет на локалхосте. в любом случае нужен какой-то протокол безопасности сверху. сокеты хороши тем что они популярны, соответственно для них больше выбор, качество и доступность решений. можно конечно велосипед сделать, security by obscurity, но считается что это все-таки хуже работает чем стандартные методы вроде TLS.


PS: ну да, в винде для named pipes какое-то секьюрити есть, не в курсе насколько оно хорошее. но это будет OS-specific решение... но если это ок, то вероятно стоит попробовать, возможно будет меньше приседаний чем с TLS.

#73
4:43, 30 янв 2026

На правах лога разработки:

0. У меня замечательная новость. Я веду переговоры с одним замечательным человеком, который потенциально готов принять на себя расходы по публикации и весь объем труда связанный с размещением игры в Steam.)

Далее по поводу прогресса:

1. Сначала раскатал губу и выстроил целую многоуровневую систему защиты, суть которой была в том что master-key сначала делится на 64 части и сохраняется в 64 рандомных места в реестре , этот список мест записывается в другом месте в идеальном порядке, после чего генерится из метаданных ПК специальная байт строка, и относительно этой байт строки master-key перемешивает 64 фрагмента и получается тот самый ключ для encrypt\decrypt. Подобное даже при прямом доступе к системе сломать достаточно сложно. Сам ключ внутри процесса тоже хранится в 64 кусочках, и собирается перед encrypt\decrypt, и тут же чистится, что б не висел в памяти. В общем то очень сложносочинённая система, нейросеть мне её конечно написала и я даже порадовался, но что то у неё не заладилось с библиотеками win32 и ffi, я так покрутил эти 100 ошибок компиляции, провёл пару итераций, и решил обойтись более простым способом - это хранение просто в защищённом хранилище в двух отдельных местах два куска мастер ключа. В общем безопасность скорее против рандомного скраппера чем против целевой атаки, но давайте честно - против целенаправленной атаки вообще вряд ли что-либо устоит, тем более что можно просто поставить break-point на decrypt\encrypt в момент когда ключ собран, и таким образом его получить из памяти. В общем security by obscrutiy как она есть, но теперь хотя бы ключ не лежит в папке documents.

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

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


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

Так же упомянутый в п.0 человек высказал очень ценное и важное суждение - нужно в любом случае до релиза решить вопрос с графикой. Просто спрайт без анимаций - это огромная упущенная возможность и потенциально -60-70% продаж. У меня есть весь февраль на то что бы решить задачу с 3Д моделью, мы нашли отличную модель на сторах, будем связываться с автором и закажем полноценный ассет со всеми нужными движениями. По такому поводу я основательно займусь всей той частью которая называется "Тамагочи", и разовью это настолько, насколько могу. Предстоит много работы!)

Спасибо что читаете!)

#74
20:07, 21 фев 2026

Привет, читатель.

Время медленно протекает, и медленно но верно в фоновом режиме идёт проработка. Самое сложное в работе - это сформулировать вижен. Когда нет вижена - работа вряд ли может продолжаться, потому что нет конкретного понимания куда двигаться.

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

И мне во сне пришёл вижен. Сам. приснился. я запомнил.

1.

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

2. Поле для ввода сразу содержит последний текст из клипборда. и сразу его ищет. Это UX. я скопировал текст в буфер, нажал ALT+F и тут же окошко мне это нашло. Текст сразу является выделенным, так что можно сразу начать писать что-то другое.

3. Поисковая выдача будет интегрированна с bing потому что bing платит ревшейр, который при 30 запросах в месяц на 2000 пользователей даёт пятьсот долларов.

4. изначально поисковая выдача представлена в основном окне как набор однострочных виджетов содержащих только фавикон, домен, титул страницы. дефолтно показывается 4 строки выдачи. справа в блоке доступные на хоткеи кнопки Search , Wiki, Images, Video, Preferred. В Preferred вы добавляете домены по которым хотите производить дополнительный поиск. я сделаю изначальные пресеты на разные темы - что то вроде автоматических подписок на поиск контента.

5. все результаты прошлого поиска кэшируются и храняться на пк в шифрованном виде. Для быстрого поиска. Историю прошлых запросов можно увидеть в выпадающем меню автозамены при пустом вводе.

6. на одном экране (35% от ширины слева и 60% при открытой выдачей поисковика или других типов выдачи) слева находятся по очереди: поле ввода, 7 иконок других модулей что бы открыть их отсюда, первая строчка выдачи поиска или последней открытой модели, блок eaten files и блок выдачи из файловой системы (основные папки + все локации каждого EatenFiles). Они прокручиваются вниз произвольно, одновременно показывая до 9 элементов выдачи каждый. Если выдачи на ключевые запросы меньше - окошки динамически уменьшаются по вертикали. Далее две колонки - выдача Essentials и Clipboard. Снизу кнопка "закрыть".

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

Вот такие у нас нынче электроовцы.

Страницы: 14 5 6 710 Следующая »
ПроектыФорумОцените