Software engineer, functional programming enthusiast.

  • 0 Posts
  • 72 Comments
Joined 3 years ago
cake
Cake day: April 27th, 2021

help-circle


  • I am also going to recommend the same solution as @matcha_addict@lemy.lol in this comment: https://lemmy.ml/comment/7998407

    You can create a key pair that is specifically just for this kind of backup transaction.

    To limit its affects, create a user and group on each of the devices that are highly restricted.

    This is actually the most secure solution that doesn’t require an interactive password prompt. The passwordless key only serves this one purpose and has small attack surface.

    Basically, you can tell SSH to allow root login on certain devices by setting up a root key pair. You configure SSH on the target device such that when it logs in, the login must run a script or a single command instead of running a shell, this limits what attackers can do if they somehow steal your private keys. You can also keep these private keys in your SSH agent so you only have to enter their passwords once, this will allow you to run remote commands without a password.

    I would recommend also exploring the possibility of setting up an Rsync Daemon on each remote device, it keeps an Rsync process running on a remote device and listens for connections from Rsync clients. https://linuxconfig.org/how-to-setup-the-rsync-daemon-on-linux

    On an unrelated topic: you might also want to look into using Btrfs and making and transferring snapshots to other devices.


  • Someone with more expertise can correct me if I am wrong, but the last I heard about this, I heard that cluster computing was obsoleted by modern IaaS and cloud computing technology.

    For example, the Xen project provides Unikernels as part of their Xen Cloud product. The unikernel is (as I understand it) basically a tiny guest operating system that statically links to a programming language runtime or virtual machine. So the Xen guest boots up a single executable program composed of the programming language runtime environment (like the Java virtual machine) statically linked to the unikernel, and then runs whatever high-level programming language that the virtual machine supports, like Java, C#, Python, Erlang, what have you.

    The reason for this is if you skip running Linux altogether, even a tiny Linux build like Alpine, and just boot directly into the virtual machine process, this tends to be a lot more memory efficient, and so you can fit more processes into the memory of a single physical compute node. Microsoft Azure does something similar (I think).

    To use it, basically you write a program a service in a programming language that runs on a VM and build it to run on a Xen unikernel. When you run the server, Xen allocates the computing resources for it and launches the executable program directly on the VM without an operating system, so the VM is, in effect, the operating system.





  • Linux does not support ZFS as well as operating systems like OpenBSD or OpenIndiana, but I do use it on my Ubuntu box for my backup array. It is not the best setup: RAID-Z over USB is not at all guaranteed to keep your data safe, but it was the most economical thing I was able to build myself, and it gets the job done well enough with regular scrubbing to give me piece of mind about at least having one other reliable copy of my data. And I can write files to it quickly, and take snapshots of the state of the filesystem if need be.

    I used to use Btrfs on my laptop and it worked just fine, but I did have trouble once when I ran out of disk space. A Btrfs filesystem puts itself into read-only mode when that happens, and that makes it tough to delete files to free-up space. There is a magic incantation that can restore read-write functionality, but I never learned what it was, I just decided to stop using it because Btrfs is pretty clearly not for home PC use. Freezing the filesystem in read-only mode makes sense in a data-center scenario, but not for a home user who might want to try to erase data so one can keep using it normally. I might consider using Btrfs in place of ZFS on a file server, though ZFS does seem to provide more features and seems to be somewhat better tested and hardened.

    There is also BCacheFS now as an alternative to Btrfs, but it is still fairly new, and not widely supported by default installations. I don’t know how stable it is or how well it compares to Btrfs, but I thought I would mention it.


  • 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 – who would use a tiny, buggy (back then), incomplete, closed-source operating system made by a few guys in their spare time against a very popular, feature-complete, close-source operating system with billions of dollars funding its engineering effort?

    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.


  • Ramin Honary@lemmy.mltoLinux@lemmy.mlLinus Torvalds interview Reader's Digest - 2001
    link
    fedilink
    English
    arrow-up
    12
    arrow-down
    5
    ·
    edit-2
    8 months ago

    Exactly, the neoliberal capitalist religion causes collective brain damage. Especially at that time, since there was a frenzy of propaganda around Bill Gates and how he became the worlds richest man by selling software, in particular operating systems. So from that non-logic it follows that if you have a popular operating system you should become the worlds richest man, but if you just give it all away for free, then you gave away a fortune. It makes total sense in the completely warped, schizophrenic world view of the US neoliberal mainstream media.



  • 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.


  • 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.


  • 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 Honary@lemmy.mltoLinux@lemmy.mlWhat if I paid for all my free software?
    link
    fedilink
    English
    arrow-up
    32
    arrow-down
    2
    ·
    edit-2
    8 months ago

    I only skimmed your article, but so far I like what I am reading, and how you dovetail it into a discussion about UBI and so on.

    But one quick criticism: if I were you I would try to get a bit more well-versed on the difference between “free-as-in-free-beer” software, “free-as-in-freedom” software, and “open source” software. There are lots of articles about this, especially at the The Free Software Foundation. But in short:

    • Free as in “free beer”: you can use the software without paying for it. They are usually making money off of you some other way, by charging certain users fees, by collecting and re-selling your private data, selling ads, or all of the above.
    • “Open source”: means the source code is available and you might even be able to contribute to it, but the maintainers reserve the right to distribute modified builds of the “open source” version that can make money off you the same way “free beer” software does. It is a good way for large companies to get free work done for them (bug fixes, feature requests) from their technically literate users.
    • Free as in “freedom”: the software license guarantees by law that users of the software must have access to the exact source code of the build of the software that they are using (without modification) regardless of whether or not you charge money for it so that your end users have the freedom to inspect whether the code is honest. It also guarantees that you have the freedom modify the source code however you please, but the license contract requires that you grant the same freedom to everyone else who is using your modified copy of the source code. “Free as in freedom” software protects the freedom (as in civil liberties) of anyone who uses it, open source does not.

  • A whole lot of words follow but if fucking Spotify is on your list of free software, all that indicates to me is that you’ve put a whole lot of work into failing to understand the concept of free software.

    That’s a bit harsh. I would agree with you that they seem to be pretty ignorant of the finer points of free software, like the difference between free-as-in-beer software, free-as-in-freedom software, and so-called “open source” software. But to be fair, the article was more about economics than about software, and I mostly agreed with a number of their arguments.


  • Maybe it bothers you more because your Lemmy feed is not as well populated with interesting posts as you would hope?

    I do wish people would check the post history here before asking “what distro should I use.” Or search the web for “how to pick a Linux distro in 2024” there are no shortage of those, although to be fair to them, you are a lot more likely nowadays to find nothing but AI-generated bullshit.

    Like this commenter here mentions, there are pinned posts saying “share the story of how you met your distro.” I would love it if moderators could take posts and turn them into comments on pinned posts like "share. But we don’t have that as far as I know, so what can you do but contribute a patch to the Lemmy software maintainers, or else just deal with the noise.



  • Ramin Honary@lemmy.mltoLinux@lemmy.ml"Must Try" distros and DEs?
    link
    fedilink
    English
    arrow-up
    4
    ·
    edit-2
    9 months ago

    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.