Posts

  • This day in photo gallery

    Some time ago, I ditched Google Photos in favour of pigallery2. See, how I expose Shotwell media gallery. Yet one feature was still left to be wished for. Google prepares appealing summaries periodically: what happened this day three-five years ago. And it shouldn’t be too complicated in GNOME Shotwell, I thought. Just go and select random photos from the database based on the date. Here’s how this idea was implemented.

    [read more]
  • Reserve power

    This is the story of how I spent the winter building reserve power sources to deal with blackouts. When the Russians began to interfere with our power grid, we started experiencing load shedding. This became a major inconvenience for our work, our children’s studies, and our daily lives. I talked to a friend, who advised me to use a hybrid solar inverter with a lithium-ion accumulator to store energy when it’s available and then recuperate it during power outages.

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

subscribe via RSS