Задать вопрос
  • Возможно ли создать такую программу, которая позволила бы просматривать торент файлы в которых содержаться видео и фото, или пдф файлы, или html?

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

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

    Поэтому самое простое в реализации - это создать ramdisk в оперативной памяти и указать торент клиенту его как место для загрузки файла. Почти все торент клинеты умеют загружать выбранные файлы из торент (или даже части). Для этого подойдет любой headless torrent демон или web api к обычному, и допиливаешь до желаемого.

    Ну и конечно, берешь libtorrent и реализуешь все желаемое, в любой форме.
    Ответ написан
    Комментировать
  • Будет ли совместим монитор 2К с моим ноутбуком Asus K53SD?

    @rPman
    С высокой вероятностью нет, в мануале нет информации о версии hdmi (а на сайте асус даже нет технических характеристик), видеокарта умеет 2k в режиме dual link dvi но у тебя только один разъем hdmi (можно конвертировать hdmi->dvi пассивным переходником) и само собой монитор должен тоже это уметь.

    Этот ноутбук из тех времен, когда hdmi не умели передавать 2k и 4k и поэтому были хаки на основе передачи видео по двум hdmi/dvi...
    Ответ написан
    1 комментарий
  • Какую карту видеозахвата лучше взять?

    @rPman
    отзыв про espada:
    Всё выглядит, как на VHS кассете, только в 1080р.

    есть вероятностью что это проблемы настроек но маленькая.

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

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

    Если у вас нет никакого ip адреса, то либо покупать его у провайдера либо использовать vpn сервер (не рекомендую этот вариант, он добавит лаги, критичные для майнкрафт серверов), который этот ip адрес будет выдавать. напомню, что уже несколько лет как ipv4 испытывает заметный дифицит, и выдавать его налево и направо бесплатно провайдерам уже не так просто, и даже облачные провайдеры продают его за порядка 100 рублей в месяц +-.
    Ответ написан
    Комментировать
  • Как запустить LLM на встроенной видеокарте?

    @rPman
    На встроенной видеокарте не запустить большие языковые модели, потому что не хватит оперативной памяти. Но даже если умудриться выделить в биосе для встроенной gpu нужный объем памяти, работать это будет медленнее чем llama.cpp на процессоре.

    При использовании llama.cpp требования можно снизить за счет квантизации (на самом деле код есть и для python tensorflow реализации, но там не так удобно все организовано, придется изучать и ковырять), но даже в этом случае начальный обем vram где то 8Gb (с 4бит квантизацией и 7B модели, будут работать плохо, минимально рекомендованная это 5_1 квантизация, штатный tensorflow код с которым релизятся модели, без проблем умеет 8бит квантизацию), не жди от 7B моделей хорошего качества, и тем более при использовании квантизации, они и так уже уменьшены по максимуму.

    p.s. llama.cpp умеет часть матриц переносить в gpu, это имеет смысл если vram не хватает чуть чуть, т.е. модель влезает почти полностью добавляй ключ --n-gpu-layers N где N число слоев нейронки, которые нужно перенести в vram, подбирать экспериментально пока не начнет ругаться на нехватку памяти.

    скорее всего тебе придется пересобрать ее с ключом OPENBLAS или CLBLAS
    mkdir build
    cd build
    cmake .. -DLLAMA_BLAS=ON -DLLAMA_BLAS_VENDOR=OpenBLAS
    cmake --build . --config Release

    (полистай документацию возможно еще ключи добавлять)
    Ответ написан
    Комментировать
  • Каков уровень надежности подключения SSD дисков по NVMe?

    @rPman
    К сожалению надежность - это не про технологии и стандарты. надежность это отношение к разработки, тестовые лаборатории и добавление в протоколы инструментов.

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

    Если говорить с точки зрения технологии то nvme на порядок надежнее, потому что проще, в нем значительно проще контроллер, большую часть работы там вообще перенесли в процессор и оперативную память компьютера. Вся идея nvme была разместить память поближе к процессору без посредников, прямо на шину pci-e и за счет этой простоты достигается высокие скорости и относительно низкая цена.
    Ответ написан
    1 комментарий
  • Нужна нейросеть, которая сможет выбрать оптимальный вариант удаления фона?

    @rPman
    Универсально таких нет

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

    Какую именно выбрать датасет это вопрос исследования, какая подойдет для твоей задачи. Например если ты будешь обучать бинарный классификатор - хорошо/плохо (или при разметке ты будешь оценивать по какой то шкале например от 0 до 10 результат работы) то это одна задача, но ты можешь к примеру подавать на вход сразу все четыре изображения, и сеть должна выдать делить на 4 класса полученный комплекс, соответственно каждому изображению... совет, добавляй ко входу еще и исходное изображение.

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

    Можно предварительно обучить сеть на входных и обработанных изображениях, но не с целью получения результата, а с целью найти закономерности (мне нравится вариант когда на вход сети и на выход подается одно и то же изображение или пара, сеть многослойная но размерность средних слоев сделать меньше количества входов, т.е. нейросеть должна будет научиться упаковывать информацию об изображении в меньший объем, это вынудит ее искать закономерности.. затем левую половину полученной сети до сужения размерности можно скопировать в искомую сеть как первые слои (добавить еще несколько) и уже обучать как классификатор под твою задачу, эта предобученная сеть будет лучше решать задачу.
    Ответ написан
    1 комментарий
  • Возможно ли объединение воксельной и полигональной графики в одной игре?

    @rPman
    Конечно возможна, мало того разрушаемые здания были реализованы порядка 15 лет назад (red faction: guerilla) и да это не воксельная графика!

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

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

    p.s. реализовать правильное разрушение в сетевой игре можно но опять все споткнется об оптимизацию и работу с нетиповым железом пользователей... в попытке оптимизировать нагрузку потеряется точность вычислений и результат расчета будет расходиться на машинах с разным железом (особенно если речь идет о разных вендорах intel/amd/nvidia)
    Ответ написан
    Комментировать
  • Какие драйверы нужны при установке win10 на vds?

    @rPman
    Драйвера интегрируют в установочный образ с помощью ntlite, но я не уверен что virtio драйвера это могут.

    Настоятельно рекомендую установить систему дома в kvm (ванную именно этому систему виртуализации), настроить сначала на типовом железе, потом добавить virtio устройства и доустановить драйвера, и уже затем оставить только их. Позже можно перенести установку любым инструментом резервного копирования.
    Ответ написан
    3 комментария
  • Есть ли реальная необходимость использовать Git LFS?

    @rPman
    Мое мнение - абсолютно бесполезен (из-за особенностей реализации и избытка функционала).

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

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

    git-lfs работает очень не эффективно, банальный git clone репозитарием из 20-гигабайтовых файлов требует сравнимый объем оперативной памяти, потому что там на любой файл идет diff/patch, что бессмысленно для бинарных файлов в подавляющем большинстве случаев.
    Ответ написан
    Комментировать
  • Как вывести double число c определенным числом знаков ДО ЗАПЯТОЙ и После в сумме?

    @rPman
    Преобразовываешь в строку toString и берешь первые n символов подстроки Substring

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

    правильно выравнивать числа по правой стороне, зафиксировав количество знаков после запятой (что бы разделительная точка была на одной линии
    1 322.0000
      133.4400
       12.4440
        0.3333
    Ответ написан
    Комментировать
  • Администрирование сервера, вопрос про ssh - пользователи и screen сеcсии, как правильно использовать?

    @rPman
    Если сделаете следующий шаг в изучнеии, screen умеет создавать по нескольку терминалов, запуская в каждом свое приложение, начните с хелпа ctrl+a, ? (это последовательность нажимается отдельно), например ctrl+a,c - создание нового, ctrl+a, a - переключение на предыдущее, ctrl+a, " - выводит список с возможностью выбора стрелками...

    И вообще, зачем тебе в данной ситуации screen мне не ясно, у тебя бот по stdin принимает команды управления? Обычно необходимы возможности - посмотреть логи stdout/stderr и перезапустить, все это решается другими средствами. Логи перегаправляются в файлы, а процессы убиваются kill. Есть штатный механизм служб в операционной системе systemd, где и логи, и перезапуск, и отслеживание ошибки (скрипт 100500 раз быстро перезапускается)... если лень все это настраивать можно запилить свое на базе штатного nohup и bash скрипта (а точнее однострочника) для автоперезапуска приложения:
    nohup bash -c "bash_loop_pid=$$;while true;do myscript >myscript.log 2>myscript.err;sleep 1;done" &

    nohup запускает приложение, которое не будет остановлено по закрытию сессии ssh (больше к ней доступа не будет), символ & в конце заставляет делать это в фоне, кстати он же создаст nohup.out куда будет вывод записан
    bash -c это чтобы запустить скрипт while
    $$ - вернет pid этого bash скрипта, обслуживающего цикл while (в примере в переменную bash_loop_pid) если понадобится остановить этот бесконечный цикл
    while - будет в цикле перезапускать скрипт, с паузой sleep в 1 секунду
    myscript >myscript.log 2>myscript.err - запуск скрипта с перенаправлением сообщений в файлы
    В другом окне можно кратковременно запускать:
    tail -f myscript.log
    и это будет выводить новые строки из файла с ожиданием их

    в итоге, таких скриптов у тебя может быть сколько угодно, если в командной строке запуска myscript его как то идентифицировать (если запускается один и тот же скрипт но для обслуживания разных ботов) то ps можно увидеть все запущенные, и слать с помощью kill $pid сигнал принудительного завершения (в данном случае перезапуск)

    Обычно для штатного перезапуска скриптов добавляют секретный api ключ, команду боту на перезапуск, которая просто вынудит его завершить работу, чтобы не лезть в консоль (консоль это если все повисло и не отвечает).
    Ответ написан
    5 комментариев
  • Почему выдается ошибка sql во время импорта данных?

    @rPman
    Access denied for user
    пользователю (в mysql это пара 'юзер%хост') не выданы права на вызов insert, 'обратитесь к вашему администратору базы данных', вполне возможно пользователь был верно настроен для создания резервной копии (требуется только чтение) а на модификации нет
    Ответ написан
    Комментировать
  • Как веб-разработчикам обеспечить хорошую производительность CSS на устройствах начального уровня?

    @rPman
    Совет. Смартфоны и планшетники из mid-end и low-end (самые дешевые или 3-5 летней давности) по производительности сравнимы с десктопными компьютерами 10-летней давности или даже раньше

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

    Можно использовать пессочницы типа debian noroot/termux/... которые позволяют поставить xorg сервер на android и запускать десктопные приложения без особых ограничений (поддержка ускорителя с оговорками но полагаю если речь и рендерере css и svg то тут все сравнимо), это не виртуализация, а нативный запуск приложений (соответственно arm архитектуры).
    Ответ написан
    Комментировать
  • Для чего выполнять функцию в 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 комментария