Задать вопрос
  • Как расширить файловую систему в raid массиве?

    leahch
    @leahch Куратор тега Linux
    3D специалист. Dолго, Dорого, Dерьмово.
    Вы добавили в зеркальный RAID1 еще дисков - в результате получили кучу копий данных, вместо увеличения объема.
    Вам нужно делать массив RAID10. Другими словами: конвертировать в RAID0 и уже существующий превратить в RAID10- https://www.berthon.eu/2017/converting-raid1-to-ra...
    Бекапы настоятельно приветствуются!
    Ответ написан
    Комментировать
  • Как сделать чтобы на сенсорный экран не реагировала мышка?

    Никак. Либо написать свой драйвер сенсорного экрана.
    Ответ написан
    Комментировать
  • Как посчитать стрит флеш без одной карты на флопе?

    1. В колоде 52 карты.
    2. При этом две карты у тебя на руках.
    3. Стрит флеш - это когда карты идут по порядку и все одной масти.
    4. Тк у нас девятки, то мы ждём, что будут такие наборы:
    - 6, 7, 8
    - 7, 8, 10
    - 8, 10, J
    - 10, J, Q
    Всего 8 благоприятных исходов

    Сколько всего возможно исходов?
    Нам нужно посчитать, сколько всего уникальных наборов по 3 карты можно получить из колоды в 50 карт.
    Операция, которая даст нам это количество название "сочетание из 50 по 3"
    И равняется оно C(50,3) = 50! / (3! * (50 -3)!)

    Делим 8 на С(50,3) и получаем примерно 0.0408%
    Ну и шанс, что последняя карта соберёт нам стрит флеш равен 4.25% (2/47)
    Ну и если самая самая последняя карта, если предыдущая не дала нам благоприятный исход - 2/46 ~ 4.3%

    Надеюсь, что нигде не ошибся.
    Ответ написан
  • Почему pn переход транзистора не уходит в короткое замыкание, ведь пластины прижаты друг к другу?

    Ocelot
    @Ocelot
    Оксид кремния тут ни при чём.
    Для начала давайте разберёмся, почему диод не проводит ток в обратном направлении, хотя p- и n- области соприкасаются. Потому что носители заряда (электроны и дырки) двигаются в разные стороны от pn-перехода, и там образуется область без носителей заряда, по сути изолятор.
    С транзистором та же картина: один из pn-переходов смещён в обратном направлении, вокруг него создаётся обеднённая область, ток не идёт. Если через базу пропускать управляющий ток, в эту область поступают электроны, проводимость восстанавливается, транзистор открывается. Это если очень упрощённо.
    Ответ написан
    4 комментария
  • Как узнать IP-адрес DNS-сервера, который использует сам провайдер?

    @AUser0
    Чем больше знаю, тем лучше понимаю, как мало знаю.
    Какие DNS-сервера ответственны за зону RU вы можете увидеть сами:
    nslookup -type=ns ru
    И будет вывод, что за зону RU ответственны a.dns.ripn.net, b.dns.ripn.net, d.dns.ripn.net, e.dns.ripn.net и f.dns.ripn.net. Именно эти сервера хранят (и отдают) информацию, какой DNS сервер ответственен за например домен второго уровня YANDEX.RU, находящийся очевидно в зоне RU.
    Спрашиваем их об этом:
    nslookup -type=ns yandex.ru a.dns.ripn.net
    Ответом будет список DNS серверов, ответственных уже за сами догадываетесь какой домен... И так далее по цепочке.
    Так можно и вашего провайдера DNS-ы узнать.
    Ответ написан
    Комментировать
  • Как виртуальные машины исполняют код и как правильно это реализовать?

    WNeZRoS
    @WNeZRoS
    Если вопрос при виртуальные машины по типу тех что используется для исполнения Java или C# кода, то инструкции в них гораздо проще. В CIL например, у большинства инструкций нет параметров, они просто берут нужные данные с конца стека. А когда параметры есть - он один: значение или токен переменной/функции.

    Можно посмотреть как C# преобразуется в инструкции виртуальной машины на sharplab.io, сопоставить и понять как оно выполняется.

    Например
    IL_0000: ldarg 1 // кладёт в стек первый аргумент
    IL_0001: ldarg 2 // кладёт в стек второй аргумент
    IL_0002: sub     // достаёт из стека два последних значения и отнимает последний от пред последнего (т.е. будет arg.2 - arg.1), результат складывается в стек
    IL_0003: brtrue.s IL_0011 // достаёт из стека значение, если оно не 0, переходит к инструкции IL_0011, если 0 исполнения идёт дальше на I_0005
    
    IL_0005: ldstr "zero" // загружает в стек строку "zero"
    IL_000a: call void System.Console::WriteLine(string) // вызывает вывод в консоль, из стека достаются N нужных значений для параметров (в данном случае 1), void функция ничего в стек не добавляет
    IL_000f: br.s IL_001b // переход (jump) к IL_001b
    
    IL_0011: ldstr "not zero" // загружает в стек строку "not zero"
    IL_0016: call void System.Console::WriteLine(string) // вызывает вывод в консоль, из стека достаётся 1 значения для параметра 
    
    IL_001b: ldstr "done" // загружает в стек строку ...
    IL_0020: call void System.Console::WriteLine(string) // ...


    Пример реализации простой виртуальной машины на основе примера выше

    (Код написан так чтобы работал, правильнее писать более безопасно и читабельнее)

    #include <stdio.h>
    
    enum Opcode {
        OP_LOAD_ARGUMENT,
        OP_LOAD_STRING,
        OP_SUBTRACT,
        OP_GOTO,
        OP_GOTO_IF_TRUE,
        OP_CALL,
        OP_RETURN
    };
    
    union Argument {
        int value;
        const void* pointer;
    };
    
    struct Instruction { 
        Opcode opcode; 
        Argument arg; 
    };
    
    void run_vm(const Instruction* instructions, const Argument* args) {
        Argument stack[16];
        
        Argument* stack_pointer = &stack[0];
        int address = 0;
    
        while(true) {
            const Instruction instruction = instructions[address];
            address++;
    
            switch(instruction.opcode) {
                case OP_RETURN:
                    return;
                
                case OP_LOAD_ARGUMENT:
                    *stack_pointer = args[instruction.arg.value];
                    stack_pointer++;
                    break;
    
                case OP_LOAD_STRING:
                    *stack_pointer = instruction.arg;
                    stack_pointer++;
                    break;
    
                case OP_SUBTRACT:
                {
                    stack_pointer--;
                    int b = stack_pointer->value;
                    
                    stack_pointer--;
                    int a = stack_pointer->value;
    
                    stack_pointer->value = a - b;
                    stack_pointer++;
                    break;
                }
    
                case OP_GOTO:
                    address = instruction.arg.value;
                    break;
    
                case OP_GOTO_IF_TRUE:
                    stack_pointer--;
                    if(stack_pointer->value != 0)
                        address = instruction.arg.value;
                    break;
    
                case OP_CALL:
                    void (* fn)(const void*) = (void (*)(const void*))instruction.arg.pointer;
                    stack_pointer--;
                    fn(stack_pointer->pointer);
                    break;
            }
        }
    }
    
    void print(const char* text) { printf("%s\n", text); }
    
    int main(int argc, char** argv) {
        const Instruction instructions[] = {
            /* 0 */ { OP_LOAD_ARGUMENT, { 0 } },
            /* 1 */ { OP_LOAD_ARGUMENT, { 1 } },
            /* 2 */ { OP_SUBTRACT, {} },
            /* 3 */ { OP_GOTO_IF_TRUE, { 0x7 } },
            /* 4 */ { OP_LOAD_STRING, { .pointer = "zero" } },
            /* 5 */ { OP_CALL, { .pointer = (void*)&print } }, // функции надо где-то регистрировать, чтобы знать сколько у них параметров и какого они типа
            /* 6 */ { OP_GOTO, { 0x9 } },
            /* 7 */ { OP_LOAD_STRING, { .pointer = "not zero" } },
            /* 8 */ { OP_CALL, { .pointer = (void*)&print } },
            /* 9 */ { OP_LOAD_STRING, { .pointer = "done" } },
            /* A */ { OP_CALL, { .pointer = (void*)&print } },
            /* B */ { OP_RETURN, {} }
        };
    
        const Argument args[] = { 
            { 100500 },
            { 777 }
         };
    
        run_vm(instructions, args);
        return 0;
    }



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

    flapflapjack
    @flapflapjack
    на треть я прав
    программа только для мониторинга места на диске?

    Ну не знаю, скрипт на PowerShell написать и всё, тут программа то не нужна.

    Поищите в интернете, как узнать свободное место с помощью любого языка программирования, и в зависимости от результата дергайте скрипт отправки вам почты.

    А так для таких целей придуманы Zabbix, NagiOS. Он для вашей задачи будет слишком громоздок, но обычно на серверах мониторят не только место на диске. Заббиксом можно всю инфраструктуру сети мониторить, это комплексное средство.
    Ответ написан
    Комментировать
  • Тестер пропускной способности сетей (меди) по приемлемой цене. Есть в природе?

    @mordo445
    тестер пропускной способности сети недорого это iperf3.exe, а если вам нужен квалифаер/сертифаер для СКС, то готовьте деньги. Например,или вот, но эти без отчетов. За отчеты придется накинуть пару тысяч как за вот этот, но его я не использовал, внимательнее перед заказом.
    Ответ написан
    1 комментарий
  • Как-то можно сохранить таблицу excel в максимально упрощенном интерфейсе?

    @CBET_TbMbI
    Это вопрос не сохранения таблицы, а выбор/настройка программы для её просмотра. В экселе, если зайти в параметры, можно настроить вид ленты. Если там отключить всё, то может что-то подобное получиться. Название строк и столбцов тоже можно скрыть. Как и строку формул. Можно ли убрать остальное - не знаю. Но "файл" я точно не хочу убирать даже для теста))
    6490193945737379243158.jpeg
    Ответ написан
    2 комментария
  • Домен покупают или арендуют?

    ValdikSS
    @ValdikSS
    Разница между этими терминами юридическая, области права, а не техническая. Под арендой домена подразумевается потенциальное отсутствие имущественного права на домен.

    https://www.kolosov.info/kommentarii/priroda-prav-...
    Ответ написан
    Комментировать
  • Lenovo. Как диагностировать проблему с ноутом?

    liaFcipE
    @liaFcipE
    Какой смысл диагностировать самостоятельно, почти с 100 вероятностью проблемы железа? Даже если в теории сможете - что это даст? Вы умете в компонентный ремонт и имеете весь нужный инструмент + склад с донорскими железками? Как правило, в сервисе диагностика бесплатная.
    Ответ написан
    1 комментарий
  • В чëм сейчас пишут документацию?

    Я бы посмотрел в сторону latex, если формул прям много и нужна на выходе адекватная пдфка.

    Схемы - уже зависит от характера схем. Если это какие-то архитектурные диаграммы и блок-схемы с описанием алгоритмов, то я бы взял plantuml и mermaid.

    А про wysiwig бы забыл как страшный сон.
    Ответ написан
    9 комментариев
  • Как запустить OpenVPN Без шифрования и прочего?

    SignFinder
    @SignFinder
    Wintel\Unix Engineer\DevOps
    Шифрование не грузит соединение, а грузит процессор. если его хватает - никакого замедления не будет.
    Настройте Openvpn на использование udp и использование самого простого набора шифров, и поиграйтесь с включением и отключением сжатия.
    Ответ написан
    1 комментарий
  • Можно ли припаять флешку к флешке?

    Rsa97
    @Rsa97
    Для правильного вопроса надо знать половину ответа
    Можно. Но цена такой "пайки" будет на порядок-другой выше, чем цена новой флешки двойного объёма.
    Ответ написан
    Комментировать
  • Возможно ли прокинуть встроенный SATA контроллер в ВМ в Proxmox?

    @LuchS-lynx
    инженер-ПТО
    1. Можно ли в Проксе отдать встроенный сата в вм полностью?

    Можно, после этого хост перестанет его видеть до следующей перезагрузки, что может быть чреватым если у Вас на нем диск с которого грузится хост.
    Пробрасывается по принципу как для ВК, но с тем отличием что меньше телодвижений, т.к. там не нужно блокировать загрузку драйверов графики и прописывать id оборудования для проброса. Единственно что может помещать - это отсутствие поддержки у матери/ЦП iommu, или неудачное попадание в одну группу SATA контроллера с другим оборудованием, которое при пробросе контроллера тоже отвалится для хоста. У меня так вышло с интегрированным звуком, при пробросе отваливается LAN, т.к. он в одной группе iommu с интегрированной звуковой картой:
    https://pve.proxmox.com/wiki/PCI_Passthrough
    Как писали выше можно пробросить диск без проброса контроллера, разница тут будет только в том что в госте нужно будет ставить драйвер виртуального контроллера, если это винда, а еще из гостя не будет виден реальный SMART диска.
    Ответ написан
    3 комментария
  • Нужна ли видеокарта для сервера терминалов Windows?

    flapflapjack
    @flapflapjack
    на треть я прав
    для ваших задач - не нужно..

    GPU в RDP вообще не прокидывают, картинку процессор шлёт.

    В крупных компаниях так же.
    Ответ написан
    Комментировать
  • Почему не доходит сигнал ping?

    @Strabbo
    Маска подсети неправильная
    Ответ написан
    Комментировать
  • Как рассчитать координаты по известным соседним?

    wataru
    @wataru Куратор тега Алгоритмы
    Разработчик на С++, экс-олимпиадник.
    Берете 2 любве точки, пересекаете окружности. 2 получившиеся точки проверяете с остальными n-2 окружностями.
    Ответ написан
    3 комментария
  • Как следить за версионностью в клиент-серверном приложении, в выпускаемых фичах продукта?

    Вы пытаетесь решить несуществующую проблему.
    1. Нет никакой проблемы в том что два разных приложения (клиент и сервер) имеют разную нумерацию.
    2. semver нужен только если у тебя есть какой-то контракт, который тебе нужно соблюдать. Если контракта нет - можно использовать просто номера релизов.
    Ответ написан
    3 комментария