Задать вопрос
  • Какие контейнеры лучше выбрать?

    @rPman
    lxc, интегрируется в libvirt и работает с его GUI (наполнение вручную делать, например с помощью debootstrap)

    lxc и lxd работают на основе cgroups (формально lxd работает на основе lxc плюс дополнительная файловая система), если нужны снапшоты на lxc, переходи на файловую систему btrfs/zfs/xfs и пользуйся их снапшотами

    p.s. если еще linux user mode, это буквально запуск ядра linux и полноценной ОС как обычное приложение (не требует root) со всеми плюшками виртуализации (например можно использовать ядро другой версии, подключать модули, файловые системы и т.п.) при этом без использовании виртуализации (это тоже контейнеризация, но системные вызовы медленнее чем это у lxc, с другой стороны самая хорошая изоляция среди контейнерных ВМ)
    Ответ написан
    4 комментария
  • Как можно сделать виртуальную «флешку», которая будет отображаться в проводнике windows 10?

    @rPman
    Аналог linux-овму fusefs, но для windows - winfsp.dev
    Но он на c++!

    чтобы завести это на питоне, нужно писать прослойку, немного устаревшая статья но идея та же (в статье описаны обоа направления python -> c++ и c++ -> python)
    Ответ написан
    Комментировать
  • Wireguard почему на разных ресурсах разный ip?

    @rPman
    с сервером в Казахстане

    поэтому
    2ip как казахский


    ну а гугловские geoip похоже не совершенны
    Ответ написан
    7 комментариев
  • Как вывести одиночное значение из массива?

    @rPman
    Делай проверки по успешному выполнению каждого вызываемого метода, в отладку или логи выводи что там в $res лежит, что передашь в параметрах запроса, вдруг там пробелы, каким-нибудь print_r или var_dump или json_encode.

    Настрой отладчик, сэкономили много времени
    Ответ написан
    1 комментарий
  • Почему числу внутри setInterval нельзя прибавить другое число?

    @rPman
    в javascript аргументы не передаются by ref, но если передать объект - то он будет передан как ссылка на него, а значит его переменные не будут скопированы

    let interval = setInterval(function(obj){
        console.log(obj.currentNumber);
        obj.currentNumber++;
    }, 1000, {currentNumber:5});
    Ответ написан
    2 комментария
  • Подойдёт ли процессор для RTX4070?

    @rPman
    Проверь, что на твоем многопроцессорном монстре пойдет десктопные win10, если да то проблем быть не должно

    Производительность твоего железа вполне норм (можно посмотреть что там за память стоит, в сервера не всегда вставляли самую лучшую, но разницу можно будет увидеть только в очень небольшом количестве игр)
    Ответ написан
    Комментировать
  • Что делать при ошибке WinError 998?

    @rPman
    https://learn.microsoft.com/en-us/windows/win32/de...
    ERROR_NOACCESS
        998 (0x3E6)
        Invalid access to memory location.


    обычно с виндой решают просто - запускают под администратором

    правильно разобраться куда именно лезет приложение и выдать права именно на это
    Ответ написан
    Комментировать
  • Где хранятся записи разговоров мессенджеров и можно ли их как-то запросить?

    @rPman
    Такие запросы может делать только правоохранительные органы и сам суд по линии Интерпола.

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

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

    Типовая конфигурация интернета в России подразумевает наличие роутера, который и выступает в роли этого фаервола.

    Если у машины, к которой подключаешься, интернет с выделенным ip адресом, то достаточно в настройках роутера настроить portmapping (раздел nat), если динамический, то нужно настраивать дополнительно dyndns
    Ответ написан
  • Как разобраться в api php Binance?

    @rPman
    Installation

    composer require binance/binance-connector-php

    composer есть в поставке любой linux либо скачай с офф сайта последний (тогда запускать composer.phar, он написан на php)

    p.s. есть библиотека ccxt ставится так же через composer, поддерживает кучу бирж (наверное все имеющие смысл) для бинанса там помню максимум проблема будет с coin-m futures и то это было несколько лет назад, когда они только только появились

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

    @rPman
    Гигабитный wifi не дешевое удовольствие - направленные антены от 5 тысяч рублей (нужна пара) и это 'типа слабые' решения (даст 300мбит). Более высокие скорости там организуются направленным излучением сразу нескольких антен, и я не уверен, можно ли купить к примеру 4 направленные антены и подключить к 4 штатным портам антен роутера (если есть, так как 5G роутеры могут не иметь внешних антен именно потому что технология подразумевает программируемую направленность).

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

    p.s. в дождь и снег связь будет хуже

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

    @rPman
    ffmpeg
    гугли использования overlay, maskmerge или alphamerge [mask]

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

    пример с overlay мне кажется тебе подходит лучше всего (тут цвет заменяется на изображение)

    гугл находит более сложные примеры, типа таких или таких
    Ответ написан
    1 комментарий
  • Как установить веб сервер на линуксе?

    @rPman
    Первое умение современного айтишника, который должен освоить каждый - умение гуглить, все ответы в интернете уже есть.

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

    Веб сервер нужно настроить, указать в каком каталоге находится файлы бакэнда, включить поддержку языка бакэнда (например модули php или asp, или это fast cgi протокол, или настроить tomcat java... в общем что там тебе нравится), указать какой домен или ip адрес у сайта, настроить ключи для работы шифрованного https протокола и ограничения доступа, к примеру чтобы хитрые пользователи не смотрели списки файлов в каталоге и не загружали конфигурационные и вспомогательные файлы

    p.s. настоятельно рекомендую не kali linux а более приземленный вариант - ubuntu server (да любой ubuntu/xubuntu/kubuntu/...) так как проблем он создает сильно меньше, решений в интернете готовых больше
    а вот kali - прямой признак кулхацкера, который хочет казаться крутым не будучи таковым
    Ответ написан
    1 комментарий
  • Как заполнить таблицу в цикле Mysql?

    @rPman
    Дано:
    product_attr_id - растет непрерывно по 1
    attr_7 - растет по 1 через три
    attr_29 - растет по 1 но через 3 записи (или при превышении 1099) возвращается к 1097

    итого:

    делаем один единый цикл по product_attr_id - for ... step 1
    увеличиваем attr_29 на 1 каждый шаг и проверяем выход за границу >1099 присваиваем 1097, так же в этот момент увеличиваем attr_7 на 1
    Ответ написан
    Комментировать
  • Деление внешнего носителя для файлов и для linux, как это сделать?

    @rPman
    сделать ровно то что ты написал

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

    в зависимости от того какой способ загрузки в биосе выбран и какая разметка диска (mbr и gpt видны и там и там):
    * efi загрузка требует/рекомендует gpt разметка, legacy - mbr
    * если выбрана gpt разметка но legacy режим то потребуется 1мб раздел biosboot
    * если выбран efi режим, то нужен раздел ~100мб efiboot (отформатировать в обычный fat но с пометкой что он efi)
    * если выбран legacy режим загрузки и mbr разметка, то для linux хватит 1 раздела /
    (иногда требуется /boot раздел, обывателю это не нужно, это актуально для нетипичных конфигураций файловых систем)

    Итого 1-2 раздела для linux и 1 раздел ntfs для windows, который прекрасно виден и в windows и в linux, без каких либо настроек.

    Но есть совет, windows начиная с 8.1 версии и по сей день по умолчанию включает hibernate режим и использует его даже когда ты выбираешь обычное выключение компьютера (оно делает logout, закрывая все приложения, и включает гибернацию) - чтобы показывать рекорды моментального включения компьютера. К сожалению в этом режиме файловые системы на флешках и дисках считаются некорректно извлеченными, и в редких случаях работа с таким 'некорректно отключенным' диском из linux (любой другой ОС, тут важен факт гибернации) может привести к повреждению данных

    Поэтому рекомендую отключить гибернацию, если важно постоянно переключаться между ОС.
    Ответ написан
    4 комментария
  • Как правильно хранить image на сервере (в mysql)?

    @rPman
    Хранить в файлах
    Можно не генерировать имя файла а использовать идентификатор из базы данных (не обязательно числовой, можно брать hex от его байтового представления), чтобы не заморачиваться с расширением, его можно либо стандартизировать либо не указывать (но тогда либо где то храни его mime type либо каждый раз высчитывать его с помощью утилиты file). Если будет расширение файла, то веб сервера смогут отдавать такие файлы максимально эффективно статикой, напрямую без бакэнда (при унификации типа файла это не требуется).

    Так же для удобства обслуживания действительно больших баз (миллионы изображений) можно раскидывать их по подкаталогам, считая имя каталога как некоторые биты от идентификатора, к примеру имя файла 00f1b3f3.png но хранить его в подкаталоге 00f1/b3f3.png в этом случае один каталог не будет содержать файлов больше некоторого лимита (в данном случае 2^16 - 65536, с таким объемом вполне сносно работают почти любые утилиты)

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

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

    @rPman
    Исключительно ради стеба.

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

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

    Пример использования - криптовалюта zcash, в ней для анонимных монет использовано было именно это шифрование.

    На хабре недавно была статья о компиляторе C (сильно упрощенный) который позволяет писать такой код относительно свободно. Библиотек под разные языки полно, правда они не так красивы как прямо целый компилятор.

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

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

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

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

    p.s. понятно что такие базы как mysql или postgres это умеют, но есть даже решения для sqlite (форки типа dqlite, rqlite и даже какие то внешние инструменты типа через фаловую систему litefs, сам не трогал но читал и запоминал возможности)
    ------------

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

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

    @rPman
    Мне кажется, в твоем случае, лучше обратиться к специалисту.

    Но если все же хочется самостоятельно покопаться то гугли:
    sysinternals process explorer
    sysinternals autoruns

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

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

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

    Если приложение установлено не в c:\program files а к примеру в профиль пользователя c:\users\... то это уже подозрительно, особенно если его не устанавливал - смело удаляй. Злономеренные приложения могут предлагать ненастоящую штатную утилиту удаления, которая только временно скрывает приложение, оставляя следы в системе для возвращения в будущем.

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