From eeac83e13265b4f8562e0fada86b8f8f756023bf Mon Sep 17 00:00:00 2001 From: dadada Date: Mon, 13 Nov 2023 21:51:00 +0100 Subject: [PATCH] switch to plain HTML --- .gitignore | 3 - .gitmodules | 0 archetypes/default.md | 6 - blog/gpg/index.html | 55 ++++++++ {content/blog => blog}/home-layout/home.svg | 0 blog/home-layout/index.html | 62 +++++++++ blog/index.html | 22 ++++ config.yaml | 30 ----- content/_index.md | 9 -- content/blog/_index.md | 7 - content/blog/gpg/_index.md | 39 ------ content/blog/home-layout/_index.md | 62 --------- content/projects/_index.md | 50 ------- content/talks/_index.md | 8 -- content/talks/pad-archiver/_index.md | 139 -------------------- content/talks/systemd.generator/_index.md | 85 ------------ data/.gitkeep | 0 default.nix | 19 --- feed.xml | 45 +++++++ flake.lock | 41 ------ flake.nix | 14 -- index.html | 38 ++++++ layouts/.gitkeep | 0 resources/.gitkeep | 0 shell.nix | 6 - static/.gitkeep | 0 talks/pad-archiver/index.html | 123 +++++++++++++++++ talks/systemd-generator/index.html | 100 ++++++++++++++ themes/.gitkeep | 0 29 files changed, 445 insertions(+), 518 deletions(-) delete mode 100644 .gitignore delete mode 100644 .gitmodules delete mode 100644 archetypes/default.md create mode 100644 blog/gpg/index.html rename {content/blog => blog}/home-layout/home.svg (100%) create mode 100644 blog/home-layout/index.html create mode 100644 blog/index.html delete mode 100644 config.yaml delete mode 100644 content/_index.md delete mode 100644 content/blog/_index.md delete mode 100644 content/blog/gpg/_index.md delete mode 100644 content/blog/home-layout/_index.md delete mode 100644 content/projects/_index.md delete mode 100644 content/talks/_index.md delete mode 100644 content/talks/pad-archiver/_index.md delete mode 100644 content/talks/systemd.generator/_index.md delete mode 100644 data/.gitkeep delete mode 100644 default.nix create mode 100644 feed.xml delete mode 100644 flake.lock delete mode 100644 flake.nix create mode 100644 index.html delete mode 100644 layouts/.gitkeep delete mode 100644 resources/.gitkeep delete mode 100644 shell.nix delete mode 100644 static/.gitkeep create mode 100644 talks/pad-archiver/index.html create mode 100644 talks/systemd-generator/index.html delete mode 100644 themes/.gitkeep diff --git a/.gitignore b/.gitignore deleted file mode 100644 index 552ef9e..0000000 --- a/.gitignore +++ /dev/null @@ -1,3 +0,0 @@ -result -public/ -**/_gen diff --git a/.gitmodules b/.gitmodules deleted file mode 100644 index e69de29..0000000 diff --git a/archetypes/default.md b/archetypes/default.md deleted file mode 100644 index 00e77bd..0000000 --- a/archetypes/default.md +++ /dev/null @@ -1,6 +0,0 @@ ---- -title: "{{ replace .Name "-" " " | title }}" -date: {{ .Date }} -draft: true ---- - diff --git a/blog/gpg/index.html b/blog/gpg/index.html new file mode 100644 index 0000000..4e5c690 --- /dev/null +++ b/blog/gpg/index.html @@ -0,0 +1,55 @@ + + + + + dadada's web log + + + +
+ +
+
+

Managing Stripped GPG Keys

+
+    +--(master pass)                   +----(user pass)--+
+    |        |                         |                 |
+    |     decrypts                 decrypts           decrypts
+    |        |                         |                 |
+    |        v                         v                 v
+decrypts  +----------------+     +----------+      +-----------+
+    |     | TRUSTED        |     | ANDROID  |      | KEYCHAIN  |
+    |     | SCA (master)   |     | SE (ssb) |      | SEA (ssb) |
+    |     | offline + HSM  |     | Sandbox  |      | HSM       |
+    |     +----------------+     +----------+      +-----------+
+    |          |                        ^                 ^
+    |          |                        |                 |
+    |          +----creates-------------|-----------------+
+    |
+    |  +-----------------+
+    |  | PAPER           |
+    +->| SEA (master)    |
+       | remote on paper |
+       +-----------------+
+			
+

+ See here on how to strip the master key (sec) from your keyring and create secret subkeys (ssb) for daily active use. + The master key can sign (S) new subkeys, create certificates (C) and provide authentication (A). + The master key lives forever, while the ssb that is used for signing is created with an expiration date. + All encryption keys may remain valid indefinitely until revoked. + The master key can be used to revoke the subkeys. +

+

+ A few considerations +

+
+ + + diff --git a/content/blog/home-layout/home.svg b/blog/home-layout/home.svg similarity index 100% rename from content/blog/home-layout/home.svg rename to blog/home-layout/home.svg diff --git a/blog/home-layout/index.html b/blog/home-layout/index.html new file mode 100644 index 0000000..c0051bd --- /dev/null +++ b/blog/home-layout/index.html @@ -0,0 +1,62 @@ + + + + + dadada's web log + + + +
+ +
+
+

My $HOME

+

Recently, I came across a blog posting titled $HOME, sweet $HOME, where @blinry advocates for structuring your HOME directory based on projects and their activity. After reading this I felt inspired to finally have a look at the mess I made of my $HOME in the last years.

+

A few things about my old $HOME: +

+

+

If you sorted the files by file type like the default XDG directories + suggest, files from one project may be scattered across many different + directories.

+

So my goal for the new $HOME was to have a clean directory structure where: - it is obvious where to place new files - paths do not become too long to type out - the directory structure relates to how I work

+

A quick tour of my new $HOME:

+ +

The project directory

+

All of my projects are stored in src. I use a flat directory structure, where every project has its own subdirectory based on its name. Projects can become part of one or more larger contexts through the use of tags.

+

Tags

+

Tag directories are stored in tag. Each directory stores symbolic links to parts of a project that can be distributed around lib and src. One possible use for the tag directories is creating workbenches. If I use some directories in lib or src in different contexts, + tag can be used to include them in multiple workbenches.

+

An example workflow

+
+$ cd tag
+$ mkdir -p course1/examples
+$ ln -s ~/src/example1 course1/examples/
+$ ln -s ~/lib/courses/course1 course1/material
+$ rm -r course1
+			
+

I create new tags for various reasons, but mostly one for each larger context (e.g.Β work, hobbies, admin foo, thesis, courseXY) and some more for tracking project activity. There are four different tags in tag directory right now for tracking project activity:

+ +

Workflow

+
+ Basically this + +
+
+ + + diff --git a/blog/index.html b/blog/index.html new file mode 100644 index 0000000..1053cae --- /dev/null +++ b/blog/index.html @@ -0,0 +1,22 @@ + + + + + dadada's web log + + + +
+ +
+
+

dadada's web log

+ +
+ + diff --git a/config.yaml b/config.yaml deleted file mode 100644 index ae49bb2..0000000 --- a/config.yaml +++ /dev/null @@ -1,30 +0,0 @@ -baseURL: 'https://dadada.li/' -languageCode: 'en-us' -title: 'dadada' -theme: 'anubis' -languageCode: 'en-us' - -params: - author: 'dadada' - dateFormat: '2006-01-02' - social: - - id: github - name: dadada - - id: mastodon - name: '@dadada@chaos.social' - -menu: - main: - - identifier: blog - name: Blog - title: Blog - url: /blog/ - - identifier: projects - name: Projects - title: Projects - url: /projects/ - - identifier: talks - name: Talks - title: Talks - url: /talks/ - diff --git a/content/_index.md b/content/_index.md deleted file mode 100644 index 776eade..0000000 --- a/content/_index.md +++ /dev/null @@ -1,9 +0,0 @@ -**Welcome to my personal homepage ;-)** - -## Contents - -- [Blog](blog/) -- [Projects](projects/) -- [Talks](talks/) - -[Social](https://chaos.social/@dadada) diff --git a/content/blog/_index.md b/content/blog/_index.md deleted file mode 100644 index 664fcd4..0000000 --- a/content/blog/_index.md +++ /dev/null @@ -1,7 +0,0 @@ ---- -title: "dadada's Blog" ---- -# dadada's Blog - -- [Managing stripped GPG keys](gpg/) -- [My $HOME](home-layout/) diff --git a/content/blog/gpg/_index.md b/content/blog/gpg/_index.md deleted file mode 100644 index 3fca4e5..0000000 --- a/content/blog/gpg/_index.md +++ /dev/null @@ -1,39 +0,0 @@ ---- -title: Managing stripped GPG keys -date: 2017-12-03 ---- -# Managing stripped GPG keys - -``` - +--(master pass) +----(user pass)--+ - | | | | - | decrypts decrypts decrypts - | | | | - | v v v -decrypts +----------------+ +----------+ +-----------+ - | | TRUSTED | | ANDROID | | KEYCHAIN | - | | SCA (master) | | SE (ssb) | | SEA (ssb) | - | | offline + HSM | | Sandbox | | HSM | - | +----------------+ +----------+ +-----------+ - | | ^ ^ - | | | | - | +----creates-------------|-----------------+ - | - | +-----------------+ - | | PAPER | - +->| SEA (master) | - | remote on paper | - +-----------------+ -``` - -See [here](https://www.void.gr/kargig/blog/2013/12/02/creating-a-new-gpg-key-with-subkeys/) on how to strip the master key (sec) from your keyring and create secret subkeys (ssb) for daily active use. -The master key can sign (S) new subkeys, create certificates (C) and provide authentication (A). -The master key lives forever, while the ssb that is used for signing is created with an expiration date. -All encryption keys may remain valid indefinitely until revoked. -The master key can be used to revoke the subkeys. - -A few considerations - -- use a separate PIN on the trusted system / for the master key (sec) in case a key-logger reads the PIN on a semi-trusted machine (e.g. laptop or android) when decrypting a secret subkey (ssb) -- use subkey (A) for authenticating ssh -- keep master key offline / air-gapped diff --git a/content/blog/home-layout/_index.md b/content/blog/home-layout/_index.md deleted file mode 100644 index 35f8d67..0000000 --- a/content/blog/home-layout/_index.md +++ /dev/null @@ -1,62 +0,0 @@ ---- -title: My $HOME -date: 2018-09-03 ---- - -# My $HOME - -Recently, I came across a blog posting titled "[$HOME, sweet $HOME](https://morr.cc/home-sweet-home/)", where [@blinry](https://morr.cc/) advocates for structuring your `$HOME` directory based on projects and their activity. -After reading this I felt inspired to finally have a look at the mess I made of my `$HOME` in the last years. - -A few things about my old `$HOME`: -- ``Documents`` contained basically everything I had accumulated during the last years besides music, videos, pictures and source code. -- ``projects`` just contained one gigantic folder of all projects that I ever worked on. -- the rest was based on the default [xdg-user-dirs](https://freedesktop.org/wiki/Software/xdg-user-dirs/) - -If you sorted the files by file type like the default XDG directories suggest, files from one project may be scattered across many different directories. - -So my goal for the new `$HOME` was to have a clean directory structure where: - - it is obvious where to place new files - - paths do not become too long to type out - - the directory structure relates to how I work - -A quick tour of my new `$HOME`: - -- `lib` for immutable files -- `src` for mutable files -- `tag` stores links to projects -- `tmp` for unsorted files and downloads - -## The project directory - -All of my projects are stored in `src`. -I use a flat directory structure, where every project has its own subdirectory based on its name. -Projects can become part of one or more larger contexts through the use of tags. - -## Tags - -Tag directories are stored in `tag`. -Each directory stores symbolic links to parts of a project that can be distributed around `lib` and `src`. -One possible use for the tag directories is creating workbenches. -If I use some directories in `lib` or `src` in different contexts, `tag` can be used to include them in multiple workbenches. - -An example workflow -```sh -$ cd tag -$ mkdir -p course1/examples -$ ln -s ~/src/example1 course1/examples/ -$ ln -s ~/lib/courses/course1 course1/material -$ rm -r course1 -``` - -I create new tags for various reasons, but mostly one for each larger context (e.g. work, hobbies, admin foo, thesis, courseXY) and some more for tracking project activity. -There are four different tags in `tag` directory right now for tracking project activity: - -- permanent -- active -- hold -- dead - -## Workflow - -![Basically this](home.svg) diff --git a/content/projects/_index.md b/content/projects/_index.md deleted file mode 100644 index 2b798f6..0000000 --- a/content/projects/_index.md +++ /dev/null @@ -1,50 +0,0 @@ ---- -title: dadada's projects ---- -# dadada's projects - -See also my [GitHub](https://github.com/dadada) and [Gitlab](https://gitlab.com/dadada_). - -## Contributions - -- [nixpkgs](https://github.com/NixOS/nixpkgs) - Nix Packages collection -- [nixos-hardware](https://github.com/NixOS/nixos-hardware) - A collection of NixOS modules covering hardware quirks. -- [RecipeMD](https://github.com/tstehr/RecipeMD) - Markdown recipe format and cli tool - -## Educational - -- [ns-3-leo](https://gitlab.ibr.cs.tu-bs.de/tschuber/ns-3-leo) - Low earth orbit satellite topology simulation for ns-3 -- [Bob](https://github.com/dadada/Bob) -- [Recipes](https://github.com/dadada/recipes) - Collection of recipes -- [Bachelor Thesis](https://github.com/dadada/bachelor-thesis) - Evaluating transient node failures with FIT IoT-Lab -- [netcalc](https://github.com/dadada/netcalc) - A very simple network calculator. - -## Recreational - -- [UuidGen](https://gitlab.com/dadada_/uuidgen) - Android UUID Generator with history and clipboard support -- [mailbox2matrix](https://github.com/dadada/mailbox2matrix) - Mailbox to Matrix bot -- [inbox2matrix](https://github.com/dadada/inbox2matrix) - Very hacky IMAP to Matrix bot -- [portfs](https://github.com/dadada/portfs) - TCP port file system, not really a file system -- [vim-edge-n-scratch](https://github.com/dadada/vim-edge-n-scratch) - Vim with etching and sketching - -## "Professional" - -- [abgabesystem](https://github.com/dadada/abgabesystem) - Python module and CI scripts for managing student homework in gitlab - -## Configs and scripts - -- [nixpkgs config](https://github.com/dadada/nix-config) - Configuration for Nix Packages diff --git a/content/talks/_index.md b/content/talks/_index.md deleted file mode 100644 index 75c3abf..0000000 --- a/content/talks/_index.md +++ /dev/null @@ -1,8 +0,0 @@ ---- -title: Talks ---- -# Talks - -## [NixOS for Lazy Admins](https://gitli.stratum0.org/dadada/lazy-admin-talk) - -[Source](https://gitli.stratum0.org/dadada/lazy-admin-talk), [Recording](https://bbb.stratum0.org/playback/presentation/2.3/b3f9875e5e8180697cd3d3029085a7ef441d513d-1694710080145) diff --git a/content/talks/pad-archiver/_index.md b/content/talks/pad-archiver/_index.md deleted file mode 100644 index 98c9394..0000000 --- a/content/talks/pad-archiver/_index.md +++ /dev/null @@ -1,139 +0,0 @@ ---- -title: Gitlab als Archivar -data: 2022-06-14 ---- - -# πŸ“š Gitlab als Archivar πŸ“” - -Eine kleine Spielerei zur Datensicherung. - -🦣 @dadada@chaos.social - ---- - -## Ausgangslage - -Hochschulpolitik produziert viele Pads - - Notizen - - Protokolle - - Todolisten - -Pads verschwinden unerwartet - - Server tot - - Niemand erinnert sich mehr an den Link - - Etherpad kann LΓΆschfristen πŸ™ˆ - -Konsequenz: - ---- - - -``` -πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯ -πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯ -πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯ -πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯ -πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯ -πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯ -πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯ -πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯ -πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯ -πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯ -πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯DATEN WEGπŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯ -πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯ -πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯ -πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯ -πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯ -πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯ -πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯ -πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯ -πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯ -πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯ -πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯ -``` - - ---- - -## LΓΆsung 1: Copy-Paste - -- $Person kopiert ab und zu das Pad irgendwo hin -- $Person braucht muss dran denken, ist aber etwas verplant - -``` -Pad Wiki -+-------+ +-------+ -|- Info | |- Info | -| ... | | ... | -|- HΓΌte |---->|- HΓΌte | -| ... | | ... | -|- Ideen| |- Ideen| -| ... | | ... | -+-------+ +-------+ -``` - ---- - -## LΓΆsung 2: Git und Update-Script - -- Pad-URLs in Datei -- Pads als Plaintext exportieren -- In Git einchecken - -``` -+------------------------+ +------+ -|- http://pad.url/p/pad | | git | -|- http://pad.url/p/pad1 |---->| \pad | -| ... | | \pad1| - | ... | -``` - -[Update-Script](https://git.fginfo.tu-bs.de/fginfo/pad-archiver/-/blob/eac632d0cc68c7a9383a334088beadf00b930284/update) - ---- - -## LΓΆsung 3: CI - -- Scheduled Task fΓΌhrt Update-Script aus -- Gitlab committet Γ„nderungen automatisch - -``` -+--------------+ +-----------+ -| pad-archiver |-----CI---->| Container | -+--------------+ +-----------+ - | | - |`include: lib/gitlab-ci.yml |`image: ... - v v -+-----------+ +---------------+ -| pads-repo |--Scheduled->| Docker-Runner | -| |<--Commits---| | -+-----------+ +---------------+ -``` - -[CI-Config](https://git.fginfo.tu-bs.de/fginfo/pad-archiver/-/tree/eac632d0cc68c7a9383a334088beadf00b930284) - - ---- - -## LΓΆsung 4: Rewrite in Go - -- Empfehlung: go-git - Git nativ in Go - - versucht kompatibel zu Git's Plumbing und Porcelain zu sein - - wird unter Anderem von Keybase und Gitea benutzt -- LOC ist jetzt ein bisschen sehr viel mehr ... - -``` - ,_---~~~~~----._ +--------------+ - _,,_,*^____ _____``*g*\"*, | THIS IS FINE | - / __/ /' ^. / \ ^@q f +--------------+ - [ @f | @)) | | @)) l 0 _/ // - \`/ \~____ / __ \_____/ \ // - | _l__l_ I ` - } [______] I - ] | | | | - ] ~ ~ | - | | - | | -``` - -[Rewritten](https://git.fginfo.tu-bs.de/fginfo/pad-archiver) diff --git a/content/talks/systemd.generator/_index.md b/content/talks/systemd.generator/_index.md deleted file mode 100644 index bf33b0e..0000000 --- a/content/talks/systemd.generator/_index.md +++ /dev/null @@ -1,85 +0,0 @@ ---- -title: systemd.generator(7) -data: 2019-03-14 ---- -# systemd.generator(7) - -[Recording](https://www.youtube.com/watch?v=X88zHJjodFw) - -# Dynamische Systeme sind schwierig - -- ➀ Devices, Mountpoints, Services, Timer mΓΆglichst als Unit -- Transitionstechnologie fΓΌr `/etc/fstab` und SysV init-Skripte -- Hooks fΓΌr den Bootprozess (System-Update, Resume, Debug ...) -- Umgebungsvariablen setzen -- ➀ Generatoren generieren beim Boot dynamisch Units - -# Calling convention - -`# /path/to/generator normal-dir early-dir late-dir` - -- Generatoren sind in - - `/run/systemd/{system,user}-generators/*` - - `/etc/systemd/{system,user}-generators/*` - - `/usr/lib/systemd/{system,user}-generators/*` - - `/usr/local/lib/systemd/{system,user}-generators/*` - - -# Generierte Units - -- neu generieren mit `systemctl daemon-reload` -- generierte Units landen in - - `normal-dir` ➀ `/run/systemd/generator` - - `early-dir` ➀ `/run/systemd/generator.early` - - `late-dir` ➀ `/run/systemd/generator.late` - -# Templating - -- generierte Units dΓΌrfen auch sein - - Templates - - Instanzen von Templates (`getty@tty1.service`) -- Generatoren kΓΆnnen auch Symlinks in `.wants/`, `.target` und `.requires/` erstellen - -# AbhΓ€ngigkeiten vermeiden -- kein syslog oder journal benutzen -- keine Units starten -- keine nicht essentiellen Dateisysteme verwenden (aber /proc, /usr, /sys und /dev) -- Generatoren werden parallel ausgefΓΌhrt - -# Performance - -kann Boot verlangsamen ➀ Nicht mit bash implementieren, lieber C - -# Debugging - -``` -dir=$(mktemp -d) -SYSTEMD_LOG_LEVEL=debug /usr/lib/systemd/system-generators/systemd-fstab-generator "$dir" "$dir" "$dir" -find $dir -``` - -- syslog(3) ist nicht vefΓΌgbar -- keine Magie versuchen - -# Nicht geeignet fΓΌr - -- Ersatz von init-Skripten - ➀ systemd-sysv-generator(8) -- dynamische Konfigurationsdateien - ➀ `ExecStartPre=` oder Service mit `Before=` - -# Beispiele - -- systemd-fstab-generator(8) - -- systemd-debug-generator(8) - -- systemd-getty-generator(8) - -- systemd-sysv-generator(8) - -- systemd.environment-generator(7) - -# Source - -- `man 7 systemd.generator` diff --git a/data/.gitkeep b/data/.gitkeep deleted file mode 100644 index e69de29..0000000 diff --git a/default.nix b/default.nix deleted file mode 100644 index 5823096..0000000 --- a/default.nix +++ /dev/null @@ -1,19 +0,0 @@ -{ stdenv, hugo, hugo-theme-anubis }: -stdenv.mkDerivation rec { - src = ./.; - nativeBuildInputs = [ hugo ]; - # avoid git submodules using flakes :-) - patchPhase = '' - mkdir -p themes/ - ln -s ${hugo-theme-anubis} themes/anubis - ''; - buildPhase = '' - hugo - ''; - installPhase = '' - mkdir -p $out - cp -r public/* $out - ''; - name = "dadada.li"; - version = "0.2"; -} diff --git a/feed.xml b/feed.xml new file mode 100644 index 0000000..c9b3d48 --- /dev/null +++ b/feed.xml @@ -0,0 +1,45 @@ + + + dadada's blog + + 2023-11-13T20:06:45+01:00 + + Tim Schubert + + urn:uuid:aebe0d6d-40d7-46f5-8ad7-5ad5b60e9c57 + + NixOS for Lazy Admins + + urn:uuid:0879def1-bd89-4fa0-97fc-58541378c714 + 2023-09-14 + Recording + + + Gitlab als Archivar + + urn:uuid:0eca066e-922e-4df7-a495-bff5a78448ef + 2022-06-14 + Gitlab als Archivar + + + systemd-generator(7) + + urn:uuid:d4ec7148-747e-4724-9d83-d565b96f28e5 + 2019-03-14 + systemd-generator(7) + + + My $HOME + + urn:uuid:ffe1d09a-87aa-448a-a80c-efa175430bbf + 2018-09-03 + My $HOME + + + Managing Striped GPG Keys + + urn:uuid:ff6cbe87-67f8-415f-9ed5-6ec2a99a51a3 + 2017-12-03 + Managing Striped GPG Keys + + diff --git a/flake.lock b/flake.lock deleted file mode 100644 index 028484a..0000000 --- a/flake.lock +++ /dev/null @@ -1,41 +0,0 @@ -{ - "nodes": { - "hugo-theme-anubis": { - "flake": false, - "locked": { - "lastModified": 1693734155, - "narHash": "sha256-/saWnt2ryheBvW9aHqpjAE4aNBhEhkrD62Ch8CI2GvM=", - "owner": "mitrichius", - "repo": "hugo-theme-anubis", - "rev": "e4e2c0bc4145ee152a32fdd940ed398ab0b77e6c", - "type": "github" - }, - "original": { - "owner": "mitrichius", - "repo": "hugo-theme-anubis", - "type": "github" - } - }, - "nixpkgs": { - "locked": { - "lastModified": 1694499547, - "narHash": "sha256-R7xMz1Iia6JthWRHDn36s/E248WB1/je62ovC/dUVKI=", - "path": "/nix/store/zxh6mqr25a59giy1a0ca37njv92lv9hy-source", - "rev": "e5f018cf150e29aac26c61dac0790ea023c46b24", - "type": "path" - }, - "original": { - "id": "nixpkgs", - "type": "indirect" - } - }, - "root": { - "inputs": { - "hugo-theme-anubis": "hugo-theme-anubis", - "nixpkgs": "nixpkgs" - } - } - }, - "root": "root", - "version": 7 -} diff --git a/flake.nix b/flake.nix deleted file mode 100644 index 190bc23..0000000 --- a/flake.nix +++ /dev/null @@ -1,14 +0,0 @@ -{ - description = "dadada's homepage"; - - inputs = { - hugo-theme-anubis = { - url = github:mitrichius/hugo-theme-anubis; - flake = false; - }; - }; - - outputs = { self, hugo-theme-anubis, nixpkgs }: { - packages.x86_64-linux.homePage = nixpkgs.legacyPackages.x86_64-linux.callPackage ./default.nix { inherit hugo-theme-anubis; }; - }; -} diff --git a/index.html b/index.html new file mode 100644 index 0000000..fba75a2 --- /dev/null +++ b/index.html @@ -0,0 +1,38 @@ + + + + + dadada + + + +
+ +
+
+

dadada's web page

+

Things I enjoy: learning things and skills, making and eating food, weird music, biking, trains

+

Tech stuff: Rust, Nix, networking, aircrafts, and a sprinkle of science, recovering from PHP, iOS, Android, explorer of legacy codebases

+

Socials

+ +

Talks

+ +

Blog

+ +
+ + diff --git a/layouts/.gitkeep b/layouts/.gitkeep deleted file mode 100644 index e69de29..0000000 diff --git a/resources/.gitkeep b/resources/.gitkeep deleted file mode 100644 index e69de29..0000000 diff --git a/shell.nix b/shell.nix deleted file mode 100644 index 56a40a1..0000000 --- a/shell.nix +++ /dev/null @@ -1,6 +0,0 @@ -{ pkgs ? import {} }: - -with pkgs; -{ - this = callPackage ./default.nix { }; -} diff --git a/static/.gitkeep b/static/.gitkeep deleted file mode 100644 index e69de29..0000000 diff --git a/talks/pad-archiver/index.html b/talks/pad-archiver/index.html new file mode 100644 index 0000000..f0058b2 --- /dev/null +++ b/talks/pad-archiver/index.html @@ -0,0 +1,123 @@ + + + + + dadada + + + +
+ +
+
+

πŸ“š Gitlab als Archivar πŸ“”

+

Eine kleine Spielerei zur Datensicherung.

+

🦣 @dadada@chaos.social

+
+

Ausgangslage

+

Hochschulpolitik produziert viele Pads - Notizen - Protokolle - +Todolisten

+

Pads verschwinden unerwartet - Server tot - Niemand erinnert sich +mehr an den Link - Etherpad kann LΓΆschfristen πŸ™ˆ

+

Konsequenz:

+
+
πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯
+πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯
+πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯
+πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯
+πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯
+πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯
+πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯
+πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯
+πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯
+πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯
+πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯DATEN WEGπŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯
+πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯
+πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯
+πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯
+πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯
+πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯
+πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯
+πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯
+πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯
+πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯
+πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯
+
+

LΓΆsung 1: Copy-Paste

+
    +
  • $Person kopiert ab und zu das Pad irgendwo hin
  • +
  • $Person braucht muss dran denken, ist aber etwas verplant
  • +
+
Pad           Wiki
++-------+     +-------+
+|- Info |     |- Info |
+|  ...  |     |  ...  |
+|- HΓΌte |---->|- HΓΌte |
+|  ...  |     |  ...  |
+|- Ideen|     |- Ideen|
+|  ...  |     |  ...  |
++-------+     +-------+
+
+

LΓΆsung 2: Git und +Update-Script

+
    +
  • Pad-URLs in Datei
  • +
  • Pads als Plaintext exportieren
  • +
  • In Git einchecken
  • +
+
+------------------------+     +------+
+|- http://pad.url/p/pad  |     | git  |
+|- http://pad.url/p/pad1 |---->| \pad |
+|           ...          |     | \pad1|
+                               |  ... |
+

Update-Script

+
+

LΓΆsung 3: CI

+
    +
  • Scheduled Task fΓΌhrt Update-Script aus
  • +
  • Gitlab committet Γ„nderungen automatisch
  • +
+
+--------------+            +-----------+
+| pad-archiver |-----CI---->| Container |
++--------------+            +-----------+
+ |                               |
+ |`include: lib/gitlab-ci.yml    |`image: ...
+ v                               v
++-----------+             +---------------+
+| pads-repo |--Scheduled->| Docker-Runner |
+|           |<--Commits---|               |
++-----------+             +---------------+
+

CI-Config +

+
+

LΓΆsung 4: Rewrite in Go

+
    +
  • Empfehlung: go-git - Git nativ in Go +
      +
    • versucht kompatibel zu Git’s Plumbing und Porcelain zu sein
    • +
    • wird unter Anderem von Keybase und Gitea benutzt
    • +
  • +
  • LOC ist jetzt ein bisschen sehr viel mehr …
  • +
+
             ,_---~~~~~----._             +--------------+
+       _,,_,*^____      _____``*g*\"*,    | THIS IS FINE |
+      / __/ /'     ^.  /      \ ^@q   f   +--------------+
+    [  @f | @))    |  | @))   l  0 _/     //
+     \`/   \~____ / __ \_____/    \      //
+       |           _l__l_           I    `
+       }          [______]           I
+       ]            | | |            |
+       ]             ~ ~             |
+       |                            |
+        |                           |   
+

Rewritten

+
+
Released: 2022-12-03
+ + \ No newline at end of file diff --git a/talks/systemd-generator/index.html b/talks/systemd-generator/index.html new file mode 100644 index 0000000..bc97655 --- /dev/null +++ b/talks/systemd-generator/index.html @@ -0,0 +1,100 @@ + + + + + systemd.generator(7) + + + +
+ +
+
+

systemd.generator(7)

+

Recording

+

Dynamische Systeme sind +schwierig

+
    +
  • ➀ Devices, Mountpoints, Services, Timer mΓΆglichst als Unit
  • +
  • Transitionstechnologie fΓΌr /etc/fstab und SysV +init-Skripte
  • +
  • Hooks fΓΌr den Bootprozess (System-Update, Resume, Debug …)
  • +
  • Umgebungsvariablen setzen
  • +
  • ➀ Generatoren generieren beim Boot dynamisch Units
  • +
+

Calling convention

+

# /path/to/generator normal-dir early-dir late-dir

+
    +
  • Generatoren sind in +
      +
    • /run/systemd/{system,user}-generators/*
    • +
    • /etc/systemd/{system,user}-generators/*
    • +
    • /usr/lib/systemd/{system,user}-generators/*
    • +
    • /usr/local/lib/systemd/{system,user}-generators/*
    • +
  • +
+

Generierte Units

+
    +
  • neu generieren mit systemctl daemon-reload
  • +
  • generierte Units landen in +
      +
    • normal-dir ➀ /run/systemd/generator
    • +
    • early-dir ➀ +/run/systemd/generator.early
    • +
    • late-dir ➀ +/run/systemd/generator.late
    • +
  • +
+

Templating

+
    +
  • generierte Units dΓΌrfen auch sein +
      +
    • Templates
    • +
    • Instanzen von Templates (getty@tty1.service)
    • +
  • +
  • Generatoren kΓΆnnen auch Symlinks in .wants/, +.target und .requires/ erstellen
  • +
+

AbhΓ€ngigkeiten vermeiden

+
    +
  • kein syslog oder journal benutzen
  • +
  • keine Units starten
  • +
  • keine nicht essentiellen Dateisysteme verwenden (aber /proc, /usr, +/sys und /dev)
  • +
  • Generatoren werden parallel ausgefΓΌhrt
  • +
+

Performance

+

kann Boot verlangsamen ➀ Nicht mit bash implementieren, lieber C

+

Debugging

+
dir=$(mktemp -d)
+SYSTEMD_LOG_LEVEL=debug /usr/lib/systemd/system-generators/systemd-fstab-generator "$dir" "$dir" "$dir"
+find $dir
+
    +
  • syslog(3) ist nicht vefΓΌgbar
  • +
  • keine Magie versuchen
  • +
+

Nicht geeignet fΓΌr

+
    +
  • Ersatz von init-Skripten ➀ systemd-sysv-generator(8)
  • +
  • dynamische Konfigurationsdateien ➀ ExecStartPre= oder +Service mit Before=
  • +
+

Beispiele

+
    +
  • systemd-fstab-generator(8)

  • +
  • systemd-debug-generator(8)

  • +
  • systemd-getty-generator(8)

  • +
  • systemd-sysv-generator(8)

  • +
  • systemd.environment-generator(7)

  • +
+

Source

+
    +
  • man 7 systemd.generator
  • +
+
+ + + diff --git a/themes/.gitkeep b/themes/.gitkeep deleted file mode 100644 index e69de29..0000000