Задать вопрос
  • Возможно ли бэкапить виртуалки изнутри?

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

    @res2001
    Developer, ex-admin
    Если вы пользуетесь штатной печатью ОС, то принтер придется установить. ОС не умеет печатать на неизвестный ей принтер. Принтер можно установить, распечатать и удалить.

    Т.к. принтер сетевой, то никто не мешает реализовать печать на низком уровне. Но вряд ли вы захотите это делать - это долго, нафиг не нужно и придется самому поддерживать все разные имеющиеся устройства. Из готовых похожих решений - спулер ОС :)
    Ответ написан
  • Почему массив malloc не наполняется?

    @res2001
    Developer, ex-admin
    1.rand() генерирует только положительные числа: https://en.cppreference.com/w/c/numeric/random/rand
    2.Даже если бы с п.1 было бы все нормально, то после того как выделена память для mas_otr ее нужно обнулить, т.к. malloc никакой инициализации памяти не производит и там будет содержаться мусор. А вы заполняете mas_otr только выборочно. Так что итоговый результат очевидно то же будет не тем, что вы ожидаете.
    3.нужно в правильных местах в вывести переносы строк, а то сейчас у вас все будет лепиться в одну строку.
    4.В sort() вместо массива вы передаете целое число.
    Ответ написан
  • Как считать из файла двоичные числа и перевести их в десятичные?

    @res2001
    Developer, ex-admin
    В простейшем случае примерно так же как и с текстовым файлом.
    Кроме того что:
    1. Окрывать файл нужно в двоичном режиме (по умолчанию в текстовом)
    2. Читать нужно сразу в массив соответствующего типа и размерности (подразумевается, что вы знаете какой тип двоичных данных в файле, а иначе нет смысла его читать). Читать по одному элементу то же не возбраняется.

    Если файл записан на машине с одной и той же архитектурой, то при таком подходе проблем не будет.
    Если же архитектуры (процессоры) разные, то может вмешаться порядок байт (big/little endian). Это нужно учитывать.
    Так же, если вы читаете файл в котором записаны данные разных типов (например какая-то структура), то может возникнуть проблема с выравниванием полей в структуре. https://stackoverflow.com/questions/4306186/struct...
    Думаю, что к вашей текущей задаче эти нюансы не относятся. Но знать, что двоичная чтение/запись это несколько сложнее аналогичных операций с текстом стоит.
    Ответ написан
  • Сменил порт у openvpn, и вылетела ошибка, в чем дело?

    @res2001
    Developer, ex-admin
    Возможно это связано с разными значениями mtu на клиенте и сервере.
    Добавьте опцию mtu-test в конфиг на сервере и клиенте, тогда при подключении openvpn будет тестировать mtu и выведет в лог информацию о реальном мту, его можно будет прописать в опции tun-mtu
    https://community.openvpn.net/openvpn/wiki/Openvpn...
    https://forums.openvpn.net/viewtopic.php?t=25039
    Ответ написан
    Комментировать
  • Как изменить кодировку в консоли windows для отображения кириллицы?

    @res2001
    Developer, ex-admin
    Что cmd в винде уже нормально переносит UTF8?
    Помнится в Вин7 и ниже его корежило если выставить UTF8. Правда я с тех пор этой темой не интересовался.

    По вопросу - посмотрите эти ссылки:
    https://otvet.mail.ru/question/174325990
    https://superuser.com/questions/269818/change-defa...

    Но я бы просто использовал chcp. Можете сделать себе ярлык на раб.столе на cmd.exe, чтоб там при запуске срабатывала эта команда.
    Ответ написан
    Комментировать
  • Где можно купить "белый" IPv4 адрес "навсегда"?

    @res2001
    Developer, ex-admin
    Вот тут схема выдачи адресов в инете.
    У провов адреса могут теоретически забирать, сами провы могут умирать, так что нет ничего вечного на земле.
    Операторы VPS то же не вечны - разорится контора и абзац.

    Пусть девайс отправляет данные по доменному имени.
    Или пусть девайс сообщает кому следует (по доменному имени) свой актуальный IP.
    Или девайс может с помощью DDNS привязывать свой IP к доменному имени.
    Я бы выбрал первый вариант.
    Вопрос с доменным именем решить гораздо проще, чем с IP адресами - положил 100500 денег на счет и лет на 10 доменное имя твое.

    Вот вы сейчас выключите девайс, он например настроен на IPv4, включите через 10 лет, а там уже все на IPv6 и провы уже забыли, что когда то был IPv4. А если включите через 20 лет, то там уже и IPv10 подоспеет. Да по оптике уже никто не подключает, а использует квантовую передачу данных и там вообще нет никаких IP, а компьютеры отзываются по имени отчеству. Да и вообще железо уже тупо может не завестись.
    Ответ написан
    5 комментариев
  • Как подключить стороннюю библиотеку к проекту Qt через CMake?

    @res2001
    Developer, ex-admin
    Конечно же в target_link_libraries, просто добавьте имя библиотеки в конце через пробел
    Но обычно используют find_package/find_library/pkg_check_modules для того, что бы предварительно определить установлена ли библиотека в системе. А в target_link_libraries добавляют переменные, которые инициализируются этими функциями.
    Смотрите: https://cmake.org/cmake/help/latest/genindex.html
    Ответ написан
    7 комментариев
  • Почему ругается Visual Studio c++?

    @res2001
    Developer, ex-admin
    Это не странно - разные компиляторы ведут себя по разному. К тому же степень ругани компилятора очень сильно зависит от параметров компиляции.

    Вот что по поводу этой ошибки пишут в микрософте.
    Описание то же не особо помогает.
    Попробуй сделать n статической. Или определи как define.
    Ответ написан
    3 комментария
  • Как организовать рабочее окружение разработки с использованием домашнего сервера?

    @res2001
    Developer, ex-admin
    ФТП в топку.
    Дайте в доступ по сети папки с файлами проектов с помощью NFS. На ноуте шару подключите.
    До кучи наверное есть смысл поднять VNC и ssh на сервере, чтоб можно было получить удаленный доступ к консоли и GUI.
    Ответ написан
    Комментировать
  • Как понять, что ты уже умеешь программировать?

    @res2001
    Developer, ex-admin
    Если вас возьмут на работу программистом, значит вы уже что-то умеете.
    Но это не означает, что можно останавливаться в развитии.

    Сделайте резюме на hh и ищите работу, разместите на github портфолио, ссылку дайте в резюме. Откликайтесь на интересные вакансии.
    Проходите собеседования, делайте тесты. Со временем поймете чего вы стоите и что нужно подтягивать.
    Не стоит сильно реагировать на неудачные собеседования. Неудачное собеседование дает вам направление дальнейшего развития. Но не стоит и распылятся, если у вас уже есть интересующее вас направление. Возможно у данного работодателя сильно специфические хотелки, которые другим нафиг не нужны.
    Ответ написан
    Комментировать
  • Как получить всю информацию об установленном приложении?

    @res2001
    Developer, ex-admin
    В sysinternals suite (предоставляется микрософт бесплатно) есть ПО позволяющее мониторить и реестр и файловую систему. Начиная с этапа установки приложения стартуете мониторинг, затем при типичной работе приложения. Объединяете информацию мониторинга и получаете искомое.
    Это можно провернуть, если приложение это какая-нибудь маленькая утилита.
    Но если приложение "среднее" или еще больше, то этот процесс будет очень трудозатратен. Мониторниг реестра обычно выдает сотни (если не тысячи) обращений к реестру, с файловой системой так же.

    Обычно бывает проще в ручную прошерстить реестр (HKLM и HKCU) по ключевым словам приложения, проверить Program Files, профиль Public (All Users) и профиль пользователя.
    Ответ написан
    Комментировать
  • При поднятии openvpn сервера в Микротике там есть Add default route для чего это используется, чтобы подключенные vpn клиенты имели вход в интернет?

    @res2001
    Developer, ex-admin
    При включении этой опции весь трафик с клиентов пойдет через ВПН сервер, в т.ч. и интернет.
    Если вы не планируете раздавать интернет через ВПН, то нет смысла включать ее.

    Еще один момент. При включенной этой опции, если ВПН сервер находится не в той же сети, что и клиент, то ВПН может отвалится сразу после подключения. Чтоб ВПН не отваливался, маршрут до ВПН сервера надо прописать на клиентах статически через шлюз по умолчанию когда ВПН не подключен.
    Ответ написан
  • Как создать свой аналог cout на голом C++?

    @res2001
    Developer, ex-admin
    Вы хотите именно самостоятельно реализовать или задача не использовать стандартную библиотеку?
    Если самостоятельно, то для начала изучите https://en.cppreference.com/w/cpp/header/cstdarg
    и все что связано с функциями с переменным числом аргументов.

    Если второе то, это значит, что вы должны использовать функции предоставляемые ОС. Для Windows это WinAPI, для Линукс - POSIX.
    В винде уже есть готовые варианты - функции семейства StringCbPrintf.
    В Линукс ... ну тут все равно от стандартной библиотеки ни куда не уйти :), т.к. это часть ОС и POSIX.
    Ответ написан
    7 комментариев
  • Как высыпаться за 6 часов?

    @res2001
    Developer, ex-admin
    Не гонитесь все успеть. Выделяйте самое важное и успевайте только его.
    Не убивайте время в соц.сетях.
    Даже когда вы типа "отдыхаете" смотря ютуб или слушая музыку (сюда же можно и компьютерные игры включить и еще что-то) - это все мешает мозгу переваривать то что вы вложили в него за день и продуктивность в итоге падает. Лучше всего для отдыха прогулки/пробежки на свежем воздухе (без наушников) и общение с другзьями.
    Спать надо столько сколько надо организму.
    Так же рекомендую ложиться примерно в одно и то же время и вставать по будильнику. В выходные не спать до упора, а прибавить к будням 1-2 часа и хватит. В таком режиме через некоторое время организм адаптируется и уже сам будет вас укладывать и будить в нужное время.
    Ответ написан
    Комментировать
  • Как найти где установлена программа?

    @res2001
    Developer, ex-admin
    Запускаете программу, запускаете менеджер задач, на закладке Detail добавляете столбец для отображения "command line", обычно там указан полный путь к программе. Если полный путь не указан, значит программа лежит где-то в путях перечисленных в переменной окружения PATH.
    Ответ написан
    Комментировать
  • Как подключиться к нужному репозиторию github?

    @res2001
    Developer, ex-admin
    Клонируйте в другой каталог, скопируйте туда измененные файлы и сделайте коммит.
    Ответ написан
    Комментировать
  • Как правильней сделать это на си?

    @res2001
    Developer, ex-admin
    Правильно пишут. Вас не смущает два void* в callback?
    У вас функция принимает 2 параметра на что угодно, хреновая идея. Тут и будут ошибаться.
    На сколько я могу судить data - это пользовательские данные, тут void* без вариантов, но можно обозвать например userdata и описать, что userdata в калбэке и в init - это одно и то же и библиотека больше никак не использует этот указатель.
    На мой взгляд event вполне можно описать какой-то заранее определенной структурой. Или хотя бы у этой структуры должен быть единый заголовок (включающий тип события и возможно что-то еще общее для всех событий). Посмотрите, например, на адресные структуры в сокетах: struct sockaddr, struct sockadd_in, struc sockaddr_in6. Это не самая удачная реализация, на мой взгляд, но достаточно распространенная. Гораздо лучше реализованы объекты в питоне (имею ввиду исходный код самого питона на Си), принцип тот же, но реализация более понятна.
    callback может принимать указатель на заголовок структуры, затем его можно будет преобразовать в структуру для конкретного типа события. Хорошо бы для этого предусмотреть в реализации набор макросов.
    Общий посыл таков: нужно как можно реже использовать void*, можно его использовать только тогда когда без этого ну вообще никак не обойтись (а если обойтись, то это будет ну очень "дорого"). К сожалению в Си время от времени приходится использовать void*. В т.ч. для решения этой проблемы в плюсах придумали шаблоны.

    Я так и не понял, что означает type.
    По моему идентифицировать издателей/подписчиков лучше всего по имени. И пусть имя они сами себе выбирают.

    Где набор функций для добавления/удаления подписчиков?
    Ответ написан
  • Распределение ipv6 клиентам openvpn. Как это реализовать?

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

    @res2001
    Developer, ex-admin
    В параметре -R можно еще указать listen-IP, возможно это вам поможет. Смотрите встроенную справку:
    plink --help
    Ответ написан
    3 комментария