Задать вопрос
  • Можно ли в Windows 10 без виртуальной машины сделать так, чтобы OpenVPN подключение распространялось бы только на конкретные программы?

    @res2001
    Если ваша определенная программа ходит на определенные адреса в интернете (и желательно, чтоб эти адреса не менялись со временем), то можно через таблицу маршрутизации завернуть конкретно эти адреса в ВПН, добавив необходимые маршруты. И все, не надо никаких дополнительных программ вообще.
    Тут конечно могут быть нюансы, не позволяющие применить такой подход, но в общем будет работать.
    Правда ходить по этим адресам через ВПН будет не только эта программа, но и другие, которым может быть то же понадобятся эти же адреса.
    Написано
  • Как из /128 адреса ipv6 самому себе присвоить /64 или даже /48?

    @res2001
    Quqas, 128 маска - это минимально возможная маска для IPv6, это P2P грубо говоря и в этой сети только 1 хост.
    Левые (придуманные) адреса не будут правильно маршрутизироваться в интернете, а следовательно не приведут к твоей сети через твоего провайдера.
    Соответственно вариантов не много:
    1. внутри сети использовать любой диапазон локальных IPv6 адресов и через NAT выводить их наружу. NAT будет заменять локальные адреса, на единственный внешний адрес.
    2. договориться с оператором: арендовать IPv6 подсеть и уже в рамках этой подсети назначать адреса хостам в своей локальной сети. Тогда можно обойтись без NAT, но это скорее всего за деньги.

    В целом все примерно так же как в IPv4. Видимо оператор тебе выдает только 1 адрес потому что это ВПН и
    это побочно и недокументированно
    .
    Написано
  • Какую библиотеку для excel c++ посоветуете?

    @res2001
    Василий Банников, Про установленный офис я писал, винда - вытекает из установленного офиса.
    На счет медленно - вопрос спорный, я не замерял. Лично я использовал для каких-то мелких задач лет 15 назад и не на С++, вполне хватало скорости. Как оно сейчас работает не в курсе, вряд ли медленнее стало.
    mingw в данном случае не помеха, т.к. интерфейс к COM объектам предоставляет ОС и он не зависит от используемого компилятора.

    В целом я не настаиваю. Просто предложил альтернативный вариант, доступный из коробки (зависимость от офиса в данном случае не считаю проблемой, т.к. ТСу нужно работать с xls файлами, а значит офис и винда у него точно есть). Все недостатки тут уже хорошо описали. Выбор за ТС.
    Написано
  • Какую библиотеку для excel c++ посоветуете?

    @res2001
    Adamos, В целом согласен, но если надо быстро закрыть какую-то задачу, то почему бы и нет.
    К тому же я не предлагал изучать технологию, пользоваться этим достаточно просто. Писать свои объекты - это совсем другое и сейчас не нужно этого делать.
    Написано
  • Какую библиотеку для excel c++ посоветуете?

    @res2001
    MS Excel/Word (и наверное и другие продукты из состава MS Office) предоставляют ActiveX объекты, которые могут быть использованы напрямую без всяких библиотек, любыми языками умеющими в ActiveX. А С++ это умеет, потому что собственно винда умеет и предоставляет соответствующие интерфейсы.
    Так что можете покопать в этом направлении.
    Для затравки можно, например, попробовать написать что-нибудь легкое с использованием Excel ActiceX объектов на скриптовых языках VBS или JS (интерпретатор есть в винде из коробки - cscript/wscript), для понимания как с ним вообще работать, потом это можно будет адаптировать на С++, если останется желание. Просто в VBS/JS работать с ActiveX объектами очень просто, в С++ будет немного сложнее.
    Этот подход, естественно, требует установленного Excel на компе.
    Технология ActiveX уже старая и подзабытая, нынче не особо модная, но это не значит, что она не работает.
    Написано
  • Чем вы пользуетесь для бекапа личных машин?

    @res2001
    Простейший батник с вызовом robocopy/xcopy внутри.
    Чтоб каждый раз не тянуть весь объем, используйте копирование с учетом атрибута "архивный" - когда файл изменяется атрибут автоматически устанавливается и xcopy/robocopy скопируют файл и сбросят атрибут (если используются соответствующие опции).
    Так же можно копируемые файлы предварительно архивировать, тот же 7z, по моему, умеет работать с атрибутом "архивный".
    Написано
  • Почему запуск процесса через CreateProcess() может очень медленно выполняться?

    @res2001
    1. Какой размер исполняемого файла запускаемого процесса? Если большой, то при загрузке могут быть тормоза. Но по идее повторный запуск уже должен быть быстрее (если файл влазит в кэш ОС)
    2. Как замеряли время? Конкретно время выполнения CreateProcess() или всего приложения?
    3. Предполагаю, что висит у вас на выполнении WaitForSingleObject() - это единственное место, где в коде происходит ожидание. Попробуйте тут поэкспериментировать, напримре, вместо INFINIT задать какое-то мелкое время или вообще не ждать.
    Похоже в коде на go, не происходит ожидание завершения дочернего процесса.
    Написано
  • В школьном вай фае заблокирован порт 9. Как обойти блокировку?

    @res2001
    azim218,
    Как я понял заблокированы все порты кроме 443

    Общий ответ: иди к админу договариваться.
    UDP/9 порт - это видимо Wake-On-LAN. Формально это, конечно discard, но на практике WOL его использует.

    Если хост получатель внутри сети - к админу.
    Если хост получатель в интернете - могут быть варианты с промежуточным ВПНом по 443 порту и через него выход на хост получатель по 9 порту.
    Написано
  • Почему я могу изменять состояние объекта хранящийся в const std::unique_ptr и const std::shared_ptr?

    @res2001
    maaGames,
    const int* p1 = ...; // константный указатель
    int* const p2 = ...; // указатель на константу

    Наоборот же.
    p1 - изменяемый указатель на константный объект,
    p2 - константный указатель на изменяемый объект

    p1 и p3 еще могут быть записаны так:
    int const * p1;
    int const * const p3;
    Написано
  • Можно ли использовать не парные Acquire/Release порядки памяти?

    @res2001
    jcmvbkbc,
    cppreference ничего не говорит про видимость, только про атомарность, т.е., что изменение происходит целиком или не происходит вообще.

    Интересная мысль :)
    В таком случае, ТС в 3 нужен ACQUIRE.

    Все таки вредно сидеть на х64, он слишком много прощает в плане использования атомарных операций.. Атомарные структуры видимо лучше отлаживать на ARM.

    Как всегда, с вами поучительно пообщаться. Спасибо!
    Написано
  • Можно ли использовать не парные Acquire/Release порядки памяти?

    @res2001
    jcmvbkbc,
    из чего это следует?

    https://en.cppreference.com/w/c/atomic/memory_orde...
    Объяснение к memory_order_relaxed
    Что здесь обозначено словом "синхронизировать"?

    Тем или иным способом сделать видимыми данные для других потоков после записи (и перед чтением). Барьеры acquire/release или seq_cst.
    Какие выводы можно сделать из такого теста, если он не показывает ощибок?

    Если ошибок нет, то, вероятно, очередь работает правильно. Гарантии, конечно, не дает, т.к. возможно ситуация при которой возникает ошибка не появилась в конкретном прогоне.
    Написано
  • Можно ли использовать не парные Acquire/Release порядки памяти?

    @res2001
    Eugene Usachev, relaxed обеспечивает только видимость изменений самой атомарной переменной в других потоках.

    В методе producer_maybe_push() нужно синхронизировать данные только после записи (new), это происходит в 4. Head и tail синхронизируются благодаря атомарным операциям. Следовательно в 3 можно использовать relaxed.

    Чтоб совсем все было понятно можно использовать relaxed везде для доступа к значениям head и tail. Но добавить "ручной" atomic_thread_fence перед чтением данных и после записи данных с соответствующим упорядочиванием acquire/release. Так вы отделите синхронизацию собственно данных от синхронизации head и tail и будет проще разобраться с тем, что происходит на каждом этапе.

    Сделайте тест и погоняйте его несколько часов с разным количеством узлов. В тесте предусмотрите проверку правильности операций - подсчитывайте количество pop/push операций, а так же считайте какие-нибудь суммы по данным и в конце теста сравнивайте количество и суммы для pop и push - они должны быть равны.
    Написано
  • Почему окружность получается отрисованной не ровно?

    @res2001
    Лесенка будет всегда при достаточном увеличении, но кое-что сделать можно:
    Использовать double для вычисления радиусов и косинусов/синусов.
    К float приводить (FPoint) только окончательно вычисленное значение, все промежуточные в double.
    Увеличить количество точек для отрисовки фигуры.
    Написано
  • Какой есть софт для общей папки (3-5 пользователей Windows в локалке)?

    @res2001
    Про пользователей уже написали. Разберитесь почему "периодически отваливается" и будет вам счастье.
    Вообще это самый надежный инструмент для локальной сети из всех тут приведенных. Им пользуются очень большие корпорации, сидящие на винде, там правда используют АД для авторизации, но сам протокол один и тот же.

    По отваливанию можете тут задать вопрос с приведением каких-то фактов, ошибок в журналах и т.п.

    Несколько советов, чтоб не отваливалось:
    1. Попробуйте подключать шару не по имени компьютера, а по IP адресу. IP адрес на компе, где расшарен диск должен быть статическим в этом случае.
    2. Если не поможет п.1. Возможно проблема в появлении в одноранговой сети двух master browser. По идее, должен быть только один комп с такой ролью (процедура выбора master browser запускается виндой автоматически и незаметна для пользователя), но в одноранговой сети микрософт бывают подобные флюктуации. Проблема давно известная. Присвоение роли master browser можно настроить руками, об этом есть статьи в интернете.
    Написано
  • Как открывать батник скрытно?

    @res2001
    utsiye, Я имел ввиду другой вариант, но так даже лучше, если у батника нет других целей.
    Написано
  • Как открывать батник скрытно?

    @res2001
    Конечно не наследуется.
    Можете так же открывать питоны через тот же vbs, поменяв командную строку.
    Можно даже немного подправить и использовать один и тот же VBS, передав команду в параметре к нему, что бы не плодить пачку по сути одинаковых vbsов.
    Написано
  • Как на VPS сервере нажать чтобы файл сохранился?

    @res2001
    Dima_E, Подобный вопрос возникает у каждого, кто случайно запускает vim, думая, что это обычный текстовый редактор в стиле Windows notepad.
    Но vim не совсем обычный текстовый редактор. Он управляется командами (как bash например), которые вводятся в его "командной строке". У него есть несколько режимов работы и т.д. и т.п. Даже запись изменений и выход из vim - это отдельные команды.
    Если хотите освоить vim стоит почитать какой-нибудь мануал и потренироваться, например тут или тут.
    Даже для простых действий (открыть/сохранить/закрыть файл) требуется знание базовых основ работы vim.
    vim - очень мощный редактор, но с порогом входа выше, чем ms word или windows notepad.
    Написано
  • Есть ли смысл в handles вместо сырых указателей для аллокации памяти в embedded устройствах?

    @res2001
    Catmengi,
    2 потока не могут одновременно блокировать handle

    Это лишнее, на мой взгляд. Это должно решать приложение. С таким подходом вы заранее объявляете все данные в куче разделяемым ресурсом, даже если они не являются такими (вышестоящее приложение однопоточное).
    Ваш мьютекс должен использоваться только для переноса памяти в другое место. Тут больше подойдет rwlock, где read блокировка будет захватываться потоками при доступе к данным, а write блокировка - дефрагментатором.
    Написано
  • Есть ли смысл в handles вместо сырых указателей для аллокации памяти в embedded устройствах?

    @res2001
    А вы планируете вытесняемую многозадачность реализовывать или кооперативную? Ядер сколько на вашей железке?
    При вытесняемой надо будет блокировать хэндл на мьютексе при попытке доступа к памяти по нему и освобождать после доступа.
    В кооперативном варианте на одном ядре этого, видимо, можно избежать. На нескольких ядрах уже начнется конкуренция.
    Написано