• 1 Post
  • 155 Comments
Joined 1 year ago
cake
Cake day: June 12th, 2023

help-circle


  • It’s far more simple than that. The students are predominantly nobles, and they pretty much completely cut all ties to their previous lives.

    So why would you send a hot daughter to become a witch when you can marry her and make political gains? You send the disfigured one so you don’t have to waste any more money on her.

    The 5th son doesn’t need to be disfigured to be essentially useless in the political world.


  • Shareni@programming.devtoScience Memes@mander.xyzFalling
    link
    fedilink
    English
    arrow-up
    1
    ·
    1 month ago

    Terminal velocity is the maximum speed attainable by an object as it falls through a fluid (air is the most common example). It is reached when the sum of the drag force (Fd) and the buoyancy is equal to the downward force of gravity (FG) acting on the object. Since the net force on the object is zero, the object has zero acceleration

    Objects in a vacuum have no drag and no terminal velocity…






  • Oh, yes we have. Gitlab, Codeberg, Notabug, etc. You can even host your own Gitea or Forgejo instance if you want.

    Self-hosting is right out for most people. It’s pretty expensive to even get started without compromising your home network (router with VLAN, switch, multiple servers (at least thinclients)), and then on top of that you need to maintain it, and can’t really ever max out your download/upload speeds because people are depending on your internet to interact with the repo.

    Gitlab is also for-profit, but also has blackouts and devs going rm -rf on the production DB. It’s often in the news for bad things, so I’ve generally avoided it.

    Codeberg is great for personal repos, but most smaller git hosting services have horrible SEO. Like I’ve had issues finding repos when searching for their exact name, if I had to use general search terms I’d only see github repos.



  • e.g. don’t touch AGPL code unless you also use AGPL

    Just to clear this up: copyleft licenses, GPL variants for example, require the license of your code to equally preserve the freedoms provided to your users, or in other words also be a copyleft license. There are some loopholes like GPL on a server, but be very careful when using copyleft code unless you want to use a copyleft license as well.

    It gets somewhat murkier when you use someone’s code and base yours on that. IANAL, and that’s very much the legal territory. If at all possible, just reuse the original copyright and license and then derive your work (given the license allows that).

    That all depends on the license AFAIK, but IANAL. Most FOSS licenses allow you to do whatever you want while preserving copyright claims, and that includes rewriting or changing the license. GPL forces copyleft, so even if you rewrote it from scratch, you could still be liable if you saw the original code.

    For example I’ve heard that corpos bootleg copyleft code by having completely separate teams doing design and implementation. The implementation team can’t ever see any part of the original code, and they have limited communication with the design team. I think that would also go around the copyright claims as well.

    If at all possible, just reuse the original copyright and license and then derive your work (given the license allows that).

    Or just slap a GPL and subsume everything within a vortex of FREEDOM, and thusly become a true FOSS dude




  • I’m going to have to come back to Nix/NixOS in a bit.

    Use nix + home-manager first for sure. It’s far easier, and you can slowly get into it while making a list of bleeding edge packages.

    I’ll probably wait until the official docs catch up as it appears that they are quite a bit behind

    Skip them altogether when you’re starting out. I gave up on trying nix the first few times due to how bad they are. zero-to-nix.com is better for learning the basics of nix.

    That and I’m not sure how I feel about a DSL for package management. I’d much rather use JSON or YAML, or even INI or TOML.

    The closest you can get is home-manager with a list of packages in a json-like format. It’s really not practical to develop a declarative system without a programming language. A basic example would be variables, more advanced would be to write a wrapper that modifies the package so it automatically runs the required cli commands to use your dediated gpu and nixGL with specific packages (nvidia-run-mx nixVulkanNvidia-525.147.05 obs for example).

    It’s sort of like IaC where you’ve got terraform (dsl), pulumi (various languages), and cloudformation (json/yaml). Can you guess which one is universally despised?

    Maybe if I were a LISP or Haskell guy.

    Then you’d use guix and a dsl made within an actual programming language (much better approach IMO).




  • Shareni@programming.devOPtolinuxmemes@lemmy.worldThe genesis of a nixOS user
    link
    fedilink
    arrow-up
    1
    arrow-down
    3
    ·
    edit-2
    2 months ago

    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.


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



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