• Как удалить McAfee?

    @res2001
    Developer, ex-admin
    Помнится у McAfee была свободная утилита, удаляющая их продукты. Что-то типа McAfee Cleaner, точно названия не помню. Была доступна на их сайте. Пользовался иногда ею, когда использовал корпоративный McAfee.
    Ответ написан
    Комментировать
  • Где то слышал что префиксный инкремент работает быстрее чем постфиксный. Это так?

    @res2001
    Developer, ex-admin
    Не замерял скорость. И даже не смотрел в дизасемблере реализацию.
    Но предлагаю просто разложить обе операции на примитивные ассемблерные инструкции (где нет инкремента, данные хранятся в памяти, а считаются в регистрах). Примерно так будет в псевдокоде:
    int preinc(int i) {
      mov r1, [i];
      add r1, 1;
      mov [i], r1;
      return r1;
    }
    int postinc(int i) {
      mov r1, [i];
      mov r2, r1;
      add r2, 1;
      mov [i], r2;
      return r1;
    }

    Видно, что у постфиксного варианта на одну операцию больше, чем у префиксного. А так же постфиксный использует 2 регистра, тогда как префиксный 1.
    Логика работы префиксного проще и понятней. Так что используйте по умолчанию всегда префиксный. И только тогда когда действительно необходимо постфиксный.

    А теперь представьте, что операция производится не надо встроенным типом, а надо классом. В этом случае дополнительные затраты могут быть гораздо существенней.
    Ответ написан
    2 комментария
  • Работа с 127.0.0.0/8 на одном хосте?

    @res2001
    Developer, ex-admin
    Что такое модули в вашем понимании?
    Зачем нужны разные адреса на одном хосте? Вам не достаточно разных портов?

    Но в принципе, да, работать будет. Все адреса из этой подсети принадлежат локальному хосту. По крайней мере в винде так. Можете в любое время успешно пропинговать любой адрес из этой подсети (кроме широковещательного). За другие ОС не поручусь, не проверял, но, по идее, то же должно быть аналогично.
    Ответ написан
    2 комментария
  • Почему бы вместо абстрактного класса не делать обычный, но с пустыми методами?

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

    @res2001
    Developer, ex-admin
    Читайте для прояснения: https://docs.microsoft.com/en-us/windows/win32/api...
    При загрузке dll функцией LoadLibrary вызывается функция DllMain, которая может присутствовать в dll. Она же вызывается и в других случаях. Из этой функции вы уже можете вызывать другие функции внутри dll.
    Если же вам просто нужно вызвать какую-то функцию dll, например, из командной строки, без программирования, то смотрите ответ Константин Цветков
    DLL то же исполняемый файл, в том смысле, что внутри содержится исполняемый код. Но DLL отличаются от EXE и их нельзя запустить непосредственно. Нужен посредник (EXE), который прямо или косвенно будет импортировать функции DLL и вызывать их. Rundll.exe является "универсальным" посредником, но он, конечно, далеко не универсальный, его можно использовать только в простых случаях..
    Ответ написан
    Комментировать
  • В чем ошибка, если с кодом все нормально?

    @res2001
    Developer, ex-admin
    https://docs.microsoft.com/en-us/previous-versions...
    По ссылке видно, что функция URLDownloadToFileW объявлена в Urlmon.h и определена в Urlmon.dll.
    Т.к. ошибка на стадии линковки, то компиляция прошла успешно, а значит Urlmon.h так или иначе подключается в процессе компиляции. Но Urlmon.lib не добавлена в опции линковки, из-за чего и возникает ошибка.
    Ответ написан
    Комментировать
  • С++ Как замедлить выполнение цикла while?

    @res2001
    Developer, ex-admin
    Добавить внутрь цикла паузу в 1 секунду.
    Ответ написан
    Комментировать
  • Как лучше разместить в оперативной памяти массив комплексных чисел с точки зрения производительности?

    @res2001
    Developer, ex-admin
    Удобнее использовать массив структур:
    struct complex_t {
    float re, im;
    };

    Смысл тот же, что и в c[2*N], но пользоваться удобнее и читабельность кода повышается.
    Учтите, что операции над double обычно выполняются дольше, чем над float.
    Ответ написан
    Комментировать
  • Как адаптировать код Matlab в Python?

    @res2001
    Developer, ex-admin
    Подскажите, пожалуйста, что делать?

    Читать документацию по используемым функциям и операциям, искать различия и приводить python код в рабочее состояние.
    Ответ написан
    Комментировать
  • Нужен ли Ping с VirtualBox на основную ОС?

    @res2001
    Developer, ex-admin
    должен ли вообще пинговаться виндовс с центоса?

    Т.к. Cent OS (ВМ) и Винда (хост) на одной машине, то пинги между ними будут. Другое дело, что их может блокировать фаервол хоста или ВМ.
    Если вам для чего-то нужен пинг - можете заморочится этим вопросом и отрегулировать фаерволы.
    Но если оставите все как есть - то же ничего страшного не произойдет.

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

    @res2001
    Developer, ex-admin
    Вся маршрутизация зашита в логику работы стека TCP/IP. Управляется таблицей маршрутизации. За доступ в интернет отвечает в таблице маршрутизации запись о маршруте по умолчанию. Таких маршрутов может быть несколько с разными метриками (приоритетами). Используется тот маршрут у кого приоритет выше.
    Так же и таблиц маршрутизации может быть несколько - это вариант как раз для ситуации, когда есть несколько каналов в интернет и нужно сделать балансировку нагрузки или отказоустойчивость (или гибридную схему). С помощью грамотной настройки фаервола и дополнительных скриптов можно все это организовать. Это уже придется делать самому, или использовать сторонний софт/железо. Но инструменты для подобных вещей есть.

    Если интернет не доступен по заданному маршруту, то пакеты все равно будут отправляться и будут где-то пропадать. Так что ответов не будет или будет ответ с ошибкой. Соединения будут отваливаться либо по тайм-ауту, либо по ошибке.
    Ответ написан
    Комментировать
  • Почему команда не работает через make, но работает через консоль?

    @res2001
    Developer, ex-admin
    Попробуйте в путях в makefile использовать противоположные слеши (Unix style).
    Ответ написан
    Комментировать
  • Как создать с нуля ISO файл операционной системы?

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

    @res2001
    Developer, ex-admin
    У вас эта переменная уже объявлена глобальной в CopyTextToClipboard global id_num. Сделайте такое же объявление во всех необходимых местах и используйте. И объявите эту переменную явно в глобальной области видимости.
    это несколько противоречит принципам ООП

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

    @res2001
    Developer, ex-admin
    Передавайте команду в параметрах к cmd. В командной строке это выглядело бы примерно так:
    cmd.exe /C @for /f %i in ('set /a 1^^^<^^^<10') do @for %j in ("C:\Users\username\Downloads\test5\yd\*.txt") do @if %~zj leq %i del "%j"

    Обратите внимание, что к переменным цикла из командной строки надо обращаться через 1 знак процентов, а не через 2 как в батнике.
    ЗЫ: Не понял, что это вы за конструкции соорудили в set. По моему она не работает. И что она вообще должна делать я не представляю. А вы?
    Ответ написан
    3 комментария
  • Как читать из stdout другого процесса в linux api?

    @res2001
    Developer, ex-admin
    В линуксе точно так же есть именованные и не именованные каналы, API, естественно, отличается, но суть не меняется.
    Ответ написан
  • Зачем при использовании библиотеки stb_image указывают #define STB_IMAGE_IMPLEMENTATION?

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

    @res2001
    Developer, ex-admin
    В линукс обычно исполняемые файлы лежат в /bin, /sbin, /usr/bin, /usr/sbin.
    Иногда в /usr/local/bin, /usr/local/sbin.
    Еще некоторый софт ставит себя в /opt и там в собственном подкаталоге создает похожую иерархию каталогов.
    Найти программу по имени можно с помощью команды whereis <имя программы>
    Или с помощью find / -name <имя программы>
    find будет работать дольше т.к. будет сканировать все что сможет. whereis сканирует только каталоги указанные в PATH, поэтому работает гораздо быстрей.
    Ответ написан
    Комментировать
  • Как прописать роут чтобы было видно клиентов другого роутера?

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

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

    Маршрутизация по вариантам:
    1 и 2. На ведущем роутере надо прописать статический маршрут до сети ведомого роутера. На ведомом не надо ничего прописывать, т.к. он и так является членом сети ведущего и маршрут у него появится автоматически.
    3. На обоих роутерах нужно прописать маршруты до сети соседа.

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

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

    @res2001
    Developer, ex-admin
    На сколько я понимаю, нужно вывести среднюю за длительный период, по нескольким средним с более короткими периодами. Короткие периоды могут быть не равными.
    Допустим a1, a2, a3 - средние за 1, 2 и 3 период; n1, n2, n3 - количество дней в каждом из периодов.
    Тогда общую среднюю можно найти так: A = (a1*n1 + a2*n2 + a3*n3)/(n1+n2+n3)
    Ответ написан
    Комментировать