• Как передать массив как поле класса(см. код)?

    @rPman
    Если размерность массива - константа, можно использовать готовый шаблон std:array
    std::array<тип или класс элемента, размер массива> myArray;

    Или создай свой шаблон с походим функционалом. Параметры шаблона будут доступны как обычная переменная.

    Если размер не константа, тогда передавай размер массива прямо в конструкторе
    class MyWorld
    { private:
      size_t size;
      public:
      MyWorld(size_t size) {this->size=size;}
      ...
    }
    // использовать
    MyWorld world(123);
    Ответ написан
    Комментировать
  • Возможно ли идеальное шифрование?

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

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

    @rPman
    С академической точки зрения, если это не в продакшен и только похвастаться, можно воспользоваться eval:
    $myfunc = eval('return function($x) { return $x['.implode('][',array_map('json_encode',$path)).']; };');
    echo json_encode($myfunc($ar)); // {"v":{"a":123,"b":321}}

    Тут array_map('json_encode',$path)) экранирует всякие ковычки и слеши, преобразуя значения в код для их получения
    Затем полученный массив с помощью implode('][',... превращается в последовательный вызов элементов этого многомерного массива.
    А eval('return function($x) { return $x[...]]; };'); формирует строку функции для вызова этой конструкции и помещает ее в переменную.
    Затем остается только вызвать это $myfunc($ar);

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

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

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

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

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

    @rPman
    Любой установочный пакет (правильно собранный) в формате .msi (а часто и .exe но по своим стандартам) позволяет запустить установку без запроса пользователя, занести этот .exe приложение с ключом /? И получишь подробную справку.

    Для .msi посмотри эту статью
    Ответ написан
  • Пртем смс с тысячи сим карт не по цене крыла самолета?

    @rPman
    Закажи себе у специалистов 'паяльника и 3д принтера' постейшую цифровую переключалку симкарт (на плате много разьемов для симкарт, и их контакты по очереди, управляемо, с нужными таймаутами, подключаются к смартфону или модему). Для сотового оператора это будет как ручное переключение... Но все равно подозрительно (можно параллельно менять imei программного на смартфоне, будет выглядеть как тысяча смартфонов попеременно вкл/выкл в одном месте, но это запрещено законом или договором с сотовым оператором).

    Это будет дешевле, чем покупать тысячи модемов или делать читалки смс (для 2g сетей модули дешёвые вроде)
    Ответ написан
    Комментировать
  • Возможно ли ускорить обмен данными между удаленным клиентом и сервером?

    @rPman
    Быстро/медленно это не скорость а ваши эмоции. Нужны численные данные.

    В первую очередь необходимо провести тесты скорости, последовательно исключая потенциальные замедлители и используя максимально простой протокол (одноименные утилиты) ping, для замера времени отклика, и iperf, для ширина канала.

    Т.е. сначала скорость внутри локальной сети между машинами в разных зданиях, затем между vpn шлюзами и машинами в их локальной сети, затем между шлюзами в сети интернет.

    Дополнительно во время этой максимальной нагрузки замеряй нагрузку на процессоры vpn шлюзов.

    В принципе топовые скорости openvpn это сотни мегабит в секунду, wireguard - до половины гигабита (допускать конфиг дающий гигабиты за счёт большого mtu но это плохо влияет на типовое использование файлового сервера), при использовании топового железа x86. По уму самый быстрый это gre, по медленнее ipsec и внизу всякие openvpn...
    Ответ написан
    Комментировать
  • Тип гудков в сотовом телефоне?

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

    У полиции гораздо больше возможностей проверить.
    Ответ написан
    Комментировать
  • Как получить курс USDT к RUB?

    @rPman
    Твой обменник что будет делать, когда возникнет значимый перекос в балансах usdt и btc? Например (и это будет происходить часто) выкупят все btc и у тебя на руках будут только usdt, будешь отказывать клиентами, желающим купить btc?

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

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

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

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

    И вообще, вопрос выбора курса обмена, это тот же вопрос спекулятивной торговли с целью получения дохода.. чем меньше разница будет с биржей, тем сильнее это будет заметно. А вопрос этот не имеет ответа в общем, каждый ищет его самостоятельно.
    Ответ написан
  • Установка MBR загрузчика на диск c разметкой GPT, возможно ли?

    @rPman
    4 комбинации:
    * mbr dos + legacy
    Требует dos таблицу разделов, ничего дополнительного делать не надо, что linux что windows умеют загружаться (начиная с 8-ой нужно отдельно делать раздел boot)
    * gpt + legacy
    Требует раздел biosboot 1mb, в него будет установлен загрузчик, при этом вне зависимости от новизны машины, загрузчик и загрузочная файловая система не должны находиться дальше 2тб от начала диска (это ограничения legacy)
    * mbr dos + efi
    Требуется наличие раздела efiboot (fat но все понимают и ntfs), кажется windows так загружаться не умеет и требует gpt, но с linux все ок
    * gpt + efi
    Рекомендованный конфиг, так же требуется раздел efiboot, все ос работают без проблем.

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

    @rPman
    Производительность кода на gpu сильно зависит от динамики обращения к оперативной памяти, достаточности кеша и аппаратных возможностей железа (сколько банков памяти).

    Например последовательный доступ к данным значительно эффективнее случайного.

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

    ...
    Ответ написан
    Комментировать
  • Какой выбрать VPN для построения небольшой сети?

    @rPman
    Openvpn самое простое и многофункциональное.
    Wireguard - тоже просто но менее функциональное.

    Какой-нибудь Ipsec или на базе ssh и linux (есть там функция туннелирования трафика), универсально но с настройками повозиться придется
    Ответ написан
  • Какие есть особенности при переносе серверной стойки в гараж?

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

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

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

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

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

    @rPman
    10-30% производительности, некоторые синтетические тесты совсем плохо, и почти полное отсутствие поддержки 3д видео ускорителя. С оговорками браузеры и декодирование видео (больше будет тратить ресурсов и энергии и скорее всего 4к не потянет)
    Ответ написан
    Комментировать
  • Как найти и настроить процесс, который грузит систему под 100%?

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

    Особенно больно работать на hdd, так как при случайном доступе скорость даже топовых десктопных предложений падает до 10-20мбайта/сек.

    Если железо обновить или сменить ОС на адекватную - не вариант, тогда попробуй настроить обновление системы на ночное (на hdd это будет занимать часы) и не выключать компьютер совсем.

    Так же настоятельно рекомендую на слабой машине отключить антивирусник (штатно это невозможно, ищите инструкции как это сделать через реестр) но тогда взять за правило любой новый документ или тем более приложение проверять на вирусы (тем более это пара кликов мышки), а так же запускать полное сканирование компьютера так же по ночам. Это потребует повысить свою дисциплинированность, но зато станет понятно, что антивириусник это способ заплатить мощностью машины но остаться разгильдяем.
    spoiler
    по пути реестра HKEY_CLASSES_ROOT\*\shell добавить или открыть существующий раздел с именем как оно будет выглядеть в меню проводника, в нем еще раздел command в котором параметр по умолчанию как то так:
    "%ProgramFiles%\Windows Defender\MpCmdRun.exe" -Scan -ScanType 3 -File "%1"
    Ответ написан
    2 комментария
  • Можно ли реализовать поиск и компоновку фото через нейросети, скрипт?

    @rPman
    Поиск фото в Google Images, например известного человека по имени, фамилии (или чего-то другого) /// то что руками делается
    нет.

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

    @rPman
    Скорее всего выбранный инструмент подходит для задачи слабо. У llama3 выполнение инструкций на уровне 60%-70% , т.е. треть данных она будет пропускать или ещё хуже, выдумывать.

    У llama3-70b (именно ее качество такое высокое, у 8b оно заметно ниже) есть ещё беда, она может ответ дать в случайном виде, не машиночитаемом, хоть и вернвм, а значит для чтения потребуется городить многоуровневую систему из того же ИИ и ручного распознавания.

    Скорее всего твоя задача лучше решается предварительным анализом классическими алгоритмами.

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

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

    Подбери такие пикселы, чтобы их комбинация белая/не белая была уникальной для каждого случая... цвет пиксела бери 'на интервале'

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

    p.s. вот если бы вместо белого цвета использовался постоянно меняющийся, было бы сложнее, но все равно решаемо, просто больше пикселов брать и сравнивать цвет с ними
    Ответ написан