Programmer in NYC

  • 4 Posts
  • 42 Comments
Joined 2 years ago
cake
Cake day: May 7th, 2023

help-circle




  • I built a wireless Corne keyboard from a kit. It uses nice!nano controllers running ZMK. Previously when I used a Kinesis Advantage 2 I replaced its controller board with a KinT which uses a Teensy as its controller. Customizing the keyboard with custom firmware is much nicer than customizing in the OS. But it can be a commitment. Although there are some keyboards that come the reprogramming options out-of-the-box, like the Kinesis Advantage 360, the Moonlander, all of Keyboardio’s models.



  • I’ve been using Wayland for a while, but I remember two factors that might have held me back in another universe:

    • lack of support from Xmonad (so group 3 from the article)
    • I used to make extensive use of keyboard remapping using xkb & xcape, and last I checked that doesn’t work in native Wayland apps. (I think that would’ve put me in one of the niche groups.)

    I’m not sure if those restrictions still apply. Luckily for the simplicity of my life I switched to Gnome (partially for Wayland support, partially for a simpler setup), and I switched to doing keyboard reconfiguration in hardware.



  • rust-script looks like a neat way to use Rust for scripting. But I was coincidentally reflecting on how helpful Nix is for handling the same problem, where I want to write scripts in a compiled language, but managing builds is a lot to deal with in an ad-hoc setting. I can pair my script with a Nix expression that gets checked into either my project repo, or my Home Manager dot files, and then I don’t have to think about rebuilding on changes or on new machines.









  • I agree, especially with respect to batteries. It’s not about nuclear vs renewables, it’s about nuclear vs batteries. We can probably scale up energy storage to meet the world’s baseload needs - but we haven’t done that before. It might take a long time, we might hit some dead ends, and it might not end up being as cheap as we hope. But we have seen nuclear power on a large scale so we know what it takes. To be certain we can get zero carbon as soon as possible we should pursue every promising avenue.

    Also note that the cost of, for example, solar energy has decreased 94% in the last 35 years because we have (rightly) put lots of resources into research and scaling up production. Meanwhile nuclear investment has been way down for decades. Maybe the cost of nuclear would come down with economies of scale, and newer designs.



  • Actually I’d like to add a note about how much I appreciate infrastructure. It would be great if we could all equally own and control the Internet. But when you get down to it, societies pooling their efforts can do things that small, independent groups can’t, such as building tier 1 network backbones.

    Looking at it another way, if you did have a global mesh network it would be made up of electronics that take tremendous systems of supply chains and factories to build and distribute. That’s sort of the same idea: large-scale infrastructure that small groups can’t pull off.

    If I had my way I would keep the large-scale networks, but change the governance model to shift the primary organizational motivation from profit to human wellbeing.




  • The NixOS ideal is that every detail of the system is configured through Nix expressions so that the system is completely reproducible. But in practice there are some details you might want to configure directly.

    With users.mutableUsers = false you are in the “ideal” declarative mode where users and groups are supposed to be fully represented in configuration.nix including passwords (or hashed passwords). In this mode the Nix config overrides everything in /etc/passwd. If the Nix config doesn’t specify passwords I think the default is to leave the account without a password, disabling login for that account.

    With users.mutableUsers = true NixOS respects changes to user and group accounts made outside of configuration.nix. Accounts configured through Nix will be added to /etc/password if they aren’t already there. But NixOS won’t remove accounts, and won’t modify or unset passwords. In this mode the default of leaving the password unset makes sense because you’re expected to set a password by running passwd. This is the typical choice because there are security problems with putting passwords in configuration.nix.

    You can set passwords in the Nix config using the password, passwordFile, hashedPassword, or initialPassword options. If mutableUsers is true these options only set the password the first time the user account is created. I checked to see if there are any options that implicitly disable mutable users, but I didn’t find any.