adcomp
hydra
adcomp | hydra | |
---|---|---|
2 | 5 | |
164 | 1,059 | |
- | 2.5% | |
7.9 | 8.7 | |
26 days ago | 5 days ago | |
C++ | Perl | |
GNU General Public License v3.0 or later | GNU General Public License v3.0 only |
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.
hydra
-
Cloudflare R2-Backed Nix Binary Cache on Fly.io
See https://github.com/NixOS/hydra/issues/838 for making content-addressed derivations supported by hydra.nixos.org. At that point, we can actually try out the XP feature at scale.
Also see https://github.com/NixOS/nix/issues/8919 for this accepted RFC
Once those things are done, we can get back to merging in the IPFS code.
Now that there is an Nix team and I am on it, there is much, much less of an issue of these experiments being caught in limbo :).
-
Concerns about Arch Team size, trusting Arch supply chain, developer machines and build process
https://github.com/nix-community/infra, Community project builds https://github.com/NixOS/hydra, NixOS build server
-
Monorepo Build Tools
Nix is pretty cool, and I would say comparisons to Earthly are apt. I may tackle that in a follow-up. If you did a monorepo setup written in nix and then used something like Hydra for building, it might be a pretty nice solution.
-
Nix: Taming Unix with Functional Programming
Nix seems great for build servers. This is a great introduction to the motivations behind it.
I'm not sold on using it for managing developer environments (another use case it is often used for). It "solves" the problem that developers might be using different versions of libraries or compilers on their machines... but it comes at the cost of having to learn a whole new programming language, a configuration language, a whole new jargon, and workflow. It's a bit like using Docker as a development environment. It introduces a non-trivial amount of friction.
Some folks get excited about package management and configuration. Personally I don't care for it enough to over-come such a high learning curve. And I don't particularly like the workflow it enforces.
However it is pretty great for reproducible CI/CD systems like Hydra: https://github.com/NixOS/hydra
-
How shall I install a package not found at https://search.nixos.org/packages?
Somewhat related to this, is there a good way to install something from a flake inside the configuration.nix? For example, the hydra flake, since it includes many derivations for dependencies that are not part of nixpkgs (or are at the wrong versions).
What are some alternatives?
std - A DevOps framework for the SDLC with the power of Nix and Flakes. Good for keeping deadlines!
mach-nix - Create highly reproducible python environments
infra - nix-community infrastructure [maintainer=@zowoq]
deploy-rs - A simple multi-profile Nix-flake deploy tool.
flake-utils-plus - Use Nix flakes without any fluff.
boostrap - my personal ricing setup (WIP)
awesome-nix - 😎 A curated list of the best resources in the Nix community [maintainer=@cyntheticfox]
nix-monorepo - An illustration of how you might use Nix in a large, multi-language project and in accordance with best practices
slsa - Supply-chain Levels for Software Artifacts