I feel bad for the unsolicited distro plug though especially since you already have a solution that works well and you are familiar with, but I thought it might still be useful to mention it. I'm not sure if uBlue would even be better vs your current setup. Seems like netboot would still be needed to get the latest version without an extra reboot.
[0] https://youtu.be/BD8Nf09z_38 (Timestamp 18:40)
For a lot stuff on my local network I don’t want the hassle and there are loads of use cases in local networks for normal people to just have port 80 no certs on something like 192.x.x.x because there is no easy way to set up public certificates for that and I don’t want everything hostem on cloud - some stuff I want to still host for myself in my local network.
Corporations or companies should not do that - even internal networks should have proper certs and encryption but it also is not that easy.
Stuff sent over the internet for others to see should have TLS always because you don’t know where your packets travel.
Tbh I don't see what's hard about this. All you need is an A record pointing to your 192.x.x.x, acme capable dns host and a modern reverse proxy. You can even use a free ddns service if you want. Wouldn't bother with this for development, but anything hosted for longer than a few days absolutely yes. Imo not getting browser warnings is alone worth the few minutes it takes nowadays.
But also, rewriting history only works if you haven't pushed code and are working as a solo developer.
It doesn't work when the team is working on a feature in a branch and we need to be pushing to run and test deployment via pipelines.
Weird, works fine in our team. Force with lease allows me to push again and the most common type of branch is per-dev and short lived.
Matt Godbolt wrote about it recently.
https://xania.org/202512/21-vectorising-floats
TLDR, math notation and language specify particular orders in which floating point operations happen, and precision limits of IEEE float representation mean those have to be honoured by default.
Allowing compilers to reorder things in breach of that contract is an option, but it comes with risks.
Which model? Was it the FP1? It sounds like your friend was extremely unlucky - FP2 is 11 years old & there's still (a limited subset of) parts for sale for it (display & camera). FP3 (7yo model) still has all the parts for sale.
That said - I'm critical of another aspect of device longevity: software support. I upgraded from my (still working) FP3 to the FP5 because apps I needed stopped working on the highest version of Android supported by FP3. That Android version is still officially supported by Fairphone & receiving security updates but without major version upgrades the app support can be problematic. Obviously that's ultiamtely the fault of bad app devs, but ultimately it's hard to overcome.