Задать вопрос
  • Как можно получать оповещения при заходе на компьютер по RDP?

    @rPman
    В task scheduler (планировщик задач) есть условие - авторизация (вход) пользователя, на него можно повесить запуск своей программы (если тебе надо запрос по http отправить, тем же повершелом или любой другой утилитой, хоть тот же curl)
    Ответ написан
    Комментировать
  • Где взять самые дешевые сервера VPS (Не Россия)?

    @rPman
    lowendstock.com
    Ответ написан
    Комментировать
  • Как скрыть адрес вызываемой функции в C++?

    @rPman
    В коде, указанном в вопросе написана белиберда
    В конструкторе предлагаешь сделать присваивание
    vProtect = Protect;
    глобальной переменной vProtect имя класса Protect (потому что у тебя Protect и класс и переменная типа cProtect, (то что компилятор тебе это позволил уже бардак), если переименовать cProtect мембер Protect в protect (как рекомендует большинство code styling - имена классов с большой буквы, имена переменных - с маленькой, чтобы не запутаться), а еще тип vProtect у тебя - указатель, а Protect - нет, если будут оба указатели то само собой все будет собираться, но все равно смысла это иметь не будет.
    -----------------------

    Теперь про твой вопрос в заголовке, почти ничего не имеющий общего с текстом вопроса:
    Как скрыть адрес вызываемой функции в C++?
    в контексте обфускации, подразумевается что по декомпилированному исходному коду должно быть не ясно, какой именно метод будет вызываться (т.е. для анализа требуется отладка, что сложнее/дороже), значит хранить адреса методов нужно в каких то переменных, например массивах, а выбор следующего вызываемого метода делать на основе каких то вычислений по коду.

    В c++ для этого реализован класс std::function, пример использования для вызова именно метода класса (для простоты пример без аргументов но с аргументами все то же самое, надеюсь ты понимаешь, что у тебя должны быть одинаковые аргументы и типы во всех методах, или должны быть группы для разных типов, но чем больше групп тем проще анализ кода, иначе тупо по типам и количеству аргументов все можно будет понять)
    // определяем класс
    class MyClass
    {
      public:
      void myFunA(){std::cout<<"A";};
      void myFunB(){std::cout<<"B";};
    };

    однократно где то инициализируешь массив адресов функций (никто не мешает по коду это перемешивать)
    std::function<void(MyClass*)> functions[]={&MyClass::myFunA,&MyClass::myFunB};

    вызов метода по номеру x
    MyClass obj;
    functions[x](&obj);
    Ответ написан
    3 комментария
  • Как сделать, что бы Chat GPT взял два разных сюжетных отрывка и с помощью их сделал общее описание сюжета, сюжетную завязку или что-то подобное?

    @rPman
    Заполни этим потоком сознание chatgpt, добавив в конце что ты хочешь чтобы он с этим сделал.

    Создание промптов к современным ИИ (а они вполне себе близкие по идеологии, что dall-e/stable diffusion что chatgpt) - целое искусство, и не удивлюсь что скоро появятся учебники по нему, в два слова так не объяснишь, настоятельно рекомендую полистать существующие статьи и провести самостоятельные эксперименты, по больше, появится смутное понимание на интуитивном уровне как это работает.
    Ответ написан
  • Как изменить пути LXC?

    @rPman
    попробуй заменить этот каталог на символическую ссылку на нужный тебе
    в подавляющем большинстве случаев это работает прозрачно
    Ответ написан
    2 комментария
  • Как встроить антивирусный движок в python?

    @rPman
    Полагаю в мире есть только один открытый антивирусный движок с условно свободными базами и обновлениями - clamav, вот его и интегрируй, либо через библиотеку libclamav либо вызывай утилиту командной строки

    p.s. альтернатива (лучше но не бесплатно, там сразу десятки антивирусов) - использовать облачные решения от virustotal, у них есть api который позволяет по хешам файлов быстро выдавать ответ (ну и заливать неизвестные)
    Ответ написан
    Комментировать
  • Существует ли приватный браузер?

    @rPman
    Воспользуйся инструментами ОС, позволяющие разграничивать доступ к информации как на основе прав доступа так и с использованием шифрования.

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

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

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

    Но грамотная организация работы может сделать такую кражу очень дорогой.
    Ответ написан
    Комментировать
  • Как парсить число в дату в JS?

    @rPman
    Date.parse
    returns the number of milliseconds since January 1, 1970, 00:00:00 UTC


    new Date(value)
    An integer value representing the number of milliseconds since January 1, 1970, 00:00:00 UTC
    Ответ написан
    Комментировать
  • Как правильно организовать защиту одной сети от другой?

    @rPman
    Два фаервола - устройства (роутеры например) с каждой стороны провайдеров, определяющие правила доступа к ресурсам и объединенные в одну сеть меду собой
    Ответ написан
    Комментировать
  • Как написать свой компилятор?

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

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

    Есть еще оптимизация кода, скорее всего именно это определяет объем и сложность задачи, так как без нее это уже не так сложно.

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

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

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

    И в догонку, в мире уже столько наворотили языков что разрабатывать и поддерживать под каждый оптимальный компилятор становится сложно, что в мире придумали llvm - набор правил, стандартов, библиотек и утилит, включая байткод виртуальной машины и трансляторы на все архитектуры... к примеру opencl использует llvm как основу
    Ответ написан
    1 комментарий
  • Можно ли ограничить доступ к ssh через разрешенный ip таким образом, чтобы эти ограничения не распространялись на sftp?

    @rPman
    Можно настроить шел для соответствующего пользователя nologin, как альтернатива, я помню что в настройкахssh можно прямо сказать что пользователю доступен только sftp
    Ответ написан
    Комментировать
  • Подойдёт ли мини-ПК на Arduino/Raspberry pi для обучения программированию?

    @rPman
    Да, с некоторыми оговорками по тому, чего именно собираешься программировать.

    И настоятельно рекомендую не использовать малинку как основной компьютер, дорого медленно глупо. Основное место им - компактные и энергоэффективные компьютеры

    Если желаешь найти максимально дешевое железо и при этом что то программировать, настоятельно рекомендую собрать машину x86 на базе mitx материнских плат со встроенными процессорами от intel серии N, можно на их базе найти готовые 'железки' (коробка) от 10т.р.
    например на базе N5105 от 10.5т.р. (полистай там опции есть)

    Если собирать самому, настоятельно рекомендую открыть каталог твоего магазина и выбрать материнки mitx + встроенный процессор, пропуская AMD (я люблю эту компанию но встраиваемые решения от них отвратительны) и совсем уж старые версии, старее 2016г, выбирая минимальную ram по цене и любой ssd диск (если linux можно даже с флешки потерпеть какое то время, но это экономия 'на спичках', сэкономишь тысячу, потратишь нервов на сто)

    Само собой монитор клавиатура и мышка тебе нужны, но все современные (последние лет 20) телевизоры позволяют подключать к себе компьютер, так что на этом тоже можно сэкономить, но как очень временное решение. Так же можно найти БУ, за дешево, если к примеру маленький экран.

    p.s. если с деньгами совсем швах, то можно заранее потратить выделенные деньги на нормальный смартфон, купить usb-хаб с подключением к его разъему и настроить на нем debian-root, это по факту полноценный linux, в некоторых случаях можно добиться запуск почти любого приложения. Подключить монитор в данной ситуации можно через miracast/chromecast (телевизоры последние 5-10 лет) либо вместо usb хаба покупать докстанцию (это просто первая попавшаяся модель как пример) с поддержкой dp/hdmi (при выборе смартфона проверять поддержку подключения, таких мало).

    upd. p.p.s. в продолжение темы рабочего места из смартфона
    так как за работой не всегда проводится много времени, можно воспользоваться облачными решениями, найти любого провайдера с почасовой оплатой и поднимать там машину, работая на ней удаленно, к примеру селектел (дорогой) позволяет за 5р сутки за ip address + ~5р в час за 2cpu8ram10g-ssd + копейки на бакап, поднимать и выключать машину по требованию.
    Ответ написан
    2 комментария
  • Как узнать размер незаполненного массива в c++?

    @rPman
    для массивов изменяемого размера используй std::vector (а так же для разнообразия std::deque, std::list, а если к примеру значения уникальные то std::map а вообще контейнеров списков в c++ много)

    это примерно в 2-3 раза медленнее и кушает память, бонусом будет контроль выхода за границы.

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

    @rPman
    Если вам хватало экселя, то не надо никаких 'приложений'.
    На планшете браузер, в нем любое облачное решение типа google forms (или тот же яндекс).

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

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

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

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

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

    @rPman
    Важно что ты будешь делать с этими видеоускорителями внутри виртуалок. Играть бессмысленно. Вычисления гонять - глупо. Очень очень мало задач, которые бы требовали одновременно несколько видеоускорителей в одной машине и не могли бы сравнительно эффективно работать на нескольких.

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

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

    Не экономь на рейзерах. Не экономь на охлаждении (даже о воде). Задумайся о 10G сетях, если тебе нужно считать, да тут материнки пошли с 2.5Gbit, уже приятно.
    Ответ написан
    2 комментария
  • Как вытащить аудио с сайта?

    @rPman
    Этот сайт использует встроенный в браузер (который скорее всего использует штатный API операционной системы) синтезатор речи, разные ОС и браузеры выдают разный результат. Это видно по коду сайта (2 клика в инспекторе браузера, потом поиск по имени функиции).

    https://developer.mozilla.org/en-US/docs/Web/API/S...

    Если тебе нужен не обязательно этот синтезатор, воспользуйся инструментами своей ОС, для windows это SAPI, очень удобный инструмент, есть миллион готовых утилит и прочее прочее. гуглить к примеру command line SAPI (первая же статья гуглится, однострочники от powershell до visual basic script), так же куча биндингов для языков типа питон, в т.ч. кроссплатформенных, в общем уточни с чем ты можешь работать, поможем погуглить.
    Ответ написан
  • Какие реализации DNS и CA в блокчейне можно использовать в i2p?

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

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

    p.s. гуглятся много проектов, хз как они реально используются
    Ответ написан
  • Как подсчитывать на видео проходящих людей по головам?

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

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

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

    p.s. после того как ты на все это портатишь от нескольких сотен тысяч рублей до миллионов, к тебе подойдет такой же как ты сейчас и скажет, а дай мне готовые веса твоей нейронки... куда ты его вежливо пошлешь?
    Ответ написан
    1 комментарий
  • Какая есть бесплатная программа для 3D с поддержкой скриптов?

    @rPman
    есть обратная сторона 3d-моделирования, когда у тебя есть только скрипты - это OpenSCAD
    p.s. в мире 3d моделирования бесплатным остался только блендер, к сожалению
    p.p.s. в чем проблема пользоваться древней версией sketchup если она устраивала?
    Ответ написан
    Комментировать