Задать вопрос
  • Как запустить две копии программы в Linux?

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

    Или, другой пример с wine (тоже выступает как песочница), у меня есть вполне удачный опыт, на машине linux с двумя gpu nvidia (проприетарные драйвера) настроен multiseat (штатно с помощью loginctl), в каждом рабочем месте свой пользователь linux, каждый пользователь установил steam (штатный linux) и каждый пользователь может запускать независимо друг от друга игры и приложения (работает все само с помощью proton - форк wine), даже если используется какой-нибудь античит, с запретом запуска. Но к примеру игра throne and liberty работает в два клиента с оговорками (на базе unreal engine 4, там постоянно добавляют багов и косяков, которые чаще заметнее именно на linux).

    Типовой баг - игра может самостоятельно обнаруживать несколько видеокарт и для каких-то своих задач принудительно выбирать первую, а не ту что используется X-сервером (частично решается установкой DRI_PRIME и MESA_VK_DEVICE_SELECT) из-за чего одновременно перестают работать, в частности, этот баг у меня стал вылезать, когда я скомбинировал песочницу steam proton и сетевой конфиг в cgroup (я попробовал запустить каждую игру со своим ip адресом и настройками шлюза по умолчанию, это прекрасно работает с любыми программами, включая linux steam и даже windows steam внутри wine, к примеру я сервер ark survival так запускал, но не throne and liberty, она начинает виснуть при запуске так же как это было без настроек переменных указывающих какую видеокарту использовать, причем виснет не только игра но и воспроизведение видео в браузерах на обоих рабочих местах).

    В общем чаще все работает как ожидается, программы работают независимо, но когда в дело вступает доступ к видеокарте, особенно если приложение написано с ошибками, начинаются проблемы.
    Ответ написан
    Комментировать
  • Какие есть простые легковесные LLM для локального использования?

    @rPman
    Настоятельно рекомендую не ждать ответа от сообщества и не гадать, а установить что то типа lmstudio или ollama и используя их интерфейс по перебирать модели, подходящие под ваши требования на своих задачах (можно заранее собрать тестовый набор и попросить ИИ написать код для его проверки автоматически), эти утилиты поднимают llama.cpp сервер, c совместимым с openai api.

    Легковестными и терпимыми кодогенераторами являются либо специализированные модели (в название code) либо что-нибудь от топов - google gemma, microsoft phi4, openai oss (лично не пробовал но говорят что даже 20b терпимая, и почти наверняка ее можно использовать как ускоритель для 200b) и может быть qwen3 30b a3b.

    p.s. готовь 64гб ram минимум (лучше 128гб в идеале 196гб, тогда можно потрогать топовые типа deepseek), мало хранить веса, нужно еще контекстное окно обслуживать. Есть алгоритмы, позволяющие неплохо ускорять MoE модели, не влезающие в gpu, только малым их количеством (например на 196гб ram + 24gb vram запускают deepseek с несколько токенов в секунду).

    денег, которые ты потратишь на апгрейд железа хватит на месяцы и годы на использование облачных api, это при использовании топовых моделей, а если брать дешевые слабые (сравнимые с opensource) то и подавно.

    И главное, сносное качество открытые модели дают в режиме рассуждения, которое кратно увеличивает время до получения ответа (десяток минут), стоит ли оно того?
    Ответ написан
    Комментировать
  • Стоит ли использовать файловый сервер в проекте?

    @rPman
    Чем больше зависимостей, тем сложнее поддержка в будущем.

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

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

    Я настоятельно рекомендую не городить лишних сущностей и хранить файлы на том же веб сервере как статические. Если нужны ограничения доступа, то используй штатные инструменты авторизации веб сервера либо свой велосипед. Это 10-15 строк кода, например файлы изначально хранятся в не опубликованном каталоге, а при предоставлении доступа к файлу в публичном создается симлинк, в имени которого id сессии (например id_сессии/id_файла причем если доступ сразу ко всем файлам, то достаточно линка на каталог по id_сессии), а при отзыве доступа, удаляются все симлинки с указанным id сессии.

    Бонусом получаешь максимально ресурсоэффективный способ хранения и публикации файлов, минусом наверное только свой uploader писать (в наше время начинающие разработчики просто обязаны пройти через написание своих велосипедов типа upload файла, обслуживание очереди задач по времени и т.п. иначе такое городят, смотреть на этот кошмар невозможно)
    Ответ написан
    5 комментариев
  • Как заставить Docker Desktop работать через WSL2?

    @rPman
    без hyperv wsl2 не будет работать, он его использует как основу.

    вроде бы можно использовать в android sdk эмуляцию hyperv:
    https://learn.microsoft.com/ru-ru/dotnet/maui/andr...
    Ответ написан
  • Если подключиться к OpenVPN в WSL2, повлияет ли это на весь остальной Windows?

    @rPman
    поднять на ней SOCKS прокси
    если поднимаешь с помощь ssh -D1080 (1080 порт) то linux не нужен, штатный ssh идущий с windows будет работать как ожидается.

    Виртуальную машину нужно поднимать для продвинутых сетевых конфигов, которые требуют создания витртуальных сетевых адаптеров (в windows это есть но готового софта меньше) например tap (это полноценный ethernet, умеет подключаться в сетевой мост)

    wsl2 это полноценная виртуалка, нужно проверить как в ней сеть настроена, но если нужны продвинутые конфигурации, то проще штатный hyperv использовать (собственно он и используется только интерфейс в wsl2 другой).

    Виральная машина должна предоставлять доступ во внутрь (т.е. ее ip адрес должен отличаться от адреса хост машины и должен пинговаться), самый простой конфиг - сетевой мост (windows виртуалки позволяют как штатно сетевой адаптер выносить на хост машину так и выступать фильтром у уже существующему), когда виртуальный адаптер подключается в указанную локальную сеть хост машины и виртуалка по сути будет отдельным компьютером в сети, управляемой роутером в локальной сети хоста.
    Ответ написан
  • Есть ли js-библиотека для офлайн-распознавания русской речи?

    @rPman
    Понимая как это устроено, я бы ни в жизь не задумался о таком извращении,.. лучшие библиотеки распознавания речи используют трансформер, а тот в свою очередь хорошую реализацию имеет на python (понятно что есть по до все, например на c)... например открытый код от openai - whisper. Все же требуется максимум производительности от железа, и лишние прослойки виртуализации не желательны.

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

    https://www.assemblyai.com/blog/offline-speech-rec...
    Ответ написан
    2 комментария
  • Как получить список статей хабра с ограниченным доступом (451)?

    @rPman
    поисковики типа гугла ищут эти страницы
    site:habr.com Эта интернет-страница удалена из публичного доступа по юридическим причинам
    в поисковике показывает много таких страниц, но отображает содержимое как с vpn (краулер скорее всего не с российских ip работает)
    Ответ написан
    Комментировать
  • Как проксировать только GitHub Copilot в Visual Studio Code?

    @rPman
    Для начала нужно собрать список доменов и ip адресов, по которым идет общение с copilot, для этого нужно установить локальный прокси с логами, и поработав через него, собрать статистику и принимат дальше решение о том, какие подключения проксировать.

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

    Вроде бы 3proxy и squid это умеют (первое проще)
    Ответ написан
  • Как сделать хороший интернет в поселке?

    @rPman
    Если speedtest показывает хорошую скорость, значит связь 'последней мили' работает отлично, т.е. связь до ваших вышек связи хорошая, и не нужно ее улучшать.

    Намекну, что последние месяцы с подачи правительства, весь мобильный интернет замедляется умышленно (это происходит по разному и с разной степенью эффективности, так как каждый провайдер выполняет требование в меру своих возможностей, но рано или поздно интернет будет доломан везде окончательно), вводятся белые списки (весьма скудные), среди которых естественно yandex speedtest (а чужие объявлены вредными и забанены), и если сайт не попал в этот белый список, то его скорость будет в лучшем случае 30кбайт/сек

    Решение к сожалению отсутствует. Обратитесь к вашему провайдеру, выслушайте заглушку 'по независящим причинам наблюдаются сбои', и трезво подумайте о будущем
    Ответ написан
    Комментировать
  • Вывод сообщения всем пользователям в сети на linux?

    @rPman
    Начал писать полный ответ и понял что он будет ну очень объемным, советую гуглить и пообщаться с gpt.

    Итак, удаленные сообщения слать запуском notify-send (он шлет сообщение не пользователю а в $DISPLAY, так что прописывать его вручную на случай multiseat) по ssh, он позволяет отсылать сообщения пользователям, в gui они будут отображаться с помощью текущего установленного демона (например xfce - xfcs4-notifyd) и возможности этого демона будут разные. Некоторые позволяют добавлять в уведомление кнопки (скорее всего одну) и настраивать запуск приложения по их нажатию. Например dunst для x11 позволяет вызвать свой скрипт, указав в аргументах выводимое сообщение (а по нему уже определить что это было за действие если их будет много). Приложение для gui может быть тот же zenity.

    Еще вариант, у xfce штатный notify-send не умеет делать действия, но демон умеет.. гуглится скрипт, который эту проблему решает и позволяет несколько кнопок действий задавать прямо в уведомлении
    Ответ написан
    Комментировать
  • Сохранить свой IP через proxy подключение?

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

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

    @rPman
    linux машина, на нее водрузить virt manager, добавить поддержку lxc, и получить максимально простой gui для работы с виртуалками и lxc контейнерами.

    Машину тестировщиков разместить в kvm (если она требует windows, иначе так же хватит lxc), остальное разложить по lxc или сразу в docker (поэтому не советовал proxmox). Настоятельно рекомендуется не каскадировать docker (т.е. не размещать один внутри другого).
    Ответ написан
    Комментировать
  • Как из /128 адреса ipv6 самому себе присвоить /64 или даже /48?

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

    Если не доступны настройки маршрутизации vpn сервера, то сделать ничего нельзя.
    Ответ написан
    4 комментария
  • Как исправить неработающие Fn клавиши после suspend?

    @rPman
    В биосе ищи что то типа не отключать usb питание в режиме сна (это по разному называют), как результат - батарейка будет сильнее разряжаться но скорее всего проблема с клавиатурой исчезнет
    Ответ написан
  • Возможно ли профилирование на PHP без xhprof и xdebug?

    @rPman
    Настоятельно рекомендую решить проблему с запуском штатных инструментов, иначе будете решать не ту проблему и затратите сил больше чем имеет смысл.
    p.s. например в windows уже давно есть wsl, wsl2 (или штатная виртуалка), запускаете полноценный linux и настраиваете там.

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

    Сейчас происходит почти все то же самое, просто кто то уже написал за вас все.
    Ответ написан
    Комментировать
  • Как организовать доступ к рабочему компьютеру удалённо?

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

    Не вы подключаетесь с вашего домашнего компьютера к удаленному, а наоборот, удаленный компьютер инициирует подключение к вашему домашнему. Из коробки например это работает с vnc (например в linux это x11vnc -connect my.home:5500 -reconnect -retry 60 на сервере, а на клиенте в режиме listening или vnc callback).

    По той же самой идее можно и vpn настраивать. Дома поднимаете vpn сервер, а на работе - клиент.

    Достоинство подхода, в этом случае скорее всего вообще не потребуется настраивать роутер (но администратор может закрыть порты во все стороны, правда делают это только в случае явного запрета так делать, обходить запреты не рекомендуется), но только свой домашний, к которому у вас есть доступ.
    Ответ написан
    Комментировать
  • Выбрать ли RTX 3060 12 Гб или RTX 5060 8 Гб для бюджетного AI?

    @rPman
    для бюджетного AI
    очень малоинформативно, но от этого может зависеть выбор железа.

    С точки зрения сырой производительности, видеокарты отличаются на 25% (а тензорных ядер разница на 10%), и 5060 должна быть незначительно быстрее. Так же есть момент, в прошлом nvidia была замечена в 'умышленном' замедлении старых видеокарт в драйверах, вынуждая подбирать еще и правильную версию, ничто не мешает делать это в будущем, что бы продавать никому не нужные новые видеокарты.

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

    Типовая ситуация - если веса нейронной сети и вся обучающая выборка полностью влезает в vram, то мощности видеокарты будут утилизированы на 100% и скорость сходимости при обучении (количество циклов прогона) будет наилучшей). Если обучающая выборка целиком не помещается в видеокарту, то ее размещают туда по частям, прогоняя цикл не по всем данным а по каждой части. Это так же позволит нагрузить видеокарту на 100% но итоговое количество циклов прогона увеличится (сходимость ухудшится, но это кстати может зависеть от алгоритма разделения обучающей выборки на части).

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

    Поэтому я рекомендую выбирать больше оперативной памяти чем производительность.
    Ответ написан
    Комментировать
  • Чем вы пользуетесь для бекапа личных машин?

    @rPman
    rsync

    Умеет все что вы запросили, бакап - пофайловая копия (т.е. бакапы доступны как файлы без дополнительных телодвижений), умеет инкрементальное копирование через создание симлинков
    spoiler
    для обычного сетевого диска я не проверял, должно работать, я делал в сетевое блочное устройство, например iscsi или диск .vdhx по smb, внимание, уязвимо к ошибкам и вирусам на машине но это на порядок быстрее для большого количества мелких файлов

    Можно копировать как сразу по сети с удаленной машины так и запускать по ssh (сервер штатно ставится в windows), инициируя бакап с центральной машины.

    Для резервного копирования загрузочного диска (что бы можно было без проблем его восстановить) - liveusb/netboot linux + partclone (быстрее dd даже с тормозными hdd), если нужно рулить этим вручную, то на их основе есть готовый clonezilla

    p.s. еще есть syncthing, прекрасная утилита с web gui, умеет синхронизировать указанные каталоги с указанными машинами где угодно, с поддержкой инкрементального бакапа (ограниченно). Многим этот функционал кажется удобнее и народ тупо отказывается от всяких гуглдиск/onedrive/...
    Ответ написан
    6 комментариев
  • Насколько безопасен проброс порта?

    @rPman
    "открыть порт наружу" = "предоставить доступ к сервису любому в мире".
    Не важно какое значение порта, вы предоставляете прямой не шифрованный доступ.

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

    Поэтому ответ - не надо так делать.

    Существуют сервисы, которые создаются такими что бы быть опубликованными, т.е. достаточно защищенные. Настоятельно рекомендую использовать какой-нибудь механизм шифрования доступа, начиная с ssh (у него есть встроенная поддержка перенаправления портов, прокси сервер и даже vpn) либо какие-нибудь другие vpn серверы
    Ответ написан
    Комментировать
  • Как сделать ВМ arm Android на arm сервере?

    @rPman
    android studio sdk таскает с собой образы виртуалок на все версии android для тестирования и отладки приложений

    для виртуализации использует kvm

    p.s. для android точно были решения на базе lxc но сколько я не смотрел такие, работают они через раз, зато без накладных расходов на виртуализацию
    Ответ написан