I'm not nearly educated enough about this subject to try to summarise it, but the research being carried out by Michael Levin's group into how organisms control anatomy growth is completely fascinating and has the feel of a breakthrough. Almost all the talks I've seen are good, for example:
I agree that reliably writing files is a sneakier problem than it first appears and that the likes of SQLite have already solved it.
Despite that my preference these days is still for a DB, like almost all dependencies, to have to justify its existence in my projects rather than defaulting to it as many seem to favour. It's straightforward to add SQLite but I'd typically rather take a little extra pain around the filesystem upfront to not have to deal with all the extra complexity of an SQL database if I can avoid it.
Naturally, this kind of simplicity is just one factor among many such as the size and shape of the data, expected access patterns and a host of others to weigh up during the trade-off decision.
Is the swap technique you mention writing to a tempfile and then performing an (atomic) rename to overwrite the existing file? I understand how that could cause data loss if the process exited before the rename but I don't understand how it might cause corruption. Are you able to expand on that?
A related thing I discovered recently is the potential non-atomicity of writes using O_APPEND on Linux[1], although I couldn't get the attached test program to fail on my machine. I would love to find some kind of confirmation that this behaviour has been changed and that appends can be relied upon to be atomic.
In the application I'm working on at the moment I've managed to get add more certainty around this stuff since I'm only ever appending to the file in 4096 byte chunks, so can perform a simple file size check to see if data was written completely or if the file needs to truncated to the nearest multiple of 4096. I'm fortunate that it prevents having to do something like open it read only to verify contents as you mentioned.
> I have a deGoogled phone running Lineage, but even with that, no Google Play Services, and some custom settings (like changing the captive portal URLs), there's still network traffic to Google.
I'm running LineageOS without Play Services too and didn't about know this!
Do you have any reference materials (I guess getting busy with Wireshark and the source is my next step)? I found this Reddit thread[1] talking about a connectivity check but am keen to start tracking down any others.
When nearing your final resting place and contemplating all the rich intricacies of your life, do you want to be one of those people who didn't learn to juggle? No. That would be silly.
So take up juggling!
Aside from obvious things like becoming more coordinated and increasing your spatial awareness, it will teach you a lot about learning. It's fascinating when a challenging new pattern moves from deliberate and entirely conscious effort to straddling the conscious/unconscious divide until it gets bedded in to your nervous system and you can do it without thinking.
Juggling is almost entirely non-competitive and jugglers are overwhelmingly supportive and eager to teach and learn new tricks from each other. It doesn't seem to be possible to get into it without also wanting to teach anyone who wants to learn. There aren't many egos getting in the way, which I find rather pure and beautiful.
Contemporary juggling is hugely varied. You can go from technical and accurate numbers jugging (high number of objects) to flowing improvised moves to something that is as much dance as circus stuff.
Also siteswap[1], a notation for juggling patterns, is cool!
Another thing you might want to investigate (for Linux, not sure about cross-platform alternatives) is OverlayFS[1], which allows you to create union filesystems where some layers are read-only and the top layer is read-write. This can allow destructive operations like rm without actually removing anything from the lower (read-only) layers, using whiteouts.
I'd have replied to this on lobste.rs but don't have an account. I'm not a heavy poster but I'd love an invite if anyone has one going :)
I've had very positive experiences with Mail-in-a-Box for exactly the sort of situation you describe. I think it's a great project that pulls together other packages very nicely.
I was fed up with configuring everything constantly and tuning this, that and the other. These sort of threads always seem to have plenty of people who have a bad time running their own mailserver (and of course your mileage may vary), but I don't really have to touch it at all.
I hear you! I'm in my late 30s and, although I don't have a family, I'm in a similar sounding situation myself. My first act sounds pretty similar to your own and, for one reason or another, in the last few years I've undergone a similar sounding shift.
Although it's all for the good, I've found the shifting identity tough (I've always had a very clear self identity). When talking to others, any description of myself or something in my life that I've come out with has been accurate but several years out of date.
Very recently (last month or two) I've started to notice a little bit of change around this. I suppose enough things have happened to this version of myself that I'm starting to build some identity around that, as well as just being more comfortable with the new situation in general. I have also been reading and thinking about a lot of Buddhist philosophy, which I think has helped give me some perspective.
I hope you're able to find whatever viewpoint you need to move through this situation. I'm sure that you will - life has such a broad and deep variety of experiences and there are many different avenues for adventure and reward.
I'm a big fan of solving your own problems. Your problem seems to be coming up with problems to solve. Perhaps you could work on something that helps people to find problem to solve?
I really have difficultly seeing how this could be considered anything other than natural. We, our actions and our impacts on the rest of the environment are, after all, born of the very same nature.
I have have a hard time seeing what there is to mock about your opinion of shells. I absolutely consider them languages - better at some things, worse at others.
Seems like a good time to point to Urchin, the Bash-ish like shell I wrote that also allows writing Ruby directly on the command line. I've been using it happily for years but haven't packaged up a release for a recent version:
https://www.youtube.com/watch?v=Z-9rLlFgcm0
Creating new species without genetic changes seems wild!