807 karma · joined March 23, 2009
(I understand being worried about the license of libs you're going to deploy, but the license of cli utils isn't something you need to worry about "infecting" your proprietary code.)
I've been looking for a modern self-hosted chat solution. I want it to be XMPP so badly (running XMPP with something like prosody is so convenient). The clients are really letting me down though. Desktop clients are old-fashioned and awful (I could get behind that, but I don't think my kids could). The mobile situation is even worse.
The new-fangled chat solutions (Matrix, Zulip, etc.) are interesting, but the operational requirements are insane (in the case of Matrix, I'm also very nervous about reliability).
I can't say I'm super hopeful, but I'm rooting for you, XMPP.
One big plus for me is it syncs with my phone (where I do vastly prefer Brave to Chrome).
This course is a pretty great intro: https://pragmaticstudio.com/phoenix-liveview
(I'm assuming this is starting on a machine that already has windows on it because that's how my computers generally come (although maybe not the future since Lenovo is selling Thinkpads with Linux now):
Step 1. Install Ubuntu (let it set up the dual-boot stuff for you). The main advantage of this approach is I don't have the issue where grub can't boot windows as described in the article. (NOTE: ubuntu's installer won't do encryption in this setup for some reason: Ubuntu please fix this and save me the following steps!):
Step 2: reboot into the installer. Now things are going to get crazy.
Step 3: shrink the ubuntu partition as small as it will go (resize2fs -M ...). Then create a new partition of the same size at the end of the drive and copy the data over to the new partition.
Step 4. delete the original ubuntu partition. replace it with a /boot partition and a luks partition.
Step 5. Copy the boot stuff into /boot, copy the rest of the data onto your new encrypted / partition (i usually do lvm here also). chroot into the /, do the mounting stuff TFA suggests, install lvm/dmcrypt/etc. Reconfigure your initramfs and run update-grub.
Step 6. Delete the copy of the original ubuntu partition made in step 3 and resize the encrypted partition as needed.
OK I agree that's a pretty ridiculous sequence and I wish Ubuntu would do it for me, but it's pretty cool that it can be done at all (takes about an hour).
The one really terrible thing about the current iteration of Snap (that I think would be trivial to solve?) is that you have to remember to save your work. I don't think that's a normal thing for people to think about on the web in this day and age, and I have seen many students (and my own children) lose large amounts of work due to this. It's extremely discouraging.
Other than that though, the snap language/environment is quite nice.
It is soooooooooo nice to be back on Ubuntu. I appreciate the people that like and develop Arch linux (and especially anyone that contributes to the wiki is a true hero), but it's not a good distro for your daily driver:
1. "immature" packaging. It's crazy to me how much manual intervention is needed during routine package upgrades. This can be major break-your-system stuff (they have a mailing list for those types of changes so make sure to subscribe), or just stuff that could be done for you but isn't (like updating your db during postgres upgrades).
2. Tiny official repos. You're going to have to rely on the user-submitted repos for most of your packaging needs. It's cool how easy it is to make a package and submit it to the AUR, but I don't love the idea of installing random user-submitted stuff for the bulk of my software needs.
3. No debug symbols. Maybe this doesn't affect most people but it is very annoying that there is no (convenient) way to get debug symbols for a package /lib. If a program crashes on you and you want to fix it, the official solution is to rebuild a package (and all its dependencies as necessary) on your own system to get debug symbols. In contrast, ubuntu/fedora/etc. will install a debug symbols package for you (automatically, I think) when a program crashes.
In terms of learning Linux fundamentals: arch could teach you some things (LFS would be even better--but I wouldn't sue either for my daily driver when better options exist.