2026/05/09
I don't have much to add to the discussion on my linux journey, having very recently posted an update on this topic in my last blog post. For the sake of including some content here I guess I'll mention that I managed to break my install again a couple of days ago. I've been in the habit of just sleeping my laptop overnight as I've been doing a lot of work on it the last couple of weeks. At some point I updated a dependancy for some application I had installed - which it was is unknown to me. As is becoming thematic at this point, turns out that package was a dependancy for a lot more than just the little application I had installed. So after restarting my machine a couple of days later, my display manager wasn't running any more. As a user the experience was that I'd see the confirmation that my sysetm was loading the linux kernel, and then I'd see a blank prompt with a cursor for a few seconds, and then the cursor would disappear and I'd just have a black screen in front of me.
After a few moments of panic I cooled down and started problem solving. It took me a few tries to remember how to switch TTY sessions (ctrl+alt+f-key, if I remember correctly,) which to my delight managed to bring up a TTY for me. So at least I knew I hadn't bricked my install entirely, there was just some weird software glitch going on. Got myself logged in, pulled up the journal logs and started scrolling looking for errors. Ahah! Display manager is crashing! That's when it occurred to me, that package update I did must have broken something. Easy enough fix, unfortunately my latest rsync backup I have of the system is from a few weeks ago and I cannot be bothered to figure out how to update my rsync through the terminal right now so I decided to just bite down on the pillow and go in dry.
yay -Syu
Database syncs seem to go fine, I confirm the update procedure, wait around for a while as the download occurs (my internet in Thailand is horrible,) and as the process comes to an end it just spits out a bunch of errors and made no changes. God damnit. Being in Thailand has made working with package managers way harder than it makes any sense, I never had issues with mirrors or connection issues back in Canada, and this is like the fourth or fifth time in the last month that I've run into similar issues here. By now I have a basic understanding of my mirrorlist, how to update it, etc. So I try the old faithful...
sudo reflector -l 5 --save /etc/pacman.d/mirrorlist
Aaaaand it doesn't work. What the hell?
sudo reflector -c TH --connection-timeout 30 --download-timeout 60 --sort score --save /etc/pacman.d/mirrorlist
Aaaaand for some reason that worked. I think I was hitting timeouts in the initial attempt, but I'm not sure. Let's try that again...
yay -Syu
Alright, looks like it's updating! It asks me to update my keychain, this is sort of a new subject for me so I do some research on my phone to understand what it's asking me for, I validate the key it's asking me to install through the arch wiki, everything looks good. Alright, go ahead and update the keychain. Aaaand it breaks. WHAT THE HELL? This is a whacky problem that I still really don't understand, but after a bit more scratching my head I wound up just running
yay -S archlinux-keyring
This updated my keyring with no issues.
yay -Syu
Finally, everything went according to plan. Looks like the update went through. Now I could have probably just manually started SDDM and carried on with my day but I'm not really sure if anything in my program stack wouldn't like that so I just restart the machine... GRUB select Arch... Fingers crossed... Yaaaay my login screen appears! This is the first time I've had a breaking issue with my system that I was able to solve entirely within the system itself (no use of livedisk.) So, I'm a little proud of that at least.
Suffice this all to say, the lesson I have learned inherently at this point is thus: If I am trying to install something, and it complains that I have an outdated dependancy - DO. NOT. UPDATE. THAT. PACKAGE. From now on, that will be a signal to me that it's time to get my rsync backup updated, check the arch wiki for any update intervention notices, and just update my system. At some point I probably ought to bake system updates into my monthly schedule or something like that. Maybe on a bi-weekly schedule or something like that. Meh, future me problem.
So I'm getting ready to push my recent updates to my homepage up to the actual neocities page. I'm not exactly super excited with how everything looks, but I'm going to push it up anyways to keep the momentum on this project moving forwards in some sense. Admittedly, it's closer to what I actually want it to look like than I thought I'd be able to get it to today. The seed in that statement is my frustration with this process.
Most of my coding experience is in, well at this point probably either c# or typescript actually, although I tend to identify myself more as a python programmer. The truth of the matter is if you were to stick me into a project in each language, I would probably have a lot less resistance working with c# over the others, and I'd slide into typescript quite naturally, but python I'd spend quite a bit more time pouring over docs. Point being, I don't have much experience with HTML and CSS, although I have played around with them in the past. I guess my frustration doesn't really stem from HTML at all, that much is pretty easy to work with. In truth my gripes lie with CSS.
I've argued in the past that HTML/CSS are not programming languages, without really knowing what I was talking about. I'd just be echoing the sentiments of things I'd heard online or whatever. But now I have some real practical first hand experience with it. Granted, that experience doesn't run terribly deep, I still feel pretty adamant that this is not a programming language. The implications of that statement to those using it is irrelevant to my point here though, so again I digress. My problem is that working with this thing feels like I am tangling with an ancient dark arcane art that was intentionally sealed away thousands of years ago - not for the destructive potential it wielded (although, arguably, that is true too) but rather for the pain and suffering it caused the students of that art to experience while working with it.
This script (CSS) has been developed over multiple decades at this point. Within it you will find vestiges of its ancient self, which while still functional you technically shouldn't be using. In those cases there's some modern improvement to the old solution that you're meant to use instead. You wouldn't know that without pouring through the documentation though. And that brings me to the documentation - dear lord. I can easily look up a property, but how do I figure out what definitions are valid for that property? The meme "how to center a div" is a perfect exercise for someone to go through to understand everything I am saying here. You could use flex, you could use a grid, you could use absolute positioning (but only if the element has a parent), or hell you could even do some hacky manual positioning stuff. Which one is the correct solution? I don't know, don't ask me.
All that is still really besides the point though, so I digress - AGAIN. My fundamental issue here is that working with CSS is just nothing like working with a traditional programming language at all. When I write code, no matter what language it is, the code that I write is generally self-describing. Unless I go out of my way to make things more convoluted for myself, what I write is what I get. Whereas with CSS, I feel like this is just not really the case. Maybe with a lot of experience with the tool at some point a person starts to feel like it is self describing in a sense, but honestly my impression I get from the community - at least the parts of it I am exposed to - is that this really isn't the case. The deeper you get with it, the more convolution layers you start to expose yourself to, the more problems you find yourself having to solve.
I'm not sure if I have it in me any more to actually build this thing from scratch. I'm not going to give up just yet, because I have a sort of conviction to do this "the old-school way", but I guess we'll just see how long that lasts. I might wind up building the framework with a static generator like Astro, and focus my efforts on building dynamic elements with javascript instead, because I actually enjoy the process of writing code - and writing CSS is still proving to not be enjoyable at all. :)