Email. Python, QOA, QOI, UDP, Omnibus, Nostr
Email deliverability, once again. One organization just informed me that, they'll be only accepting email ie. inbound SMTP connections from their self-managed IPv4 allow list. - Please let us know, which servers are sending mail to us and why. - That's one way to deal with email problems. Deny list doesn't work, only deny everything except what's on allow list works. And this is exactly the approach they're taking. - This made many other email administrators angry, because "this isn't how email is supposed to work" was their view.
One project required that all data stored to database has to be JSON (for various reasons). I were saving quite complex object structures and mapping those to JSON annoyed me of. Then I just stored {"key": key, "value": base64.b64encode(pickle.dumps(value)).decode()} ... And finally any pickable (@ docks.python.org) object can be stored and restored easily.
>>> key = '123'
>>> value = [1, 2, 3, 'booom', decimal.Decimal('123.123')]
>>> {key: base64.b64encode(pickle.dumps(value)).decode()}
{'123': 'gASVNwAAAAAAAABdlChLAUsCSwOMBWJvb29tlIwHZGVjaW1hbJSMB0RlY2ltYWyUk5SMBzEyMy4xMjOUhZRSlGUu'}Also made some tuning for custom classes how __getstate__ and __setstate__ are being handled, making the class handling more efficient ignoring unnecessary date.
Time Domain Audio Compression at 3.2 bits per Sample using QOA the Quite OK Audio Format (@ phoboslab.org). It's nice that people develop simpler algorithms. I find out that many things are very very complex nowadays and if you have to implement something, it's going to be a big and very demanding job to get it done. Also check out the QOI image format (@ qoiformat.org), I believe I've mentioned it earlier.
Had to write some UDP processing code, which listens on all interfaces including IPv4 & IPv6. It took a while to figure out how to enable socket option IP_PKTINFO and read it from the ancillary data stream for the UDP datagram. But now I can use single listener to listen on all addresses on the server easily, including IPv4, IPv6. Awesome. kw: IP, networking, UDP, IPv6
One friend had issues while updating NYM-mixnodes. I helped him to get it done. It seems that the upgrade feature doesn't update the configuration files manually, and some times documentation is poor what hangs exactly need to be done, and what values to placed in the files. One way to work around this, is just to reinitialize the node, keeping the node key files. Got it done. But it's kind of annoying that down time could lead to slashing, and if updates won't get smooth, you could get end up trapped. Especially if you don't have fresh backups about everything before attempting an upgrade so you can easily roll back if necessary.
Having fun thinking and implementing requirements of EU omnibus directive (@ eur-lex.europa.eu) ( 32019L2161 / . Especially the part of The Price Indications Directive (98/6/EU). As usual people start thinking about things, when rules are being enfocred.
The Untold Story of SQLite (@ corecursive.com). Good story, I really love the testing and quality control aspects.
Nostr (@ GitHub), yet another client / relay based solution. Very similar to SimpleX chat's design. Yet, I have to try it and read more about it.
FOSDEM (@ fosdem.org) '23 Bizzare and Unusual Uses of DNS talk mentioned DnsKV (@ dnskv.com), haha. Funny stuff.
Transmission BitTorrent Client 4.0 released with many new features. It seems that P2P clients are still being developed, even if those are largely phased out. At times I hear people are having problems of sharing large files to crowds. Why don't they use BitTorrent? If I would need to share 50 GB disk image to 10000 globally distributed users, I would naturally use BitTorrent for that. If file(s) are small enough and user crowd is small, then I would just use standard VPS / CDN for distribution.
Something not so different? Perlin noise (@ Wikipedia).
2024-02-04