Posts

  • Building packages for Raspberry Pi using qemu-user

    When I first packaged Kerberos.io for Arch Linux ARM, I merely adapted binaries built for Raspbian (see the kerberosio-alarm). It worked for a while until I upgraded to the version 2.4.0 as the machinery service started to crash. Apparently, due to lost ABI compatibility. So it’s time to build the application from the source code. Building on Raspberry PI is impractical due to limited resources, and setting up cross-compilation tools requires a great deal of accuracy. Luckily, I encountered a quick workaround: use qemu-user to allow running native compiler on an x86_64 machine (see the original post).

  • Algorithms, Part II on Coursera

    Took the course Algorithms, Part II on Coursera (remember Part I), spent 4 weeks on video lectures, programming tasks in Java (see github). Again, enjoyed the experience a lot, recommend to everybody!

  • KVM for desktop virtualization retried

    A year ago I concluded that VirtualBox would be the best choice for desktop virtualization. I ran Windows 7 back then and wasn’t able to get MSYS2 terminal emulator displayed lively. And now I was to install Windows 10, so took a chance to reevaluate KVM in pursuit for better performance. This time I started with libvirt and virt-manager.

  • Continuous integration for dotfiles

    I’ve set up Travis CI for dotfiles finally. The idea is to clone the repository, configure the deployment and to conduct various tests with it. The most interesting and challenging part is of course testing. To check various vim functionality in different scenarios automatically, PTY is required.

  • Beating memory leak of gnome-shell

    GNOME shell has been leaking memory for a while hurting user experience. For instance, it could freeze a laptop sending it to deep swapping. To counteract, we had to detect the situation, switch to the virtual terminal, login and kill the offending process. Luckily, restarting gnome-shell is seamless and harmless. I have just realized that monitoring it could easily be automated.

  • Portable dotfiles

    While dotfiles are mainly targeted for installation into home directory, I realized recently that the settings could be portable too. Consider the following scenario: a colleague of mine calls me up for some help, and I will have to look at the code on her station. Local customizations could be weird and counter-productive. But if instead I deployed and applied my dotfiles without changing hers, it would be much more convenient.

  • GDB in neovim

    One more essential tool needed for development in C++ is debugger. While I have been quite productive with bare bone GDB and its TUI, still felt like missing few convenient features: code navigation (where to put a breakpoint?), syntax coloring, custom keymaps. Few years ago I found the plugin Conque-GDB, which served pretty well in Vim. However, it hasn’t been updated for a while, and doesn’t work well in neovim.

  • C++ project management

    I tried Qt Creator to simplify my development experience for C++. There is a lot of things I liked about it:

  • Algorithms, Part I on Coursera

    Took the course Algorithms, Part I on Coursera, spent 3 weeks on video lectures, programming tasks in Java (see github). There follows my impression and conclusion.

  • Custom mutex in C++11

    How to avoid priority inversion in a POSIX program? Pthread allows to choose the protocol PTHREAD_PRIO_INHERIT on a mutex. And how to use this feature in a standard C++ mutex?

subscribe via RSS