“Don’t cross a bridge until you come to it.”
(Russian saying)
“Don’t trouble trouble, until trouble troubles you.” (Say that three times fast!)
In my own case I know that - at least some people - think I’m “tilting at windmills” or, (more diplomatically said), investing time and resources into solving a problem that isn’t a problem yet.
Maybe, even possibly true.
In my case, the primary constraining resource is my own time. With a wife, two granddaughters, several doctors, and God only knows what else vying for my time on a daily - often even hourly - basis, everything else is constrained by the small slivers of time I have to invest.
Because time is the primary constraint, anything I can do to make my time spent on Charlie more productive is a bonus, and I sacrifice other potential constraints in favor of time.
In addition I have a mental roadmap of future projects, each of which involves using a different operating system for a different project in a different way. Likewise, I work most efficiently if I have several pots, (projects), on the stove in front of me. This way I can work on something until I either finish it, get sick of it, or I reach a roadblock that stops me. I then switch to the next project and continue until it’s done, stopped, or the angst meter is up against the pin. Then I rotate to the third project, and so on.
This “rotation” may happen several times a day, depending on what I’m doing. (Interesting! I wonder what happens if I try that in R4R, or on the 64 bit Raspbian spin?)
The result is that I swap SD cards a LOT - which is not good for the 'bot, nor is it good for the SD card. Seeing as I’ve already broken several SD cards simply by trying to remove/insert them, my goal is to reduce and/or eliminate SD card swaps. And it’s not just the mechanical risk; card swaps take time. With my shaky hands, (and limited mobility post COVID), card swaps are a non-trivial process, taking up an inordinate amount of my time - up to 15 or 20 minutes per swap - unless I get really lucky.
As a consequence, I went out and invested some non-trivial money in two (small sized) USB external 500 gig SSD drives. The goal being to install an entire library of target operating systems on them, (one of them), the other is so that I can try more than one method at a time, or “save the game” if I’m planning on doing something potentially stupid. With this, I can freely move from one O/S to another in the time it takes to reboot, without risk of breaking, or loosing, a tiny SD card.
Additionally, the SSD’s, even in a USB-2 slot, are considerably faster than even a very good, expensive, high-end SD card, so reboot time, (and potential I/O bottlenecks while working), is reduced to it’s absolute minimum. With this, the “cost” of switching context is minimized.
Since I am also researching the benefits of “local” development on the 'bot, by binding Visual Studio Code, (on my laptop), directly to the 'bot itself, I have to install a special client/server application on the 'bot for VSC to connect with. (And we all know how quick, small, and efficient Microsoft code is. )
All of these things consume storage, I/O, and processing time. By using large partitions on very fast media, using the fastest Pi I can get, these “costs” are minimized, making the small slivers of time I have to invest in this more efficient and productive.
Is this really a “problem” NOW? Is it absolutely mandatory that I solve this “problem” NOW?
No. I could continue working even if I don’t do any of these things.
However, (IMHO), it’s like buying an air-conditioned car when it’s -20 outside. I’m going to need it anyway, and it’s cheaper to buy the car now when dealers are trying to make their end-of-year sales numbers, (and my projects are still in relatively early stages), rather than waiting until my projects are in full bloom and mucking around with partitions and installations could cause irretrievable damage. Or, at the very least, be a serious pain in the tush!