Posts

  • Dashcam on Raspberry Pi Zero W

    There is how I built my own dashcam DVR. Consider the following input requirements:

    [read more]
  • First Anki addon: duplicate cards into another deck

    To help my daughter learning English words, I decided to give Anki a try a couple of years ago. It greatly reduces effort and increases efficiency by tracking when to repeat each individual word in either direction: English to/from Ukrainian. But when a younger daughter started studying English, I realized that it’d be best to just copy cards from the first deck to be able to track the review history separately. Unfortunately, I couldn’t find a ready solution for what seemed to be a very straight forward task: create a new card, copy over individual field values and toss it to the other deck. So I created a new addon to automate those manual actions.

    [read more]
  • Preparing to abandon Google Photos

    Starting in July 2021, Google Photos will no longer offer unlimited storage for photos and videos. I was lucky enough to never rely on it completely and managed my media files collection in GNOME Shotwell. Why not to take it a bit further and allow network access from portable devices? It could provide media availability and almost completely substitute Google Photos.

    [read more]
  • Harnessing Raspberry Pi 4 Model B with 8GB RAM

    I’ve been using LGE webOS smart TV since 2014. It has been working seemingly well. Except for some nuisances like inability to play Classic FM. Raspberry Pi 4 with 8 GB RAM seems a tempting choice for a smart TV set-top box. But here is an issue: hardware accelerated video decoding only works in a 32-bit OS that can only operate 4GB RAM at most. It’s more than just trading precious RAM for CPU cycles, videos don’t play smoothly at all without hardware decoding.

    [read more]
  • Checklist for configuration of fresh Arch Linux

    This is a checklist of what to do on a freshly installed Arch Linux. It’s going to be refined constantly.

    [read more]
  • Advent of code 2018

    Yet another year has passed. I’ve again completed the Advent of Code challenge just like the previous years 2016 and 2017.

    [read more]
  • Fix PDF opened in GIMP by default

    When Arch linux is used without a specific desktop environment like GNOME or KDE, opening a file by xdg-open works incorrectly. Particularly, GIMP is launched for PDF instead of a dedicated viewer. There are some details on the Arch wiki page xdg-utils. To fix the issue, it’s necessary to install another application association handler.

    [read more]
  • Nvim-gdb ported into Moonscript

    Nvim-gdb queries breakpoints from the debugger occasionally using a side channel. For that, a unix domain socket has to be created, bound and connected to the debugger’s side channel. So Python was used to do that. But I realized recently that Neovim has a built-in interpreter of full-featured Lua. Why not to give it a try? It turned out that the effort wasn’t in vain and resulted in the complete overhaul of the plugin.

    [read more]
  • How to fix the WiFi hotspot in Android in the Kyivstar network

    I’ve discovered that mobile hotspot stopped working right after Kyivstar introduced 4G. Android does offer a WiFi access point, the laptop does connect to it, but no external site can be accessed from the laptop. It turned out that there was the bug in the instructions. When a new APN is created, the type should be default,dun. The reference: Quora.

  • Turning a program into a multistream application

    Here is a deal: you have a fine-tuned program that is precisely handling one stream. It uses a dedicated CPU core and busy waiting to achieve sub-millisecond accuracy. Then you realize that the program just spins the core most of the time waiting until those tiny bits of work to be executed. Suboptimal, right? So you decide to enhance the application to handle multiple such streams by the same core: let it wait less, but executes more useful work. Here is how I did this and the lessons learnt.

    [read more]

subscribe via RSS