adcomp
flake-utils-plus
adcomp | flake-utils-plus | |
---|---|---|
2 | 19 | |
164 | 445 | |
- | - | |
7.9 | 4.9 | |
25 days ago | 9 days ago | |
C++ | Nix | |
GNU General Public License v3.0 or later | MIT License |
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
adcomp
-
Nix: Taming Unix with Functional Programming
Are any of your R users TMB users? Because I ran into that in multiple setups (Guix SD and Guix on foreign distros) where only a specific ordering worked even when using guix shell --pure. This was back in the R 4.1.2 days. In theory it should be impossible and yet I ran into it. No I was not mixing packages installed via. install.packages.
Right now with the latest version of Guix and R 4.2.1 TMB is not usable. Try running:
"guix shell --container r r-tmb make gcc-toolchain gfortran-toolchain"
then try running the linreg.R (with the corresponding cpp file, or any of the examples) example from https://github.com/kaskr/adcomp/tree/master/tmb_examples
-
Useful Algorithms That Are Not Optimized by Jax, PyTorch, or TensorFlow
There is no free lunch:).
I remember spending a summer using Template Model Builder (TMB), which is a useful R/C++ automatic differentiation (AD) framework, for working with accelerated failure time models. For these models, the survival to time T given covariates X is defined by S(t|X) = P(T>t|X) = S_0(t exp(-beta^T X)) for baseline survival S_0(t). I wanted to use splines for the baseline survival and then use AD for gradients and random effects. Unfortunately, after implementing the splines in template C++, I found a web page entitled "Things you should NOT do in TMB" (https://github.com/kaskr/adcomp/wiki/Things-you-should-NOT-d...) - which included using if statements that are based on coefficients. In this case, the splines for S_0 depend on beta, which is this specific excluded case:(. An older framework (ADMB) did not have this constraint, but dissemination of code was more difficult. Finally, PyTorch did not have an implementation of B-splines or an implementation for Laplace's approximation. Returning to my opening comment, there is no free lunch.
flake-utils-plus
-
[Question] When using flakes, can I remove all channels?
You don't need channels to use nix-shell or nix-env. You can generate the Nix path and registry from your flake inputs. flake-utils-plus makes this easy with nix.generateRegistryFromInputs and nix.generateNixPathFromInputs.
-
How do I deploy a configuration to a machine with an existing hardware-configuration.nix?
Use flake-utils-plus to easily define multiple systems in flake.nix.and then use the --target-host flag of nixos-rebuild to deploy it remotely.
-
Have a shell command in configuration.nix that runs on nixos-rebuild
If you're trying to handle multiple systems with one config a flake is a significantly better option. I would personally recommend looking at flake-utils-plus and specifically this example config.
- Nix Flakes
-
Best way to manage multiple home manager configs for both NixOS and non-NixOS systems using flakes?
I looked at some past threads / examples and saw people recommend flake-utils-plus, but after reading the examples I don't understand how I would get home-manager on Darwin or Ubuntu.
-
Nix: Taming Unix with Functional Programming
Depending on your specific needs, the channelsConfig (modify arguments passed to Nixpkgs) and overlay tooling in flake-utils-plus may be adequate: https://github.com/gytis-ivaskevicius/flake-utils-plus/tree/...
-
What to do...
For flakes you don't have to set up everything manually there are helper libraries, I use flake-utils-plus.
-
How shall I install a package not found at https://search.nixos.org/packages?
Converting to flakes is not that hard if you use a good library. The documentation is other people's configs, really.
-
I made a thing you can load in Nix repl to get variables from your NixOS configuration
Neat! I've been using flake-utils-plus's implementation until now. https://github.com/gytis-ivaskevicius/flake-utils-plus/blob/master/lib/repl.nix
-
How to use a patched nixpkgs locally?
I use flake-utils-plus based configuration to apply patches on top of nixpkgs where overlays don't suffice.
What are some alternatives?
std - A DevOps framework for the SDLC with the power of Nix and Flakes. Good for keeping deadlines!
Home Manager using Nix - Manage a user environment using Nix [maintainer=@rycee]
mach-nix - Create highly reproducible python environments
flake-utils - Pure Nix flake utility functions [maintainer=@zimbatm]
deploy-rs - A simple multi-profile Nix-flake deploy tool.
nixGL - A wrapper tool for nix OpenGL application [maintainer=@guibou]
boostrap - my personal ricing setup (WIP)
poetry2nix - Convert poetry projects to nix automagically [maintainer=@adisbladis]
NixOS-docker - DEPRECATED! Dockerfiles to package Nix in a minimal docker container
nix-processmgmt - Experimental Nix-based process management framework
NUR - Nix User Repository: User contributed nix packages [maintainer=@Mic92]