Задать вопрос
  • Вывести вместо пробелов введенной строки его ASCII-код?

    @res2001
    Developer, ex-admin
    Просто преобразуйте символ в int и выводите.
    char a = ' ';
    std::cout << "ASCII code: " << static_cast<int>(a) << std::endl;
    Ответ написан
    1 комментарий
  • Как комбинировать несколько значений из одного enum?

    @res2001
    Developer, ex-admin
    Битовые операции можно использовать только если ваш enum состоит из значений равных степеням двойки: 1, 2, 4, 8, ...
    Если у вас произвольные значения в enum (1, 2, 3, 105, 888, ...) то битовые операции применять нельзя.
    Если нужен какой-то универсальный вариант - сделайте массив значений.
    Ответ написан
    Комментировать
  • Слежение за комплектующими компов в корп среде. Какие инструменты есть?

    @res2001
    Developer, ex-admin
    Есть софтина от 10-Strike "Инвентаризация Компьютеров".
    Ее преимущество в том, что для инвентаризации она использует WMI, т.е. никаких агентов на клиентские ПК ставить не нужно. Хотя и агент то же есть. Программа не бесплатная, но стоит не много. В свое время брал ее в контору и использовал.
    Большинство конкурирующих продуктов для инвентаризации требуют установки агента.
    Ответ написан
    2 комментария
  • Как настроить маршрутизацию клиентов из LAN через VPN, а самого устройства через провайдера?

    @res2001
    Developer, ex-admin
    Вам просто нужно на малинке добавить статический маршрут до вашего DNS провайдера, куда ходит AdGuard. Маршрут этот должен быть через DNS вашего оператора связи (или что там у вас сейчас в качестве шлюза по умолчанию без поднятого ВПН).
    Никаких сложных телодвижений с настройкой фаервола не требуется.
    Ответ написан
  • Как можно оптимизировать код?

    @res2001
    Developer, ex-admin
    Может быть, если конвертировать число в строку и проверять строку на палиндром, будет быстрее. Не уверен, надо проверять. Только не используйте std::string, а используйте стандартный сишный массив символов.
    Ответ написан
    Комментировать
  • Вывод без использования iostream?

    @res2001
    Developer, ex-admin
    std - это внешняя библиотека. Хоть она и "стандартная", но не является неотъемлемой частью языка. Например, можно писать программу, не используя стандартную библиотеку - довольно забавное занятие. Попробуйте вывести "Hello world" или выделить буфер в динамической памяти без std .

    Поэтому необходимы почти все стандартные действия для подключения дополнительных библиотек:
    1. Включение заголовочных файлов - первое из этих действий.
    2. Второе действие - линковка с библиотекой исполняемого файла программы - выполняется по умолчанию большинством компиляторов. Наоборот для отключения линковки с std нужно указывать дополнительные ключи. Для других библиотек этот пункт нужно выполнять разработчику явно (указывать необходимые опции компилятору).

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

    @res2001
    Developer, ex-admin
    Шифровать данные и трафик (канал) вместе нет особого смысла - двойное шифрование сильно безопасности не прибавит. Достаточно будет реализовать один из вариантов шифрования.
    Если сервер "безопасный", т.е. он находится в надежном месте, к нему нет доступа у недоверенных людей, то шифровать данные нет смысла. Используйте ВПН для доступа серверу - весь трафик, передаваемый по ВПН, будет шифрованным. Данные не ограничиваются только файлами - будет шифроваться любой трафик передаваемый по ВПН. Шифрование будет происходить автоматически, пользователю нужно будет только установить ВПН соединение.
    Если сервер не безопасный (например VPS в облаке), то есть смысл шифровать данные, канал при этом может быть открытый. Для шифрования файлов можно использовать что угодно, например архиватор с поддержкой стойкого шифрования, или тот же PGP и т.п. В этом случае от пользователя потребуются дополнительные действия по шифрованию/расшифрованию файлов. А так же нужно организовать и поддерживать инфраструктуру открытых ключей (PKI) для того что бы клиенты могли генерировать ключи.
    Ответ написан
  • Как конвертировать socks5 в openvpn?

    @res2001
    Developer, ex-admin
    Абстрагируясь от текста (т.к. мало поясняет схему и смысл) и предполагая, что клиент будет на смарте с openvpn, то схему можно детализировать так:
    Смартфон с openvpn клиентом -> что-то с openvpn сервером + socks5 -> интернет
    Таким образом на клиентском смарте поднимаем соединение openvpn, далее в браузере (или что там у вас ходит через socks5) прописываем адрес прокси как внутренний ВПН адрес openvpn сервера. Работаем.
    Ответ написан
  • Как рекурсивно конвертировать файлы во всех папках и подпапках?

    @res2001
    Developer, ex-admin
    По умолчанию никак не выполнить. Команды find нет в винде - это чисто никсовая команда.
    Но можно поставить какой-нибудь портированный набор линуксовых утилит (например msys2 или что-то другое) и из-под него запустить эту команду.
    В целом это не сложно переписать для cmd:
    @echo off
    for /f "tokens=* delims=" %%a in ('dir /b /s *.webm') do ffmpeg -i "%%a" -vn -ab 128k -ar 44100 -y "%%~dpna.mp3"

    Сохраните код в батник в каталоге с файлами и запустите.
    ffmpeg должен быть доступен для запуска из командной строки, если не доступен - то нужно прописать полный путь до него.
    Код не тестировал.
    Ответ написан
    7 комментариев
  • Как можно сделать подобное?

    @res2001
    Developer, ex-admin
    Создайте в локальном репозитории папку, положите туда то что надо, потом:
    git add <имя папки>
    git commit ...
    git push
    Ответ написан
    Комментировать
  • Как в .bat файле правильно вызвать другой bat и передать переменную?

    @res2001
    Developer, ex-admin
    На сколько понял вся проблема у вас - обработать вывод psexec?
    Для этого есть конструкция for /f
    Например:
    for /f "tokens=* delims=" %%a in ('psexec ... ') do ( 
      echo %%a
    )

    Так же можно перенаправить вывод psexec в файл, а затем в for /f уже читать файл.
    Для справки: for /?
    Ответ написан
    Комментировать
  • Как обновить Python 3.5.3 до последней версии?

    @res2001
    Developer, ex-admin
    Это последняя версия питона в репах дебиана?
    Если да, то найдите стороннюю репу со свежим питоном и добавьте ее в систему.
    Если нет - обновите сам дебиан
    sudo apt update & sudo apt upgrade
    Ответ написан
  • Указатель или Индекс элемента?

    @res2001
    Developer, ex-admin
    имею ввиду, зачем делают так *p+1 для доступа к следующиму элементу, а не p[1]?

    Вообще то ничего общего между приведенными операциями нет (смотрите приоритет операций):
    *p+1 == (*p) + 1
    p[1] == *(p+1)


    Но вопрос в целом понятен, не взирая на ошибку в примере.
    Надо смотреть на контекст. Часто бывает, что код не ограничивается одноразовым применением p[1], а например есть целая серия обращений к p[1], в этом случае будет экономия на операциях, если вы сначала вычислите адрес p[1], а в дальнейшем будете использовать простое разыменование этого адреса. Будет ли реально выигрыш во времени исполнения зависит от компилятора, в целом думаю, современные компиляторы в состоянии сами сделать подобную оптимизацию.
    Ответ написан
    Комментировать
  • Qt+MinGW x86: как отладить вылет в release-версии?

    @res2001
    Developer, ex-admin
    Соберите release версию с отладочной информацией, запустите под отладчиком, при вылете отладчик активизируется в месте появления исключительной ситуации, сможете исследовать состояние программы.
    Ответ написан
  • Почему strcmp неправильно сравнивает кириллицу?

    @res2001
    Developer, ex-admin
    Все просто (сложно) - кодировка введенных символов не совпадает с кодировкой исходников программы.
    Вы видимо пишите консольную программу под виндой - тут это типичная проблема для новичков, т.к. в русской винде в консоли возможны 2 стандартные кодировки cp1251 и cp866, причем по умолчанию используется cp866 (по умолчанию - это когда вы просто запустите cmd.exe). Проверить текущую установленную кодировку консоли из самой консоли можно командой chcp, ею же можно и изменить кодировку.
    Кодировка исходников может быть вооще какой угодно, кроме вас ее никто не знает.

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

    Нормальный подход в этом случае:
    1. писать исходники в UTF8,
    2. узнать текущую кодировку консоли,
    3. перед выводом любого текста перекодировать текст из UTF8 в кодировку консоли,
    4. при вводе текста с консоли перекодировать из кодировки консоли в UTF8, и только после этого с текстом можно совершать какие-то действия, например strcmp().
    5. в коде для хранения строк использовать wchar_t и wstring, а не char и string.
    Ответ написан
    1 комментарий
  • Какие паттерны использовать для игровых ботов?

    @res2001
    Developer, ex-admin
    Массив/хэш таблица с функциями реализующими ветки switch, по переменной выбираете из массива/хэша нужную функцию и вызываете ее. Весь switch расползется по разным функциям.
    Не силен в JS, поэтому без кода.
    Ответ написан
  • Стоит ли это заучивать?

    @res2001
    Developer, ex-admin
    Что и Фурье выучил? А префиксные и суффиксные деревья?
    Обычно заучивать вообще никогда и ничего не нужно - нужно понимание.
    Заучивать нужно в том случае, если использовать нужно уже сейчас, а времени на доскональное изучение мало, или если теория, лежащая в реализации алгоритма, это целая наука, владение которой для ваших задач не нужно.
    Ответ написан
    1 комментарий
  • Можно ли подключить к одному iSCSI несколько серверов потребителей?

    @res2001
    Developer, ex-admin
    Подключить можно. Но файловая система на общем томе должна быть кластерной, такие ФС как раз спроектированы для подобного использования. NTFS, Ext4 и т.п. не подходят. Например VMFS от VMWare кластерная.
    Если вы подключите несколько потребителей к разделу iSCSI с обычной ФС, то достаточно быстро ФС упадет.
    Ответ написан
    2 комментария
  • Что же такое typedef class, typedef struct?

    @res2001
    Developer, ex-admin
    Все то же самое, что и для других типов.
    Эти записи идентичны:
    typedef class ca {
    ...
    } CA;


    class ca {
    ...
    };
    typedef ca CA;
    Ответ написан
    Комментировать
  • Создание папок на каждый день с помощью .bat?

    @res2001
    Developer, ex-admin
    Если упрощенно, то можно так:
    @echo off
    for /l %%a in (1,1,12) do for /l %%b in (1,1,31) do ( md %%a.%%b\wb 2>nul & md %%a.%%b\zaliv 2>nul)

    Но здесь принимается, что в каждом месяце 31 день, а так же не добавляется слева не значащий 0 для расширения номера месяца/дня до 2 символов.
    По простому расширить до двух символов можно используя неfor /l, а обычный
    for %%a in (01 02 03 04 05 ...) do
    Можно, конечно написать функцию, расширяющую строку до заданной длины нужным символом, но лень возиться. Можете погуглить по "cmd padding string", на сером форуме и ру-борде толковые ветки по батникам.

    Задать точное количество дней в месяце можно, используя заранее определенные списки дней для каждого месяца, что-нибудь типа такого:
    setlocal enabledelayedexpansion
    set "mday1=01 02 03 04 05 ..." :: в mday1 - 1 - это номер месяца (январь)
    set "mday2=01 02 03 04 05 ..."
    :: и так далее до mday12
    ...
    for %%b in (!mday%%a!) do ...

    Если не заморачиваться с расширением номеров до двух знаков, то в mdayN можно задавать просто максимальный номер дня и использовать в for /l %%b in (1,1,!mday%%a!) do
    Ответ написан
    Комментировать