Задать вопрос
  • Как защитить ключи шифрования в программе?

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

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

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

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

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

    Остановить текущее обновление (в настройках обновления есть кнопка - приостановить на неделю), затем запустить штатный cleaner (Пуск - очистка диска - выбрать C: - кнопка 'Очистить системные файлы' - выбрать 'Очистка обновлений' и 'временные файлы' остальное по желанию, там все можно смело выбирать - нажать ОК). В 99% случаев этого может оказаться достаточно, но я советую дальше:

    Сделать резервную копию (перезагрузившись в какой-нибудь liveusb инструмент, мне нравится все делать из linux, так как оно полнофункционально в отличие от специализированных инструментов, а там с помощью dd или partclone или интерфейс к нему clonezilla). Резервная копия позволит восстановить состояние системы в пару кликов за десяток минут, и сохранит нервы, если что то пойдет не по плану.
    upd. ВАЖНО! помним про винидовую фичу fast startup, которая ломает файловые системы при загрузки в сторонние ос (не важно какие, хоть другая windows), перед перезагрузкой в другую систему выбирать 'Выключение' с нажатым shift

    Затем почистить (буквально удалить содержимое) каталога C:\Windows\SoftwareDistribution (в нормальной ситуации сделать это из запущенной windows скорее всего не получится, раньше хватало остановки службы обновлений теперь без гарантий, поэтому делать лучше это из сторонней ОС).

    После уже пробовать заново установить обновление.
    Ответ написан
    Комментировать
  • Как организовать сеть на Микротике с двумя интернет шлюзами?

    @rPman
    Итак, две машины в локальной сети, подключенные к интернету (разные провайдеры).

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

    Шлюз настраивают командой route или настройками на маршрутизаторе (автоматическая раздача настрок шлюза по dhcp).

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

    @rPman
    Работает очень 'просто'.

    ssh-клиент подключается к ssh-серверу (авторизация и т.п.), затем приложение по протоколу socks proxy подключается к ssh-клиенту, ssh-клиент шлет по своему птичьему протоколу информацию по уже открытому каналу до сервера, сервер создает сокет и отправляет/принимает данные до цели (и поддерживает его, если нужно) и всю коммуникацию перенаправляет к приложению ( приложение <-> ssh-клиент <-> ssh-сервер <-> цель, тут между каждым узлом открытое сокет подключение), добавив своих заголовков и разделяя пакеты по необходимости.
    Ответ написан
    Комментировать
  • Как запустить две копии программы в 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 сервер, а на работе - клиент.

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