mrh

@mrh@mander.xyz
15 Post – 63 Comments
Joined 1 years ago

emacs org-mode

15 more...

Lisp

It solves so many problems new languages have been invented to try and solve, while being simultaneously simpler than most

6 more...

edit: I do feel norawibb's point, the slippery mutability of Void is something I am a lot less comfortable with than I used to be. Apparently Guix has spoiled me.

15 more...

codeberg

it’s like github but non-corporate free software

it’s very polished and featurful

it’s built upon/by the same devs as forgejo, which is open tech to self host your own git server (with federation potentially coming), so supporting one supports the other

4 more...

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.

3 more...

Lemmy has certainly already won me over reddit. Going back to centralized social media is something I will actively avoid if at all possible.

However I believe nostr is a theoretically better protocol than activitypub. Having your account/identity tied so strongly to a particular instance is undesirable. As soon as there is a reddit-like (or even forum-like) client for nostr which is relatively active/polished, I will switch. Nip 172 can't come soon enough.

In addition to being less popular / newer than activitypub, nostr is also full of bitcoin[^1] bros and twitter refugees (not my crowd). But frankly I think complaints about that are like the complaints that lemmy is a place for tankies a couple years ago when people's only exposure was to a (much smaller than today) lemmy.ml.

[^1]: monero support would be nice though...

5 more...

If I understand you correctly, this is trivial in emacs:

(defun insert-text ()
  (interactive)
  (insert "your text here"))

(global-set-key your-keybind-here #'insert-text)

You could make it a format string if it relies on data specific to some file or parameter. You could also make the keybind local to certain modes/files rather than a global keybind if you don't want to pollute your keybind space.

2 more...

This is patently false. Most alternatives to GNU software are permissively licensed (MIT, BSD, Apache, etc.). Just look at musl, clang, bzip2, and the various “new” userland replacements like ripgrep, neovim, bat, exa, dust, etc. The one notable exception is busybox which is GPL 2.

I don’t know why this trend exists, but I am constantly disappointed that talented young open source devs choose to sacrifice software freedom just because it will make their software easier to integrate in proprietary contexts. This strikes me as pure vanity or greed on the devs part so that their software is more popular and maybe even monetizable.

I hope that trend halts, but time will tell.

what would you be stealing?

Yeah Clojure is like the monkey's paw of Lisp weenies. It adds many modern day niceties that are lacking in standard Scheme or Common Lisp, but also changes enough things to make it feel very un-lispy. I go back and forth as to whether or not I even consider it Lisp (Richard Stallman doesn't).

But I do know that I'd rather write Clojure than any other non-lisp language.

I'd also recommend people try ABCL, which is Common Lisp on the JVM , or Parenscript which is Common Lisp that compiles to Javascript.

M-% NixOS RET Guix RET !

But yes 80% of my comment applies to Nix as well, as of course Nix is older and Guix is (conceptually) based on Nix. Though I personally use/prefer Guix.

Nostr is a protocol like activitypub. There are many pieces of software built on top of nostr, just like lemmy and mastodon are both built on activitypub and can interact.

So yes.

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.

1 more...

Yeah rollbacks are probably the best part of immutable OS's, but of almost equal importance is reproducible system configuration, which imo only Nix and Guix do well. Neither snapshots nor Silverblue really manage that yet.

4 more...

Thanks! I've changed quite a few things in my setup over the years, but gruvbox is one of the very few mainstays (that and mpv).

I don't know too much about Vanilla OS, is it not possible to install your own DE or WM?

I'm less interested in Vanilla OS since it's based on Ubuntu and I'd rather not support / rely upon anything Canonical if I can help it.

Silverblue (+ spins) seems like the best option since it is the most mature, most popular, and is a community run distro. Of course Redhat pours a lot of resources into the Fedora project since it's upstream RHEL, and so does SUSE for MicroOS. But honestly if Redhat/SUSE were to disappear tomorrow, I think Fedora and OpenSUSE would be fine, whereas I can't say the same for Canonical+Ubuntu (and thus their descendants).

edit: After looking more into Vanilla OS, it looks very nice! Funnily apx addresses excatly the issues with distrobox pointed out in this thread by @mogoh@lemmy.ml. They also plan on moving from being Ubuntu based to Debian Sid based, which would be even better than Fedora as Debian is a true, 100% community backed and time tested distro (though still of course much corporate support).

I agree "cloud native" is not great, I won't be using that term.

Why are cli tools generally not available as flatpaks? There's nothing about how flatpak works afaik which distinguishes gui and cli. I get that the original motivation for flatpak was guis, but considering how long it's been touted as a "universal" package manager for linux, I don't understand how there could be so few clis.

I've heard people say the name for packages from flathub is awkward (which it is), and aliasing everything you install would be annoying (which it would), but that sounds like such a simple problem to solve.

I've also heard people say that flatpak clis would be useless because clis tend to be systadmin tools, and thus need to be not sandboxed. But this strikes me as a non sequitur. Gui tools can be used for sysadmin, and there are tons of cli tools which have nothing to do with sysadmin, they're just userspace programs.

What does your workflow look like with toolbox/distrobox?

3 more...

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.

Metroidvanias of knowledge a la Outer Wilds

1 more...

Thanks for the plug! I'm honestly pretty surprised that neither the math community on lemmy.world nor lemmy.ml has had much activity since r/math has been and still is private. Where are all the reddit math lovers getting their fix? I know I miss mine.

1 more...

While there's a grain of truth in this, I don't think anybody should be pushing for some standard to be "the" standard which eclipses all others now and forever. People, given sufficient freedom and knowledge, will gravitate towards what works best, be it old or new. Nostr is simply the protocol I prefer. I think it's better. Why pretend otherwise just becoause activitypub happened to come first and thus is currently more popular?

You can mount any directory you want as the “home” directory of a given container with distrobox, it just defaults to using your home directory.

firmware/drivers

Emacs Orgmode

Yeah Void is fantastic. I just switched back and I doubt I’ll be moving to anything else.

I only switched away in the first place because I had gotten so comfortable I wanted to try something new (Guix, also amazing!).

But there’s something so comfy about Void once you grok it, just lots of little good decisions which add up to a great experience.

I've never used Arch or Nix, but I switched from Void -> Guix and have been very happy with it. It's such a huge peace of mind to be able to have your whole system declaratively configured, package changes being atomic and generational (rollbacks so no worries about breakage), Guix shell for messing about, and being able to make your system do anything you can write in Scheme.

That's my daily driver. On servers so far I've gone with Debian Stable + Guix.

Also Void is still a fantastic distro, and is what I would use if not for Guix/Nix.

4 more...

I had the same thought lol

Thanks for the response! Flathub is a fantastic project so glad to hear about your contributions. Your videos have been helpful for me as introductions to Silvelblue ideas and statuses.

I don't have much to say about the term "cloud native" personally, it doesn't seem too important. I think myself and others react against it because cloud tech is mostly used by businesses and "server people" to deliver products (sometimes at the cost of user freedom), and so has either a non or negative connotation in the FOSS linux desktop space. But names are names, and accuracy matters most. I don't think etiher "cloud native" or "immutable" are really all that helpful as technical terms though, maybe something else should be used (image based, atomic, container centric, ?).

I'm not sure I understand "distros already have htop." Distros already have everything packaged for flatpak, yet they were packaged for flatpak. The real question is why do flatpaks exist at all if you can just run programs in containers, OR why do containers exist at all if you can just run programs as flatpaks (assuming everything we wanted were available as a flatpak). That is: what are the technical / UX reasons to choose flatpak over containers and vice versa?

Podmansh looks very cool! That's definitely the direction I'd like to see these sorts of projects moving in. The #1 issue I have at the moment with this OS model is customization/tinkering/hackability. I want to have the niceties of atomic updates and reproducible builds, and containers on their own are great. But not if it takes away my ability to make my system fit my needs. I have no interest in using a macbook.

The future of these technologies looks bright, and they are clearly functional today, but I'm not sure any of them meet my needs yet as someone who likes to have a great deal of control and understanding of my system.

1 more...

Yep! If you're applying and need a non-trivial number of locations checked/maps generated, you can check out the prgoram here.

Note that it says you can install it with guix, but it hasn't actually been merged into master yet, so for now you do need sbcl and the dependencies (etiher via quicklisp or however else you snag them).

I don't think it's a coincidence that cloud tech, container tech, Go, and Plan 9 tend to overlap conceptually and demographically.

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.

3 more...

I daily drive Guix instead, and I would strongly recommend any emacs and/or lisp enthusiasts interested in the benefits of functional, reproducible, declarative, and hackable system management to give it a try!

2 more...

lol glad to see you here on lemmy too, keep up the good and enthusiastic work :)

Yeah is there some specific reason that I'm missing? I've never posted something like this before anywhere on lemmy.

1 more...

I understand the general job market, but what about lisp prevents you from pursuing personal ventures with it?

Try Orgzly with Emacs Orgmode

I appreciate you being the 1/8 to actually state their reason!

Everything seemed pretty self-explanatory to me in a community like this since:

  1. Videogame critiques on youtube are quite popular (and have been for years)
  2. Joseph Anderson is one of the most popular video game critics. His (second!) Fallout 4 critique has 10+ million views
  3. Lies of P is a very popular game which came out this year, and souls-likes in general are very popular games which people love to talk about

Also I wholehartedly disagree with downvoting something as spam when you have no idea what it is. And why do you need me to tell you what "we're" doing here? It's not for me to say whether this is a thread for roasting the game or praising it or anything else. I'm not sure I could even think of a more clear, straightforward title (and it's simply the video title).

I also don't feel it's my obligation to share my thoughts on something I post. As OP I prefer for people to think for themselves and form their own opinion about the content.

5 more...

Nice to see a measured (though somewhat pro go) article about a big language’s strengths and weaknesses from someone whose been real world using it for long enough to experience the evolution of the language.

I’ve always liked go, and also think it made fundamentally good decisions and has evolved in a way that respects the original philosophy (e.g. adding generics, but only after massive consideration).

Reddit had an enormous hate totem for go, more than virtually any other language imo, and I always thought that was strange. Curious what people here think.

emacs org-mode meets all of these criteria