programming.dev

NounsAndWords , an linuxmemes in Reality check

I only take on gross work, as per rhyming conventions gross work is your gross worth.

Norgur , an linuxmemes in Reality check
@Norgur@fedia.io avatar

Nah, that way, I can be the Alpha-Nerd in my circle, getting all the clout when I help them out with a command-line-command that contains awk.

fin , an linuxmemes in The genesis of a nixOS user

…which are going to die

sushibowl , an linuxmemes in The genesis of a nixOS user

Nix has the same mix of conceptual simplicity and atrocious user interface as git, but somehow magnified three times over. I've tried it multiple times, but could never get over the unintuitive gaggle of commands.

RustyNova ,

It's simple. Like git, you search the command on the internet

jack ,

Yes but git can be reasonable

Shareni OP ,

It's much simpler because you're using text files to define the expected state, the cli is there only to tell nix to figure out what it needs to do and to get on with it. Meanwhile with git you're manually doing each of the steps until you reach the desired state.

I only need cd ~/dotfiles/nix/ && nix-channel --update && nix flake update && home-manager switch for everyday package management. It's the nix version of apt update upgrade and install.

nix shell and nix run are pretty useful as well, and you'd want home-manager generations to rollback.

The confusion arises because there are 5 different ways to do the same thing, the non-experimental methods shouldn't be used even though they're recommended in the official docs, and you need to get lucky to get the info that you can use home-manager and that one liner.

sushibowl ,

The confusion arises because there are 5 different ways to do the same thing, the non-experimental methods shouldn't be used even though they're recommended in the official docs

I appreciate what you're trying to say, but you're kind of illustrating exactly the point I was making about conceptual simplicity and atrocious UX.

Shareni OP ,

You're ignoring the difference between using something declaratory and imperatively. Just because it's difficult to get to that one liner, it doesn't change the fact you'll still only use that one command. Git by it's nature requires you to use different commands to achieve different results. Home-manager allows you to both update your packages and delete all of them with the same command, because that command is "sync the state with the source of truth".

sushibowl ,

I don't really care about the declarative/imperative thing, to me how many commands you "really need" is beside the point. This is essentially the same argument as the people who say "git is not complex because you only really need checkout/commit/push, just ignore all the other commands." This doesn't matter when the official documentation and web resources keep talking about the other billion commands. Even home-manager has this warning at the very top of the page that basically tells you "you need to understand all the other commands first before you use this," and "if your directory gets messed up you have to fix it yourself."

These are exactly the same kinds of problems people have with git.

Shareni OP , (Bearbeitet )

I don’t really care about the declarative/imperative thing, to me how many commands you “really need” is beside the point.

Caring is not required, but you need to at least understand the difference.

This is essentially the same argument as the people who say “git is not complex because you only really need checkout/commit/push, just ignore all the other commands.”

It's really not.

Stage,commit,push,fetch,merge,etc. are all commands you need issue to git in order to manually create a desired state. You need to know what you're doing, and what to do differently if there's an issue.

home-manager switch does all of it on its own. You don't use a different cli command if something's broken, you change the source of truth. All of the commands you might use in an imperative package manager like apt update/upgrade/install/remove are instead that one command.

Even home-manager has this warning at the very top of the page that basically tells you “you need to understand all the other commands first before you use this,” and “if your directory gets messed up you have to fix it yourself.”

It's quite a disingenuous interpretation of "beware: home-manager uses the nix language and so gives nix language errors" and "choosing to create configuration files might overwrite the existing ones for that package"...

If you're using a programming language, expect error messages specific to that language/compiler/interpreter/whatever. And it's not like every other PM is using standardised error messages, you still need to learn to read them.

Config files aren't generated randomly, you need to manually enable the configuration of each package. If someone is capable of getting to the info required to know how to configure a package, it's reasonable to expect that they can guess that changing a config might overwrite the existing one.

These are exactly the same kinds of problems people have with git.

Do tell me how you can solve git problems without changing the git commands.

You're essentially saying that the terraform cli has the exact same problems as the aws cli, and that's just ridiculous. They both let you host your blog, but they do it in a completely different way and therefore have different issues.

brotundspiele ,

So you're saying that it's easier to learn C++ than git, because you only need one command (g++ foo.cpp -o foo) instead of many?

Shareni OP ,

In case you missed topic of the whole discussion:

Nix has the same mix of conceptual simplicity and atrocious user interface as git,

Nobody at any point compared the difficulty of learning the entirety of each of those systems, and my entire point is that the complexity of nix is not in the cli commands...

grue ,

Have you considered GUIX instead? Same concept, but with added GNU and configured entirely with Guile Scheme, apparently.

Shareni OP ,

It's far better in theory, but in practice it's got some massive issues:

  • non-free packages are taboo in the official guix community
  • binary support was lacking the last time I used it (firefox didn't have a precompiled bin for example, and that means you need to leave your browser to compile overnight)
  • far less packages than nixpkgs even when you account for the non-free repo
  • packages are seriously out of date (I tried using it as an additional pm a few months ago, and debian 12 was newer in a lot of cases)
  • essentially no support for some programming languages and package managers (node and npm for example)

In it's current state it's really only good for emacs, lisps, and some other languages like haskell.

onlinepersona , an linuxmemes in The genesis of a nixOS user

Still haven't reached the flakes stage. An experimental feature that the maintainers are too afraid to treat as experimental and make breaking changes, but unwilling to name stable because it requires bug-fixes and changes that would be breaking, but too afraid to break because... reasons.

Anti Commercial-AI license

Shareni OP ,

It's pretty easy for home-manager use, but still really useful. You can:

  • choose which packages to install from stable and which from unstable
  • add packages from repos that have flake.nix in them
  • correctly match nix and home-manager versions, and always update them at the same time
  • allow-unfree without nixpkgs conf, so 1 less directory required in .config (if they accepted the "experimental" features it'd be down to 1)

Here's an example:

flake.nix
{
  description = "home flake";

  inputs = {
    nixpkgs.url = "github:nixos/nixpkgs/nixos-unstable";
    home-manager.url = "github:nix-community/home-manager/master";
    home-manager.inputs.nixpkgs.follows = "nixpkgs";
    nixpkgs-stable.url = "github:nixos/nixpkgs/nixos-23.11";

    # nixgl.url = "github:guibou/nixGL";
  };

  outputs =
    {
      self,
      nixpkgs,
      nixpkgs-stable,
      home-manager,
      # nixgl,
      ...
    }@inputs:
    let
      system = "x86_64-linux";
      pkgs = import nixpkgs {
        system = system;
        config = {
          allowUnfree = true;
        };
      };
      pkgsStable = import nixpkgs-stable {
        system = system;
        config = {
          allowUnfree = true;
        };
      };
    in
    {
      homeConfigurations = {
        shareni = home-manager.lib.homeManagerConfiguration {
          inherit pkgs;
          modules = [ ./home.nix ];
          extraSpecialArgs = {
            inherit inputs;
            inherit system;

            kmonad = pkgsStable.kmonad;
          };
        };
      };
    };
}
grue ,

[rest of post]
Anti Commercial-AI license

Hey look, the trend is spreading: you're the second user I've seen doing that.

It'd be nice if the Lemmy devs added some sort of metadata field to support that so that (a) we could have a preference to insert it into every new comment automatically, and (b) it could be reduced to a badge on the comment header or something so that it would be less obtrusive to those of us who aren't trying to do anything that would require us to pay attention to it.

Asudox , an Memes in Another Zuckerberg meme
@Asudox@lemmy.world avatar

Oh wow, I also have that condition on my legs. It makes your knees bend a little more than usual. I also can bend my fingers more than what most people can. I'm not sure if it's a good thing though.

Stalinwolf , an Memes in Another Zuckerberg meme
@Stalinwolf@lemmy.ca avatar

TikTok be like "REAL SKINWALKERS CAUGHT ON CAMERA", followed by a clip of a fox screaming and a goat looking through a screen door.

Daft_ish , an Memes in Another Zuckerberg meme

Punching up. The best kind of punching

bigkahuna1986 , an Memes in Another Zuckerberg meme

A lizard person, I fucken knew it.

Coreidan , an Memes in Another Zuckerberg meme

Dude has some fucked up legs

AFC1886VCC , an Memes in Another Zuckerberg meme
slurpinderpin , an Memes in Zuckerberg meme

I actually started to like Zuck a bit more after he accepted Elon's fight

Karyoplasma ,

Did they ever fight tho? I imagine that the muskrat would chicken out. Zuckerberg is much younger, much fitter and actually has some martial arts training, so he would have mopped the floor with him and I'm not sure if it would fit into Musk's self-image to allow that to become reality.

HUMAN_TRASH , (Bearbeitet )

Elon's mom said no lol

MonkeMischief , (Bearbeitet ) an Memes in Zuckerberg meme

The light hitting the tree trunk had me thinking the smoker was just casually on fire behind him lmao.

BuboScandiacus ,
@BuboScandiacus@mander.xyz avatar

Wait

It isn't ?

MonkeMischief ,

Right?? No, there ideally shouldn't be gouts of flame spewing from the enclosed top of a grill like that. 😆 That optical illusion is near perfect lol.

But there's a ton that's just a bit unsettling about this picture. Like the super bloodshot wide eyes for instance. For some reason "and also the smoker's on fire" seems mundane.

Taleya ,

Application of increased flame hastens the bacterial destruction

tfw_no_toiletpaper , an Memes in Another Zuckerberg meme
DrDominate ,
@DrDominate@lemmy.world avatar

Is that a biblically accurate angel??

deathbird ,

Xavier, Renegade Angel, biblically accurate?
Maybe.

TheJims , an Memes in Another Zuckerberg meme

You would figure the lizard people would have better human disguise technology.

  • Alle
  • Abonniert
  • Moderiert
  • Favoriten
  • random
  • haupteingang
  • Alle Magazine