Задать вопрос
  • Для чего выполнять функцию в assert?

    @rPman
    assert будет вызван только когда сборка проекта в отладочном режиме и будет проигнорирован в релизе, т.е. переменная _debugIsSelecting будет true для режима release и false - для debug, после вызова этого assert
    Ответ написан
    Комментировать
  • Варианты объединения двух мониторов в один виртуальный?

    @rPman
    В пределах одного физического компьютера, объединить несколько мониторов в один виртуальный рабочий стол с возможностью запускать одно приложение, расширенное на них.

    Я нашел упоминание о лимите в 10 мониторов у win10 но этот лимит исключительно в штатном интерфейсе и с помощью сторонних приложений его можно обойти, с ходу не нашел как и какой там максимум.

    В linux как я понял лимит на количество мониторов xorg сервера 16

    Но есть другая проблема - в генерации этого контента, я встречал упоминание лимита в 8к пикселов по любой оси, т.е. ты можешь поставить 10 мониторов в ряд в линию, но суммарное разрешение не должно превышать 8к (точнее, как я понял речь идет о 7680). Т.е. если приложение должно быть готово генерировать контент сверх этого лимита, выделяя к примеру по окну (возможно даже в своем virtual desktop с точки зрения win32) на каждый кусок изображения или вообще в оперативной памяти по своим правилам.

    Если у тебя несколько независмых машин, то тебе придется городить какое то удаленное управление. Настоятельно рекомендую запилить свой софт, используя к примеру nvidia remote play (я могу ошибаться с названием, там маркетинг заполонил интернет мусором), когда ты пишешь приложение и его окно или часть транслируется по сети по сети с минимальным лагом, машины, которые это будут проигрывать могут быть максимально простые (формально можно запилить веб клиент под браузер (или приложение) для smart tv и это окажется дешевле чем собирать из мониторов и полноценных pc монстра.

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

    Ну и конечно есть специализированные железки, которые позволяют собирать огромный экран из любого количества модулей, со своими механизмами поставки контента и забористыми ценами.
    Ответ написан
  • Как собрать исполняемый файл nuitka из под windows на macos и linux?

    @rPman
    Это называется кросскомпиляция, формально она возможна, так как промежуточно nuitka генерирует c++ код, и его уже после компилирует с помощью gcc, который в свою очередь умеет и разные архитектуры и разные ос (с оговорками).

    Из linux например точно с помощью mingw можно собирать windows приложения... по уму не должно быть особых проблем для этого, вопрос только в организации процесса

    Нужный тебе issue все еще открыт, но там обсуждают как это сделать.
    Ответ написан
    Комментировать
  • Как избежать повтора в запросах многие ко многим?

    @rPman
    Left join, оставит записи из левой части, где обычно базовая таблица, а справа подчинённые и справочники (если порядок другой то right join)
    Ответ написан
    Комментировать
  • Диск С полностью заполнен, как его можно очистить?

    @rPman
    утилита WinDirStat покажет куда делось место
    p.s. если у тебя миллионы файлов то возможно туда еще сотни мегабайт уйдет, каждый файл будет отнимать, помимо данных, еще на метаинформацию и выравнивание до размера кластера (обычно 4-8кб)
    Ответ написан
  • Почему виртуальная машина не получает ип хоста?

    @rPman
    В настройках сетевого устройства VirtualBox выбери тип сети - сетевой мост (bridge) и выбери сетевое устройство хоста, которое подключено к провайдеру (там где стоит dhcp сервер, раздающий нужный тебе ip)

    там же настраивается mac адрес, так как провайдер выдает ip адреса соответственно этому mac.
    Ответ написан
    2 комментария
  • Как выяснить причину загрузки потока процессора на 100%?

    @rPman
    Установи майкрософтовский sysinternals processexplorer, там искать причину удобнее будет

    Если нет, большие шансы что причина в глючных драйверах, это выявить будет сложнее, но для начала обнови все драйвера
    Ответ написан
    3 комментария
  • Как при заходе на сайт через Google узнать подтвердил ли свой аккаунт Google пользователь с телефона?

    @rPman
    Как узнать подтвердил ли свой аккаунт Google пользователь с телефона?
    это вроде не доступно разработчикам сайта, это внутренние механизмы защиты самого гугл от злоумышленников

    p.s. предлагай регистрацию через другие платформы, например телеграм ;)
    Ответ написан
  • Как специально не знать пароль?

    @rPman
    Да, ты помнишь часть пароля, вторую часть пароля получаешь вычислениями из первого.

    Самые надёжные алгоритмы - это криптографические хеши, считаешь хеш от хеша от хеша... N-раз, это не распараллелить на кучу компьютеров.

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

    @rPman
    При переходе по указанной ссылке видео в браузере не качается, а идет переход на страницу с youtube роликом, но по 'счастливой оплошности' разработчика этого сайта идентификатор youtube ролика размещен прямо в ссылке:
    presaver.com/youtube/qU5A0MLHtyE/download/22?title=treiler2023

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

    Это значит, выделяешь из ссылки этот код (например с помощью регулярных выражений метод preg_match или с помощью комбинации parse_url выделив путь с помощью PHP_URL_PATH и explode, разбив путь по '/'), и запускаешь утилиту
    yt-dlp "https://www.youtube.com/watch?v=qU5A0MLHtyE" -f код_формата

    если запустить с ключом -F то будет выведен список доступных форматов и их кодов, при наличии ffmpeg в можно будет объединять аудио и видео потоки

    все это запускать из php с помощью `обратных ковычек` либо вот список вариантов

    p.s. yt-dlp рекомендую ставить с помощью pip, там обновляется оперативнее чем тот что ставится из репозитария ubuntu и других.
    Ответ написан
  • На какой микрокомпьютер нормально встанет CentOS7?

    @rPman
    В следующем году поддержка этого динозавра закончится
    Ты хотя бы погуглил?

    p.s. на текущий момент 'лучшие' микрокомпьютеры это x86 mitx машины с intel процессором, (существуют pico/nano но неадекватные цены и очень маленький выбор, а вот mitx хороший выбор)
    Ответ написан
    4 комментария
  • Что делать если потерял ресивер от геймпада?

    @rPman
    обратись в сервисцентры, обзвони с указанием модели, у них больше опыта в поиске информации и комплектующих
    Ответ написан
    Комментировать
  • Непонятный ssd толи новый толи б\у?

    @rPman
    aliexpress/ozon/wb/... это не магазины, это электронный рынок (базар, барахолка), где в качестве торговца могут выступать как компании так и частники. Никакого контроля, ни за качеством товара, ни гарантийного ремонта,.. возможно посредничество компании для решения спорных ситуаций, типа товар не доехал, не рабочий или приехало не то что заказано, площадка может выступить как арбитр, придерживая у себя сумму и давая возможность ее вернуть покупателю... но с момента покупки aliexpress mailru качество даже этой опции упало ниже плинтуса (я читал о случаях когда товар не просто не доехал, он по статусу заказа больше месяца даже не выехал от продавца, но aliexpress деньги покупателю не вернул)

    тебе продали бу товар, если в описании не было этого указано, то ты имеешь полное право его вернуть, когда то aliexpress в течении 45 дней давал возможность открыть спор и вернуть деньги.
    Ответ написан
    2 комментария
  • Как можно шифроваться от сайтов при использовании selenium?

    @rPman
    по типу гугла
    гугл один из сложнейших сайтов для автоматизации, они защищаются от ботов десятилетиями

    Правильно, авторизуешься вручную с сохранением авторизации и переносишь куки в профиль браузера, используемого в selenium

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

    Если защиты нет то элементы ищутся легко тем же css - document.querySelector('css selector'), полученный объект можно менять типа .value='текст' а ссылки и кнопки кликать .click()
    Ответ написан
    1 комментарий
  • Как получить доступ к контенту iframe?

    @rPman
    На javascript с правами вебсайта ты этого не сможешь сделать, браузер не дает доступ к сторонним доменам в iframe, за исключением доменов-потомков (типа твой domain.ru а iframe - zzz.domain.ru, такой вариант доступ имеет), потому что там сайт открывается с куками пользователя, т.е. можно было бы открывать критичные сайты в iframe и собирать доступы к ним нахяляву.

    Доступ к iframe в браузере имеют плагины и скрипты, запущенные из консоли (плюс все что управляется из selenium).

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

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

    Но если специально никто не следит, то можно поднять на своем сервере прокси, который будет заворачивать в твой домен указанный (например сайт domain.ru в iframe - yoyo.com, а ты создаешь yoyo-com.domain.ru как копию yoyo.com и открываешь уже этот сайт в iframe, доступ будет с твоими куки (а не куки пользователя).

    Особого смысла в таком действии нет, как и нет смысла проверять, что же там открылось в iframe.
    Ответ написан
  • Как пропустить трафик Wireguard через socks5?

    @rPman
    wireguard на халяву не загнать в tcp, так как он udp, поэтому потребуется посредник, типа udptunel

    Вот пример настройки через udp2raw (он еще и этот трафик 'спрячет' за пингами к примеру, само собой это фигня, нормальный dpi это обнаружит)
    Ответ написан
    Комментировать
  • Как увеличить более 150% элементы UI и размер текста в Windows 7?

    @rPman
    Уменьшить разрешение, чтобы было не точка-в-точку. Масштабированием будет заниматься либо монитор либо видеокарта (ищи в настройках видеокарты скалинг). Потребуются эксперименты с масштабом, возможно эффективнее будет уменьшить разрешение а масштаб до 100% вернуть.

    Результат - замыливание изображения, но если задача - помочь человеку со слабым зрением, то это не проблема. Бонусом - ускорение работы 3d-приложений и игр.

    ypd. windows 7 - открываю Разрешение - сделать текст и другие элементы больше или меньше - слева Другой размер шрифта (точек на дюйм) - масштаб обычного размера, руками пишу 500 - применить, предлагает перелогиниться - оп все огромное
    Ответ написан
    2 комментария
  • Как связать YandexGPT с базой данных?

    @rPman
    При наличии доступа к весам llm, мощностям для finetuning и переобучения, специалистам по нейронным сетям, можно сделать ряд сопроводительны нейронок, которые будут помогать принимать решение о дальнейших действиях, закодировать большое количество 'дорожек' из llm к формальным базам данных, и сделать задачу якобы решенной.

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

    Если не углубляться
    - во первых, тебе нужно на основе llm сделать классификатор, который будет из текста пользователя понимать, intent - какое именно действие он желает сделать (для этого обучают нейронку на основе pretrained llm, возможно убирают последние слои, заменяя их на новые, веса которых нужно будет найти и обучить на основе подготовленной базы вопросов пользователей и соответствующих им реакций, с некоторой долей вероятности можно попробовать без обучения спрашивать у умной llm типа chatgpt4, к сожалению chatgpt3.5 и сравнимые с ней плохо с этим справляются, точнее это вопрос творческий и возможно вместо одного универсального промпта тут нужно готовить франкенштейна из большого количества разных, llm-ка от яндекса не подойдет).
    - во вторых, это сбор информации, отличный пример - человек спрашивает брать ли завтра зонтик, мало сети понять что для ответа на вопрос нужно знать какая будет погода завтра (а завтра это через сколько часов?), нужно понять где этот человек находится и возможно задать наводящий вопрос... это я еще молчу про контекст беседы, может пользователь обсуждает о том что взять с собой в поездку на следующей неделе, т.е. вот уже другое время и место (фраза взять с собой может подразумевать - положить в багаж).
    Я видел примеры промптов, с помощью которых из лога беседы можно вытягивать элементы информации (список этих элементов придется заранее забивать соответственно тому интерфейсу, который выбран как целевой на первом шаге), что то типа проанализируй, достаточно ли в данном тексте информации для ответа на вопрос, выделяя в промпте цель, собранную информацию и часть лога беседы, может сжатой через саморизацию с фильтром - нужную для данной задачи (этакая симуляция большого окна контекста).
    Вот тут у директора по развитию ии от яндекс спрашивали как раз

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

    p.s. С некоторой долей риска можно просить на ходу нейронку генерировать sql запросы на основе вопросов пользователя, результат будет с большими ошибками, чем умнее llm-ка тем сложнее эти ошибки будет обнаружить (в автоматическом режиме я имею в виду).

    upd. вот тут из гигачата сделали внутреннюю базу и как то интегрировали нейронку чтобы ею пользоваться, подробности не сообщили но в статье и комментариях есть ссылки на работы и технологии
    Ответ написан
    1 комментарий
  • Что за роли в API ChatGPT?

    @rPman
    Это части твоего промпта и способ общения нейронной сети с тобой (они не обязательно должны быть в виде чата, но конкретно gpt3.5-gpt4 модели обучены на этом, в описании к модели обычно это указывают).

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

    assistant (в приведенном примере это будет Алина) - во всем дальнейшем обсуждении будет использоваться чтобы отделить части текста как сказанные этим ассистентом, т.е. если ты в запросе в конце напишешь "Алина: " то языковая модель поймет что дальше должен быть текст ассистента

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

    Приложение, которое генерирует собственно токены, может контролировать (задается его настройками), какая последовательность токенов будет финишной и будет прерывать генерацию, отдавая контроль пользователю (например llama.cpp это ключ --reverse-prompt), так же сеть могут обучать специальным финишным токеном.

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

    Если говорить конкретно про chatgpt api то там эти роли буквально имеют это значение

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