IPv6, Tor, Python, SQLite, Thunderbird
Had long long discussion about "IPv6 ONLY" services, how viable and un-viable those are and what do people even mean by "IPv6 only". Also tested several new DDNS providers with very nice features, including desec.io and dynv6.com. Desec is awesome, they also provide DNSSEC and subdomains for custom domains. Cloudflare does provide DDNS but it would require clients having API keys, which I'm not happy about. Maybe I should recheck the API key rights management, how fine grained the controls can be? Limiting access just to a single A or AAAA record, maybe? Yet I were left wondering why deSEC (as they write it) doesn't support SSHFP records.
Configured a few Tor hidden services with Client Authorization aka HiddenServiceAuthorizeClient. and attended Tor Relay Operator Meetup, just out of curiosity during my summer vacation.
I had a very long and disastrous discussion about file timestamps. No, and no again. Having same timestamp doesn't mean anything else than it's same timestamp, nor having different timestamp means anything else either. You can't possibly know from timestamp alone, if file content is same or different. It's just nightmarish malpractice. Also when people say "same" do they really mean that these are the same or not? Is this same or not? Zip modified = 2022-YY-DD 11:51:44 vs LastWriteTime": "2022-YY-DDT11:51:43.4156743+03:00" - I heard some people are saying it's the same, even if it obviously isn't. Well, is it?
What's New In Python 3.11 (@ docs.python.org) - Let's see. I love the more detailed error messages, so many times, I've used debugger or created test versions just to find out what's wrong with the data, or dumped gigabytes of data into debug logs to see why it actually fails. Like the DivisionUndefined which confused me highly. Because 0/0 and 0.0/0.0 both give ZeroDivisionError, but decimal(0)/decimal(0) gives decimal.DivisionUndefined exception. Also if there are multiple fields on same row, TypeErrors usually just tell you that yep, types are wrong. But what the fields triggering the exception are left in dark. - I really love the sqlite_errorcode and sqlite_errorname extension, helps a lot, in some situations. - I rarely use sqlite3 for blobs, but in some situations the blobopen() can be nice, yet it's hard to see any actual use for that. If the blob is so large that you can't sanely store it in RAM with modern hardware, you probably shouldn't store it in sqlite3 database either. And of course the CPython performance improvements are nice, gotta test and update the development / production environments with this version. Even if the Python performance itself is rarely the bottle neck, almost never with my projects. Oh no! CGI lib is being deprecated, oh well. Time to update some very old projects, which still use it. So sad to see crypt, nntplib, telnetlib and uu libs to go (deprecated so far, but soon gone). Loved those (!). Old school again. Also smtpd is already gone, snif! One of the new features I do love is Exception .add_note which allows developer to add notes directly to the exception, instead of the old school stuff where data was logged and or before stack trace. Now the info can be passed with exception information directly.
Related to Python 3.11 TOML (@ toml.io ), yet another config file format. Oh joy. Yet I kind of like it. It does look like good old .ini but is bit more versatile.
About async, the only thing I would really need is async mssql connector, but the examples with that didn't look too nice. Worst part of course is that single connection won't allow multiple active cursors and means that you'll need to have bunch of connections. So far I've used threadpool which obviously handles the situation very nicely. Yet some day when necessary, I'll switch it to async. But the basic problem doesn't go away, and probably the change doesn't actually do any practical difference, just a bit different coding style.
Thunderbird 102 (@ blog.thunderbird.com) with Matrix support is out, awesome. Yet I'm using more full featured Matrix client usually. This version contains also huge number of improvements to OpenPGP features.