Ramin_HAL9001

@Ramin_HAL9001@lemmy.ml

Software engineer, functional programming enthusiast.

This profile is from a federated server and may be incomplete. Browse more on the original instance.

Ramin_HAL9001, (edited )

Distros that just work (although YMMV): Fedora, Mint, Ubuntu, Pop!_OS with the default desktop environments. I have been using Ubuntu and Fedora both (on different computers) for over 15 years now they each always get the WiFi and BlueTooth drivers right, neither ever has trouble with audio or video, they really just work, and they both are pretty well up-to-date with the latest stable versions of the biggest Linux apps in their repositories.

I have been thinking of switching my Ubuntu computers over to Mint (Xfce edition, though Cinnamon isn’t bad), which uses the same base operating system package set as Ubuntu, but its ownership model is more collective and community-oriented. Fedora is also collectively owned, while Pop!_OS and Ubuntu are owned and operated by for-profit businesses – that doesn’t make them bad, it just might be something to consider.

Also, if you don’t mind a shameless plug, I wrote a blog post on how to choose a Linux distro, so feel free to read if it pleases you.

Ramin_HAL9001, (edited )

Former Xmonad user here.

I had two 5 screens and two columns. One screen was for terminal emulators, one was for writing code and software development, one was for my web browser, 2 others were for miscelaneous things, but most often were for working with files a GUI file browser like Nautilus or Thunar, or for reading PDF files in Evince, or reading PowerPoint or Excel documents in LibreOffice.

On each screen the tiles were always in 2 columns. The left for doing work, writing code, prose, drawing graphics and charts, interacting with the CLI, and so on. On the right was documentation: manual pages, PDF files, HTML documents, sometimes the MPV video player window when watching a tutorial that I was able to download from YouTube.

The right column usually had no more than 3 windows open, they started to get too narrow to be useful if more than that were open. I would occasionally horizontally split the left column as well, usually when going back and forth between two documents I was editing.

However…

I did not use this workflow once I started using Tmux, and then I continued not using this workflow when I switched to Emacs. The reason is of course because Tmux and Emacs both provide their own tiling windowing system that operate within a single application window. So my main workflow was always in a single maximized terminal window, or a single maximized Emacs window, or a single maximized GIMP window. Only occasionally would I un-maximize these windows, but then to keep it from getting too small, I would set it in “floating window” mode. Also my web browser, PDF reader, GIMP, LibreOffice, all worked better in full-screen (maximized window) mode. Even Thunar (GUI file browser) has multiple tabs, and a multi-column mode which was useful for the very few times I ever needed a GUI file browser.

At one point, I actually changed my tiling window manager configuration to always open windows maximized, except for Thnuar (GUI file browser) which would open in floating mode, not tiling mode. At that point I finally realized that I don’t really using a tiling window manager at all, it is just there managing windows the same as a non-tiling window manager would do.

I switched back to the Xfce default window manager, and quit worrying about window managers all together.

I'm so frustrated rn.

I have been distro hopping for about 2 weeks now, there’s always something that doesn’t work. I thought I would stick with Debian and now I haven’t been able to make my printer work in it, I think I tried in another distro and it just worked out of the box, but there’s always something that’s broken in every distro....

Ramin_HAL9001, (edited )

Yeah, Ubuntu works well for me. Ubuntu is operated by the Canonical corporation, which some people don’t like. If you would prefer a community-run Ubuntu-like OS, Mint is just as good as Ubuntu. Fedora is also one of the best community-run distros that always just works, especially when running the Gnome desktop environment.

I will say that until last month when I upgraded to Ubuntu version 23.10 (technically Xubuntu), Ubuntu always just worked with all of my hardware. But for some reason this last upgrade broke my wake-from-suspend function. This is the first problem I have had with it in many, many years, so I might actually switch to Mint or Fedora myself. EDIT: I figured out that the problem was being caused by the power manager daemon, I worked around this problem by disabling display power management (dims the display if you don’t use it for a while) in the Xfce settings manager, “Power Manager” panel, “Display” tab, switching the “Display power management” switch off.

Ramin_HAL9001, (edited )

I saw the “502 Gateway” HTTP error message, but I never even closed my browser tab. I refreshed again today and Lemmy.ml was back online! Thanks for your hard work!

Ramin_HAL9001, (edited )

What is good about NixOS (and GuixOS) is that they apply to package management the same principles that Git applies to managing source code. The Nix store is basically an append-only database (you might even call it a “blockchain”) of inter-dependent packages.

So from an individual computer user’s point of view, it is much safer to install and roll-back software with Nix than with an ordinary package manager that might allow you to accidentally delete package dependencies and break your system. With Nix, you can install packages that actually do break your system, but because of the append-only nature, you can actually roll-back the install automatically right from the Grub boot menu, no need to re-install anything.

Another advantage of NixOS, though this is more from a system operator’s point of view, is that you can guarantee reproducible builds. If the package you have installed has the same hash on all of your computers, that is a simple, human-verifiable proof that all of those systems are running the exact same build of the software. You can probably see that this is very useful for people running servers, like compute clusters, or doing things like A-B testing.

Ramin_HAL9001, (edited )

This article seems to be written by ChatGPT. Confirmed human author.

If you are indeed a real human, I am sorry. May I ask why you think Cinnamon is better for tech-savvy moms than something like KDE Plasma or Gnome? Do you think desktop environments more similar to Microsoft Windows are better for moms?

Don’t get me wrong, I love Cinnamon DE, it is my second favorite DE (Xfce is my favorite). But I would think something like KDE Plasma is probably a bit closer to the Microsoft Windows user experience.

Ramin_HAL9001, (edited )

However, most of the best apps are based on GTK and not QT.

Yes, I couldn’t agree more. Qt is nice, I use it in my professional work. But for me personally, Gtk is the best toolkit, and this is largely because it is programmed in C, not C++. Also, Gtk has the GObject Introspection framework which allows for other programming languages to connect to the Gtk libraries, so you can code Gtk apps in pretty much whatever language you like best.

And sorry for suggesting you were an AI.

Ramin_HAL9001, (edited )

So usually people do install Linux software from trusted software repositories. Linux practically invented the idea of the app store a full ten years before the first iPhone came out and popularized the term “app.”

The problem with the Mullvad VPN is that their app is not in the trusted software repositories of most Linux distributions. So you are required to go through a few extra steps to first trust the Mullvad software repositories, and then install their VPN app the usual way using apt install or from the software center.

You could just download the “.deb” file and double click on it, but you will have to download and install all software security updates by hand. By going through the extra steps to add Mullvad to your trusted software repository list, you will get software security updates automatically whenever you install all other software updates on your computer.

Most Linux distros don’t bother to make it easy for you to add other trusted software repositories because it can be a major security risk if you trust the wrong people. So I suppose it is for the best that the easiest way to install third-party software is to follow the steps you saw on the website.

Ramin_HAL9001,

I wonder if that dip in Windows in April, going down to like 62%, and the correlated boost for “Uknown” operating systems to 13% might somehow simply be Windows not being recognized properly and categorized as unknown?

It seems a bit far-fetched to me that a bunch of Windows users would for 1 month suddenly all decide to use ReactOS, FreeDOS, BSD, Solaris, Illumos, Haiku, Redox, and Plan 9.

Ramin_HAL9001, (edited )

For data science, it depends on what GPU you plan to use. If it’s an Nvidia brand GPU, go with Ubuntu or Fedora. I say from personal experience that it is easier to get Nvidia drivers working on Ubuntu or Fedora than on most other distros I have tried. If it is a Radeon GPU, it will work fine on pretty much any distro at all since Radeon does a good job following Linux standard APIs for graphics card drivers, so for Radeon products I would also recommend Debian or Mint (along side Fedora and Ubuntu).

Ramin_HAL9001,

There is just one feature that Kate has that I really use a lot, but it is not on a convenient key binding, and that is the ability to filter the active text selection through a shell utility, or to capture the output of running a shell command. When I use Emacs, I use these commands a countless number of times every day, and they are both on default key bindings that are very easy to type.

I wish Kate would take this feature more seriously.

Ramin_HAL9001,

I keep a Gnome Shell instance always running with a Screen session. However, what I actually use to run CLI commands is Emacs Shell, built-in to Emacs.

Emacs Shell has most of the bells and whistles you get from things like Fish shell. So I like to use Dash, a minimal POSIX shell that is much lighter weight than Bash, Zsh, or Fish. Dash provides no features – no tab completion, no history, no line editing – and I have Emacs add all of those features on top of Dash for me. It is amazing what a good, scriptable terminal emulator can accomplish.

Emacs Shell can be scripted using the same scripting language it uses to script the editor, file browser, window manager, and everything else. So you can script the shell to search for regular expressions and make things clickable with the mouse, or only display portions of output, creating simple interactive views around shell commands. You can bind certain click buttons or keystrokes in the editor or file manager to run shell commands in new windows. You can script the shell with “expect”-like behavior (automatically input responses to certain prompts). You can capture and collate the output of multiple commands running in parallel.

Ramin_HAL9001, (edited )

You’re not missing out on anything. Mint lets you install various desktop environments, they are all very well-configured and stable by default. You can just install the appropriate desktop environment meta-package using Apt:

  • apt install 'task-gnome-desktop’
  • apt install 'kde-plasma-desktop’
  • apt install 'cinnamon-desktop-environment’
  • apt install ‘task-xfce-desktop’

Then you can “hop” from one GUI experience to another by just logging out and logging in with a different session. You might have to add some additional Ubuntu repositories to your Apt config to get all of these meta-packages though.

Besides the desktop environment, the only other big difference between distros is how you use their package managers, which all do the same thing anyways, just with different CLI commands.

Probably the most important thing to consider in a distro is which versions of the latest stable releases of the big Linux apps are available in their distros. Arch-based distros (Garuda, Manjaro, ArcoLinux, EndeavorOS) are the most bleeding-edge but these operating systems tend to break after a software update if you fail to update often enough. Ubuntu and Fedora are the most bleeding-edge non-rolling release distros that I know of, and in my experience they never break after a software update.

"Must Try" distros and DEs?

Hey folks! I’m getting a fresh laptop for the first time in about a decade (Framework 16) in a couple of months and am looking forward to doing some low-level tinkering both on the OS and hardware. I’m planning to convert into a “cyberdeck” with quick-release hinges for the screen since I usually use an HMD, built-in...

Ramin_HAL9001,

Must try distros: Fedora, Mint, Void. But seriously, if you are using Nix to begin with, why use anything else? Nix is as good as it gets. If you really want to do a combo, I would recommend Fedora or Mint using Nix as just the package manager and not the hypervisor. All distros are basically the same nowadays.

Must try desktop environments: Xfce, Cinnamon, Gnome, KDE Plasma

Ramin_HAL9001, (edited )

In short: Nix tracks all installable software and dependencies using a Merkel tree data structure to ensure fully reproducible builds of software. This Merkel tree also provides properties similar to that of a C.O.W. filesystem where you can snapshot and rollback system software build configurations in O(1) time, it just rewrites a fixed number of symbolic links to the root of the desired Merkel tree. In my opinion, it is the most technologically advanced package manager currently in existence.

Every input that goes into building a piece of software on Nix OS (or in the Nix package manager in general) is hashed and placed into a database on the system. These hash IDs become dependencies for everything they are used to build. By tracing the chain of hash IDs you can guarantee that every single bit that goes into the build of the system software is accounted for. If two separate computers with the same ISA are running the same tree of packages verifiable by their hash IDs, you are guaranteed that both computers are running the exact same software. All dynamic libraries, shared libraries, executable files, and even the config files in the package database refer only to other files in the database.

When you use Nix OS, not just the package manager, the C compiler, boot loader, and kernel are themselves build inputs. You can even roll back to a snapshot of a working system from the bootloader menu if you accidentally break your system (as long as the package database is not corrupted).

Finally, the system itself is both built and configured using a declarative programming language. So you install software by declaring that it should exist, and the package manager computes precisely which dependencies must be installed to realize what it is you have declared in the system configuration files. Making a change to what is installed requires simply altering the lines of code in the system configuration file. You can also use these configuration files to easily construct Docker images or Flatpacks.

Ramin_HAL9001, (edited )

As far as I understand it, Guix will download pre-built binaries for most packages from a cache by default, and the Guix OS distribution makes sure the x86_64 binaries for the latest package descriptions are always cached, so you should usually not have to locally build packages.

But of course you can easily tweak the default configuration of packages you install and trigger a local re-build of those packages, since changing the configuration of any package causes a cache miss.

Ramin_HAL9001, (edited )

Using Scheme instead of a purely functional language like Nix as the Nix/Guix expression language is a bold choice I am not sure I agree with.

Scheme is the most functional of all non-purely-functional languages that I know of. What’s more, the parts of Guix in which packages are defined are quite pure, even using monads for some things, so it is really not too different from the Nix language.

Ramin_HAL9001, (edited )

So I think Guix (and Nix) is the most technologically advanced package manager in existence, and I hope someday all package managers work like Guix.

One other very interesting feature about Guix (which I don’t think Nix is doing yet) (which Nix also does) is that they have implemented a fully verifiable bootstrap, meaning every step of building the kernel, including the steps taken to build the C compiler toolchain, are produced by code that is simple enough for a group of humans to check for correctness and safety. Also, every step of the build process exists in the package repository, with no reliance on externally built binaries for anything, not even the C compiler toolchain. They accomplish this with a multi-phase bootstrap process, where a smaller, simpler C compiler is used to build GCC.

Do I use Guix? Well, no. Simply put, it is not quite to the point where it just works on a lot of the computer hardware that I own. With a bit more work, with a few more developers, and a bit more money invested, Guix could pretty soon become as reliable and useful as Debian or Fedora. But it is not quite there yet. And frankly, I have other more important things to do than worry about debugging problems with the operating system I am using.

Ramin_HAL9001,

Guix is the future, definitely my favorite Linux besides Mint and Fedora.

Ramin_HAL9001, (edited )

Why do you think you need to update packages on Arch every single day?

It was just a bit of hyperbole regarding the amount of mental effort it takes to keep your system up to date, I don’t actually mean every single day. I mean if you don’t keep Arch up-to-date on a regular basis, packages tend to break, and then you need to re-install the OS or jump through a few hoops to repair the broken packages and their dependencies. Diligent regular updates is not a terrible mental burden, but a burden none-the-less, so using point release OS like Mint or Ubuntu are just easier.

Ramin_HAL9001,

Linux exists solely because he made it a collaborative endeavour from the start.

That is the important part. If Linux had tried to compete with Microsoft as a closed-source operating system, no one would have used it. What makes Linux popular is that it is collectively owned, that is as much a feature of the operating system as any technology or algorithm written into the source code itself. That feature is what set it apart from Windows or Mac OS.

Solene'% : NovaCustom NV41 laptop review (dataswamp.org)

Disclaimer: I’m not affiliated in any way to any of the parties involved in this review. I just enjoy reading Solène’s writings in general and found myself to be especially in fond of this specific article. I share this in the hopes that others might somehow benefit from this as well!...

Ramin_HAL9001, (edited )

Wow, I can’t believe you tried so many different operating systems with this laptop, even Haiku and OpenIndiana! What a fantastic review!

It is a little sad that OpenBSD can’t optimize by P/E cores, I have been wanting to switch to OpenBSD but obviously Linux supports the most hardware, so I stay with Linux. It is nice that the makers NovaCustom seem to have done a good job creating a mostly open, standards compliance x86_64 computing platform.

Ramin_HAL9001,
  • Sorry, I think I might have confused OmniOS with QubesOS.
  • ZFS is itself a security feature because of how well it guarantees the fidelity of your data. That said, ZFS support on BSD is generally much better than on Linux
  • For the reasons you stated, I can’t use OpenBSD on my daily work laptop, so I don’t think I will ever really have a chance to give it a fair trial or learn more about it, which is unfortunate.
Ramin_HAL9001, (edited )

Do you happen to know if this goes beyond what Btrfs(/Bcachefs) provides on the Linux side of things?

I think someday Btrfs or BCacheFS might have as many features as ZFS, but for now ZFS is still state-of-the-art, as far as I know. RAID-Z is one ZFS feature I use that is not fully implemented in Btrfs yet. All other ZFS features that I use are also available with Btrfs.

😅, but QubesOS isn’t a derivative of OpenBSD either. It might have inspired some of its parts, but fundamentally it’s a completely different beast.

Oops, I am really getting confused with all the different distros! Sorry!

Ramin_HAL9001, (edited )

Could you elaborate on your willingness to switch to OpenBSD?

I have a small ZFS NAS that I built myself running Linux, and I would like to use it for file sharing and running applications like NextCloud. I prefer OpenBSD and its derivatives (like OmniOS) because it of its security-oriented features, especially things like ZFS and zones, but I have not used it very much so I am not comfortable using an operating system I have not used before for something important like backing up my files.

I would like to switch my daily driver, a Linux laptop, to OpenBSD so I can get used to using it as an administrator, but I worry about OpenBSD being able to support the laptop hardware, especially things like WiFi, BlueTooth, and managing the battery, screen dimming, laptop lid, and so on. I have another Linux computer with a Radeon graphics card which connects to my TV that my children use for video games, and watching streaming video, and I would like to switch this to OpenBSD as well but I worry that it will not be able to run Steam games very well.

  • All
  • Subscribed
  • Moderated
  • Favorites
  • localhost
  • All magazines
  • Loading…
    Loading the web debug toolbar…
    Attempt #