Programmer in NYC

  • 2 Posts
  • 9 Comments
Joined 1 year ago
cake
Cake day: May 7th, 2023

help-circle
  • I believe your last Linux experience in 2015 predates DXVK which has been transformative for Linux gaming. Wine used to have to implement its own DirectX replacement which necessarily lagged behind Microsoft’s implementation, and IIUC didn’t get the same level of hardware acceleration due to missing out on DirectX acceleration built into graphics cards.

    Now DXVK acts as a compatibility bridge between DirectX and Vulkan. Vulkan is cross-platform, does generally the same stuff that DirectX does, and graphics cards have hardware acceleration for Vulkan calls the same way they do for DirectX calls. So game performance on Linux typically meets or exceeds performance on Windows, and you can play games using the latest DirectX version without waiting for some poor dev to reimplement it.

    If you are using Steam with Proton, Lutris, or really any Wine gaming these days you are using DXVK. It’s easy to take for granted. But I remember the night-and-day difference it made.


  • hallettj@beehaw.orgtonixos@lemmy.mlMusl on NixOS
    link
    fedilink
    arrow-up
    1
    ·
    edit-2
    1 year ago

    Nixpkgs includes packages compiled for musl under the pkgsMusl prefix. For example, pkgs.pkgsMusl.hello. IIUC these only exist on a Linux system.

    Maybe you can use those packages for everything by setting pkgsMusl as your package set. For example if you are using Home Manager with a flake config you normally have a line like,

    let pkgs = nixpkgs.legacyPackages.${system};
    

    Maybe you could change that to

    let pkgs = nixpkgs.legacyPackages.${system}.pkgsMusl;
    




  • hallettj@beehaw.orgtonixos@lemmy.mlWho makes Nix packages?
    link
    fedilink
    English
    arrow-up
    10
    ·
    1 year ago

    The packages are defined in a Github repo, https://github.com/NixOS/nixpkgs. That contains the sources for all of the Nix expressions. Usually when you install packages you get pre-built binaries that are produced from the expressions in the repo through an automated system.

    There is a group of “committers” who have the authority to merge PRs (pull requests) to the nixpkgs repo. There is a tracking issue for nominating new committers. That issue also describes criteria that new committers should meet. I found a comment claiming that there are 139 committers - but that comment is a few years old.

    Packages are maintained by a larger group of authors who submit new packages or updates via PRs. Committers review these PRs before they can be merged. A key criteria for becoming a committer is to author a sizable number of PRs that go on to be approved through this process.

    I didn’t see descriptions of any measures that would prevent committers from making whatever changes to nixpkgs they choose to. Also package hashes are not a cryptographically-secure proof of reproducibility - it is technically possible to tamper with binaries in some ways that don’t change hashes. So your trust in nixpkgs is based on,

    • vetting of committers
    • committers being sufficiently diligent in PR reviews
    • security of the build system
    • enough eyes on the project to catch a problem quickly if some malicious change does get through

    As a system it looks good enough to me. People have to demonstrate a commitment to the project, and an ability to do the work to get the keys to the system. Personal reputations are at stake which I think is a solid motivator to act in good faith. I think if a malicious change did get in it would probably be caught quickly.


  • I think use Nix for as little or as much as you want. I’ve been using Nix for a long time to get the odd package that isn’t available, or that isn’t completely up-to-date in the Debian repo. Now that I’ve learned more about it I’m using it for dev environments and packaging for my software projects, and I’m setting up NixOS and Home Manager on a new laptop.

    The low-level packages are there in case you need them. If you install anything that needs coreutils, libc, gtk, whatever Nix will install it automatically. It’s all fully isolated from the libraries that Arch installs so there is no need to worry about conflicts. But since Nix packages use only Nix dependencies you can run into some oddities when Nix uses different library versions than the host OS. For example I’ve had a case where a GTK app didn’t match the theme of the rest of my system.



  • I think when you’re in your (I’m guessing) early -or-mid-20s there is a tendency to underestimate how much time you have ahead of you. Whatever you decide, it’s not a lifetime commitment. Take a job, work there for a year, or a few years. If it turns out it’s not for you, you’ve gained experience, you’ve learned new things about yourself, and you still have plenty of time to transition to something different.

    There will be a time when you understand yourself and what you want much better. For me that was maybe my mid-30s. The only way to get there is to try things, and see what happens. I suggest making choices that lead to new experiences, such as travel. That gives you new ways to learn about yourself, and more chances to run into something that really grabs your interest.



  • During hot weather I wear Keens Clearwater CNX most of the time. They’ve been my go-to for the last ~7 years. They’re “water sandals” but I wear them for hiking and sometimes for running when it’s too hot for socks.

    When it’s not too hot for socks I do like my pair of Allbirds. It looks like I’ve had my current pair for about 2.5 years. They’re still in good shape despite being my daily footwear during most of the year.