The world of software is quickly changing, so chances are this article will be irrelevant in a couple of years. I guess this means I'll have to write another one, but it doesn't matter. If you're from the present, feel free to judge me for my poor choices, and if you're from the future, enjoy this little time capsule full of prehistoric technology.
Base system
Section titled 'Base system'Operating system: Fedora
Section titled 'Operating system: Fedora'As you can tell by one of the rules I live by, I'm really into cutting edge technology. This is why I use Arch Lin... Okay I actually don't. And there are a few reasons for that:
- Rolling release distros are not stable enough for me. They tend to break once in a while. And "once in a while" just happens to happen at the most unexpected and inappropriate moment possible. With fixed release distros, you can easily tell when the things are going to break - at the moment of an upgrade.
- Fedora has enough packages for me. It doesn't have as much as Ubuntu or as a diverse range of them as Arch, but it has the exact packages I need, and they're just fresh enough.
- It's supposed to work out of the box, so it's easier to install and work with. In other words, even though it's not a DIY distro, it works well for me as one because it's DIY enough for me.
- I'm a big Red Hat fan. The community around Red Hat has quite a few cool and shiny technologies that I like. These include systemd, GNOME, Wayland, Flatpak, PipeWire, and others. Fedora always has the latest versions of them and supports them better, so there's no reason not to use it for me.
Honorable mentions
Section titled 'Honorable mentions'- Void Linux - what I used to use before Fedora. Not as stable and mainstream but I guess still usable.
- CentOS Stream - "Fedora LTS." I use it on my server.
Desktop environment: GNOME
Section titled 'Desktop environment: GNOME'Yes, I use GNOME. It goes without saying that GNOME is a weird kid on the block. It's extremely aesthetically minimalist, and the developers are defending this minimalism as much as possible, which makes a lot of people angry. In other words, this DE is as far away from Windows as possible, and people are not used to it.
I, however, really like this minimalism, and this is why I not only use it but also use it without any extensions. The default GNOME workflow fits my needs pretty well and requires minimal customization compared to other desktop environments. The main thing I like about GNOME is how distraction-free it is. It shows you only so many elements at once, which works well with my brain that can't handle too many things at a time. If you're like me in this regard, you'll like GNOME.
Honorable mentions
Section titled 'Honorable mentions'- KDE - good desktop environment for people who like the Windows-like workflow more.
- Sway - solid window manager that can be just as good as GNOME for me but requires a lot of configuration.
Command line applications
Section titled 'Command line applications'Terminal emulator: khansoul
Section titled 'Terminal emulator: khansoul'Well, I wrote it myself as an exercise in writing software without knowing how it works. I guess that says something.
Honorable mentions
Section titled 'Honorable mentions'- XFCE Terminal - good alternative if you don't want to use code written by a Russian shitcoder.
- GNOME Terminal - good alternative if you don't mind it being slightly "bloated" and lacking a few customization options.
Unix shell: fish
Section titled 'Unix shell: fish'Truth be told, I fucking hate shell as a language. It looks like complete shit, makes it extremely easy to shoot yourself in the foot (even easier than C does), and makes you produce unreadable code if you're trying to do something complex. fish sort of fixes those issues at the cost of not being POSIX-compatible. Luckily though, I don't give a single damn about POSIX compatibility, so I'm perfectly fine writing my scripts in it.
Yeah, and it also works out of the box. I still customize it a bit, but at least it doesn't require me to install 12000 packages to get basic functionality.
Honorable mentions
Section titled 'Honorable mentions'- Python - not a shell but still a good language to write your scripts in.
- Zsh - POSIX-compatible shell that can be customized to work just as well as fish.
Text editor: Neovim
Section titled 'Text editor: Neovim'When it comes to text editing, I have very specific requirements that no text editor can achieve out of the box while not being bloated. Therefore, I have to put myself through the torture of using Neovim, which is highly customizable but a pain in the ass to get used to. Luckily, I'm a masochist, so it's absolutely not an issue for me.
Honorable mentions
Section titled 'Honorable mentions'- Nano - a minimalist text editor that doesn't require you to be a masochist to use it.
- Vim - Neovim but not neo.
Version control: git
Section titled 'Version control: git'Let's be honest. I have no idea how it works nor do I know how to use it properly. Still, it somehow manages to be extremely helpful to me. For me as a programmer wannabe, version control is critical since it allows me to effectively introduce changes into the code base without breaking everything. It's a complete miracle that git works so well despite being so complex and that it managed to become so popular despite being decentralized and open source. Let's hope it doesn't go away.
Honorable mentions
Section titled 'Honorable mentions'- Controlling your versions manually - sure, why not?
File sync: rclone
Section titled 'File sync: rclone'rclone is a Swiss army knife utility that allows you to sync from any cloud storage and to any cloud storage. The fact that such a utility exists and it's completely open source is a miracle, and I'm so glad that it does. Now that I know about it, I no longer have to use any crappy proprietary client for my cloud storage provider and can just use one little tool for everything, and it just works. Which means that I get better user experience than even Windows users. Isn't that wonderful?
Honorable mentions
Section titled 'Honorable mentions'- rsync - for the cases when you need to sync up with your own server.
- GVfs - similar to rclone but made for slightly different purposes.
Website engine: Hugo
Section titled 'Website engine: Hugo'As you have probably noticed, my website is quite complex. And to handle such complexity, I have to use a static site generator. Hugo is the one I randomly chose to be the one I use. So far, it's been quite a pleasant experience. The template language it uses, while being slightly weird, allows me to pull off quite a few interesting tricks like a breadcrumb navigation and anchored headings. Another nice thing about it is that it's statically linked and written in Go, which means it's just one binary file with no dependencies.
Honorable mentions
Section titled 'Honorable mentions'- Not using an SSG - good idea if you have a small website and/or don't mind editing every single one of your pages after a slight change in the template.
- Writing your own custom SSG - good idea if you're unsatisfied with other options and also extremely smart unlike me.
Graphical applications
Section titled 'Graphical applications'Web browser: Firefox
Section titled 'Web browser: Firefox'Yes, Mozilla is not doing well as a company, but Firefox still remains the one browser that's reasonably private, has enough features, and supports Linux well enough. If it dies someday, I'll jump to the second best option, but while it's alive, I'll keep using it. Giving up and allowing Google to have a monopoly to decide what the Web is going to be is a bad idea.
Honorable mentions
Section titled 'Honorable mentions'- Brave - second best option? I'm not sure.
- Ungoogled Chromium - another good option, I guess, but lacks a few useful features.
Password manager: Bitwarden
Section titled 'Password manager: Bitwarden'Bitwarden combines the best of the 2 password manager worlds. On one hand, it's open source, which means you can actually trust it. On the other hand, it's cloud-based, which allows you to sync your passwords between devices in a comfortable way without any magic. On top of that, it also offers a generous free plan that barely has any limitations and allows you to self-host your own server. For these reasons, Bitwarden is what I recommend to an average person.
Honorable mentions
Section titled 'Honorable mentions'- KeepassXC - better option for paranoid people who can sync their stuff manually.
- pass - better option for extreme minimalists who use the command line in addition to being able to manually sync stuff.
Productivity app: Microsoft To-Do
Section titled 'Productivity app: Microsoft To-Do'Oh, what's this? A proprietary app? By Microsoft? Yes, it is. I'd gladly use something else but this app satisfies my note taking needs perfectly despite being proprietary:
- It's extremely simple. All I need is an ability to write stuff and a checkbox near the stuff I wrote. Also maybe an ability to organize stuff into lists and folders. Nothing else.
- It has both an Android app and a web app, which I absolutely 100% need because I often take notes on my phone.
- It syncs my stuff with the cloud, so I never have to do it manually.
If you know any other app that is open source and satisfies all of the 3 requirements, feel free to contact me.
Honorable mentions
Section titled 'Honorable mentions'- Notion - another proprietary app that allows you to organize quite some complex stuff.
- A plain text file - what I used to use. Doesn't work that bad but doesn't satisfy any of the 3 requirements.
Graphical editor: GIMP
Section titled 'Graphical editor: GIMP'GIMP is by far not the best graphical editor in the world, but there isn't much choice. It's a bit technologically outdated and not the most powerful, but hey it's open source and actually somewhat works. In addition to that, it's the only editor I'm good at, so abandoning it would be not the smartest idea.
Honorable mentions
Section titled 'Honorable mentions'- ImageMagick - another way to do magic on images but without a GUI.
- Microsoft Paint - where it all started.
Office suite: LibreOffice
Section titled 'Office suite: LibreOffice'I hate WYSIWYG editors but still have to use this one for my college stuff. Someday, the good times will come, and I'll no longer have to use it.
Honorable mentions
Section titled 'Honorable mentions'- Markdown - use it when you want to write stuff without subjecting yourself to rectal pain.
- Microsoft Office - proprietary garbage that works better for some edge cases.
Video capture/streaming: OBS
Section titled 'Video capture/streaming: OBS'Just like git, OBS is a good example of a software miracle. It's open source, and everyone uses it. The latter is especially weird, considering it's targeted for gamers, and 99.9% of the video games are proprietary. Once again, I'm so glad that it exists because otherwise I'd have to rely on something less professional like CLI-based hacks.
Honorable mentions
Section titled 'Honorable mentions'- GNOME built-in screen recorder - works well when you need to quickly capture something to show to other people.
- FFmpeg - for the cases when you need to do some magic on the recorded video/audio.
Video game emulator: RetroArch
Section titled 'Video game emulator: RetroArch'As you probably know, I'm a law-abiding citizen, and I never pirate any video games, especially ones by Nintendo®. Thus, in order to abide the law and not pirate the games, I need software that would allow me to play the legally obtained video games by emulating the console those game would be legally played on. Luckily, RetroArch does exactly that for a wide range of consoles. It does sacrifice a bit of overall quality and is prone to bugs, but eh, it's good enough for me.
Honorable mentions
Section titled 'Honorable mentions'- Not playing legally obtained video games - for people who don't have free time (not me).
- Installing emulators separately - for people who have free time (not me).