Публікації

  • Одноранговий 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:

  • Збирання пакунків для Малинки з допомогою qemu-user

    Коли я спочатку спакував Kerberos.io для Arch Linux ARM, я просто адаптував бінарника, які було зібрано для Raspbian (див. kerberosio-alarm). Це спрацювало, доки я не поновив до версії 2.4.0, як служба machinery почала зазнавати краху. Видно, через втрату двійкової сумісності. Отже, настав час зібрати програму з початкового коду. Побудова на Малинці непрактична через обмежені ресурси, а встановлення інструментів для крос-компіляції потребує багато зусиль і дбайливості. На щастя, натрапив на простий обхідний шлях: використати qemu-user, щоб запустити рідний компілятор на станції x86_64 (ось початкове повідомлення).

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