Despite being a "technical person", I didn't own a lot of computers. My first
computer was a 486 running Windows 3.1, gifted by a teacher. The computer
didn't have a lot of harddisk space, but just enough for me to have a taste on
installed a new OS (Windows 95), as a child of course.
Later, my dad gave me his old computer and bought me a laptop when I got
accepted by the university. I used them a lot for games and watching films,
but never programming.
The first computer I bought was a Microsoft Surface 3. At that point of time,
I had been working for quite some years trying to figure out what should be my
career path and what I should have learned "to stay competitive". I was never
on social network but at that time I even created a LinkedIn profile.
The real change of heart was probably because of a few not-too-good-but-not-
too-bad interviews. I studied a bit to get prepared for the technical rounds,
only to find out I didn't actually know many things. The more I thought how I
was lacking, the more I wanted to have a new job. I believed strongly that I
could only learn more if I have a job that let me do more, i.e. programming.
In the end I didn't change my job. Probably I was afraid of the unknowns. But
after quite some more interviews, it somehow clicked in the head - maybe I
don't need a new job, but some new habits. That was the time I bought my first
Linux laptop, a Starlabs StarLite Mk II.
The hardware itself is indeed very easy to fix but I guess it was the early
days so there was something funny with the power button. I simply bought a
replacement part and repaired it myself. The process was indeed enjoyable.
Though the bigger problem now is that the parts are nearly as expensive as a
new mid-range Chromebook.
On the software side, the first Linux distro I used was MX Linux. It was not
installed correctly from the factory, so I had to reinstall it myself as well.
But once those hiccups got resolved, the laptop was very nice to use. I got
absorbed into tinkering with various OS, DE configurations, not to the point
of "ricing" but did spend quite some time for that. Later when I learned more,
I figured out that it was based on Debian. I was think "what? why shouldn't I
use Debian but something based on it?". I switched to Debian shortly after,
then heard about "immutable OS" thinking it was a great idea, I switched again
to the Sway flavour of immutable Fedora. Quickly noticed that it was huge pain
to use as a programmer who needs to test out and install many things everyday,
I jumped back to normal Fedora. However, the more I use Linux, the more I was
confused by how applications put their files into the filesystem sturcture,
and how unstable the OS was. I had a couple of Linux cloud VPS for some web
services that I used daily. I had to setup cronjob to restart things once a
day in order to let them work without crashing and it was frustrating.
I was then thinking about trying BSD, though the main concern was whether the
OS could run Zephyr RTOS SDK properly. I didn't make the switch until the
StarLite stopped working again. Wasn't financially allowed to have many
options, I decided to repurpose a Kangaroo mini PC that has collected dust for
quite a while.
I believe quite a few of us who came from the Linux world did have a hard time
picking the right "BSD distro". To me, FreeBSD seems to be the friendliest one
but it looks to me too Linux-like. OpenBSD seems to be the most secure one but
because of that it is the slowest and has the worst compatibility with new and
swanky stuffs that are 100% no problem with Linux. NetBSD is like a true
classic and SDF uses it, but the update cycle was too long that I wasn't very
comfortable with it.
I went with OpenBSD. My reason for that was, well, if it was really that hard
to use as daily driver, I could always switch to FreeBSD or worst go back to
Linux. To my surprise, the installation process was really really easy. It may
require a bit of knowledge on partitions but one can always go for the default
partitioning. It feels ready to go out-of-the-box, and it is never "slow". It
feels so natural to me that I quickly (manually) migrated even my VPS to
OpenBSD, hosted on OpenBSD Amsterdam. I was even happier because IKEv2 works
out-of-the-box, there is an HTTPD server and an ACME client there already, and
PF is just like a total upgrade.
Let's leave the VPS for another time and go back to the mini PC. So besides
the very smooth installation, almost everything works as well. The only thing
is the mini PC has a battery inside but OpenBSD doesn't know about it. I then
reinstalled the things I used on the Linux machine. Due to some unknown issue,
modern browsers (Firefox, Iridium, Chromium, etc.) would make the PC crash.
The screen just flickers and it would magically continue to crash a minute it
was restarted and loaded into the X session, unless I leave it for a few hours
to cool down, from some unknown curse probably. I am okay to not use modern
browsers as I have a smartphone, but Zephyr SDK and TinyGo, the tools for
building microcontroller application, also didn't work!
If I hadn't migrated the VPS, I might be using FreeBSD today. I don't do
embedded programming for a living so I can look for alternatives. In the end,
I am now learning to do "bare-metal" programming, read the MCU's datasheet and
use the vendor's libc and GNU compiler to write codes. More fun to be honest!
I am also using Lynx a lot now, mainly for tutorials and man pages that need
no graphics. I have a minimal i3 setup and it looks good enough to me.
Everyday I just use xterm to start SSH sessions, Vim and Lynx, firing Git
commands, and that's it. Everything I installed, the settings will be under
/etc and /usr/local, which makes me feel super organised. The man pages are of
the highest quality and the system is just super stable. A real joy to me.
I was planning to buy a Thinkpad, but now I think I will just stick to this PC
for longer!