Keyoxide: https://keyoxide.org/9f193ae8aa25647ffc3146b5416f303b43c20ac3
OpenPGP: openpgp4fpr:9f193ae8aa25647ffc3146b5416f303b43c20ac3
Article 6 of the law requires all “software application stores” to:
- Assess whether each service provided by each software application enables human-to-human communication
- Verify whether each user is over or under the age of 17
- Prevent users under 17 from installing such communication software
It may seem unbelievable that the authors of the law didn’t think about this but it is not that surprising considering this is just one of the many gigantic consequences of this sloppily thought out and written law.
That law is a big document; would have been helpful if Mullvad’s article directly cited/referenced as for us to verify some of that.
I don’t know about language models in specific. I read this recently on “federated learning” https://venturebeat.com/ai/federated-learning-key-to-securing-ai/
It says data privacy issues. Maybe it is also a more complex architecture.
It is because it departs from POSIX that it is good; I recognize the syntax for some functionality is cumbersome and hard to remember though. There are similarities like command names and piping still…
I use NixOS and home-manager, so for switching I just
home-manager.users.yuu = {
programs.nushell = {
package = pkgs-update.nushell;
enable = true;
configFile.source = ../../config/nushell/config.nu;
envFile.source = ../../config/nushell/env.nu;
};
};
The config.nu
and env.nu
is basically the default just with a customized prompt.
Then in my alacritty.ylm
I set shell
to the nu
binary
shell:
program: /etc/profiles/per-user/yuu/bin/nu
Also learned from official resources https://www.nushell.sh/book. When I have doubts, I ask either on Nushell’s GitHub discussions or https://matrix.to/#/#nushell:matrix.org
And to keep a POSIX shell
{
environment = {
systemPackages = with pkgs; [
mksh
];
sessionVariables = rec {
TERM = "alacritty";
TERMINAL = "alacritty";
SHELL = "${pkgs.mksh}/bin/mksh";
};
environment.shells = [
"${pkgs.mksh}/bin/mksh"
];
}
You can use Nix which works in many distros; it has the most packages of any package repository/collection
https://nixos.org/download.html#nix-install-linux
GNU Guix is similar, but not as much packages
https://guix.gnu.org/en/download/ https://guix.gnu.org/manual/en/html_node/Binary-Installation.html
For nixos /etc/nixos/flake.nix
. Example https://git.sr.ht/~misterio/nix-config/tree/main/item/flake.nix
For home-manager see https://nix-community.github.io/home-manager/index.html#ch-nix-flakes
For individual projects like that Pytorch one you can put on any git repo.
If you use same nixpkgs revision as the one you currently have using channels nix should not rebuild derivations.
https://nixos.org/manual/nix/unstable/command-ref/new-cli/nix3-flake.html
or man nix3-flake.
For a NixOS flake example: https://git.sr.ht/~misterio/nix-config/tree/main/item/flake.nix
For specific language examples https://github.com/NixOS/templates (which you can nix flake new my-project-name --template "templates#template-name"
. For real examples https://sourcegraph.com/search?q=context:global+.*+file:flake.nix+lang:Nix&patternType=regexp&sm=1
here a pytorch example when I was learning Flakes
# https://nixos.org/manual/nix/unstable/command-ref/new-cli/nix3-flake.html
# https://discourse.nixos.org/t/pytorch-cuda-on-wsl/18267
# https://discourse.nixos.org/t/pytorch-and-cuda-torch-not-compiled-with-cuda-enabled/11272
# https://gitlab.com/abstract-binary/nix-nar-rs/-/blob/main/flake.nix
# https://github.com/hasktorch/libtorch-nix
# https://github.com/google-research/dex-lang/blob/main/flake.nix
# https://yuanwang.ca/posts/getting-started-with-flakes.html
{
description = "PyTorch";
# Specifies other flakes that this flake depends on.
inputs = {
devshell.url = "github:numtide/devshell";
utils.url = "github:numtide/flake-utils";
nixpkgs.url = "github:nixos/nixpkgs/nixos-22.11";
};
# Function that produces an attribute set.
# Its function arguments are the flakes specified in inputs.
# The self argument denotes this flake.
outputs = inputs@{ self, nixpkgs, utils, ... }:
(utils.lib.eachSystem [ "x86_64-linux" ] (system:
let
pkgs = (import nixpkgs {
inherit system;
config = {
# For CUDA.
allowUnfree = true;
# Enables CUDA support in packages that support it.
cudaSupport = true;
};
});
in rec {
# Executed by `nix build .#<name>`
packages = utils.lib.flattenTree {
hello = pkgs.hello;
};
# Executed by `nix build .`
defaultPackage = packages.hello;
# defaultPackage = pkgs.callPackage ./default.nix { };
# Executed by `nix develop`
devShell = with pkgs; mkShell {
buildInputs = ([
python39 # numba-0.54.1 not supported for interpreter python3.10
] ++ (with python39.pkgs; [
inflect
librosa
pip
pytorch-bin
unidecode
]) ++ (with cudaPackages; [
cudatoolkit
]));
shellHook = ''
export CUDA_PATH=${pkgs.cudatoolkit}
'';
};
}
));
}
nix-channel works now and is a lot simpler
It is not. Once you understand flakes, you will see how much better it is. If you do not understand why flakes exist to begin with, read https://www.tweag.io/blog/2020-05-25-flakes/
also use in conjunction with flakes:
Pick AGPLv3 for your next free software project, or even relicense your existing ones. See also https://www.fsf.org/bulletin/2021/fall/the-fundamentals-of-the-agplv3
KDE Connect has been very unreliable to me. I’m using magic wormhole now.