Memory, Firefox, Ceph, Postmortem, UX, WS, Duplicati, Pathlib
- One application is designed badly, it uses lot of RAM, but the data in RAM is mostly stale. Enabling zswap helped a lot. Amount of disk I/O dropped by 80% just by enabling zswap and letting the fluffy and stale data to be compressed in ram, instead of getting swapped out. Data is such a simple data structure, that it compresses exceptionally well. It's always a good question if you should store data on "disk" and let OS cache that. Or store data in RAM and let OS swap it out. Classic dilemma.
- Firefox, so full of bugs. Even basic authentication with pre-entered (and stored) credentials won't work correctly, without accessing the bookmark twice. The first time just enters the credentials after confirmation prompt, but doesn't load after that the page. Sigh. Usability issues, everywhere.
- Ceph block storage , more wonderful issues. It seems that the full system snapshot causes crashes at times. Hmm, sigh. I really love inherent issues which are buried very deep in stack, causing systems to crash and which you practically can do nothing about at all. - Lovely, as Brits say it.
- Postmortem points: 1) Why did this happen? 2) Could it have been worse? 3) How can we make sure it won’t happen again?
- About bad User Experience (UX). One Android application does extremely annoying thing. It shows you list of options and then updates that list in 200 - 300 milliseconds, and that's when the options change places on screen. That's bleep bleep bleep, annoying. You see list, you'll select option and go and click it, only to find out that what you ended up choosing wasn't what you thought to get. Because the list updates just when all the mental processing has happened and the selection process is going on. - It's so bad UX that I'm just wondering if they're that stupid, or if they're trolling on purpose. - That's straight out of the book how to annoy users on purpose and laughing out loud about their complaints, it's such an a$s move... From engineering perspective, that's all good. It's all about stupid users. Either you should make the choice immediately, or you should wait for the list to be updated, before continuing. Yep, those complaints are pointless and users are stupid because they encounter this issue. - I'm unfortunate enough to confess, that I'm encountering that issue quite often, when I just forget to wait for the list getting updated. - Of course it could be preferable not to show the options list, before it's updated. Or there could be slight delay after it's updated, so that you can't make wrong chose "immediately" after the list gets updated. Or if the choice is made in very short time frame of the list getting updated, it could ask if you did mean the old or new option. - Yet all of these options probably are way too hard for average software engineer to implement. - Only thing we can conclude from this is extremely bad UX is universal, and nobody gives a bleep about it.
- Lots of discussion and considerations about upgrading my 'battle station' aka Work Station (WS) with new displays and display adapter(s) to allow running four 4K displays simultaneously. Let's see how this turns out.
- Duplicati 2.0 - works great. It's highly recommended backup software, if you need something versatile and relatively cheap. Yes, it's free. But it's totally reasonable to make donations, to keep the software development and maintenance running. It's great software. Much better than many of the reasonably priced commercial options.
- Python Pathlib / path - Quite nice intro to path handling in Python. I've seen just so many fails, because paths are handled as strings and then all the problems are created due to one missing slash or backslash etc. And without proper logging, that might be real pain to solve that issue. It also creates potential security issues when path's not being handled securely. Yet, still things like filename with slash at the beginning or dots in path, do work. So these libraries aren't mean to dealing with path security. /something/../got_it.txt or as well as /base_path/ + /filename won't lead to /base_path/filename but leads to /filename alone. Yep, might be a problem, or not. Depending from situation. One of the reasons why I usually save filename in database, and just use database reference as filename. In that case, it doesn't make any difference whatever the filename is, it won't affect the actual filesystem path at all.