GNU/Lisp Enthusiast!

  • 13 Posts
  • 15 Comments
Joined 2 years ago
cake
Cake day: June 16th, 2023

help-circle

  • nice name

    Structuralists seem to forget that words are signfiers and signs of meaning, not the source of meaning

    Wouldn’t that only apply to ontic structuralists? They say the structures themselves are the real things. But epistemic structuralists merely say that the kind of knowledge we can have about reality is structural knowledge (but the world itself might be full of non-structural objects).








  • The problem isn’t so much the side effect as it is the ability to introduce side effects arbitrarily with no warning to someone using your functions

    Yes, I try and briefly allude to this in the “caution” and “tldr2” sections, but I think I could have been more clear. You are right that for many people it’s not so much about avoiding side effects as it is about coming up with ways to use them carefully. Stateful monads and clojure’s atoms/refs were in fact what I had in mind. And debating the pros/cons of these techniques is indeed a good conversation on its own! What I mostly wanted to get across is that fp is not about programming without side effects. All the good debate is about the extent to which we should try to avoid side effects, and what techniques we should use when doing so.

    I think it’s also really important to call out the concept of total functions

    Yeah I think this is totally (heh) worth talking about, and a much better topic than pure functions. I only didn’t mention it because I don’t see it brought up too often.








  • mrh@mander.xyzOPtoLinux@lemmy.mlGuix on the Framework 13 (AMD)
    link
    fedilink
    English
    arrow-up
    0
    ·
    edit-2
    2 years ago

    Yes GNU Guix is a linux distro.

    The package manager for Guix (also called guix) is also a portable package manager which works on any linux distro, similar to flatpak, nix, homebrew, etc.

    Guix’s claim to fame is that it is a functional distro/package manager, meaning that all changes are atomic, so installing/upgrading/deleting packages never leaves your system in a broken state.

    Not only that, but if you make some change to your system and it breaks for normal reasons (e.g. newest software version has a bug), you can roll back to your previous system state with all your previous packages and their versions, and this roll-back operation is also atomic.

    Guix the distro not only let’s you do package management this way, but also let’s you do declarative system configuration. This means rather than manually rummaging around /etc changing files and hoping nothing breaks, there’s simply a single config file which declares all of your system configuration. From your kernel to users, partitions, system services, and just about anything else, all the configuration is declaratively done in one place with one language (Guile Scheme). Any changes you make to your system this way are also of course atomic and can be rolled back.

    It even comes with a built in system called guix home which lets you bring that same level of declarative, atomic configuration to your user’s home environment, letting you manage user level packages, dotfiles, env variables, and more with a single home configuration file.

    There are other goodies too, such as the ability to spawn one-off shell environments with the guix shell command, dropping you in a shell with all the packages and env variables you declare, keeping your regular user environment clean (very nice for development).

    There’s even more, but at this point if you’re still interested just head over to the site and the docs.







  • That sounds roughly correct, though I don’t see the connection with the article? Unless you’re saying that “products” (like Signal) will always exist, which is probably true but is orthogonal to whether or not other models will succeed.

    As for email, I think posteo does a pretty good job, but you’re right options are few and far between. But self hosting email is just as viable as ever? Perhaps less so since e.g. gmail will instantly flag your incoming mail as spam if you’re sending it from randomsite.tld, but honestly that issue hasn’t gotten that bad (yet). Yes, whenever there’s a protocol like email or xmpp, companies will create gmails and signals and turn them into walled gardens, but that doesn’t spoil the protocol for everyone else. It just causes frustration that companies build closed products on top of open technologies, but not much to be done about that.



  • There are two different immutable OS models hot on the table in the linux space I see: The Nix[1] way and the Silverblue[2] way.

    Both have immutable filesystems which deviate from the FHS, provide atomic updates, and support the creation of more-or-less isolated environments at the user level. But the way the two models implement these features is very different.

    The Nix way takes inspiration from the world of functional programming, while the Silverblue way takes inspiration from the containerized, cloud native technologies which are used so widely in the industry.

    I believe the idea that these two approaches share is the future of linux on both the server and the desktop, and it is only a matter of time before some (if not all) of these advantages become mainstream. However, I am uncertain of which approach is superior.

    I have personal experience with Guix and enjoyed it greatly and even recommend others try it or Nix out for themselves, but there are some complexity issues. It is not clear to me whether these issues are growing pains, or symptoms of a fundamentally overcomplicated system to solve a seemingly simpler problem.

    The Silverblue way I have no experience with, but seems like a more grounded approach to tackling the specific problems laid out. The big area where Silverblue seems to lack in comparison to Nix/Guix is declarative, reproducible system configuration. With Nix/Guix you can just throw your system config file up in a repo, and anybody else can pull it down and install that system bit-for-bit, including future you! With home manager this extends to a large extent to user configuration as well. Of course with Silverblue you can create images, but that is less straightforward and powerful (at least for now).

    What are ya’ll’s thoughts on immutable OS’s?


    1. The only other example I am aware of is Guix, which imo is the superior implementation, but it is newer and less popular. ↩︎

    2. Others include openSUSE’s MircoOS/Aeon and Vanilla OS. ↩︎



  • mrh@mander.xyztoLinux@lemmy.mlVoid Linux
    link
    fedilink
    arrow-up
    1
    ·
    edit-2
    1 month ago

    Yep! I used it as a daily driver for ~1 year, switched off to try something new, and have recently switched back.

    Only distro I’ve ever switched back to after leaving. It really lives in such a sweet spot of up to date, stable, and simple/hackable.

    With a nice handbook, friendly community, runit, xbps-src, and multi lib/arch support, Void is truly great.


  • I have never used nix or nixos. I liked their shared idea (functional, atomic, reproducible systems), and so when I looked at their differences they seemed to all be pros for guix:

    1. Clearer, more robust, more centralized documentation
    2. GNU Project
    3. Guile Scheme (Lisp) as opposed to Nix DSL
    4. Unparalleled emacs integration

    The only bittersweet aspect of guix compared to nix was the foss only stuff, as I do need some proprietary drivers, but nonguix is so easy it hasn’t been a practical issue. And of course I am big advocate of free software so I like that guix is pushing that forward.

    There’s also a theoretical issue that guix has less packages, but the standard channel + nonguix has had everyhing I use.