From 0b2e33d0c43b45e771a7a88a44e3fe912d0c7ca5 Mon Sep 17 00:00:00 2001 From: "reaction.la" Date: Sun, 3 Nov 2024 22:46:38 +0000 Subject: [PATCH] fixed the web links --- .gitconfig | 2 +- docs/index.md | 6 ++- docs/setup/guix_and_shepherd.md | 61 +++++++++++++++++++++++++ docs/setup/nix.md | 13 ++++-- docs/setup/set_up_build_environments.md | 23 ++++++++-- libsodium | 2 +- 6 files changed, 96 insertions(+), 11 deletions(-) create mode 100644 docs/setup/guix_and_shepherd.md diff --git a/.gitconfig b/.gitconfig index 3e717b0..b6423ce 100644 --- a/.gitconfig +++ b/.gitconfig @@ -1,5 +1,5 @@ [core] - autocrlf = input + autocrlf = false #line ending issues should be handled in .gitattributes whitespace = -tab-in-indent,tabwidth=4,indent-with-non-tab,trailing-space,space-before-tab safecrlf=warn [apply] diff --git a/docs/index.md b/docs/index.md index dca5f2b..5f61e34 100644 --- a/docs/index.md +++ b/docs/index.md @@ -3,9 +3,11 @@ title: How to Save the World ... I have almost completed an enormous design document for an uncensorable social network intended to contain a non evil scalable proof of share currency, and I have a wallet that can generate secrets, but the wallet is missing no end of critical features – it is pre-pre alpha. When it is early pre alpha, I am going to publish it on Gitea, and call for assistance. -Here is a link to one version of the [white paper](social_networking.html), focusing primarily on social media. (But though information wants to be free, programmers need to get paid.) +Here is a link to one version of the [white paper](manifesto/social_networking.html), focusing primarily on social media. (But though information wants to be free, programmers need to get paid.) -Here is a link to [another version](white_paper.html) of the white paper, focusing primarily on money and getting rich by protecting capitalism from the state. +Here is a link to [another version](manifesto/white_paper.html) of the white paper, focusing primarily on money and getting rich by protecting capitalism from the state. + +Here is a link to my plan for [conquering the world](manifesto/SWIFT.html). # Speech and commerce diff --git a/docs/setup/guix_and_shepherd.md b/docs/setup/guix_and_shepherd.md new file mode 100644 index 0000000..5b128ab --- /dev/null +++ b/docs/setup/guix_and_shepherd.md @@ -0,0 +1,61 @@ +--- +title: + Guix and Shepherd +sidebar: true +misc_links: >- + Set up build environments
+abstract: >- + I know nothing about Guix. This file exists to record my learning + experience.\ + + \ + + The plan is to be able to install Guix on debian, then load a reproducible + configuration file so that I can instantly and reproducibly produce a + host setup the way I want it. (Which nix, lacking its own init + system, cannot quite do, because one always wants to run services.) +... + +Guix is primarily a package manager with a declarative functional language +as its package manager. + +Which makes it possible to reproducibly create a setup. +Unfortunately the packages are hard to customise, +because access to the +configuration files is restricted and non trivial -- you have to derive your own package from an existing package + +Guix solves the problem of dll hell by having any number of configurations living on the same machine -- +which leads to massive and rapid accumulation of garbage. +Garbage collection is very slow, and requires either a lot of ram or a lot of swap (12GB swap recommended. +This is a feature I do not want, but wind up suffering, for the advantage of reproducible setups. + +To avoid bloat, can use a strategy of re-install from scratch, which Guix makes less painful. + +"With Guix System, you declare all aspects of the operating system configuration and Guix takes care of +instantiating the configuration in a transactional, reproducible, and stateless fashion +(see [System Configuration](https://guix.gnu.org/manual/en/html_node/System-Installation.html))." + + +# What Guix is + +A Guix package is a pure function, which generates the install +as directory identified by its hash in `/gnu/store` and then a symbolic link +in the users directory references the package by human readable name, analogous +to git having branch names that point to commits. + +Which is great if you have a lot of users each of which might want a different +version of software, but I want to install stuff that will run under +the init system, Shepherd. + +The package manager is a great pile of such pure functions, +but if you want to install stuff that is fully configured the way you want it configured, +you are going to have to derive a packages from an existing package + +The Guix install system, Shepherd, cannot be a pure function, there can only be one http service, +one wireguard service, and so forth. It has to be the escape hatch that makes a purely functional +system actually do things by not being a purely functional system, akin to Haskell Monads, +an isolated piece of procedural code that make all the purely functional code actually do something. + +# Install Guix and Shepherd + +not yet begun diff --git a/docs/setup/nix.md b/docs/setup/nix.md index cfa6556..0465975 100644 --- a/docs/setup/nix.md +++ b/docs/setup/nix.md @@ -3,10 +3,17 @@ title: Nixos sidebar: true misc_links: >- - Set up build environments.
- Wireguard.
- Dovecot.
+ Set up build environments
abstract: >- + Unfortunately Nix and Nixos has fallen to the social justice warriors + who are turning it into broken rubbish.\ + + \ + + Alternatives: Primary alternative is Guix, which has its own init system, Shepherd, and uses Scheme as its language. + + \ + I know nothing about nix. This file exists to record my learning experience.\ diff --git a/docs/setup/set_up_build_environments.md b/docs/setup/set_up_build_environments.md index 075360e..36f4d59 100644 --- a/docs/setup/set_up_build_environments.md +++ b/docs/setup/set_up_build_environments.md @@ -4,13 +4,15 @@ title: sidebar: true notmine: false misc_links: >- - Wireguard.
- Dovecot.
- nix.
+ Wireguard
+ Dovecot
+ nix
+ Guix and Shepherd
abstract: >- These files are not specific to rhocoin. They are a collection of notes on setting up operating systems and tools. Every time I mess around - and encounter some grief, I add to this pile of notes. + and encounter some grief, I add to this pile of notes, which has become + inconveniently long and needs to be broken up. ... # partitioning for linux @@ -3080,6 +3082,19 @@ then put a symlink to your directory in the repository in your apache directories, whereupon the clone command takes as its argument the directory url (with no trailing backslash). +### Merge Conflicts + +Resolving a merge conflict is usually a little bit messy, creating opportunities to make mistakes + +The safest way to resolve a merge conflict is to use git `mergetool`, followed by `git gui`. + +`git gui` is useless for resolving merge conflicts, but after having resolved them in your mergetool, then when you click on commit in `git gui`, you +can see that the situation is what you think it is before issuing the commit command. + +In linux, git gui is not necessarily available unless you have installed not just `git`, but `git-all` + +The best mergetool by far is Meld. But it is preferable to issue the commit command from within `git-gui`, +since you get a more global view of the situation. ## Sharing git repositories diff --git a/libsodium b/libsodium index b6e1e94..de5189a 160000 --- a/libsodium +++ b/libsodium @@ -1 +1 @@ -Subproject commit b6e1e94cfb3d8dffdb1bb92b6102e5fad5fe6093 +Subproject commit de5189af55c7470422f4490ad0d85549b80c011d