Weekly report 20-40

Weekly report 20-40


The circumstances were such that I got to own a flat in Teplice (housing co-op) while renting another one in Prague. Given that I didn’t need to be physically present in the capital each day and paying for both flats was a bit too wasteful for my taste, I decided to cancel the lease.


I thought I only had a minimal amount of possessions there, yet, as usual, I underestimated it. I’ve also learnt that my car really doesn’t like towing, the euroengined piece of crap it is.

So, towards a simpler life with fewer distractions. I can better focus on clean-ups and improve my mobility for the future now. About 90% of all things I keep around fail a 1-year test of ‘when was the last time anyone has used this?’

Botnets, arise

It appears that other people are fulfilling my dreams of creating a lite version of SkyNet. Now, if only it could evolve autonomously to ensure it stays alive, and follow some primary objective…​ It amuses me to imagine a nearly unstoppable, yet purely artificial force that won’t let humanity change some aspects of its environment. One day we’ll get there, I’m sure.


Yeah, screw all my responsibilities. I’ve got software to write! Let’s collect some meritocracy points, as my friend calls it. Once in a while people even find, use and appreciate what I make for myself out of perceived necessity, so why not plant some seeds.


My experience with ISO 2022 from last week has made me bold enough to just filter out certain problematic control characters often present in terminfo entries from the input to less, which is where I outsource scrolling through the backlog, Unix-style. With this, I could confidently set the default behaviour to enable word wrapping and disable stripping of formatting, all without fearing that less would intersperse the text with annoying ^O sequences and cause unexpected additional line breaks. Thus, my favourite IRC client finally comes sane out of the box.

It took me four years to have a proper look at the problem.


I’ve started writing the navigator in 2017, though I still haven’t managed to get to the point where it can replace Midnight Commander for me. A random Russian ex-user has helped me return my attention back to it and in trying to use this software more often, testing the proposed key bindings, I’ve had to resolve several pain points:

  • the chdir functionality can now expand tilde prefixes to home directories;

  • the Debianism of pager has been replaced with less since that’s the only widely available program one can realistically use for a viewer in an orthodox file manager;

  • F3 now changes directories instead of letting the viewer fail with an error;

  • helper programs for F3 and F4 can be launched outside the navigator so that they can be suspended with Ctrl-Z instead of being forced to stay in the foreground;

  • when a helper fails, we no longer return back to sdn immediately but rather let the user have a look at any error messages that have been written to the terminal;

  • when going upwards in the directory hierarchy, the cursor is always made to point at the directory subtree we were in just before, making for a consistent experience;

  • it no longer crashes silently when launched from an unlinked directory (sigh);

  • and the shell’s current command line can be seen from within so that it’s evident where a selected file will be inserted.

There were some good news as well, for example the disgusting way zsh closed the stdin of the ‘widget’ I launched the navigator from and left the file descriptor unassigned had been fixed upstream by a very patient guy even before I ran into this quirk. Not that it changes much, as now it’s just redirected to /dev/null instead and I still need to reopen it so that it points to the terminal. I have actually seen some kind of conflict where upon returning from sdn, zsh decided to freeze for about a minute with no way of aborting it, so the redirection might be warranted, but the issue evaded inspection and reproduction. Luckily, it seems I have circumvented it with the ‘external helpers’ feature, somehow.

I also thought it wouldn’t hurt to check if I can’t add support for at least a third shell, to make the program more widely deployable. While ksh and tcsh (no functions!) were sadly utter failures, fish, after some bitching, turned out to be the only one where I don’t need to employ any workarounds. I think I’ll forgive it that it’s not POSIX-compatible.

The last important missing feature now is the ability to choose multiple files at once and then I’ll consider this project a success--I just have to add a manual page, perhaps write a short article comparing it to alternatives, and it can be shoved out the door.

The next file manager I make will be a GUI. I need to organise pictures and everything I’ve tried so far sucks donkey balls, as usual…​ Oh Lord, am I planning to start another project?