Do all the things like ++ or -- rants, post your own rants, comment on others' rants and build your customized dev avatarSign Up
Get a devDuck
Rubber duck debugging has never been so cute! Get your favorite coding language devDuckBuy Now
Search - "compatibility hell"
So a couple months ago, my dad called me to try and solve a problem he was having in his work.
You see, my dad owns a driving school and he was teaching 14 and 15yo kids how to ride mopeds and their theory exams are made in the school's facility, by going to this website of the entity that rules the moped teaching thing. When the time to have the exams came, they couldn't even see the exams and one of the kids had one of his attempts wasted (they had 3 attempts). We mailed and called the entity multiple times, to no avail, as they told us to "check the website, the instructions are all there". They were also trying to get it together but they couldn't. Here's the "funny" part: the software in which the exams were done ran on XP and there was no way in hell we could make it work on our W10 PCs. Not to mention this is a natiowide problem.
We reinstalled Java to v.7.9 (I think...?) as the "instructions" told us, with no results whatsoever.
So my dad decided to call me and asked me to bring a PC that didn't run W10. The closest thing to XP I could think of was my uncle's Toshiba, that had Vista, so I went to his house and grabbed it and drove to my dad's school. Even in compatibility mode, it didn't work. Everyone was in despair LoL. I was even put on the phone with the entity's technician, who didn't know how to solve it either but was trying, as well with our tech guy.
After a bit of running around and crying inside, our secretary remembered we still had a tower on site that ran XP. We went for the thing and connected it and booted it up. After reinstalling Java and setting security to "medium" (required), and meddling with zoom (the window was too small to show the whole exam and if the window showed up before we set the zoom to 75% or so we couldn't choose the answers) it was finally set to do the exams.
I've never felt so relieved for solving tech stuff LoL. It took me 3h to get it done and I feel it would have been easier if we had remembered about the tower earlier but oh well what can one do.8
❤️ Swift ❤️
"Module compiled with Swift 5.1.3 cannot be imported by the Swift 5.2.4 compiler"
Web development is the worst!
I still cannot understand why it is not possible for browsers to correctly support all official specs... Exceptions here and there, dirty fix for this one, add a little margin here, hide this...
The daily struggle never stops.
Don't even get me startet with PHP!
Next round is on me ;)6
LXC, no doubt.
I mean to be fair, LXC is an amazing container runtime once you manage to set it up. But setting it up is the hard bit. Starting off with LXC 2.x, it was a nightmare to find out how to get things like the storage backends working. But with ZFS it ended up being alright. Find some arcane values to stick in the /etc/lxc/default.conf to use ZFS as the backend and then the default storage location on those ZFS pools (I'll get back to that later), and it worked alright. Again, once it works it's great, but setting it up and finding the right configuration keys is absolute hell.
So, LXC 2.x for a while and a few months ago I finally ended up upgrading to 3.x. Every single configuration key changed. Every single one of them, and that's why I had to 1) learn LXC all over again, and 2) redeploy each and every one of my containers. That process is still not entirely completed. ZFS backend was once again a dive into arcane configuration keys found on forums and whatnot. Yeah.. official documentation has none of it. Oh and in 3.x you now also have to dodge the torrent of "just use LXD m8" messages. Yeah, very helpful when LXD is also the ONLY way to reasonably configure it. Absolutely beautiful. Oh and as far as the ZFS default storage location goes (such as ssd/lxc/ct)? Yeah forget about it. There's no configuration option for it anymore, and the default is "lxc". In ZFS lingo that means that LXC has the audacity to demand a whole pool for itself. No. No you don't deserve a whole pool for yourself. But hey at least you can define the storage location to use in the lxc-create command! Every single time you have to define it in lxc-create. I abstracted it away into my own LXC interface, so no big deal really. But yeah... That could absolutely be better. And in 2.x it was actually better.
Oh and btrfs, the filesystem I'd like to use on low memory systems because ZFS' ARC is too much on such systems? Yeah forget about it. I still have no idea how to do it. Thank you LXC and its amazing documentation!
And if you want the icing on the cake for LXC's terrible documentation, see their repo's index page at https://github.com/lxc/lxc/.... Yeah, it's totally still at 2.x... That's how well they maintain that. Even Debian has 3.x now. And if you look at the branches, you'll find that even 4.x is already available and considered stable.
Can't figure out how in the hell to use nunjuck templates (or any for that matter) in metalsmith.
I feel like this is a general problem with oh so minimalistic modern projects. They look kinda cool but fail to do their main job correctly and in a flexible manner. This sort of flexible markup transformation just isn't possible to offload entirely to third party plugins and expect them to come up with some sort of compatibility themselves1
Fuck. I just realized that because I picked Firebase for an SPA I was making for a client a year ago, I will need to keep updating the damn backend forever. Node 8 has reached EOL in the end of 2019, so Firebase has deprecated it and will *remove support* for it in 2021. Ok, I updated the app to work with node 10. But what happens when node 10 gets deprecated and loses support? Am I going to be forced to update the project once again so that it can keep running? Have the people at Firebase heard of backwards compatibility?
The reason I chose Firebase in the first place was because I wouldn't have to deal with servers (stuff like that scared me back then) and because it was free (client likes free stuff, of course). Had I picked a simple Express + MongoDB combo I would be able to deploy the thing when I was done and just leave it there forever, at the cost of ~$5/mo on DigitalOcean. But no, I was scared of the unknown so now I have to live with the shitfest that Firebase is. Fucking hell.
Disclaimer: I would not use Express and MongoDB in a project today, I have outgrown JS backend (thank god) and I prefer the safety of a relational DB.6