Different Translations
Corrections or Updates
Additions
Different Illustrations
My Google skills are failing me and I can't seem to get a clear answer if the Scandinavian layout fits on ISO keys.
Time of use billing. The battery is generating ROI if it can arbitrage energy over the day.
Net metering + solar. If net metering is not available, or sufficiently discounted, and your energy usage is not high enough during the day to use all your solar power, then batteries generate ROI.
Grid stability. A battery effectively is insurance against outages of a few hours. With sufficient solar and rationing, that may extend to week long outages (think natural disasters).
Yes, this isn't a problem with public domain works; but those have bigger preservation problems. DRM is a self-inflicted wound.
[0] I resisted the urge to write "author" here as American copyright is assignable. It shouldn't be, because this assignability is usually demanded up-front by publishers.
This doesn't have to be true. We could have licenses that are perpetual.
I feel a briefer and more-to-the-point "When To Refactor" guide is to ask the following questions in the following order and only proceed when you can answer YES to every single question.
1. Do we have test coverage of the use-cases that are affected?
2. Are any non-trivial logic and business changes on the horizon for the code in question?
3. Has the code in question been undergoing multiple modifications in the last two/three/four weeks/months/years?
Honestly, if you answer NO to any of the questions above, you're in for a world of hurt and expense if you then proceed to refactor.
That last one might seem a bit of a reach, but the reality is that if there is some code in production that has been working unchanged for the last two years, you're wasting your time refactoring it.
More importantly, no changes over the last few years means that absolutely no one in the company has in-depth and current knowledge of how that code works, so a refactor is pointless because no one knows what the specific problems actually are.
#2 Are there related changes on the horizon for the code being refactored?
I think more qualifications than that probably miss times you should refactor.
#3 Has the code been changing recently OR have changes been delayed because modifying the unrefactored code is considered too difficult.
I've seen too many times where unrefactored code is considered too dangerous/difficult to modify even with total test coverage. Refactoring is a necessary step towards self documenting code in those cases.