Initial commit

This commit is contained in:
Tim Schubert 2020-07-26 19:39:13 +02:00
commit 720fa4a18b
Signed by: dadada
GPG key ID: EEB8D1CE62C4DFEA
17 changed files with 882 additions and 0 deletions

4
.gitignore vendored Normal file
View file

@ -0,0 +1,4 @@
archetypes/
public/
resources/
result

9
.gitmodules vendored Normal file
View file

@ -0,0 +1,9 @@
[submodule "themes/blank"]
path = themes/blank
url = https://github.com/vimux/blank
[submodule "smol"]
path = smol
url = https://github.com/colorchestra/smol
[submodule "themes/smol"]
path = themes/smol
url = https://github.com/colorchestra/smol

31
config.yaml Normal file
View file

@ -0,0 +1,31 @@
baseURL: "https://dadada.li/"
title: "dadada"
defaultContentLanguage: "en"
paginate: 5
theme: "smol"
enableRobotsTXT: true
params:
author: "dadada"
rss:
includeContent: true
taxonomies:
tag: "tags"
author:
name: "dadada"
menu:
main:
- identifier: blog
name: Blog
title: Blog
url: /blog/
weight: 0
- identifier: talks
name: Talks
title: Talks
url: /talks/
weight: 0

9
content/_index.md Normal file
View file

@ -0,0 +1,9 @@
+++
title = "dadada"
date = 2020-07-05
[taxonomies]
tags = []
+++
Hello, world!

41
content/blog/gpg.md Normal file
View file

@ -0,0 +1,41 @@
+++
title = "Managing stripped GPG keys"
date = 2017-12-03
[taxonomies]
tags = ["gpg", "security"]
+++
```
+--(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

View file

@ -0,0 +1,9 @@
+++
title = "Hello, World!"
date = 2017-10-28
[taxonomies]
tags = ["hello world", "security"]
+++
Hello, World!

View file

@ -0,0 +1,524 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
width="79.808044mm"
height="84.910774mm"
viewBox="0 0 79.808044 84.910774"
version="1.1"
id="svg8"
inkscape:version="0.92.2 5c3e80d, 2017-08-06"
sodipodi:docname="home.svg">
<defs
id="defs2">
<marker
inkscape:stockid="Arrow1Mend"
orient="auto"
refY="0"
refX="0"
id="marker12286"
style="overflow:visible"
inkscape:isstock="true">
<path
id="path12284"
d="M 0,0 5,-5 -12.5,0 5,5 Z"
style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.00000003pt;stroke-opacity:1"
transform="matrix(-0.4,0,0,-0.4,-4,0)"
inkscape:connector-curvature="0" />
</marker>
<marker
inkscape:stockid="Arrow1Mstart"
orient="auto"
refY="0"
refX="0"
id="marker12126"
style="overflow:visible"
inkscape:isstock="true">
<path
id="path12124"
d="M 0,0 5,-5 -12.5,0 5,5 Z"
style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.00000003pt;stroke-opacity:1"
transform="matrix(0.4,0,0,0.4,4,0)"
inkscape:connector-curvature="0" />
</marker>
<inkscape:path-effect
effect="bspline"
id="path-effect11540"
is_visible="true"
weight="33.333333"
steps="2"
helper_size="0"
apply_no_weight="true"
apply_with_weight="true"
only_selected="false" />
<marker
inkscape:stockid="Arrow1Mend"
orient="auto"
refY="0"
refX="0"
id="marker11246"
style="overflow:visible"
inkscape:isstock="true">
<path
id="path11244"
d="M 0,0 5,-5 -12.5,0 5,5 Z"
style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.00000003pt;stroke-opacity:1"
transform="matrix(-0.4,0,0,-0.4,-4,0)"
inkscape:connector-curvature="0" />
</marker>
<inkscape:path-effect
effect="bspline"
id="path-effect11100"
is_visible="true"
weight="33.333333"
steps="2"
helper_size="0"
apply_no_weight="true"
apply_with_weight="true"
only_selected="false" />
<inkscape:path-effect
effect="bspline"
id="path-effect11096"
is_visible="true"
weight="33.333333"
steps="2"
helper_size="0"
apply_no_weight="true"
apply_with_weight="true"
only_selected="false" />
<inkscape:path-effect
effect="bspline"
id="path-effect11092"
is_visible="true"
weight="33.333333"
steps="2"
helper_size="0"
apply_no_weight="true"
apply_with_weight="true"
only_selected="false" />
<marker
inkscape:isstock="true"
style="overflow:visible"
id="marker10964"
refX="0"
refY="0"
orient="auto"
inkscape:stockid="Arrow1Mend"
inkscape:collect="always">
<path
transform="matrix(-0.4,0,0,-0.4,-4,0)"
style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.00000003pt;stroke-opacity:1"
d="M 0,0 5,-5 -12.5,0 5,5 Z"
id="path10962"
inkscape:connector-curvature="0" />
</marker>
<marker
inkscape:stockid="Arrow1Mend"
orient="auto"
refY="0"
refX="0"
id="marker10824"
style="overflow:visible"
inkscape:isstock="true"
inkscape:collect="always">
<path
id="path10822"
d="M 0,0 5,-5 -12.5,0 5,5 Z"
style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.00000003pt;stroke-opacity:1"
transform="matrix(-0.4,0,0,-0.4,-4,0)"
inkscape:connector-curvature="0" />
</marker>
<marker
inkscape:isstock="true"
style="overflow:visible"
id="marker10396"
refX="0"
refY="0"
orient="auto"
inkscape:stockid="Arrow1Mend"
inkscape:collect="always">
<path
transform="matrix(-0.4,0,0,-0.4,-4,0)"
style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.00000003pt;stroke-opacity:1"
d="M 0,0 5,-5 -12.5,0 5,5 Z"
id="path10394"
inkscape:connector-curvature="0" />
</marker>
<marker
inkscape:stockid="Arrow2Lend"
orient="auto"
refY="0"
refX="0"
id="marker10278"
style="overflow:visible"
inkscape:isstock="true">
<path
id="path10276"
style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1"
d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
transform="matrix(-1.1,0,0,-1.1,-1.1,0)"
inkscape:connector-curvature="0" />
</marker>
<marker
inkscape:stockid="Arrow1Mend"
orient="auto"
refY="0"
refX="0"
id="Arrow1Mend"
style="overflow:visible"
inkscape:isstock="true"
inkscape:collect="always">
<path
id="path8629"
d="M 0,0 5,-5 -12.5,0 5,5 Z"
style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.00000003pt;stroke-opacity:1"
transform="matrix(-0.4,0,0,-0.4,-4,0)"
inkscape:connector-curvature="0" />
</marker>
<marker
inkscape:stockid="TriangleOutM"
orient="auto"
refY="0"
refX="0"
id="TriangleOutM"
style="overflow:visible"
inkscape:isstock="true">
<path
id="path8765"
d="M 5.77,0 -2.88,5 V -5 Z"
style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.00000003pt;stroke-opacity:1"
transform="scale(0.4)"
inkscape:connector-curvature="0" />
</marker>
<marker
inkscape:stockid="Arrow2Send"
orient="auto"
refY="0"
refX="0"
id="Arrow2Send"
style="overflow:visible"
inkscape:isstock="true">
<path
id="path8653"
style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1"
d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
transform="matrix(-0.3,0,0,-0.3,0.69,0)"
inkscape:connector-curvature="0" />
</marker>
<marker
inkscape:stockid="Arrow2Lend"
orient="auto"
refY="0"
refX="0"
id="Arrow2Lend"
style="overflow:visible"
inkscape:isstock="true">
<path
id="path8641"
style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1"
d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
transform="matrix(-1.1,0,0,-1.1,-1.1,0)"
inkscape:connector-curvature="0" />
</marker>
<marker
inkscape:stockid="TriangleInL"
orient="auto"
refY="0"
refX="0"
id="TriangleInL"
style="overflow:visible"
inkscape:isstock="true">
<path
id="path8753"
d="M 5.77,0 -2.88,5 V -5 Z"
style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.00000003pt;stroke-opacity:1"
transform="scale(-0.8)"
inkscape:connector-curvature="0" />
</marker>
<marker
inkscape:stockid="Tail"
orient="auto"
refY="0"
refX="0"
id="Tail"
style="overflow:visible"
inkscape:isstock="true">
<g
id="g8668"
transform="scale(-1.2)"
style="fill:#000000;fill-opacity:1;stroke:#000000;stroke-opacity:1">
<path
id="path8656"
d="M -3.8048674,-3.9585227 0.54352094,0"
style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.80000001;stroke-linecap:round;stroke-opacity:1"
inkscape:connector-curvature="0" />
<path
id="path8658"
d="M -1.2866832,-3.9585227 3.0617053,0"
style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.80000001;stroke-linecap:round;stroke-opacity:1"
inkscape:connector-curvature="0" />
<path
id="path8660"
d="M 1.3053582,-3.9585227 5.6537466,0"
style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.80000001;stroke-linecap:round;stroke-opacity:1"
inkscape:connector-curvature="0" />
<path
id="path8662"
d="M -3.8048674,4.1775838 0.54352094,0.21974226"
style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.80000001;stroke-linecap:round;stroke-opacity:1"
inkscape:connector-curvature="0" />
<path
id="path8664"
d="M -1.2866832,4.1775838 3.0617053,0.21974226"
style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.80000001;stroke-linecap:round;stroke-opacity:1"
inkscape:connector-curvature="0" />
<path
id="path8666"
d="M 1.3053582,4.1775838 5.6537466,0.21974226"
style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.80000001;stroke-linecap:round;stroke-opacity:1"
inkscape:connector-curvature="0" />
</g>
</marker>
<marker
inkscape:stockid="Arrow1Lstart"
orient="auto"
refY="0"
refX="0"
id="marker9168"
style="overflow:visible"
inkscape:isstock="true">
<path
id="path9166"
d="M 0,0 5,-5 -12.5,0 5,5 Z"
style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.00000003pt;stroke-opacity:1"
transform="matrix(0.8,0,0,0.8,10,0)"
inkscape:connector-curvature="0" />
</marker>
<marker
inkscape:stockid="Arrow1Lend"
orient="auto"
refY="0"
refX="0"
id="marker9080"
style="overflow:visible"
inkscape:isstock="true">
<path
id="path9078"
d="M 0,0 5,-5 -12.5,0 5,5 Z"
style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.00000003pt;stroke-opacity:1"
transform="matrix(-0.8,0,0,-0.8,-10,0)"
inkscape:connector-curvature="0" />
</marker>
<marker
inkscape:stockid="Arrow1Lstart"
orient="auto"
refY="0"
refX="0"
id="Arrow1Lstart"
style="overflow:visible"
inkscape:isstock="true">
<path
id="path8620"
d="M 0,0 5,-5 -12.5,0 5,5 Z"
style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.00000003pt;stroke-opacity:1"
transform="matrix(0.8,0,0,0.8,10,0)"
inkscape:connector-curvature="0" />
</marker>
<marker
inkscape:stockid="Arrow1Lend"
orient="auto"
refY="0"
refX="0"
id="marker8972"
style="overflow:visible"
inkscape:isstock="true">
<path
id="path8970"
d="M 0,0 5,-5 -12.5,0 5,5 Z"
style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.00000003pt;stroke-opacity:1"
transform="matrix(-0.8,0,0,-0.8,-10,0)"
inkscape:connector-curvature="0" />
</marker>
<marker
inkscape:stockid="Arrow1Lend"
orient="auto"
refY="0"
refX="0"
id="Arrow1Lend"
style="overflow:visible"
inkscape:isstock="true">
<path
id="path8623"
d="M 0,0 5,-5 -12.5,0 5,5 Z"
style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.00000003pt;stroke-opacity:1"
transform="matrix(-0.8,0,0,-0.8,-10,0)"
inkscape:connector-curvature="0" />
</marker>
</defs>
<sodipodi:namedview
id="base"
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1.0"
inkscape:pageopacity="0.0"
inkscape:pageshadow="2"
inkscape:zoom="0.7"
inkscape:cx="514.97142"
inkscape:cy="6.5823723"
inkscape:document-units="mm"
inkscape:current-layer="layer1"
showgrid="false"
inkscape:window-width="1600"
inkscape:window-height="836"
inkscape:window-x="0"
inkscape:window-y="27"
inkscape:window-maximized="1"
fit-margin-top="0"
fit-margin-left="0"
fit-margin-right="0"
fit-margin-bottom="0" />
<metadata
id="metadata5">
<rdf:RDF>
<cc:Work
rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
<dc:title></dc:title>
</cc:Work>
</rdf:RDF>
</metadata>
<g
inkscape:label="Layer 1"
inkscape:groupmode="layer"
id="layer1"
transform="translate(-11.973212,-102.22025)">
<g
id="g12794"
transform="translate(0,0.75595093)">
<rect
y="137.64555"
x="12.473212"
height="15.119047"
width="31.372023"
id="rect7631"
style="opacity:1;fill:#eeeeee;fill-opacity:1;stroke:#000000;stroke-width:1;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
<text
id="text8459"
y="147.8354"
x="23.823561"
style="font-style:normal;font-weight:normal;font-size:7.05555534px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
xml:space="preserve"><tspan
style="stroke-width:0.26458332px"
y="147.8354"
x="23.823561"
id="tspan8457"
sodipodi:role="line">lib</tspan></text>
</g>
<g
id="g12799"
transform="translate(0.75598145)">
<rect
y="171.51198"
x="59.153252"
height="15.119047"
width="31.372023"
id="rect7631-3-5"
style="opacity:1;fill:#eeeeee;fill-opacity:1;stroke:#000000;stroke-width:1;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
<text
id="text8459-6-3"
y="180.81471"
x="69.277153"
style="font-style:normal;font-weight:normal;font-size:7.05555534px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
xml:space="preserve"><tspan
style="stroke-width:0.26458332px"
y="180.81471"
x="69.277153"
id="tspan8457-7-5"
sodipodi:role="line">tag</tspan></text>
</g>
<g
id="g12789">
<rect
y="138.4015"
x="59.909233"
height="15.119047"
width="31.372023"
id="rect7631-3-6"
style="opacity:1;fill:#eeeeee;fill-opacity:1;stroke:#000000;stroke-width:1;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
<text
id="text8459-6-2"
y="147.88684"
x="70.4655"
style="font-style:normal;font-weight:normal;font-size:7.05555534px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
xml:space="preserve"><tspan
style="stroke-width:0.26458332px"
y="147.88684"
x="70.4655"
id="tspan8457-7-9"
sodipodi:role="line">src</tspan></text>
</g>
<g
id="g12804"
transform="translate(-1.305687,2.1367264)">
<rect
y="100.58353"
x="13.778899"
height="15.119047"
width="31.372023"
id="rect7631-8"
style="opacity:1;fill:#ddffdd;fill-opacity:1;stroke:#000000;stroke-width:1;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
<text
id="text8459-7"
y="109.88628"
x="22.500647"
style="font-style:normal;font-weight:normal;font-size:7.05555534px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
xml:space="preserve"><tspan
style="stroke-width:0.26458332px"
y="109.88628"
x="22.500647"
id="tspan8457-9"
sodipodi:role="line">tmp</tspan></text>
</g>
<path
style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;marker-end:url(#Arrow1Mend)"
d="m 28.159224,117.8393 0,20.5622"
id="path10174"
inkscape:connector-curvature="0"
inkscape:connector-type="polyline"
inkscape:connection-start="#rect7631-8"
inkscape:connection-end="#rect7631" />
<path
style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;marker-end:url(#marker10396)"
d="m 38.209143,117.8393 27.336182,20.5622"
id="path10274"
inkscape:connector-curvature="0"
inkscape:connector-type="polyline"
inkscape:connection-start="#rect7631-8"
inkscape:connection-end="#rect7631-3-6" />
<path
style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:1, 1;stroke-dashoffset:0;stroke-opacity:1;marker-end:url(#marker10824)"
d="m 75.595244,153.52055 0,17.99143"
id="path10814"
inkscape:connector-curvature="0"
inkscape:connector-type="polyline"
inkscape:connection-start="#rect7631-3-6"
inkscape:connection-end="#rect7631-3-5" />
<path
style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:1.00000003, 1.00000003;stroke-dashoffset:0;stroke-opacity:1;marker-end:url(#marker10964)"
d="m 38.989444,153.52055 25.77558,17.99143"
id="path10954"
inkscape:connector-curvature="0"
inkscape:connector-type="polyline"
inkscape:connection-start="#rect7631"
inkscape:connection-end="#rect7631-3-5" />
</g>
</svg>

After

Width:  |  Height:  |  Size: 19 KiB

View file

@ -0,0 +1,63 @@
+++
title = "My $HOME"
date = 2018-09-03
[taxonomies]
tags = ["organisation", "linux"]
+++
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)

View file

@ -0,0 +1,16 @@
+++
title = "Learning Rust"
draft = true
date = 1980-01-01
[taxonomies]
tags = ["rust", "programming", "language"]
+++
## Blog!
{% for post in collections.posts.pages %}
#### {{post.title}}
[{{ post.title }}]({{ post.permalink }})
{% endfor %}

View file

@ -0,0 +1,87 @@
---
title: systemd.generator(7)
author: dadada
width: 1920
height: 1080
date: 2019-03-14
---
[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`

19
default.nix Normal file
View file

@ -0,0 +1,19 @@
with import <nixpkgs> {};
stdenv.mkDerivation {
name = "dadada.li";
builtInputs = [ pkgs.hugo ];
src = ./.;
buildPhase = "${pkgs.hugo}/bin/hugo";
installPhase = ''
mkdir -p $out
cp -r public/* $out
'';
dontFixup = true;
dontStrip = true;
meta = with lib; {
description = "dadada.li web-site";
license = licenses.cc-by-sa-40;
};
}

17
i18n/de.toml Normal file
View file

@ -0,0 +1,17 @@
[talks]
other = "Talks"
[blog]
other = "Blogs"
[writtenBy]
other = "Von"
[on]
other = "am"
[generator]
other = "Made with <a href='https://gohugo.io'>Hugo</a> using the <a href='https://github.com/EmielH/tale-hugo/'>Tale</a> theme."
[publishdate]
other = "{{ .PublishDate.Day }}. {{ index $.Site.Data.months_de (printf \"%d\" .PublishDate.Month) }} {{ .PublishDate.Year }}"

17
i18n/en.toml Normal file
View file

@ -0,0 +1,17 @@
[talks]
other = "Talks"
[blog]
other = "Blog"
[writtenBy]
other = "Written by"
[on]
other = "on"
[generator]
other = "Made with <a href='https://gohugo.io'>Hugo</a> using the <a href='https://github.com/EmielH/tale-hugo/'>Tale</a> theme."
[publishdate]
other = "{{ .PublishDate.Format \"January 2, 2006\" }}"

17
i18n/es.toml Normal file
View file

@ -0,0 +1,17 @@
[blog]
other = "Artículos"
[talks]
other = "Talks"
[writtenBy]
other = "Escrito por"
[on]
other = "el"
[generator]
other = "Hecho con <a href='https://gohugo.io'>Hugo</a> usando el tema <a href='https://github.com/EmielH/tale-hugo/'>Tale</a>."
[publishdate]
other = "{{ .PublishDate.Day }} de {{ index $.Site.Data.months_es (printf \"%d\" .PublishDate.Month) }} de {{ .PublishDate.Year }}"

17
i18n/nl.toml Normal file
View file

@ -0,0 +1,17 @@
[posts]
other = "Artikelen"
[Talks]
other = "Talks"
[writtenBy]
other = "Geschreven door"
[on]
other = "op"
[generator]
other = "Gemaakt met <a href='https://gohugo.io'>Hugo</a> en thema <a href='https://github.com/EmielH/tale-hugo/'>Tale</a>."
[publishdate]
other = "{{ .PublishDate.Day }} {{ index $.Site.Data.months_nl (printf \"%d\" .PublishDate.Month) }} {{ .PublishDate.Year }}"

1
smol Submodule

@ -0,0 +1 @@
Subproject commit 2bb4ff73056f6b9ec4d5e43d9abe883bb62c9f9d

1
themes/smol Submodule

@ -0,0 +1 @@
Subproject commit 2bb4ff73056f6b9ec4d5e43d9abe883bb62c9f9d