Cwtch.im, Cabal.chat, SQL, OpenSSL, Windows, Xubuntu, BtrFS
Quickly checked a few new privacy messengers which are both pretty raw at this point:
Cwtch.im (@ cwtch.im) - Cwtch runs routing servers for groups, but all communication through servers is encrypted. Cwtch communication runs over Tor. And two users can chat in p2p fashion. Which means both parties need to be online at the same time. Similar limitation to Briar, which I've mentioned several times.
Cabal.chat (@ cabal.chat) - Cabal chat is peer-to-peer (p2p) protocol based, so there's no need for servers.
Had fun optimizing tons of SQL queries. Some were completely working, but run repeatedly, and contained extremely heavy joins with cast. Of course those lacked all measures to limit the amount of data to be joined. I added few timestamps and dates to the data sets, which now made the query lot faster and about 99,99% lighter to run allowing efficient indexing and where filtering. Unfortunately the database structure prevented me from getting rid of the cases, nor adding columns which could have been utilized for much more efficient joining.
Tested OpenSSL and TLSv1.3, tls1_3 in PSK and Secure Remote Password (SRP) (@ Wikipedia) modes. Works fine, for cases where certificates are mostly useless. Closed environments where PSK is shared just between server and client, and randomly generated. But why not Password authenticated key agreement (PAKE) (@ Wikipedia) ? Yet, SRP (SSLv3) and PSK (TLSv1.2) are both seriously outdated and not supported by TLSv1.3. So it was kind of let's see if this works, but there's really no reason to use either of those options.
Got sick'n'tired of totally illogical requests again. Often it seems that requests are made without thinking the problem and understanding it. As example if there's field _processed_ which is boolean. And that field is always updated from false to true and only if it's false. Then you'll get request from customer that there has to be code that checks that the _processed_ can't get updated if it's true. But it never was. Gives impression that they have some other problem, but they're totally misaddressing it. I did check all the related things and I'm pretty sure this is not the problem. Yet I added the code, which doesn't make any sense, because it had to be added. I also re-checked all transaction locks and atomicity, so it's not about that either. I'm pretty sure that if the problem does exist at all, the something else is either changing the processed status back to false, or, adding another record which is similar enough with false, which then gets changed to true. Yet either of these cases mean, that the program which updates false to true, was malfunctioning. - Many parts of logic are very complex and you just can't go and change "something", it'll cause system to completely break down.
Whoops, some domains were missing DMARC report permission record. - Fixed
I'm so happy that Edge, Office tools and Windows aren't seriously bloated. 32 GB ram and 32 GB swap, system runs out of memory in 4 to 5 days and crashes. Oh joy. Yes, memory compression and page de-duplication are also enabled.
Continued debugging the Xubuntu (@ Wikipedia) login greeter issues. Now it's clear, the problem is USB related, as assumed. Technically everything is working, except USB bus, which holds all the input devices, so... But I still don't understand how the USB init fails, if I'm not pressing keys on the keyboard, but works, if I do. Way way confusing, to me it seems very clear software problem. Something has changed in the way how Kernel initiates the USB bus(es) on the system. Problem started with update and the behavior is systematic. Boot without any keyboard input (read USB traffic) -> fail. Boot while pressing buttons on keyboard -> works. Strange.
Still trying to get the issue with my Outlook email address fixed, that the envelope from is invalid address. Now it's delegated to Microsoft support Tier-3 (just wondering how many they got?). Let's see if the problem finally gets fixed. I've posted about that many times. Update: Didn't change a thing. kw: outlook, invalid envelope from address.
Studied Btrfs tail-packing feature. Seems that it only tail-packs small files, as in inline data with meta data in leaf block. I don't know if that's actually called tail-packing. Shouldn't real tail packing also pack the last partially filled blocks of different files together (?). kw: btrfs, block suballocation (@ Wikipedia), tail merging, tail packing, inline data. Yet with current disk capacities, is 4096 bytes so much, it needs to be sub-allocated? And if so, why not use database instead of file system directly(?). Documentation was confusing, I guess for real answers you would need to read the source code.