Skip to main content

max dev blog & other stuff

Proxmox cloud backup

If you are running Proxmox Virtual Environment [0] in your infra, chances are that you utilize the Backup and Restore functionality [1]. Like many other PVE features, its web GUI is devoid of a large number of controls for managing options described in the documentation.

Within this short entry I want to demonstrate setup I’ve came up with for synchronizing Proxmox VMs/CTs to Backblaze B2 cloud backup using hook scripts feature.

How to restrict network access of LXC container

So let’s say you have to run that sketchy or untrusted executable/project/binary/whatever and you want to do in a safe manner. Wide range of applicable solutions based on virtualization and contenerization technologies allow secure examination of suspicious software in a sandboxed environment.

If you’re a Linux user, you’d probably point your attention to LXC[0]. Just a few commands to bring up shiny new environment based on a distro selected from wide variety of available options, running on the host kernel with no excessive emulation overhead.

That alone provides decent separation from whatever you don’t want an object of research to touch in your workstation. But what about connectivity?

Compiling Python <3.5.3 in 2022

Despite Python 3.6 reaching end-of-life just 3 weeks ago[0], the amount of projects depending on older versions of Python 3 is exorbitant. Whilst working on a part of my media library workflow I found myself in need of using an old stalled project based on Python 3.4. Sadly, the code does not execute properly in newer runtimes and no one has ever undertook the task of refactoring it. Therefore, users are forced to run it with 3.4 version interpreter.

Wine not detecting drives in winecfg

Just wanted to drop this quick fix for anyone who runs into it the same issue as the viable solution is not trivial to find. My two evenings full of efforts prove it.

When I run winecfg and try to go into Drives tab to make a change in the config, there’s an error message saying:

Failed to connect to the mount manager, the drive configuration cannot be edited.

Change GTKFileChooser to KDE Dolphin file chooser in Arch Linux

GTKFileChooser window

GTK, while being widely adopted and utilized by thousands of apps is still suffering from that unresolved Add an “icon view with thumbnails”[0] issue that has been residing in the project bug tracker for over 17 years (at the time of writing this article, November 2021). Personally, I’ve learned about it fairly recently reading the article comparing GtkFileChooser to a clogged toilet[1], which explains how the inconvenience caused by the issue mostly went unnoticed by many users (including me) for years. It seems like it was a turning point in the life of the issue, as now its presence is being brought up on almost a daily basis in many informal tech communities. Most often, the purpose is scapegoating GTK as an entirety. The reasoning is that if such a conceptually simple, UX-crucial and obviously present at any notable competitor feature cannot be implemented since almost beginning of the project, then something is seriously wrong with the project itself. Perhaps it’s a convoluted codebase, bad maintaining or inadequate concepts fossilized into the core of the project.

I had used GNOME as my DE for 4 years. This means I was obviously affected by the issue, but chose not to care about it for a while. Since a few months, I’ve been using only WMs for my daily work, which gave me a bit more flexibility in choosing the tools I like. This post explains how I installed alternative file chooser and set it to be the default one first in Firefox and (almost) globally on my Arch Linux setup.

Fix JetBrains IDEA IntelliJ not working on bspwm (gray window issue)

An easily reproducible issue I’ve recently been running into is JetBrains IDEs not being displayed properly in bspwm[0] environment. Instead of IDE graphical interface, only a gray solid window is being shown.

There’s nothing innovatory about this fix, however it seems like it has never been mentioned in this particular context, meaning running IntelliJ on bspwm and xorg.

How I cracked obscure zlib compression format of old MySQL blobs

Looking around the web for old pre databases[0] I stumbled upon this nice collection of preDBs dumps[1]. The one[2] that caught my interest was shared by the user called Islander to celebrate him quitting this world and starting a real life. Shared in October 2014, it was built across years 2005-2011, supposedly being the biggest database of nfos, sfvs and other metadata at 2011.

7.7GB RAR archive includes 452MB SQL dump of pre entries and over 5.3GB SQL dump of nfo files. After importing these dumps into MySQL database server (8.0.21 hosted in Docker) I discovered that something is off with nfo schema.

Mocking @AuthenticationPrincipal with custom UserDetails object

Lately I’ve been working on a project involving Spring Boot and Spring Security. It includes stateless API for authenticating users and restricting access to specific HTTP endpoints. I followed this Stateless Authentication with Spring Security[0] article. Sessions associated with users are stored in the database table, while users authenticate with session ID in Authorization request header. Pretty much what JWT does, except for I didn’t know about its existene at the moment, lol.