Задать вопрос
  • Vim. Открыть файл под курсором в соседнем окне возможно?

    jcmvbkbc
    @jcmvbkbc
    "I'm here to consult you" © Dogbert
    Как сделать, чтоб он открылся в правом окне, а в левом так и остался бы список файлов?

    Можно выполнить let g:netrw_preview = 1 и нажимать на интересующем файле p вместо ENTER. При этом справа от списка файлов будет открываться окно preview для файла под курсором, а курсор так и останется в левом окне. Следующее нажатие p заменит содержимое preview файлом под курсором.
    Кроме p ещё есть v. А кроме того F1 в списке файлов открывает help по теме.
    Ответ написан
    1 комментарий
  • Как вывести flags как в objdump?

    jcmvbkbc
    @jcmvbkbc
    "I'm here to consult you" © Dogbert
    Как на Си вывести флаги в том же формате, что делает команда objdump?

    А в код-то не посмотреть никак?
    static void
    dump_bfd_header (bfd *abfd)
    {
      char *comma = "";
    
      printf (_("architecture: %s, "),
              bfd_printable_arch_mach (bfd_get_arch (abfd),
                                       bfd_get_mach (abfd)));
      printf (_("flags 0x%08x:\n"), abfd->flags & ~BFD_FLAGS_FOR_BFD_USE_MASK);
    
    #define PF(x, y)    if (abfd->flags & x) {printf("%s%s", comma, y); comma=", ";}
      PF (HAS_RELOC, "HAS_RELOC");
      PF (EXEC_P, "EXEC_P");
      PF (HAS_LINENO, "HAS_LINENO");
      PF (HAS_DEBUG, "HAS_DEBUG");
      PF (HAS_SYMS, "HAS_SYMS");
      PF (HAS_LOCALS, "HAS_LOCALS");
      PF (DYNAMIC, "DYNAMIC");
      PF (WP_TEXT, "WP_TEXT");
      PF (D_PAGED, "D_PAGED");
      PF (BFD_IS_RELAXABLE, "BFD_IS_RELAXABLE");
      printf (_("\nstart address 0x"));
      bfd_printf_vma (abfd, abfd->start_address);
      printf ("\n");
    }
    Ответ написан
  • В чем ошибка выскакивает на компиляции?

    jcmvbkbc
    @jcmvbkbc
    "I'm here to consult you" © Dogbert
    непонятная ошибка

    Что непонятного-то? Вроде отчётливо видно, что ReadFromFile использует CreateList, но функция CreateList (с таким прототипом, как в ReadFile) не определена. И ошибка не компиляции а линковки.
    Ответ написан
    Комментировать
  • Есть ли универсальный алгоритм для задач 'Можно ли переложить 1 спичку, чтобы равенство стало верным'?

    jcmvbkbc
    @jcmvbkbc
    "I'm here to consult you" © Dogbert
    Как это сделать программно?

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

    jcmvbkbc
    @jcmvbkbc
    "I'm here to consult you" © Dogbert
    Почему в решениях с одинаковой сложностью существенная разница во времени расчета?

    Я отвечу на вопрос из заголовка: потому что сложность алгоритма говорит о том, как он будет вести себя при неограниченном увеличении размерностей входных данных. И больше ни о чём. Т.е. нельзя имея два линейных алгоритма сказать, что они будут работать одинаковое время. Но можно имея линейный и квадратичный алгоритм сказать, что начиная с какого-то момента линейный всегда будет работать быстрее.
    Ответ написан
    2 комментария
  • Как правильней всего писать сообщения в команде /git comit -m""?

    jcmvbkbc
    @jcmvbkbc
    "I'm here to consult you" © Dogbert
    Обычно в хорошем описании можно выделить две части. Одна описывает зачем это изменение нужно: в чём была проблема/чего не хватало/что работало не так. Вторая описывает решение и документирует, почему именно это решение было выбрано.
    И это правило работает в обе стороны: если невозможно описать зачем было сделано изменение или почему оно именно такое -- это скорее всего плохое изменение.

    1 вариант: Добавляет элемент block__element3 блоку block;
    2 вариант: Добавляет текст с описанием блоку block;

    Оба в равной мере бесполезны, как и сам этот коммит, судя по всему.
    Ответ написан
    4 комментария
  • В чем ошибка в коде bash?

    jcmvbkbc
    @jcmvbkbc
    "I'm here to consult you" © Dogbert
    $$ заменить на &&.
    Ответ написан
    1 комментарий
  • Где в отладчике отображается, что в этой программе максимальный элемент массива равен 9?

    jcmvbkbc
    @jcmvbkbc
    "I'm here to consult you" © Dogbert
    Почему у меня при отладке (картинка 1), и при чужой отладке (картинка 2) в сегменте, внизу, где четыре строки es, значения совершенно отличаются, хотя это отладка одной и той же программы?

    Мария, потому что память заполнена по большому счёту мусором. es в твоей программе не инициализирован, непонятно зачем ты на него смотришь. Надо смотреть на ds. В твоём отладчике Max находится по адресу 57ef:000a
    Ответ написан
  • Как не откладывать обработку прерывания в долгий ящик?

    jcmvbkbc
    @jcmvbkbc
    "I'm here to consult you" © Dogbert
    Если я в коде по прерыванию отключаю обработку этого самого прерывания, например на пару секунд, то прерывание действительно не будет обрабатываться эти две секунды, но если оно было, то будет обработано сразу же после следующего подключения прерывания.

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

    Верно ли я понимаю, что микроконтроллер запоминает факт прерывания

    Верно для прерываний срабатывающих по фронту. Неверно для прерываний срабатывающих по уровню.

    не может этот флаг скинуть, пока как раз таки я снова не подключу прерывание и он тут же радостно мне его передает?

    Неверно в общем случае. Флаги запроса прерывания могут быть доступны через регистры, иногда эти регистры можно программно очищать.

    Возможно ли как-то переопределить данное поведение?

    У некоторых прерываний можно настроить, срабатывают они по уровню или по фронту. Например, у Atmel можно настроить как детектируются внешние прерывания INT0 и INT1 -- регистром EICRA.

    Или скинуть каким-то другим способом этот флаг?

    Опять же, на Atmel флаги внешних прерываний лежат в R/W регистре EIFR, в нужные биты которого можно записать 0, чтобы очистить запомненный запрос прерывания.
    Ответ написан
    2 комментария
  • Как скопировать несколько строк в режиме командной строки в vim?

    jcmvbkbc
    @jcmvbkbc
    "I'm here to consult you" © Dogbert
    Я вызываю режим командной строки через shift : и пишу
    3,8yanka
    то есть, скопировать строки с 3 по 8 в регистре а, можно и без а.

    Я делаю то же самое в vim, добавив пробел между yank и a -- и всё работает. Вывод: проблема в vscode.
    Ответ написан
    Комментировать
  • Почему скрипт написанный на Bash отказывается работать?

    jcmvbkbc
    @jcmvbkbc
    "I'm here to consult you" © Dogbert
    Добрый вечер, написал скрипт на bash для авто-установки.

    #!/bin/sh

    /bin/sh может и не быть bash'ем.

    Не пойму почему он отказывается работать.

    Скрипты можно отлаживать: #!/bin/bash -ex
    Ответ написан
  • Почему в Alpine Linux невозможно ничего написать в консоли?

    jcmvbkbc
    @jcmvbkbc
    "I'm here to consult you" © Dogbert
    В чем может быть дело?

    Похоже на не-английскую раскладку клавиатуры.
    Ответ написан
    1 комментарий
  • Оцените код. Как можно заменить goto?

    jcmvbkbc
    @jcmvbkbc
    "I'm here to consult you" © Dogbert
    while (size <=0)//проверка ввода
            goto check;//в случае неудачи, переход по метке check на 40 строку

    это
    if (size <= 0)
        break;


    goto mark;

    это просто continue; в первом случае и просто ничего во втором.
    Ответ написан
    Комментировать
  • Почему нельзя скомпилированную программу запустить на другой ОС?

    jcmvbkbc
    @jcmvbkbc
    "I'm here to consult you" © Dogbert
    Почему нельзя скомпилированную программу запустить на другой ОС?

    Учитывая что WINE и DOSBOX уже 300 лет в обед и windows subsystem for linux появился не вчера, вопрос, мягко говоря, странный. Можно запустить, если в "другой ОС" есть поддержка совместимости с ОС, для которой программа скомпилирована.
    Ответ написан
    2 комментария
  • Что делать если данные при передаче через сокеты сливаются?

    jcmvbkbc
    @jcmvbkbc
    "I'm here to consult you" © Dogbert
    Что делать если данные при передаче через сокеты сливаются?

    При работе с потоковыми протоколами так и должно быть. Если приложение работает с сообщениями -- приложение должно само организовать себе фрейминг в потоке данных.

    Recieve

    receive
    Ответ написан
  • Возможно ли дехеширование при определенных условиях?

    jcmvbkbc
    @jcmvbkbc
    "I'm here to consult you" © Dogbert
    если точно известно, что захеширован был хеш h1 и из него получили хеш h2, количество символов в начале равно количеству символов в конце, более того набор символов в первом выражении равен набору символов во втором выражении, можно ли, имея на руках h2, вернуть значение хеша h1?

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

    jcmvbkbc
    @jcmvbkbc
    "I'm here to consult you" © Dogbert
    При одинаковой длине ключей, симметричных и асимметричных, криптостойкость алгоритмов разная. И криптостойкость симметричных выше. Асимметричных ниже. ...

    Как это объяснить?

    Это объясняется тем, что у симметричных и асимметричных алгоритмов разная природа.
    Симметричные (например AES) используют ключ для генерации преобразования входного блока в выходной. Количество бит в ключе напрямую определяет размер пространства преобразований -- 128-битный ключ даёт 2128 возможных значений выходного блока для каждого входного.
    Асимметричные используют ключ по-разному, поэтому нужно рассматривать конкретный алгоритм. RSA использует биты ключа для хранения произведения двух простых чисел. 128-битный ключ даёт 64-битные простые числа. Факторизация 128-битного числа не требует перебора 2128 вариантов и занимает на обычном современном железе порядка секунды.
    Ответ написан
    Комментировать
  • Как верифицировать ALPINE LINUX 3.9?

    jcmvbkbc
    @jcmvbkbc
    "I'm here to consult you" © Dogbert
    Но при проверки им
    gpg --verify ncopa.asc alpine-standard-3.9.0-x86_64.iso.sha256
    пишет что gpg: verify signatures failed: Неожиданная ошибка.


    alpine-standard-3.9.0-x86_64.iso.sha256 -- это просто sha256 от iso, там нет подписи. Подпись должна быть в файле с расширением .asc за кнопкой "GPG", но там 404.
    Судя по содержимому dl-cdn.alpinelinux.org/alpine/v3.9/releases/x86_64 подписи всё-таки есть для некоторых .iso
    Ответ написан
    3 комментария
  • Какую формулу комбинаторики использовать?

    jcmvbkbc
    @jcmvbkbc
    "I'm here to consult you" © Dogbert
    Посчитать количество нулей и единиц в исходном числе. Пусть это будут N0 и N1.
    Если нули не могут стоять спереди, значит спереди может стоять только единица. Если N1 > 0, уменьшить N1 на 1, иначе нет решений.
    Теперь нужно упорядочить N0 нулей и N1 - 1 единицу всеми возможными способами. Их будет (N0 + N1 - 1)!. Но поскольку все нули и все единицы одинаковы, то разных комбинаций будет в N0! * (N1 - 1)! раз меньше, (N0 + N1 - 1)! / (N0! * (N1 - 1)!). Это -- перестановки с повторениями. Для числа 100101 результат 10:
    100011, 100101, 100110, 101001, 101010, 101100, 110001, 110010, 110100, 111000.
    Ответ написан
    Комментировать
  • Обращение к обьекту через указатель?

    jcmvbkbc
    @jcmvbkbc
    "I'm here to consult you" © Dogbert
    objaddr = objects + (sizeof(Object)*n);

    sizeof(Object) * не нужен, это не ассемблер.
    Ответ написан
    Комментировать