Posts

  • Using systemd-nspawn in Arch Linux ARM for Kerberos.io

    Since I started using kerberos.io, I had to decide how to install it on my Raspberry Pi 3 running Arch Linux ARM. First I tried to repackage the official .deb for pacman: PKGCONFIG. It worked out for a while until another Arch update. Then I tried to build the machinery by myself. It turned out not to be easy, ending up with lot of functionality disabled or not reliable. Finally, I’ve come to yet another solution: running the genuine raspbian contained systemd-nspawn to enable official builds following the guide.

  • Mesh VPN tinc

    Here is the technology to easily configure virtual private network for direct P2P access. Consider you need to access a server that’s located behind a firewall. Consider direct communication channel is preferable to forwarding via a central point. Consider a cross-platform support is needed. The answer to all this requirements is tinc VPN.

  • Rebuilding Arch linux kernel

    It turned out that every laptop I owned happened to need custom kernel eventually. For instance, Acer C720 had a less popular light sensor, HP needed a specific version of WiFi driver etc. And this time, Xiaomi Mi Notebook Air, doesn’t work well with the kernels younger than 4.10, the touchpad becomes unbearable jerky. Luckily there is an AUR package with LTS kernel linux-lts49. Unfortunately, it can’t be built in tmpfs because of limited size. But it turns out that building minimal kernels is very easy in Arch linux indeed.

  • Bit streams in C++

    Reading and writing specific bits is a common task. This article reviews encountered methods and introduces C++ metaprogramming-style one. There are a few conventional techniques to do that:

  • Automatic testing of nvim-gdb

    Started doing automatic testing of nvim-gdb and configured continuous integration with Travis CI. Unlike the previous attempt with dotfiles, it’s more convenient to use neovim python client.

  • LLDB in nvim-gdb

    The plugin nvim-gdb (see introduction) now supports both GDB and LLDB.

  • Welcome Language Server Protocol

    I’ve put a lot of effort to get YouCompleteMe and rtags configured and running: deployed compactly, updated automatically, adapted to vim, managed. And they served well until I found a better solution: language server protocol (LSP). It turns out to be as robust as simple to configure nowadays.

  • Arch Linux configuration management

    It turns out that tracking tweaks to the system, Arch Linux in my case, is a common concern. And it has already been solved by aconfmgr. This is a shell script, which calculates what has changed in the system: installed or removed packages; added, removed or changed files.

  • Advent of code 2017

    I did it again, completed advent of code 2017. My solutions are available on github.

  • A pitfall with std::partial_sum()

    Consider a situation: you get a buffer with some network packets and their sizes: void Packetize(std::vector<uint8_t> &buffer, std::vector<uint16_t> &sizes). Now to send the packets out, you need to calculate packet offsets. What could be easier with STL:

subscribe via RSS