• 0 Posts
  • 105 Comments
Joined 1 year ago
cake
Cake day: June 30th, 2023

help-circle

  • Immutable Nixos. My entire server deployment from partitioning to config is stored in git on all my machines.

    Every time I boot all runtime changes are “wiped”, which is really just BTRFS subvolume swapping.

    Persistence is possible, but I’m forced to deal with it otherwise it will get wiped on boot.

    I use LVM for mirrored volumes for local redundancy.

    My persisted volumes are backed up automatically to B2 Backblaze using rclone. I don’t backup everything. Stuff I can download again are skipped for example. I don’t have anything currently that requires putting a process in “maint mode” like a database getting corrupt if I backup while its being written to. When I did, I’d either script gracefully shutting down the process or use any export functionality if the process supported it.




  • I don’t know about Nvidia specifically, but I mostly only see RSUs offered to Staff/Principal level engineers or Director and above on the management track. Many times with a multi year vestment period to act as a retention tool. You can make out good at the exiting end of the deal.

    IMHO its a shitty practice. There is risk if the C-level pulls some stupid shit tanking the stock. The reward could just as easily be distributed to employees with a profit sharing bonus that eliminates the risk of my options tanking while vesting. Let the employees convert to options if they want to stake on future company performance.

    At least in the US, I could have used the value of my options earlier in life to help with student loans, buying a house, medical issues, having kids, etc. I grew up poor. I “pulled myself up from bootstraps” and am doing well now. I still think the whole system is a dumb gimmick.






  • I haven’t tested in Windows, but this is my setup Linux to Linux using rclone which the docs say works with Windows.

    Server

    • LUKS
    • LVM
    • Volgroup with a mishmash of drives in a mirror configuration
    • Cache volume with SSD
    • BTRFS /w Snapshots (or ZFS or any other snapshotting FS)
    • (optional) Rclone local “remote” with Crypt if you want runtime encryption at rest and the ability to decrypt files on the server. You can skip this and do client side only if you don’t want the decryption key on the server.
    • SFTP (or any other self-hosted protocol from https://rclone.org/docs/)

    Client

    • Rclone Config /w SFTP (or chosen protocol)
    • (optional) Rclone Config /w Crypt
    • Rclone mount with VFS.

    I use this setup for my local files and a similar setup to my Backblaze B2 off site backups.

    The VFS implementation has been pretty good. You can also manually sync. Their bisync I don’t fully trust though.

    I can access everything through android using https://github.com/newhinton/Round-Sync. Not great for photos though as thumbnails weren’t loading without pulling the whole file last I tested a year ago.







  • but I am using it not in the way it’s intended

    This is absolutely intended. Nix is a programming language, package manager, and operating system.

    Nix the package manager is intended to be used on nixos and non-nixos operating systems. It has first party support for Darwin (macOS).

    My nixos build is not daily driver ready, so I’m still on Ubuntu for my productivity systems. The majority of the Ubuntu apps I use are managed via nix using home manager at this point. These share the same configurations with my nixos systems.

    It is relatively low risk* since nix installs everything in /nix/store and sets up some env vars and user systemd services with symlinks to map to there. If I install Firefox with nix, the Ubuntu version is still there untouched. My PATH just hits nix first before the system. You have to change like one file if I’m remembering correctly after uninstalling if you want to back out which is the trigger for a nix package to come before a native package.

    • If you dip into declarative app configs (zsh, fish, nvim, etc.) you can absolutely lose the original. I tracked all that in a dotfiles repo before nix personally. Just have backups and start small.


  • If I had used a flake, I could have isolated that dependency from the rest of my build, while still tracking its integration with my system.

    I have to do this weekly with my bleeding edge Hyprland setup.

    I’ve been using nvfetcher to feed my nightlies addiction for software that doesn’t have a flake.

    Only major hiccup I had was pulling a few packages from nixpkgs master due to a bug that got introduced in unstable for electron apps before it hit cachix. Wasn’t expecting it to take a day to compile everything that depended on it.

    10/10 would highly recommend flakes.



  • I don’t see it dying from my perspective. Its only been getting better and better. The only thing I could see displacing it in my org is maybe Rust due to WASM proving a transition path.

    We use TS on the back end to leverage our teams existing skill set and libraries we’ve built up.

    I know it’s a meme to use “the next best thing” in the ecosystem, but we’ve been really happy with the newish Effect library + Bun runtime. Effect is like a merger of the older fp-ts/io-ts libraries (same author works on both) with Zio from the Scala ecosystem. It vastly simplifies the former and the new stuff with dependency injection and defect management is refreshing. With the Bun runtime, we see a 15x faster startup time (great for dev). Its halved the RAM requirements in prod. We don’t even need to transpile… We still do for prod to tree-shake dev-only code to ensure its not available in prod, but deploying to dev is FAST.