Публікації

  • Використання systemd-nspawn у Arch Linux ARM для Kerberos.io

    З тих пір, як я почав використовувати kerberos.io, треба було вирішувати, як його встановити на Raspberry Pi 3, який працює під керуванням Arch Linux ARM. Спершу намагався перепаковувати офіційні пакунки .deb для pacman: PKGCONFIG. Це деякий час спрацьовувало до якогось чергового поновлення. Потім спробував збирати самотужки. Виявилося, що це непросто, багато функціональності або працює ненадійно, або довелося взагалі вимкнути. Нарешті, з’явилося ще один розв’язок: запустити справжній raspbian з допомогою systemd-nspawn, щоб можна було встановлювати офіційні збірки з допомогою посібника.

  • Одноранговий VPN tinc

    Ось технологія, щоб легко налаштувати віртуальну приватну мережу для прямого доступу вузол-вузол. Припустімо, вам потрібно доступитися до сервера, який знаходиться за мережевим екраном. Припустімо, пряме з’єднання краще підійде, ніж передача пакетів через центральний вузол. Припустімо, потрібна підтримка на різних платформах. Відповідь на всі ці вимоги — tinc VPN.

  • Перебудова ядра Arch linux

    Виявляється, кожен мій ноутбук так чи інакше потребував особливого ядра. Наприклад, Acer C720 мав менш популярний сенсор світла, HP потребував певну версію драйверів WiFi тощо. Навіть цього разу, Xiaomi Mi Notebook Air, не дуже добре працює із молодшими від 4.10 ядрами, тачпад стає смиканий. На щастя, є пакунок AUR з ядром тривалої підтримки linux-lts49. Нажаль, його не можна зібрати у tmpfs через обмежений розмір. Проте виявляється, що зібрати мінімальне ядро насправді дуже легко в Arch linux.

  • Потоки бітів у C++

    Читання і запис бітів у потік — типова задача. У цій статті оглянуто методи, з якими стикався автор, і пропонується один в стилі метапрограмування С++. Серед традиційних найбільш помітні такі:

  • Автоматичне тестування nvim-gdb

    Почав автоматичне тестування nvim-gdb і налаштував неперервну інтеграцію у Travis CI. На відміну від попередньої спроби у dotfiles, набагато зручніше скористатися клієнт python neovim.

  • LLDB у nvim-gdb

    Розширення nvim-gdb (дивись початок) тепер підтримує і GDB і LLDB.

  • Привітаймо Language Server Protocol

    Я витратив багато зусиль, щоб налаштувати YouCompleteMe і rtags: компактно встановити, автоматично поновлювати, адаптувати до vim, керувати конфігурацією. І вони добре служили, доки я не знайшов краще рішення: протокол сервера мови (LSP). Виявилося, що він нині так само довершений, як і простий у налаштуванні.

  • Керування конфігурацією Arch Linux

    Виявляється, відстеження налаштунків системи, у моєму випадку Arch Linux, це типова проблема. І вона вже розв’язана з aconfmgr. То є скрипт оболонки, який обчислює, що змінилося в системі: встановлено чи прибрано пакунки; додано, знищено чи змінено файли.

  • Прихід коду 2017

    Я це зробив знову, виконав прихід коду 2017. Мої розв’язки можна знайти на github.

  • Пастка з std::partial_sum()

    Розгляньмо ситуація: у вас є буфер із якимись мережевими пакетами і їхні розміри: void Packetize(std::vector<uint8_t> &buffer, std::vector<uint16_t> &sizes). Тепер щоб надіслати ці пакети, вам потрібно обрахувати зміщення. Що може бути простіше із STL:

підписатися через RSS