Задать вопрос
  • Как создать чат бот для проверки домашних дел у ребёнка?

    @rPman
    Да, реализовать можно, но качество будет не высоким, ведь понятие порядок у уже обученных ИИ может сильно отличаться от вашего мнения.

    Можно дообучить модель - классификатор, затратив не сильно много денег (есть google-ские vl модельки от 2b, есть qwen-овские и 2b и 9b и 90b на любой вкус и деньги), но даже в этом случае скорее всего качество распознавания 'в лоб' будет порядка 70% ну и обучающую выборку создавать нужно будет долго и кропотливо, каждый раз снимая фото до и после (желательно много раз с разных ракурсов и в разные моменты уборки).

    Если не решать задачу в лоб, то используй фейсбуковскую SAM2 (или прежняя SAM), она разобьет изображение на объекты, каждый объект можно получить его координаты, описание и т.п. вот полученную информацию можно как то обрабатывать уже классическими алгоритмами, ведь будет видно что каждая вещь на каком месте... но качество фото должно быть высоким.

    p.s. а можно не использовать нейронку, а делать фото из одного и того же места (закрепить камеру) и сравнивать фото в момент, когда комната была прибрана и когда нет, по количеству расхождений... а вот что именно сравнивать уже вопрос.
    Ответ написан
  • Как быстро войти в тему разработки ChatGPT, LLM Agent и т.п.?

    @rPman
    Разве эта задача решается легко? а как ее решали до сегодняшнего дня? что является критерием оценки качества беседы?

    У тебя вроде все указано нужное - whisper получает текст, может с временными метками (хз что такое faster-whisper-xxl, есть есть официальная утилита на python - pip install whisper в консоли задаешь модель и кучу параметров и получаешь текстовый файл).

    Результат слабоват, потому что инструменты такие. Выбирай по умнее. И не забывай, что с русским языком локальные ИИ работают значительно хуже чем с английским (или если это qwen еще и китайский).

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

    а еще бывает вопрос+данные+фразы_помощники типа 'глубоко вдохни и подумай шаг за шагом', 'ты уверен, а если подумать еще раз', 'и какой будет твой окончательный ответ' а так же извлечение строгого ответа из ответа в свободной форме, ведь если сразу ограничить формат ответа, то качество будет хуже..

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

    Добавь сюда ручную проверку человеком (например случайные результаты проверки) и сохраняй в табличку для анализа, как часто ИИ ошибается и в каких случаях, поможет тюнить промпт и вообще следить за тем бардаком, что вытворяет ИИ.

    upd. настоятельно рекомендую использовать 70b модели (та же qwen или llama3.3 например). При использовании младших моделей, старайся не использовать квантизацию, она их ломает сильнее чем для старших версий... используй 8bit, не меньше.

    Мне нравятся модели deepseek distilled qwen 14b или 32b? 14b с полным контекстом можно запустить на 2x16gb nvidia 4060ti, при этом рекомендую использовать vllm а не llama.cpp (каждая стоит 50т.р. дешевле ну просто некуда) на скоростях с батчингом до тысячи tps (16 параллельных запросов мне давали 800tps ну а vllm при запуске обещал 31k tps)... внимание, промпты и ответ только на английском, но русский вроде понимает
    Ответ написан
    Комментировать
  • Почему скрипт запуска виртуальной машины перестал работать?

    @rPman
    какое красивое садамаза, скрипт запускает сам себя на javascript являясь bat, да еще и внутри powershell, как это читать и отлаживать, известно только его разработчику :)

    И самое главное, вам точно нужно GUI для смены даты? И уж точно для этого не требуется ни powershell ни повышение прав доступа (хотя может у вас там так настроено)

    У virtualbox есть соответствующие команды VBoxManage, которые можно было просто прописать в текстовом файлике, назвать blablabla.bat и запускать
    upd. нужно считать разницу в миллисекундах между текущим временим и целевым, на bat это сложно, поэтому лучше сразу писать на чем то типа javascript, не изобретая паровоза (и от туда же запускать vboxmanage)

    p.s. кайфую с современного ИИ, который это сумел разобрать и по полочкам разложить этот кошмар
    anthropic:claude sonnet 3.5
    ...
    проанализируй этот скрипт для windows, почему тут сместь cmd и javascript, и начни описание, что именно делают первые строчки
    Давайте разберем этот интересный гибридный скрипт:

    Первые строки скрипта представляют собой "полиглот" - код, который может быть интерпретирован несколькими языками программирования:

    ```
    set @x=0; /*
    @echo off
    ver |>NUL find /v "5." && if "%~1"=="" cscript.exe //nologo //e:jscript "%~f0"& exit /b
    ```

    Это хитрая конструкция, которая:
    1. Начинается как cmd-скрипт (`@set @x=0;`)
    2. Открывает многострочный комментарий в JavaScript (`/*`)
    3. Выключает вывод команд в cmd (`@echo off`)
    4. Проверяет версию Windows и если скрипт запущен без параметров, перезапускает сам себя через cscript.exe в режиме JavaScript

    Последняя строка скрипта:
    ```javascript
    */new ActiveXObject('Shell.Application').ShellExecute (WScript.ScriptFullName,'Admin','','runas',1);
    ```
    закрывает JavaScript-комментарий и содержит код для повышения привилегий - перезапуска скрипта с правами администратора.

    Это техника самоповышения привилегий (UAC bypass), которая позволяет скрипту перезапустить себя с правами администратора, если он был запущен от обычного пользователя.

    Основная часть скрипта написана на PowerShell и использует Windows Forms для создания графического интерфейса. Согласно документации [learn.microsoft.com](https://learn.microsoft.com/en-us/dotnet/api/syste...), скрипт создает форму для ввода даты, которая будет использоваться для настройки BIOS времени виртуальной машины VirtualBox.

    Такая сложная структура используется для:
    1. Обеспечения запуска с правами администратора
    2. Совместимости с разными версиями Windows
    3. Комбинирования возможностей разных языков скриптования Windows

    продолжай дальше анализ, почему там еще и powershell?
    PowerShell используется в этом скрипте для основной функциональности, и его часть начинается после строк:

    ```
    ;@echo off
    ;@Findstr -bv ;@ "%~f0" | powershell -noprofile -command - & goto:eof
    ```

    Эта конструкция особенно интересна, потому что:
    1. Использует Findstr для фильтрации содержимого файла, пропуская строки, начинающиеся с `;@`
    2. Передает отфильтрованное содержимое в PowerShell через пайп (`|`)
    3. Запускает PowerShell без профиля (`-noprofile`) для ускорения загрузки

    PowerShell был выбран для основной части скрипта по нескольким причинам:

    1. **Объектная модель**: Как отмечается в [thenewandshiny.com](https://thenewandshiny.com/powershell-everywhere/), PowerShell работает с объектами, а не с текстом, что делает его более надежным для работы с системными компонентами.

    2. **Удобство работы с GUI**: PowerShell позволяет легко создавать Windows Forms для пользовательского интерфейса, что используется в функции `CustomInputBox`

    3. **Управление VirtualBox**: PowerShell предоставляет удобные средства для запуска процессов и управления VirtualBox через `VBoxManage`

    4. **Работа с датами**: PowerShell имеет мощные средства для работы с датами и временем, что критично для этого скрипта

    Важно отметить, что в скрипте используется разделение на Windows PowerShell и PowerShell Core. Как упоминается в [get-powershellblog.blogspot.com](https://get-powershellblog.blogspot.com/2017/10/wh...), это важно учитывать при работе с разными версиями PowerShell.

    Скрипт использует стандартный формат командлетов PowerShell `Verb-Noun`, хотя, как отмечается в [scoop-docs.vercel.app](https://scoop-docs.vercel.app/docs/misc/Why-PowerS...), такой формат может казаться излишне многословным, но он обеспечивает четкую структуру и понятность команд.

    Основная функциональность скрипта:
    1. Создает GUI для ввода даты
    2. Проверяет корректность введенной даты
    3. Настраивает время BIOS для виртуальной машины VirtualBox
    4. Запускает виртуальную машину с модифицированными настройками времени

    какими строчками настраивается время
    В скрипте время настраивается несколькими ключевыми командами:

    1. Сначала отключается синхронизация времени с хостом:
    ```powershell
    start-process $VB_MANAGE 'setextradata', $vmname, 'VBoxInternal/Devices/VMMDev/0/Config/GetHostTimeDisabled 1' -NoNewWindow
    ```

    2. Затем вычисляется смещение времени в миллисекундах:
    ```powershell
    $timeoffset_milliseconds='{0:0}' -f ([datetime]$date - [datetime]::Now).TotalMilliseconds
    ```

    3. И наконец, применяется смещение времени BIOS:
    ```powershell
    start-process $VB_MANAGE 'modifyvm', $vmname, '--biossystemtimeoffset', $timeoffset_milliseconds -NoNewWindow
    ```

    Здесь важно отметить несколько моментов:
    - Используется VBoxManage - утилита командной строки VirtualBox (путь хранится в переменной `$VB_MANAGE`)
    - Смещение вычисляется как разница между желаемым временем (`$date`) и текущим системным временем
    - Параметр `--biossystemtimeoffset` устанавливает смещение времени BIOS в миллисекундах

    После установки времени виртуальная машина запускается командой:
    ```powershell
    start-process $VB_MANAGE startvm, $vmname
    ```

    Похожий подход используется в проекте [github.com/bitbank2/rtc_setter](https://github.com..., где также реализована настройка времени, но для реального RTC (часов реального времени), а не виртуальной машины.

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

    Ответ написан
    5 комментариев
  • Как реализовать стартап и сохранить авторское право?

    @rPman
    Идеи стоят мало, если идея ценная - патентуй, как минимум в ее защите тебе поможет государство, но только на территории своей страны,и глобально защиту искать получится очень дорого, только очень ценные идеи этого стоят, что очень редко. Чаще патентуют идеи не для того что бы идею не украли, а что бы защититься от мошенников, которые возьмут вашу идею, запатентую быстрее вас и призовут государство что бы вас 'наказать' (и это очень 'хорошо' работает, к сожалению).

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

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

    p.s. не ищите 'специалиста по ИИ', лучший способ вас обмануть, ведь если что то не получится, это 'не человек виноват а ИИ несовершенен'. Ищите специалиста для решения конкретной задачи.

    p.p.s. вам придется сделать ставку, либо своими деньгами, либо своим временем и 'уникальной идеей', вам придется пойти на риск.
    ----

    Есть замечательная техника, проверенная временем - 'разделяй и властвуй'. Не говорите никому всю информацию целиком, разделяйте ее, каждому сообщайте ровно столько, сколько нужно для решения задачи.
    Ответ написан
    21 комментарий
  • Установка windows 10 требует поворачивать разные предметы, куда указывает рука - iso?

    @rPman
    про win 10 первый же результат из гугла по запросу 'windwows 10 home установка без облачного аккаунта': https://siblimo.ru/kak-ustanovit-windows-10-bez-uc...
    Ответ написан
    Комментировать
  • Как реализовать на сайте просмотр 3д моделей, которые загружает пользователь?

    @rPman
    https://threejs.org/
    например на его основе написан просмотрщик на thingeverse
    Ответ написан
    Комментировать
  • Программы для обнаружения вредоносного ПО для Windows?

    @rPman
    Все ревизии windows в составе своем содержат 'приложение для обнаружения вредоносного ПО', в win7 это defender (он не обновляется поэтому по факту 'бесполезен' уже давно), ну а в последних версиях это 'защита от вирусов и угроз'.

    Помимо сканирования 'на лету' у него есть функция проверки файлов по требованию (настраиваемое сканирование).

    Ну а самое продвинутое решение - это virustotal, это онлайн антивирус по факту комбайн из десятков антивирусов, проверяемый файл по хешу определяется, что ранее уже проводилась проверка, в этом случае он не будет загружен по сети и не будет протестирован (зачем если это уже проводилось), что значительно сокращает время тестирования, при этом в составе есть песочницы для автоматического анализа (подробный лог, например какие сетевые запросы делает приложение или какие файлы меняет)
    Ответ написан
    3 комментария
  • Как лучше всего бекапить общие папки?

    @rPman
    Штатный ntbackup в режиме fast (инкрементальный). Лично мне не нравится, неудобно, но зато штатно и все мышевозекательно.
    ---
    Любой архиватор, позволяющий добавлять в архив либо по флагу archived либо по дате, простенький скрипт из трех строчек, сохраняешь дату бакапа в имени файла бакапа и следующий бакап делаешь на основе этой даты с предыдущего (у меня было два каталога - один для последнего единственного файла и второй для всех остальных - при запуске бакапа я брал имя этого единственного файла, делал бакап в этот же каталог и после его успешного завершения перемещал файл старый во вторую папку... если в каталоге два файла при запуске - значит предыдущий бакап корректно не завершился, и значит более новый файл удалить и повторить попытку.

    Делать бакапы - пол дела, их нужно проверять. В случае с инкрементальными бакапами нужно держать где то распакованную версию с последней проверки и помнить дату этого бакапа, разворачивая в нее все последующие инкрементальные архивы. Я тогда не заморачивался с удалением файлов (в планах было хранить список файлов в момент бакапа и сравнивать их скриптом но особой необходимости в этом не было а потом перешел на rsync). Недостаток инкрементальных бакапов, если потерять этот развернутый тест-бакап, то что бы восстановить состояние каталога на последнее - нужно будет последовательно развернуть все, начиная с самого первого стартового. Что бы этого не происходило, нужно периодически пересоздавать 'первый стартовый архив' из тестового, и удалять все бакапы старее.
    ---
    rsync (есть продвинутая с патчами если нужно хранить права но по уму лучше брать ту что на основе mingw) - решил все проблемы, включая удобство использования (смотреть инкрементальную копию как обычный каталог тупо в far/проводник), добавив долгую проверку диска chkdsk после сбоя потому что там миллионы файлов. Это магический ключ --link-dest с его помощью можно указать каталог последнего бакапа, что то типа такого:
    rsync -av --link-dest=/backup/%PREV% /mnt/d/ /backup/%CURRENT%

    Тут PREV хранит дату (например dd-m-yyyy) предыдущего бакапа а CURRENT - текущего.

    И самое главное, на NAS храни не сами файлы (так как по сети не будут переданы ни права доступа ни расширенные атрибуты ни симлинки... а .vhd образ (его можно тут же монтировать с помощью штатного diskpart). На диске сделай обычный ntfs, можно даже сжатие включить (или шифрование, как хочешь). Копировать так данные можно клиентами windows начиная с 7-ки (не starter и не home ревизии), т.е. скрипт резервного копирования запускать прямо на клиенте, который монтирует диск, делает резервную копию, и размонтирует... делать это рекомендуется по ssh с основного сервера, что бы гарантировать что один и тот же .vhd не будет смонтирован дважды (да там и не получится), но если так будешь делать, это значит клиенты будут иметь доступ (да можно права настроить но все же) ко всем бакапам,.. если nas поддерживает, на момент бакапа делать снапшот хранилища, и если бакап завершится без ошибок, удалять иначе откатывать назад и повторять.

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

    Достоинство - каждый каталог визуально полная копия забакапленных файлов, при этом старые (да и любые) копии можно удалять прямо как есть... используются hardlinks и файлы будут присутствовать на диске в единственной копии пока хотя бы один бакап на них ссылается (читай симуляция дедубликации)
    Ответ написан
  • Как организовать соединения двух компьютеров за NAT?

    @rPman
    Если совсем все плохо, можно попробовать hole punching, шансы есть.

    Если на одном роутере (лучше в той локальной сети где будет listen подключения) включен uPnP (обычно на потребительских роутерах включено по умолчанию), то можно с помощью утилит настроить временное перенаправление портов и подключаться напрямую. Например под linux утилиты apt-get install miniupnpc создаем проброс порта:
    upnpc -a <локальный_IP> <локальный_порт> <внешний_порт> TCP

    наличие и поддержку
    upnpc -s
    Адрес узнать чем то типа api.ipify.org или посмотреть на роутере (например открываешь админку роутера, страницу где видно ip адрес, копируешь из консоли разработчика браузера curl команду загрузки этой страницы и вытаскиваешь ip адрес любым удобным тебе способом, хоть регулярками хоть приложением из трех строчек)
    этот адрес и порт нужно как то сообщить тому кто будет подключаться.

    Есть еще NAT-PMP (я хз, на сколько роутеры это умеют, я вообще это узнал, общаясь с ИИ)
    sudo apt-get install natpmpc
    проброс порта
    natpmpc -a <порт> <порт> TCP 3600
    Ответ написан
    4 комментария
  • Как в Python удалить текст до определённых символов?

    @rPman
    .find ищет слева направо, а тебе нужно .rfind, это вернет номер искомого символа ':' с конца
    Что бы вырезать с конца строки нужное количество символов нужно взять со знаком минус s[-index:]
    Ответ написан
  • Можно ли настроить GUI браузер на ВМ CentOS9?

    @rPman
    есть xvfb сервер, работающий в оперативной памяти, уже в нем запускаешь vnc сервер и подключаешься. Настраивать долго, но зачем, когда есть все в одном - x2go.

    Устанавливаешь на сервере и на клиенте x2go и подключаешься, клиенты есть подо все кроме наверное android, но там есть debian-no-root а в нем обычные linux приложения, т.е. можно.

    Приложения по аналогии с windows terminal server остаются запущенными при отключении.

    p.s. если на клиенте есть xserver (linux или в виртуалке типа wsl) то можно штатным ssh -X user@server подключиться и запустить например браузер, и работать... не очень эффективно но зато ничего не нужно настраивать (правда на ssh сервере бывает отключают X11Forwarding, так что нужно включить yes). Браузер само собой устанавливать на удаленном сервере

    Ну и если речь идет о локальной сети (где нет злоумышленника) то xserver штатно позволяет подключаться по сети, но нужно будет настраивать lightdm или какой там менеджер стартового окна с логином, так как по умолчанию там запрет на подключения по сети кроме локалхоста)
    Ответ написан
    Комментировать
  • Как реализовать факторизацию для числа больше 300 символов?

    @rPman
    Вы хотите разложить на множители 1024бит число? за 20 минут?
    https://ru.wikipedia.org/wiki/RSA-числа
    RSA-240 имеет 240 десятичных знаков (795 бит) и было успешно факторизовано 2 декабря 2019 года Эмманюэлем Томе и его коллегами[6][7]. Для выполнения задачи было использовано несколько кластеров компьютеров в разных странах.
    Ответ написан
    1 комментарий
  • Светить или не светить ip-адресом организации в Интернет?

    @rPman
    Общие положения обеспечения безопасности - все сервисы, не используемые из интернета (но лучше все, кроме специализированных типа vpn или ssh, а доступ к остальным реализовать через них) должны быть закрыты фаерволом или настройками самого устройства...
    spoiler
    и не важно что именно это за сервис, статистически, уязвимости находят как в дешевом оборудовании, которое производитель не поддерживает десятилетиями так и в исходниках ядра linux, которое вылизывает и перепроверяет весь мир, тратя на это сотни тысяч человекочасов в год.


    Из вопроса совсем непонятно, что это за cgi сервис. cgi это простая и популярная (используется до сих пор) технология реализации backend веб сервера в интернете, сама по себе не содержит уязвимостей (точнее уязвимостью будет неправильная настройка), но вот те приложения, которые обслуживают ответы веб сервера (у тебя это cgi-aplication.exe и кстати название в ссылке не обязательно совпадает с тем что используется) могут и будут содержать ошибки... мало того, если кто то умудрился реализовать cgi веб приложение на windows на основе cgi и .exe, с огромными шансами эти ошибки допустит, 'никто' в здравом уме так не делает.

    В общем ответ - если есть возможность, то 'не светить'
    Ответ написан
  • Как составить SQLite Dockerfile?

    @rPman
    C:\Users\HP\Downloads\fff.db
    в docker пути нельзя использовать windows стиля, так как под windows docker все равно использует linux (wsl). И конечно никаких .exe там нет.

    Ты выше правильно написал
    WORKDIR /app


    dockerfile это набор команд, которые нужно будет выполнить внутри, пути к файлам там другие, ведь docker это песочница, со своими каталогами...
    Ответ написан
  • Как освободить память GPU после работы YOLO?

    @rPman
    посмотри это обсуждение, там в коментах здравые варианты
    Ответ написан
    Комментировать
  • Почему не могу подключиться к серверу по ssh?

    @rPman
    На сервере нужно еще разрешить авторизацию по ключу
    PubkeyAuthentication yes
    если используется root то еще и
    PermitRootLogin yes
    Удостоверься что путь до файла не сменили
    AuthorizedKeysFile .ssh/authorized_keys
    Проверь что НЕТ чего то типа
    AuthorizedKeysFile none

    Ну и что бы уж точно понять что не так, включи лог
    LogLevel DEBUG3
    и перезапусти сервер
    sudo systemctl restart sshd
    логи тут /var/log/auth.log

    upd. ты ключи настраивал на клиенте в putty а коннектиться пытаешься к серверу с сервера... либо переноси приватный тоже ключ на сервер либо ты не то что то делаешь
    Ответ написан
  • Может ли выключатель не полностью проводить электрический ток?

    @rPman
    Срочно менять!
    Если искрит и шумит значит есть шанс возгорания.
    Ответ написан
    Комментировать
  • Можно ли восстановить холодный кошелек без сид фразы?

    @rPman
    Нет невозможно.

    Ваши деньги - это Сид фраза, пароль у кошелька это способ защитить кражу ее, так как она хранится в кошельке.

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

    Предлагайте вознаграждение но не говорите про криптовалюты
    Ответ написан