💾 Archived View for tilde.team › ~bh › gemlog › 007_2022-04-26.gmi captured on 2022-04-28 at 19:14:20. Gemini links have been rewritten to link to archived content

View Raw

More Information

-=-=-=-=-=-=-

I am so dumb so I use FreeBSD

I have been using Linux for 18 years (have never tried to count that until now, wow) and during that 18 years, surely having a lot of *struggling*, I have never feel so *overwhelmed* like this moment.

Struggles are enjoyable. Someone may want to have a system that "just work" so they can fire up their familiar office suite, media player, browsers, etc; someone enjoys spending a whole day getting Gentoo run on a new hardware, harden their Tor onion service with Unix socket, compiling Python packages with musl C, setting up their ultimate Emacs… It may look like struggle to some, but recreation to the others.

But overwhelmingness is not enjoyable, and it's not struggling wrapping yourself around unfamiliar technology, it's poor design. What I'm referring to as "overwhelm" is the excessive amount of package that have essentially mutual function at core. Of course, they exist for a reason, they have differences, and people praise Linux for the freedom to mutate your tools. It might be a philosophy, but usually people don't take philosophy as a guide, they take it as an excuse. At first there were Debian, RHEL, SUSE, Gentoo, Arch, Slackware… to name a few. And they start to build up centralization and vendor lock-in. POSIX is not enough to provide a seamless experience between systems. You can be an expert in Ubuntu, but a total novice in RHEL, see what I mean?

First is the package managers, deb, apt, rpm, yum, dnf… Then the firewall, you cannot find `ufw` on RHEL as well as `firewall-cmd` on Debian. And then comes the network managers. One may reason that you can pretty much remove the pre-installed thing and install your familiar tools. That's true. Nevertheless, you end up having a Frankenstein with a bunch of thing that essentially does the same job. One may write up a beautiful tutorial on how to setup a home lab, but then you realize they're using Ubuntu, and there's no adaptation for other distro. In the end, if you follow all kind of tutorial on the Internet, and you don't know how to adapt the setup from one tool to your tool, now you have two options: either use Ubuntu and cope with all the bloat gimmicks you never use, or install all of the tools mentioned in the tutorial on your distro. 3 compilers, 4 DHCP clients, 5 firewalls, what else? People cannot have enough effort to write tutorial for many variants of system. I don't encourage a monopoly solution like Windows either, although I understand why people prefer things that "just work", to avoid all of the aforementioned overwhelming. And this reality bugs me a lot.

I can't be smart enough to know all the things. If your company use a distro, it's nothing different much from using Windows at this moment. (1) I don't want to install Ubuntu on all machines in my house because I'm so familiar with it. (2) I don't want to install RHEL or Arch because they have a different set of tools comparing to my jobs, it's like I have to use Go at work and must reimplement all the thing in Rust at home. (3) I don't want to turn my home computer into Frankenstein with all the things to do the same job, but there's no documentation already, or even if there is, it gets back to the problem (2), I don't have enough effort to read documentation for many things that does the same job. It's paradoxical, it's contradictory, and I guess this kind of segmentation has permanently existed in the community, there's nothing to do and should do about it. And it needs something to neutralize this situation, the only thing one could to is to find a thing to settle themselves, thing that is not crazily overwhelming relatively persistent.

I have used FreeBSD before for a year (actually install it for my mom's computer), got nVIDIA Optimus working, and audio working. And yes, experience from Linux does help, but there are things to learn like the init system, the (da)sh shell, and the BSD userland. And I like it. I like the writing style of the Handbook and the simplicity, there's no syntax sugars added to, at least that's what I saw while scratching on the surface. So I guess this is it. This is the moment to stick with what makes me happy.