Posts

  • Enter IOT

    Here is one simple and cheap way to automate electric boiler activation. There are lots of “smart power plug” available on OLX. Especially the ones from tuya. For example, I was able to purchase one for 300 ₴ (~$8). It came without any written instruction or even an identification. However, there are lots of guides and manuals on the web, and it was a matter of error and trial to get it creating a WiFi hotspot. Then after connecting to it, the Android application Smart Life can be used to configure plug’s connection to the LAN WiFi. That’s just enough to start manually controlling the plug like turning it on and off on schedule.

    [read more]
  • Fixing video/audio synchronization in a downloaded material

    As we’ve started to be impacted by the power blackouts, we resorted to downloading videos whenever possible to watch them later when convenient. The browser addon Video DownloadHelper hits right the spot for that. But it turns out that the video frame rate may be rogue in some cases. There can be a ridiculous number as high as 16k fps. My solution is to transcode the file forcing the frame rate to the desired value, which is actually detected correctly by the addon on the web page. In our case it was 30 FPS. Here’s the bash script invoking FFmpeg three times to extract audio and video tracks, and multiplex them back into an mp4 container:

    [read more]
  • Compiling LaTeX documents on texlive.net

    I’ve just realized that I’m not ready to install a multi-gigabyte TexLive distribution in the 32 GB file system of my Chromebook-based laptop. And I need to update the CV sometimes. Luckily, there’s a web service available exactly for that: texlive.net. It turned out capable of rendering my resume using XeLaTeX via their test web page, but it didn’t work immediately when I tried using their API directly. Here’s how I did that eventually.

    [read more]
  • nvim-ui progress

    A year and a half passed since I set off to create a simple Neovim UI in C++ in my spare time. The project nvim-ui became an exciting journey with quite a bit of discovery, experience and notable conclusions to share.

    [read more]
  • Record and replay debugging

    It was a year ago in a nvim-gdb issue #151 that I discovered rr. It promised to allow recording a program execution once, and debugging that run multiple times exactly the same way. Finally, there turned up an occasion to try it in the real life, and to implement the suggestion in the issue.

    [read more]
  • Racing on the map

    More than a month into the full-scale Russian invasion, and hard to imagine how life changed dramatically in one night. It’s hard to believe there was a luxury to do recreational orienteering in the forests. That’s where an idea came to me: why not to record some tracks on mobile phones, take a photo of the map and align the tracks on the map. That’d be a race to explore. Moreover, it turned out that the club shares the maps in good resolution, so no need to take photographs. But the map should still be aligned with the GPS coordinates. That’s how the project gpx-race emerged.

    [read more]
  • Dynamic Anki cards with JavaScript

    After using Anki for arithmetic tables for a while, it’s become evident that it would be beneficial to teach my kids to recognize different expressions of the sum and difference. Specifically, there are four distinct forms: x + y, add x to y, x increase by y, sum of x and y. Why wouldn’t we employ JavaScript in the card templates to pick a random wording as the question?

    [read more]
  • 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]

subscribe via RSS