• Как обойтись одной сетевой картой

    jcmvbkbc
    @jcmvbkbc
    "I'm here to consult you" © Dogbert
    Организуйте два VLAN на линке между внутренним и внешним шлюзами и пустите по разным VLAN-ам пакеты которые сейчас идут по разным линкам. Ключевые слова — vconfig.
    Ответ написан
    Комментировать
  • Растрирование линий неединичной толщины?

    jcmvbkbc
    @jcmvbkbc
    "I'm here to consult you" © Dogbert
    Я бы рисовал брезенхемом центральную линию, и от неё заполнял бы по вертикали (если по x линия длиннее чем по y) или по горизонтали (в противном случае) количество пикселов, равное длине сечения толстой линии вертикальной/горизонтальной осью. У этого подхода есть проблемы на концах отрезка (но там в любом случае надо думать, что делать). И точность не очень высокая.
    Ответ написан
    Комментировать
  • Управление питанием в ubuntu

    jcmvbkbc
    @jcmvbkbc
    "I'm here to consult you" © Dogbert
    либо просто другое решение

    В KDE: System Settings -> Power Management -> Advanced Settings -> Configure Notifications -> AC Adaptor unplugged
    Ответ написан
    Комментировать
  • Управление питанием в ubuntu

    jcmvbkbc
    @jcmvbkbc
    "I'm here to consult you" © Dogbert
    Поместите в /etc/pm/power.d скрипт 10-mains-alert.sh:
    #! /bin/bash
    
    if ! /usr/bin/on_ac_power
    then
        # код предупреждения здесь, например
        xmessage '!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!'
    fi
    
    Ответ написан
    Комментировать
  • OSdev, Task State Segment и стеки?

    jcmvbkbc
    @jcmvbkbc
    "I'm here to consult you" © Dogbert
    1. Да, третий том intel 64 and ia32 architecture software developer's manual, раздел 6.12.2 Interrupt Tasks прямо об этом и говорит.
    2. Зависит исключительно от вашей реализации. В линуксе, например, у каждой задачи свой kernel mode stack.
    Ответ написан
    3 комментария
  • Шаблоны в cpp, что и как?

    jcmvbkbc
    @jcmvbkbc
    "I'm here to consult you" © Dogbert
    Если используемые T известны заранее, можно в queue.cpp явно инстанцировать нужные типы.
    Например:
    template class queue<int>;
    Ответ написан
    Комментировать
  • Как отключить-влючить PCI устройство на лету

    jcmvbkbc
    @jcmvbkbc
    "I'm here to consult you" © Dogbert
    Отключить PCI-устройство: echo 1 > /sys/bus/pci/devices/id/remove
    Включить — да, через rescan.
    Ответ написан
    Комментировать
  • Софтовый RAID1 теряет superblock после ребута

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

    Эти разделы видимо уже были частью raid0. Сделайте им dd if=/dev/zero of=/dev/sda1 bs=512 count=1 и добавьте в свой raid1 заново.
    Ответ написан
    1 комментарий
  • Как подменить UID владельца файлов при монтировании NFS шары?

    jcmvbkbc
    @jcmvbkbc
    "I'm here to consult you" © Dogbert
    Вообще линуксовый NFS-сервер управляется файликом /etc/exports, в котором можно указать опции из man 5 exports:
     User ID Mapping
           nfsd bases its access control to files on the server machine on the uid and gid provided in each NFS RPC request. The normal behavior a user would expect is that she can access her files on the server just as she
           would on a normal file system. This requires that the same uids and gids are used on the client and the server machine. This is not always true, nor is it always desirable.
    
           Very often, it is not desirable that the root user on a client machine is also treated as root when accessing files on the NFS server. To this end, uid 0 is normally mapped to a different id: the so-called anony‐
           mous or nobody uid. This mode of operation (called `root squashing') is the default, and can be turned off with no_root_squash.
    
           By  default,  exportfs  chooses  a uid and gid of 65534 for squashed access. These values can also be overridden by the anonuid and anongid options.  Finally, you can map all user requests to the anonymous uid by
           specifying the all_squash option.
    
           Here's the complete list of mapping options:
    
           root_squash
                  Map requests from uid/gid 0 to the anonymous uid/gid. Note that this does not apply to any other uids or gids that might be equally sensitive, such as user bin or group staff.
    
           no_root_squash
                  Turn off root squashing. This option is mainly useful for diskless clients.
    
           all_squash
                  Map all uids and gids to the anonymous user. Useful for NFS-exported public FTP directories, news spool directories, etc. The opposite option is no_all_squash, which is the default setting.
    
           anonuid and anongid
                  These options explicitly set the uid and gid of the anonymous account.  This option is primarily useful for PC/NFS clients, where you might want all requests appear to be from one user. As an example, con‐
                  sider the export entry for /home/joe in the example section below, which maps all requests to uid 150 (which is supposedly that of user joe).
    

    Т.е. варианты такие: все uid/gid с клиента используются как есть, либо 0/0 мэппится во что укажете, либо всё мэппится во что укажете.
    Ответ написан
    1 комментарий
  • Адекватность генератора псевдослучайных чисел?

    jcmvbkbc
    @jcmvbkbc
    "I'm here to consult you" © Dogbert
    работающие «из коробки» тесты на определение близости ГПСЛ к случайным числам

    Dieharder
    Ответ написан
    Комментировать
  • Какой должен быть git workflow для сохранения линейной истории master'a?

    jcmvbkbc
    @jcmvbkbc
    "I'm here to consult you" © Dogbert
    Пара вопросов:
    1. В бранч master нельзя коммитить. В него можно только мержить.

    Если с мастером всё равно работает только координатор, то какая разница, как он будет его пополнять?
    3. Периодически выполняет merge из master'а в topic. При этом topic уже становится нелинейным, и это правильно.

    А зачем? Почему бы ему самому не ребейзить свою ветку на нужное место мастера или не выдёргивать оттуда нужные коммиты через cherry-pick?

    Запрет на ребейз перед мёржем в апстрим, например в линуксе, связан с тем, что код должен быть уже протестирован в топике, и после ребейза его придётся тестировать снова. Кроме того, если в мастере и в топике были конфликтующие изменения, то лучше их зафиксировать в одном месте — в точке мёржа топика, чем размазывать по разным конфликтующим коммитам топика при его ребейзе.
    Ответ написан
    3 комментария
  • Количество памяти занятой процессом значительно меньше чем уменьшение свободной памяти (8Мб vs 160Мб)?

    jcmvbkbc
    @jcmvbkbc
    "I'm here to consult you" © Dogbert
    Какой-то стрёмный вывод у free: почему "-/+ buffers/cache" совпадает с «mem»?
    Может лучше было бы сравнить cat /proc/meminfo до и после?
    Ответ написан
  • Запутался в трех соснах: UART, GPIO, RS232

    jcmvbkbc
    @jcmvbkbc
    "I'm here to consult you" © Dogbert
    1. Что фактически означает в характеристиках 4 шт UART? Из чего состоит в 1 UART? Как его можно использовать?

    UART — это асинхронный приёмо-передатчик, преобразующий байты записываемые в него со стороны хоста в последовательности «стартовый бит, биты данных, биты чётности, стоповый бит» на выводе TX и наоборот, с вывода RX — в байты. Обычно он имеет группу регистров, определяющих параметры передачи/приёма, такие как скорость, количество бит в байте, контроль чётности и т.п. Эта группа регистров и является для хоста «логическим UART». С соответствующим конвертором уровня UART можно использовать с интерфейсами RS.
    2. GPIO — это не UART? GPIO состоит из RX/TX Их нельзя использовать взамен RX/TX RS232?

    GPIO — это обобщённый ввод/вывод. Обычно представлен несколькими регистрами, биты которых соответствуют пинам интерфейса: регистром направления (его биты отвечают за то, является ли пин вводом или выводом), регистром ввода (биты соответствуют состояниям входных пинов), регистром вывода (биты управляют состоянием выходных пинов). Изменение состояния пинов обычно сразу же отображаются в регистре ввода, а изменение регистра вывода обычно сразу же изменяет состояние выходных пинов. При желании на GPIO можно программно реализовать UART.
    Ответ написан
    Комментировать
  • Ошибка запуска Steam под Kubuntu 12.10 x64?

    jcmvbkbc
    @jcmvbkbc
    "I'm here to consult you" © Dogbert
    error 407 это «proxy authentication required».
    Если у вас интернет через прокси, следует посмотреть, умеет ли steam ходить через прокси и как. Стандартный способ — переменная окружения «http_proxy=http://username:password@hostname:port».
    Ответ написан
  • В Vim в последней строке текста не переводить каретку

    jcmvbkbc
    @jcmvbkbc
    "I'm here to consult you" © Dogbert
    может быть
    :set binary
    :set noeol
    :w
    Ответ написан
    Комментировать
  • Периодически пинать SSH

    jcmvbkbc
    @jcmvbkbc
    "I'm here to consult you" © Dogbert
    Как бы это исправить?

    man autossh
    Пробрасывает дополнительный канал, шлёт по нему «пинги» и восстанавливает соединение при обрыве сам.
    Ответ написан
    1 комментарий
  • Не получается релоцировать local APIC?

    jcmvbkbc
    @jcmvbkbc
    "I'm here to consult you" © Dogbert
    Я вижу два странных момента.
    Один у вас: доступ к 32-битным регистрам APIC не может выполняться как к 64-битной памяти. Об этом говорит intel developer's manual vol3, p 10.4.1:
    All 32-bit registers should be accessed using 128-bit aligned 32-bit loads or stores.


    Второй — в qemu. Там (смотрел текущую голову git) нет кода, который бы перемещал регистры при изменении базового адреса APIC.
    На чём вы тестируете своё ядро?
    Ответ написан
    3 комментария
  • Netbeans-сигнал перехвачен?

    jcmvbkbc
    @jcmvbkbc
    "I'm here to consult you" © Dogbert
    В окне gdb нужно набрать

    handle SIG34 pass noprint nostop

    это заставит передавать сигнал процессу минуя дебаггер.
    Ответ написан
    Комментировать
  • Работа над одним файлом в Git используя <format-patch>?

    jcmvbkbc
    @jcmvbkbc
    "I'm here to consult you" © Dogbert
    Если ему нужна история изменений сделайте отфильтрованный клон своего проекта, в котором оставьте только нужные (у меня — path-to-preserve) каталоги в нужных ветках (у меня — HEAD, т.е. текущая):
    git filter-branch --tree-filter "find -not \( -path './path-to-preserve*' -o -path './.git' -o -path './.git/*' \) -delete" --prune-empty HEAD
    

    и уже этот клон отдайте.

    Если история не нужна — создайте репозиторий из этого единственного каталога и отдайте его.

    Изменения будут применяться используя $ git format-patch и в нем, соответсвенно, не должно содержаться изменений к другим файлам.

    Наверно, всё-таки, git am будут применяться изменения. Ничто, однако, не помешает другому пользователю создать файлы за пределами переданного ему каталога и включить их в свои патчи. С другой стороны, эти патчи можно собрать в новый репозиторий, который тоже отфильтровать.
    Ответ написан
    Комментировать
  • Интересное/странное использование malloc — какой смысл?

    jcmvbkbc
    @jcmvbkbc
    "I'm here to consult you" © Dogbert
    Для представления строки из N 8-битных символов нужно (N * 8 / 6) = (N / 3 * 4) 6-битных символов (base 64).
    (l + 2) / 3 это деление на 3 с округлением вверх, поскольку количество символов должно быть целым.
    + 1 — это для нуля в конце строки.
    Ответ написан
    1 комментарий