These are notes to the stream: https://youtu.be/S9V-pcTrdL8
- We are not aware of a lot of GNU software available to us.
- Seems that Guix more hacker-friendly/explorable.
| Description | Nix | Guix | Comment |
These are notes to the stream: https://youtu.be/S9V-pcTrdL8
| Description | Nix | Guix | Comment |
I liked the way Grokking the coding interview organized problems into learnable patterns. However, the course is expensive and the majority of the time the problems are copy-pasted from leetcode. As the explanations on leetcode are usually just as good, the course really boils down to being a glorified curated list of leetcode problems.
So below I made a list of leetcode problems that are as close to grokking problems as possible.
This focuses on generating the certificates for loading local virtual hosts hosted on your computer, for development only.
Do not use self-signed certificates in production ! For online certificates, use Let's Encrypt instead (tutorial).
Testing Jenkins flows on your local machine, or running Jenkins in production in a docker container can be a little tricky with a docker-in-docker scenario. You could install Jenkins to avoid any docker-in-docker issues, but then you have Jenkins on your machine, and the local environment is likely going to be a fairly different from the actual production build servers, which can lead to annoying and time-consuming issues to debug.
Build environment differences are precisely why there is a strong argument to be made to run build processes strictly in docker containers. If we follow the philosophy that every build step or action should run in a docker container, even the Jenkins server itself, then we get massive benefits from things like, total control over the build environment, easily modify the build environment without the possibility of adversely effecting other jobs, explicit and strongly controlled tool versions,
- overrideDerivation is used to override the call to derivation
- overrideAttrs is used to override the call to stdenv.mkDerivation
- override is used to override the last function call. Often this will be the callPackage call.
- overridePythonAttrs is used to override the call to buildPython*.
This PR NixOS/nixpkgs#46842 discusses the idea to have a generic overrideArgs that works like overridePythonAttrs for all language infrastructures.
| #!/usr/bin/env sh | |
| # show the output paths of a derivation | |
| nix-store --query --outputs $(nix-instantiate) | |
| # show the immediate dependencies of a derivation | |
| nix-store --query --references $(nix-instantiate) | |
| # show the transitive dependencies of a derivation | |
| nix-store --query --requisites $(nix-instantiate) | |
| # show the dependers of a store-path | |
| nix-store --query --referrers $(nix-instantiate) |
| { | |
| coc-nvim = let | |
| pname = "coc-nvim"; | |
| version = "0.0.61"; | |
| src = fetchFromGitHub { | |
| owner = "neoclide"; | |
| repo = "coc.nvim"; | |
| rev = "v${version}"; | |
| sha256 = "1as2hb4kfq1m0nq7vp2ibkfq8n219ykr04qx4qadg97s7iky4yx4"; |