My next laptop will probably be a Thinkpad T480 from Minifree. But I reckon it will be a while before this one breaks in an irreparable way.
CAD + ML is certainly difficult, maybe that needs a dedicated machine you only use for that? But that will increase costs overall. I’m also not sure how to find PC parts that I know won’t need dedicated firmware. So that part is definitely more tricky, I’m sorry I can’t be more help here :(
As for Matrix and XMPP, I started off with Matrix and found it pretty good for bridging lots of different networks together. But, over time, I came to prefer XMPP for a few reasons:
- Ultimately, I just don’t trust Element, and they do so much of the work. They complain that people are dependent on them and don’t give back, but they were the ones that created this dynamic in the first place. They are a single actor who own the dominant server, clients, and flagship instance, and can really push around the ecosystem in a way that works for them.
- XMPP is more community oriented, no one person can push through changes either at client, server, or server operator level. XMPP is based around extensions and there is an expectation that not every client or server implements every extension. That brings the con of inconsistent experiences, but at the same time, it is much more resilient over the long term (Matrix is now having to deal with the same fragmentation problems that XMPP started experiencing, and building solutions for, 20 years ago).
- XMPP’s network is less centralised, there’s not a mega-server like matrix.org with a lot of power. When matrix.org goes down (which happens semi-regularly), there is a big impact. If a single XMPP server goes down, it doesn’t cause nearly as big a problem. And, there aren’t those mega-instances with scaling problems, so the servers don’t go down as frequently anyway.
- XMPP evolves more slowly and gracefully IMO, as it is already more established (might be a con depending on your worldview). I run debian stable and an update across the Matrix network broke images on my Matrix client. That just doesn’t happen on XMPP, you can lag behind the leading edge for a couple of years and things don’t break even as the network evolves.
- I find XMPP easier to self-host - again subjective, but I could just install
prosody
via Debian’s archives, and once it was set up, I didn’t have to touch it. I update it with the rest of my server every 2 years, and I don’t fall behind the rest of the network or miss out on much in the meantime. Meanwhile, I have to pay much more attention to my matrix server, I get the software from upstream and not from my distribution, and there are more regular changes that I have to pay attention to.
As for advantages of Matrix:
- They have a flagship client that is available everywhere and has a decent and consistent UX. That name recognition makes it easier to get people to sign up. The XMPP community have done a lot of work to make signups work easily in a decentralised way, and projects like Snikket aim to solve that name recognition and consistency problem, but it is not 100% perfect yet.
- Bridge software to proprietary networks is more actively maintained in Matrix. There is work going on to improve this in XMPP, but I think many in the XMPP community moved focus from bridging to making the first-party experience better.
Many of the pros and cons are based on values (e.g. living on the leading edge vs using something more mature, preferring community based solutions vs commercial ones etc.), so I totally understand and support people who use Matrix instead. Ultimately, both ecosystems can cooperate, learn from each other and are millions of times better than the proprietary networks. That said, above is why I came to prefer XMPP.
It’s a good idea, but you’d ultimately have to trust the project to tell the truth about whether they really are free software or not.
That sounds simple but, especially around the edges, people can disagree about what is free and non-free. It’s quite common for free software projects to include some non-free components, either intentionally or unintentionally.
For instance, a project that doesn’t really know or care about freedom could advertise itself as open source, but include blobs, or use a non-standard license that doesn’t actually give you the four freedoms.
Even well-meaning projects can accidentally include incompatibly licensed code, or code that they actually don’t have permission to distribute to you, by accident.
A good heuristic, for Linux, is that if it’s packaged in Debian (ignoring
contrib
,non-free
ornon-free-firmware
) or Fedora’s archives, it’s probably free software. This is because those communities really care about freedom, vet the packages for licenses and check that the four freedoms are actually given. Things do sometimes slip through, but when they are found, the packages are fixed or removed.For Android, if it’s on F-Droid, it’s almost certainly free software, for the same reason.
Meanwhile, the FSF have a free software directory that contains a listing of programs they consider to be free.