Задать вопрос
  • Как починить перерезанный гибкий прозрачный контактный шлейф?

    alsopub
    @alsopub
    1) Скорее всего замкнули дорожки
    2) 1 общий + 6 от каждой кнопки
    3) Кто знает как конкретно этот контроллер считывает нажатие кнопки, в смысле какой порог по напряжению выставлен.
    Судя по тому что режимы переключаются и есть замыкание - клей подойдет, только надо аккуратнее все сделать, то есть устранить замыкание между дорожек.
    4) Вариант разбирать прибор дальше и соединить семью проводками.
    Ответ написан
    Комментировать
  • Быстрый софт для работы с большими базами?

    gbg
    @gbg Куратор тега Windows
    Любые ответы на любые вопросы
    Загрузить в Postgres, выучить SQL.
    Ответ написан
    2 комментария
  • Как правильно использовать конструктор?

    gbg
    @gbg Куратор тега Программирование
    Любые ответы на любые вопросы
    Конструктор должен иметь одну ответственность - инициализировать ресурсы. Рисовать он не должен.

    Так что вариант два - в топку.

    Если нужно одновременно создать и нарисовать - создайте для этого статический метод, который создаст, нарисует и вернет экземпляр.
    Ответ написан
    Комментировать
  • Какой самый приватный мессенджер?

    a13xsus
    @a13xsus
    Lazy developer
    По приоритету я бы составил список так:
    Antox (Android), Antidote (iOS) - клиенты Tox https://tox.chat/clients.html
    Threema, Signal, Telegram, Whatsapp (правда здесь вы светите свой мобильный номер).
    Viber уже тоже end-to-end шифрование ввёл.
    Ответ написан
    1 комментарий
  • Как безопасно передать openvpn ключи от сервера клиенту, что будет если ключи словят?

    @ComodoHacker
    Полагаю, среди всех нагугленных мануалов вы не обошли вниманием и официальный, а именно раздел про генерацию сертификатов: https://openvpn.net/index.php/open-source/document... В конце этого раздела есть ответ на ваш первый вопрос.

    The final step in the key generation process is to copy all files to the machines which need them, taking care to copy secret files over a secure channel.

    Now wait, you may say. Shouldn't it be possible to set up the PKI without a pre-existing secure channel?

    The answer is ostensibly yes. In the example above, for the sake of brevity, we generated all private keys in the same place. With a bit more effort, we could have done this differently. For example, instead of generating the client certificate and keys on the server, we could have had the client generate its own private key locally, and then submit a Certificate Signing Request (CSR) to the key-signing machine. In turn, the key-signing machine could have processed the CSR and returned a signed certificate to the client. This could have been done without ever requiring that a secret .key file leave the hard drive of the machine on which it was generated.


    Как верно заметил res2001, для исключения перехвата по незащищенному каналу нужно передавать не приватный ключ, а запрос на сертификат. В скриптах build-key и build-key-server, входящих в поставку OpenVPN и используемых в примерах, шаги по генерации пары ключей, генерации запроса к CA и подписи сертификата объединены, но их можно разделить. Загляните внутрь скриптов и поймете.

    Что касается второго вопроса. Если в руки злоумышленника попадет клиентский сертификат с приватным ключом, то он сможет подключиться к серверу от имени клиента. Ключ для шифрования трафика генерируется свой для каждой сессии. Вашу сессию злоумышленник сможет прослушать, если перехватит ваш трафик в момент подключения и применит MitM атаку.

    Это все отностися к работе в режиме PKI. Есть еще режим работы со статическим ключом (описан здесь: https://openvpn.net/index.php/open-source/document..., там ключ один единственный и общий, передавай как хочешь. А если ключ утек - считай все пропало, можно расшифровывать любые сессии, в том числе записанные ранее.
    Ответ написан
    2 комментария
  • Личные Best Practise построения SAN?

    @Karmashkin
    как менее модный вариант: freebsd+zfs+hast.
    Ответ написан
    Комментировать
  • Личные Best Practise построения SAN?

    gbg
    @gbg Куратор тега Linux
    Любые ответы на любые вопросы
    Правила такие
    1. RAID5 - последнее дело. Статистика показывает, что вероятность выхода из строя диска во время ребилда - более 70%. Выход из строя второго диска как правило означает, что массив можно выбрасывать.
    2. Создание RAID средствами аппаратного контроллера - плохая идея. Вы таким образом создаете единую точку отказа (этот самый контроллер). Если контроллер выйдет из строя, вам придется искать ему замену (такой же точно контроллер с той же прошивкой), иначе данные из массива будет очень сложно выудить.
    3. Centos содержит придурочный NetworkManager (и systemd, но последнее еще можно пережить). А вот управление сетью через dbus - пережить сложно. Или выламывайте NetwokManager, или переходите на нормальный дистрибутив - SuSE
    4. Классика кластеростроения для виртуалок и миграции, вариант 1.

    Два сервера, на серверах массивы RAID10. Диски отдаются в мир через DRBD в режиме active-active.

    Поверх дисков работает распределенная кластерная система OCFS2.
    Управление кластером осуществляет pacemaker.

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

    DRBD - это такой сетевой RAID1. Данные во время работы реплицируются между узлами, так что остановка одного узла из пары не приводит к остановке хранилища.

    OCFS2 - это кластерная ФC, которая позволяет куче машин видеть одно блочное устройство как свою локальную ФС. В ней работает отображение файлов в память и глобальные блокировки. И самое полезное для виртуалок - есть возможность создавать reflink. Reflink - это моментально создающаяся копия файла (образа диска виртуалки). Для новой копии, OCFS2 будет только хранить отличия от первоначального файла.

    pacemaker - это менеджер кластера+балансировщик нагрузки.

    Как это все поднять?

    1. Ставите на все машины OpenSuSE 42.1
    2. Собираете RAID10 через LVM (для этого есть GUI - Yast называется)
    3. В том же YAST поднимаете DRBD
    4. Ставите пакет ha-cluster-bootstrap
    5. На одном из узлов делаете ha-cluster-init и следуете его инструкциям
    6. На остальных узлах делаете ha-cluster-join

    Это в общих чертах, задавайте вопросы.
    Ответ написан
    2 комментария
  • Осуществляем закрытие портов?

    alsopub
    @alsopub
    Firewall блокирует соединение с указанным адресом и/или портом.
    Порт при этом может оставаться открытым - ему ничего не мешает быть открытым.
    Попробуйте telnet localhost:445 без правила и с правилом.
    Что вы делали через regedit?
    Ответ написан
    2 комментария
  • Как настроить автозагрузку файла с определенными параметрами?

    @yellowmew
    Cloud infrastructure, monitoring engineer. SRE
    start /?
    Ответ написан
    Комментировать
  • Файл ответов. Как объединить вот эти два куска кода чтобы все работало?

    @Ethril
    Это кусок из работающего конфига, сделанного штатным WSIM. Находится на том же уровне вложенности, что
    <OOBE>
    ...
    </OOBE>
    ...
    <UserAccounts>
    ...
                    <LocalAccounts>
                        <LocalAccount wcm:action="add">
                            <Password>
                                <Value>...skipped...</Value>
                                <PlainText>false</PlainText>
                            </Password>
                            <Name>tempus</Name>
                            <Description>для пропуска OOBE</Description>
                            <DisplayName>tempus</DisplayName>
                            <Group>guests</Group>
                        </LocalAccount>
                    </LocalAccounts>
    ...
    </UserAccounts>
    Ответ написан
    1 комментарий
  • Чему будет равно i при таком необычном указателе?

    1028. При инкременте указателя к нему добавляется sizeof от того, на что он указывает, то есть
    i++;
    эквивалентно
    (int&)i += sizeof(uint32_t);

    По поводу скомпилировать, если задать язык как C, а не C++, то он это проглотит, так как менее строгий в плане приведения типов (целое число приводить к указателю не безопасно). Чтобы скомпилировать в C++, нужно немного подправить код.
    Ответ написан
    1 комментарий
  • Как с ПК дать интернет по кабелю на Wi-Fi роутер? Возможно ли?

    Frankenstine
    @Frankenstine
    Сисадмин
    Скорее всего вы морочите себе (и нам) голову. Воткните кабель в роутер, и настройте на нём DMZ на статический айпи для компьютера.
    Ответ написан
    3 комментария
  • Лучший вариант проверки ввода на несколько условий в C++?

    Можно немного упростить код:
    while (true) {
      cin>>x;
      if (x < 0) {
        cout<<"x должно быть положительным числом"<<endl;
      } else if (x == 0) {
        cout<<"x не должно равняться нулю"<<endl;
      } else if (x == 5) {
        cout<<"x не должно равняться пяти"<<endl;
      } else {
        break;
      }
    }
    Ответ написан
    Комментировать
  • Можно ли создать "ярлык" программы для командной строки (cmd) windows?

    @CodeKeeper
    Symfony/Magento developer
    Достаточно добавить папку с php.exe в $PATH и радоваться жизни.
    Ответ написан
    1 комментарий
  • Как запустить Винду с HDD ноутбука на PC (идет вечный рестарт при запуске)?

    Foolleren
    @Foolleren
    Компас есть, копать не люблю...
    ещё есть sysprep вот только не помню, какой параметр просто отвязывает виду от железа, а который ещё и пользователей удаляет.
    Ответ написан
    Комментировать
  • Как запустить Винду с HDD ноутбука на PC (идет вечный рестарт при запуске)?

    tsklab
    @tsklab
    Здесь отвечаю на вопросы.
    Вставьте обратно и поменяйте драйвер диска на стандартный.
    На компьютере при первом запуске отключите все остальные диски.
    Ответ написан
    2 комментария
  • Как отличить полиморфизм в языках программирования?

    @MiiNiPaa
    Вам нужно хорошую книжку. Это одно из базовых понятий и вряд ли вы изучите этот вопрос на Тостере.

    Начнём с того, что основная идея полиморфизма — одинаково работать со множеством типов.

    Типов полиморфизма много, начиная с самого простого — параметрического полиморфизма, aka перегрузка функций. В Питоне, например, можно написать print x, и получить этот икс на экране. Причём получим разный результат в зависимости от конкретного типа x. В С++ можно писать cout << x, можно писать abs(x), и выполнятся будут разные действия в зависимости от x. В С, к примеру, пришлось бы самому выбирать какую функцию вызвать: abd, fabs, labs... так как в С нет перегрузки функций.

    Динамический полиморфизм работает похожим образом: представьте себе алгоритм, который должен рассчитать общую сумму задолженности. У человека могут быть займы займы разных видов, которые считаются по-разному. Вместо того, чтобы прописывать явный алгоритм действий для каждого типа займов, алгоритм работает с абстрактным типом займов, для которого определена функция Займ.ПосчитатьДолгНаДату(Дата). Конкретный алгоритм расчёта зашит в конкретный тип-потомок Займа, алгоритм лишь спрашивает какая задолженность будет на конкретную дату, и его не колышет какой на самом деле это займ.
    Ответ написан
    1 комментарий
  • Как в mssql сделать так, что бы пользователь не мог видеть определенные базы совсем?

    mahoho
    @mahoho
    Full stack certified PHP developer.
    Очень важно понимать различие между пользователем и логином в SQL Server. Тут используется двухуровневая система аутентификации: логин (Security - Logins) используются для входа в инстанс (запущенный экземпляр БД, их может быть несколько на одной машине) сервера. Для логинов сущесвуют роли и права, связанные с администрированием и получением информации об инстансе. Пользователи (Databases - Security - Users) существуют на уровне базы данных, у них также есть свои роли и права, связанные с взаимодействием базой данных. То, что вы хотите сделать - это запретить логину видеть все базы данных, если он не сисадмин и не является владельцем какой-либо базы. Лучше всего это сделать при помощи создания серверной роли и включения в нее логина:
    create server role blind_users;
    
    deny view any database to blind_users;
    
    alter server role blind_users add member login_name;
    Ответ написан
    2 комментария