diff options
-rw-r--r-- | .gitignore | 38 | ||||
-rw-r--r-- | Makefile | 133 | ||||
-rw-r--r-- | TODOs.md | 164 | ||||
-rw-r--r-- | deps.mk | 1642 | ||||
-rw-r--r-- | meta.capim | 11 | ||||
-rw-r--r-- | meta.json | 5 | ||||
-rwxr-xr-x | mkdeps.sh | 83 | ||||
-rw-r--r-- | po/de.po | 161 | ||||
-rw-r--r-- | po/en.po | 171 | ||||
-rw-r--r-- | po/eo.po | 161 | ||||
-rw-r--r-- | po/es.po | 161 | ||||
-rw-r--r-- | po/euandre.org.pot | 161 | ||||
-rw-r--r-- | po/fr.po | 161 | ||||
-rw-r--r-- | po/note.txt | 5 | ||||
-rw-r--r-- | po/po4a.cfg | 12 | ||||
-rw-r--r-- | po/pt.po | 190 | ||||
l--------- | src/collections/en.blog | 1 | ||||
l--------- | src/collections/en.pastebins | 1 | ||||
l--------- | src/collections/en.podcasts | 1 | ||||
l--------- | src/collections/en.screencasts | 1 | ||||
l--------- | src/collections/en.tils | 1 | ||||
l--------- | src/collections/en/blog | 1 | ||||
l--------- | src/collections/en/pastebin | 1 | ||||
l--------- | src/collections/en/podcast | 1 | ||||
l--------- | src/collections/en/screencast | 1 | ||||
l--------- | src/collections/en/til | 1 | ||||
l--------- | src/collections/pt/hea | 1 | ||||
-rw-r--r-- | src/content/en/about.adoc | 2 | ||||
-rw-r--r-- | src/content/en/blog/2020/10/19/feature-flags.adoc | 2 | ||||
-rw-r--r-- | src/content/en/blog/2020/11/07/diy-bugs.adoc | 2 | ||||
-rw-r--r-- | src/content/en/blog/2020/11/14/local-first-review.adoc | 2 | ||||
-rw-r--r-- | src/content/en/blog/categories.adoc | 1 | ||||
-rw-r--r-- | src/content/en/pastebin/2016/04/05/rpn.adoc (renamed from src/content/en/pastebins/2016/04/05/rpn.adoc) | 0 | ||||
-rw-r--r-- | src/content/en/pastebin/2018/07/11/nix-pinning.adoc (renamed from src/content/en/pastebins/2018/07/11/nix-pinning.adoc) | 0 | ||||
-rw-r--r-- | src/content/en/pastebin/2018/07/13/guix-nixos-systemd.adoc (renamed from src/content/en/pastebins/2018/07/13/guix-nixos-systemd.adoc) | 0 | ||||
-rw-r--r-- | src/content/en/pastebin/2018/07/13/guixbuilder-nixos.adoc (renamed from src/content/en/pastebins/2018/07/13/guixbuilder-nixos.adoc) | 0 | ||||
-rw-r--r-- | src/content/en/pastebin/2018/07/13/guixbuilder.adoc (renamed from src/content/en/pastebins/2018/07/13/guixbuilder.adoc) | 0 | ||||
-rw-r--r-- | src/content/en/pastebin/2018/07/13/nix-strpad.adoc (renamed from src/content/en/pastebins/2018/07/13/nix-strpad.adoc) | 0 | ||||
-rw-r--r-- | src/content/en/pastebin/2018/07/25/nix-exps.adoc (renamed from src/content/en/pastebins/2018/07/25/nix-exps.adoc) | 0 | ||||
-rw-r--r-- | src/content/en/pastebin/2018/07/25/nix-showdrv.adoc (renamed from src/content/en/pastebins/2018/07/25/nix-showdrv.adoc) | 0 | ||||
-rw-r--r-- | src/content/en/pastebin/2019/06/08/inconsistent-hash.adoc (renamed from src/content/en/pastebins/2019/06/08/inconsistent-hash.adoc) | 0 | ||||
-rw-r--r-- | src/content/en/pastebin/2019/12/29/raku-tuple-type.adoc (renamed from src/content/en/pastebins/2019/12/29/raku-tuple-type.adoc) | 0 | ||||
-rw-r--r-- | src/content/en/pastebin/2020/01/04/guix-import-failure.adoc (renamed from src/content/en/pastebins/2020/01/04/guix-import-failure.adoc) | 0 | ||||
-rw-r--r-- | src/content/en/pastebin/2020/02/14/guix-shebang.adoc (renamed from src/content/en/pastebins/2020/02/14/guix-shebang.adoc) | 0 | ||||
-rw-r--r-- | src/content/en/pastebin/2020/11/27/guix-build-local.adoc (renamed from src/content/en/pastebins/2020/11/27/guix-build-local.adoc) | 0 | ||||
-rw-r--r-- | src/content/en/pastebin/2020/12/15/guix-pack-fail.adoc (renamed from src/content/en/pastebins/2020/12/15/guix-pack-fail.adoc) | 0 | ||||
-rw-r--r-- | src/content/en/pastebin/2021/04/03/naive-slugify-js.adoc (renamed from src/content/en/pastebins/2021/04/03/naive-slugify-js.adoc) | 0 | ||||
-rw-r--r-- | src/content/en/pastebin/2021/06/08/reading-session-pt1.adoc (renamed from src/content/en/pastebins/2021/06/08/reading-session-pt1.adoc) | 0 | ||||
-rw-r--r-- | src/content/en/pastebin/2021/06/22/curl-wget.adoc (renamed from src/content/en/pastebins/2021/06/22/curl-wget.adoc) | 0 | ||||
-rw-r--r-- | src/content/en/pastebin/2021/08/11/h1-spacing.adoc (renamed from src/content/en/pastebins/2021/08/11/h1-spacing.adoc) | 0 | ||||
-rw-r--r-- | src/content/en/pastebin/2021/09/02/sicp-3-19.adoc (renamed from src/content/en/pastebins/2021/09/02/sicp-3-19.adoc) | 0 | ||||
-rw-r--r-- | src/content/en/pastebin/2021/09/03/sicp-persistent-queue.adoc (renamed from src/content/en/pastebins/2021/09/03/sicp-persistent-queue.adoc) | 0 | ||||
-rw-r--r-- | src/content/en/pastebin/2022/07/14/git-cleanup.adoc (renamed from src/content/en/pastebins/2022/07/14/git-cleanup.adoc) | 0 | ||||
-rw-r--r-- | src/content/en/pastebin/2023/07/22/funcallable-amop.adoc (renamed from src/content/en/pastebins/2023/07/22/funcallable-amop.adoc) | 0 | ||||
-rw-r--r-- | src/content/en/pastebin/categories.adoc (renamed from src/content/en/pastebins/categories.adoc) | 1 | ||||
-rw-r--r-- | src/content/en/pastebin/index.adoc (renamed from src/content/en/pastebins/index.adoc) | 0 | ||||
-rw-r--r-- | src/content/en/podcast/2020/12/19/test-entry.adoc (renamed from src/content/en/podcasts/2020/12/19/test-entry.adoc) | 0 | ||||
-rw-r--r-- | src/content/en/podcast/2020/12/19/test-entry.flac (renamed from src/content/en/podcasts/2020/12/19/test-entry.flac) | bin | 462864 -> 462864 bytes | |||
-rw-r--r-- | src/content/en/podcast/2020/12/19/test-entry.ogg (renamed from src/content/en/podcasts/2020/12/19/test-entry.ogg) | bin | 97060 -> 97060 bytes | |||
-rw-r--r-- | src/content/en/podcast/categories.adoc (renamed from src/content/en/podcasts/categories.adoc) | 1 | ||||
-rw-r--r-- | src/content/en/podcast/index.adoc (renamed from src/content/en/podcasts/index.adoc) | 0 | ||||
-rw-r--r-- | src/content/en/podcasts/2020/12/19/test-entry.flac.torrent | bin | 544 -> 0 bytes | |||
-rw-r--r-- | src/content/en/podcasts/2020/12/19/test-entry.ogg.torrent | 1 | ||||
-rw-r--r-- | src/content/en/screencast/2021/02/07/autoqemu.adoc (renamed from src/content/en/screencasts/2021/02/07/autoqemu.adoc) | 0 | ||||
-rw-r--r-- | src/content/en/screencast/2021/02/07/autoqemu.tar.gz (renamed from src/content/en/screencasts/2021/02/07/autoqemu.tar.gz) | bin | 506213 -> 506213 bytes | |||
-rw-r--r-- | src/content/en/screencast/2021/02/07/autoqemu.webm (renamed from src/content/en/screencasts/2021/02/07/autoqemu.webm) | bin | 12103021 -> 12103021 bytes | |||
-rw-r--r-- | src/content/en/screencast/categories.adoc (renamed from src/content/en/screencasts/categories.adoc) | 1 | ||||
-rw-r--r-- | src/content/en/screencast/index.adoc (renamed from src/content/en/screencasts/index.adoc) | 0 | ||||
-rw-r--r-- | src/content/en/screencasts/2021/02/07/autoqemu.webm.torrent | bin | 7646 -> 0 bytes | |||
-rw-r--r-- | src/content/en/slide/2020/10/19/feature-flags.adoc | 230 | ||||
-rw-r--r-- | src/content/en/slide/2020/11/14/local-first-hype.adoc | 204 | ||||
-rw-r--r-- | src/content/en/slides/2020-10-19-rollout-feature-flag-experiment-operational-toggle.slides | 343 | ||||
-rw-r--r-- | src/content/en/slides/2020-11-14-on-local-first-beyond-the-crdt-silver-bullet.slides | 266 | ||||
-rw-r--r-- | src/content/en/til/2020/08/12/filename-timestamp.adoc (renamed from src/content/en/tils/2020/08/12/filename-timestamp.adoc) | 0 | ||||
-rw-r--r-- | src/content/en/til/2020/08/13/code-jekyll.adoc (renamed from src/content/en/tils/2020/08/13/code-jekyll.adoc) | 0 | ||||
-rw-r--r-- | src/content/en/til/2020/08/14/browse-git.adoc (renamed from src/content/en/tils/2020/08/14/browse-git.adoc) | 0 | ||||
-rw-r--r-- | src/content/en/til/2020/08/16/git-search.adoc (renamed from src/content/en/tils/2020/08/16/git-search.adoc) | 0 | ||||
-rw-r--r-- | src/content/en/til/2020/08/28/grep-online.adoc (renamed from src/content/en/tils/2020/08/28/grep-online.adoc) | 0 | ||||
-rw-r--r-- | src/content/en/til/2020/09/04/cli-email-fun-profit.adoc (renamed from src/content/en/tils/2020/09/04/cli-email-fun-profit.adoc) | 0 | ||||
-rw-r--r-- | src/content/en/til/2020/09/05/oldschool-pr.adoc (renamed from src/content/en/tils/2020/09/05/oldschool-pr.adoc) | 0 | ||||
-rw-r--r-- | src/content/en/til/2020/10/11/search-git-history.adoc (renamed from src/content/en/tils/2020/10/11/search-git-history.adoc) | 0 | ||||
-rw-r--r-- | src/content/en/til/2020/11/08/find-broken-symlink.adoc (renamed from src/content/en/tils/2020/11/08/find-broken-symlink.adoc) | 0 | ||||
-rw-r--r-- | src/content/en/til/2020/11/12/diy-nix-bash-ci.adoc (renamed from src/content/en/tils/2020/11/12/diy-nix-bash-ci.adoc) | 0 | ||||
-rw-r--r-- | src/content/en/til/2020/11/12/git-bisect-automation.adoc (renamed from src/content/en/tils/2020/11/12/git-bisect-automation.adoc) | 0 | ||||
-rw-r--r-- | src/content/en/til/2020/11/12/useful-bashvars.adoc (renamed from src/content/en/tils/2020/11/12/useful-bashvars.adoc) | 0 | ||||
-rw-r--r-- | src/content/en/til/2020/11/14/gpodder-media.adoc (renamed from src/content/en/tils/2020/11/14/gpodder-media.adoc) | 0 | ||||
-rw-r--r-- | src/content/en/til/2020/11/30/git-notes-ci.adoc (renamed from src/content/en/tils/2020/11/30/git-notes-ci.adoc) | 0 | ||||
-rw-r--r-- | src/content/en/til/2020/12/15/shellcheck-repo.adoc (renamed from src/content/en/tils/2020/12/15/shellcheck-repo.adoc) | 0 | ||||
-rw-r--r-- | src/content/en/til/2020/12/29/svg.adoc (renamed from src/content/en/tils/2020/12/29/svg.adoc) | 0 | ||||
-rw-r--r-- | src/content/en/til/2021/01/12/curl-awk-emails.adoc (renamed from src/content/en/tils/2021/01/12/curl-awk-emails.adoc) | 0 | ||||
-rw-r--r-- | src/content/en/til/2021/01/17/posix-shebang.adoc (renamed from src/content/en/tils/2021/01/17/posix-shebang.adoc) | 0 | ||||
-rw-r--r-- | src/content/en/til/2021/04/24/cl-generic-precedence.adoc (renamed from src/content/en/tils/2021/04/24/cl-generic-precedence.adoc) | 0 | ||||
-rw-r--r-- | src/content/en/til/2021/04/24/clojure-autocurry.adoc (renamed from src/content/en/tils/2021/04/24/clojure-autocurry.adoc) | 0 | ||||
-rw-r--r-- | src/content/en/til/2021/04/24/scm-nif.adoc (renamed from src/content/en/tils/2021/04/24/scm-nif.adoc) | 0 | ||||
-rw-r--r-- | src/content/en/til/2021/07/23/git-tls-gpg.adoc (renamed from src/content/en/tils/2021/07/23/git-tls-gpg.adoc) | 0 | ||||
-rw-r--r-- | src/content/en/til/2021/08/11/js-bigint-reviver.adoc (renamed from src/content/en/tils/2021/08/11/js-bigint-reviver.adoc) | 0 | ||||
-rw-r--r-- | src/content/en/til/categories.adoc (renamed from src/content/en/tils/categories.adoc) | 1 | ||||
-rw-r--r-- | src/content/en/til/index.adoc (renamed from src/content/en/tils/index.adoc) | 0 | ||||
-rw-r--r-- | src/content/favicon.png | bin | 180 -> 103 bytes | |||
-rw-r--r-- | src/content/img/atom.svg | 6 | ||||
l--------- | src/content/img/atom/dark.svg | 1 | ||||
-rw-r--r-- | src/content/img/atom/light.svg | 5 | ||||
-rw-r--r--[l---------] | src/content/img/envelope/dark.svg | 7 | ||||
-rw-r--r-- | src/content/img/envelope/light.svg | 4 | ||||
-rw-r--r--[l---------] | src/content/img/link/dark.svg | 8 | ||||
-rw-r--r-- | src/content/img/link/light.svg | 6 | ||||
-rw-r--r--[l---------] | src/content/img/lock/dark.svg | 7 | ||||
-rw-r--r-- | src/content/img/lock/light.svg | 4 | ||||
-rw-r--r--[l---------] | src/content/img/logo/dark.svg | 63 | ||||
-rw-r--r-- | src/content/img/logo/light.svg | 118 | ||||
-rw-r--r-- | src/content/pt/2020-08-12-nome-de-arquivo-com-timestamp-simplificado.md | 45 | ||||
-rw-r--r-- | src/content/pt/hea/2020/08/12/arquivo-datado.adoc | 29 | ||||
-rw-r--r-- | src/content/pt/hea/categorias.adoc | 6 | ||||
-rw-r--r-- | src/content/pt/hea/index.adoc | 11 | ||||
-rw-r--r-- | src/content/pt/sobre.adoc | 12 | ||||
-rw-r--r-- | src/content/public.asc.txt | 107 | ||||
-rw-r--r-- | src/content/style.css | 6 | ||||
-rw-r--r-- | src/headers.txt | 6 | ||||
-rw-r--r-- | src/headers/de.txt | 13 | ||||
-rw-r--r-- | src/headers/en.txt | 13 | ||||
-rw-r--r-- | src/headers/eo.txt | 13 | ||||
-rw-r--r-- | src/headers/es.txt | 13 | ||||
-rw-r--r-- | src/headers/fr.txt | 13 | ||||
-rw-r--r-- | src/headers/pt.txt | 13 | ||||
-rw-r--r-- | src/headers/ref.txt | 13 | ||||
-rw-r--r-- | src/linkonly-dirs.txt | 5 | ||||
-rw-r--r-- | src/names/categories/de.txt | 1 | ||||
-rw-r--r-- | src/names/categories/en.txt | 1 | ||||
-rw-r--r-- | src/names/categories/eo.txt | 1 | ||||
-rw-r--r-- | src/names/categories/es.txt | 1 | ||||
-rw-r--r-- | src/names/categories/fr.txt | 1 | ||||
-rw-r--r-- | src/names/categories/pt.txt | 1 | ||||
-rw-r--r-- | src/names/categories/ref.txt | 1 | ||||
-rw-r--r-- | src/names/category/de.txt | 1 | ||||
-rw-r--r-- | src/names/category/en.txt | 1 | ||||
-rw-r--r-- | src/names/category/eo.txt | 1 | ||||
-rw-r--r-- | src/names/category/es.txt | 1 | ||||
-rw-r--r-- | src/names/category/fr.txt | 1 | ||||
-rw-r--r-- | src/names/category/pt.txt | 1 | ||||
-rw-r--r-- | src/names/category/ref.txt | 1 | ||||
l--------- | src/pages/pt | 1 | ||||
l--------- | src/slides/en | 1 | ||||
-rw-r--r-- | src/static.conf | 3 | ||||
-rw-r--r-- | src/symlinks.txt | 52 |
144 files changed, 3087 insertions, 1858 deletions
@@ -1,4 +1,3 @@ -*.sentinel *.htmlbody *.embedded-config *.conf @@ -6,36 +5,19 @@ *.links *.caslinks *.html -*.html.*.txt *.indexentry *.feedentry +*.mapentry *.sortdata *.categorydata -sortdata.txt -categories.txt -categories.xml -categories.htmlheader -categories.htmlfooter -categories.htmllisting -index.htmlheader -index.htmlfooter -index.htmllisting -feed.xml -feed.*.xml +*.txt +*.xml +*.htmlheader +*.htmlfooter +*.htmllisting +*.ps +*.pdf *.gz -/src/sources.txt -/src/all-contents.txt -/src/all-filelists.txt -/src/all-symlinks.txt -/src/install.txt -/src/sort-expected.txt -/src/sort-given.txt -/sources.txt -/install.txt -/email.txt -/baseurl.txt -/fingerprint.txt -/expiry.txt -/src/content/security.txt -/src/content/.well-known/security.txt +*.sentinel +*.torrent /src/content/.gitignore @@ -26,9 +26,9 @@ BASEURL = / .SUFFIXES: -.SUFFIXES: .adoc .conf .snippets .indexentry .feedentry .sortdata .xml .txt +.SUFFIXES: .adoc .conf .snippets .indexentry .feedentry .mapentry .sortdata .xml .SUFFIXES: .htmlbody .htmlheader .htmlfooter .htmllisting .html .links .caslinks -.SUFFIXES: .categorydata .gz .torrent .flac .ogg +.SUFFIXES: .txt .categorydata .gz .torrent .flac .ogg .ps .pdf .sentinel .adoc.conf: mkwb conf src/global.conf $< > $@ @@ -54,6 +54,9 @@ BASEURL = / .htmlbody.feedentry: mkwb feedentry $< > $@ +.conf.mapentry: + mkwb mapentry $< > $@ + .conf.sortdata: mkwb sortdata $< > $@ @@ -71,6 +74,12 @@ BASEURL = / .flac.ogg: ffmpeg $(FFMFLAGS) -i $< -ar 48000 -vn -c:a libvorbis -b:a 320k $@ +.adoc.ps: + eslaides < $< > $@ + +.ps.pdf: + ps2pdf - < $< > $@ + all: @@ -86,6 +95,7 @@ sources.snippets.gz = $(sources.adoc:.adoc=.snippets.gz) sources.conf = $(sources.adoc:.adoc=.conf) sources.links = $(sources.adoc:.adoc=.links) sources.caslinks = $(sources.adoc:.adoc=.caslinks) +sources.mapentry = $(sources.adoc:.adoc=.mapentry) articles.indexentry = $(articles.adoc:.adoc=.indexentry) articles.feedentry = $(articles.adoc:.adoc=.feedentry) articles.sortdata = $(articles.adoc:.adoc=.sortdata) @@ -99,6 +109,8 @@ categories.txt = $(categories.adoc:.adoc=.txt) categories.xml = $(categories.adoc:.adoc=.xml) categories.xml.gz = $(categories.adoc:.adoc=.xml.gz) sources.media.torrent = $(sources.media:=.torrent) +slides.ps = $(slides.adoc:.adoc=.ps) +slides.pdf = $(slides.adoc:.adoc=.pdf) sources = \ $(sources.adoc) \ @@ -111,7 +123,10 @@ sources = \ dynamic-contents = \ $(sources.html) \ + $(slides.pdf) \ $(feeds.xml) \ + $(sources.media.torrent) \ + src/content/sitemap.xml \ static-contents = \ $(sources.extras) \ @@ -149,6 +164,13 @@ all-contents = \ $(contents) \ $(contents.gz) \ +captured-assets = \ + src/content/$(PUBURL) \ + src/content/favicon.ico \ + src/content/favicon.png \ + +captured-assets.sentinel = $(captured-assets:=.sentinel) + derived-assets = \ $(dynamic-contents) \ @@ -157,9 +179,10 @@ derived-assets = \ $(sources.htmlbody) \ $(sources.snippets) \ $(sources.snippets.gz) \ + $(sources.conf) \ $(sources.links) \ $(sources.caslinks) \ - $(sources.conf) \ + $(sources.mapentry) \ src/dyn.conf \ src/base.conf \ src/global.conf \ @@ -175,10 +198,14 @@ derived-assets = \ $(categories.txt) \ $(categories.xml) \ $(categories.xml.gz) \ + $(slides.ps) \ + $(slides.pdf) \ email.txt \ baseurl.txt \ fingerprint.txt \ expiry.txt \ + expiry-epoch.txt \ + now.txt \ src/content/.well-known/security.txt \ src/all-contents.txt \ src/all-filelists.txt \ @@ -190,29 +217,20 @@ derived-assets = \ install.txt \ sources.txt \ src/content/.gitignore \ - -captured-assets = \ - src/content/$(PUBURL) \ - src/content/favicon.ico \ - src/content/favicon.png \ - $(sources.media.torrent) \ + $(captured-assets.sentinel) \ side-assets = \ - src/collections/*/*/*/*/*.html.*.txt \ - src/collections/*/*/*/*/*.html.*.txt.gz \ - src/collections/*/index.html.*.txt \ - src/collections/*/sortdata.txt \ - src/collections/*/feed.*.xml \ - src/collections/*/feed.*.xml.gz \ - src/collections/*/*.sortdata \ + src/collections/*/*/*/*/*/*.html.*.txt \ + src/collections/*/*/*/*/*/*.txt.gz \ + src/collections/*/*/index.html.*.txt \ + src/collections/*/*/sortdata.txt \ + src/collections/*/*/feed.*.xml \ + src/collections/*/*/feed.*.xml.gz \ + src/collections/*/*/*.sortdata \ src/pages/*/*.html.*.txt \ src/content/.well-known/ \ `cat src/all-symlinks.txt 2>/dev/null` \ - src/content/css/ \ - src/content/favicon/ \ - src/content/images/ \ - src/content/resources/ \ - src/content/static/ \ + `cat src/linkonly-dirs.txt 2>/dev/null` \ @@ -223,7 +241,7 @@ all: $(captured-assets) $(derived-assets): Makefile deps.mk -$(sources.conf): src/global.conf src/headers.txt +$(sources.conf): src/global.conf src/content/.gitignore: src/symlinks.txt @@ -251,8 +269,8 @@ $(indexes.htmllisting): $(categories.htmllisting): mkwb categoriesbody $*.conf > $@ -$(categories.txt): - mkwb categories $(@D) > $@ +$(categories.txt): src/global.conf + mkwb categories src/global.conf $(@D) > $@ $(categories.xml): for f in `cat $*.txt`; do \ @@ -272,26 +290,33 @@ $(sources.snippets.gz) $(categories.xml.gz): if [ -s $* ]; then gzip -9fk `cat $*`; fi sed 's/$$/.gz/' $* > $@ -src/content/$(PUBURL).gz: src/content/$(PUBURL) -src/content/$(PUBURL): - gpg --export --armour "`jq -r '.email' < meta.json`" > $@ +src/content/$(PUBURL).gz: src/content/$(PUBURL).sentinel +src/content/$(PUBURL).sentinel: email.txt + gpg --export --armour "`cat email.txt`" | ifne ifnew $* + touch $@ -src/content/favicon.ico.gz: src/content/favicon.ico -src/content/favicon.ico: src/content/img/favicon.svg - convert src/content/img/favicon.svg $@ +src/content/favicon.ico.gz: src/content/favicon.ico.sentinel +src/content/favicon.ico.sentinel: src/content/img/favicon.svg + convert src/content/img/favicon.svg -strip ico:- | ifnew $* + touch $@ -src/content/favicon.png: src/content/img/favicon.svg - convert src/content/img/favicon.svg $@ +src/content/favicon.png.sentinel: src/content/img/favicon.svg + convert src/content/img/favicon.svg -strip png:- | ifnew $* + touch $@ $(sources.media.torrent): F="`printf '%s\n' $* | cut -d/ -f3-`" && \ mktorrent -xfd -n $(*F) -o $@ -w "https://$(NAME)$(BASEURL)$${F}" $* -email.txt: meta.json - jq -r '.email' < meta.json > $@ +src/content/sitemap.xml.gz: src/content/sitemap.xml +src/content/sitemap.xml: $(sources.mapentry) + mkwb sitemap $(sources.mapentry) > $@ -baseurl.txt: meta.json - jq -r '.baseurl' < meta.json > $@ +email.txt: meta.capim + cat meta.capim | awk '$$1 == ":email" && $$0=$$2' | tr -d '"' > $@ + +baseurl.txt: meta.capim + cat meta.capim | awk '$$1 == ":baseurl" && $$0=$$2' | tr -d '"' > $@ fingerprint.txt: src/content/$(PUBURL) gpg --always-trust --no-keyring --show-key --with-colons \ @@ -304,13 +329,19 @@ expiry.txt: src/content/$(PUBURL) awk -F: '/^pub:/ { print $$7 }' | \ xargs -I% date -Is -d@% > $@ +expiry-epoch.txt: expiry.txt + date -d "`cat expiry.txt`" '+%s' > $@ + +now.txt: + now > $@ + src/content/.well-known/security.txt.gz: src/content/.well-known/security.txt src/content/.well-known/security.txt: email.txt baseurl.txt expiry.txt mkdir -p $(@D) printf 'Contact: mailto:%s\n' "`cat email.txt`" > $@ printf 'Expires: %s\n' "`cat expiry.txt`" >> $@ printf 'Encryption: %s/$(PUBURL)\n' "`cat baseurl.txt`" >> $@ - printf 'Preferred-Languages: en, pt, fr, eo, es\n' >> $@ + printf 'Preferred-Languages: en, pt, fr, eo, es, de\n' >> $@ src/sources.txt: printf '%s\n' $(sources) > $@ @@ -359,7 +390,7 @@ check-unit-updatedat: $(sources.updatedat-check) .SUFFIXES: .links-internal-check sources.links-internal-check = $(sources.adoc:.adoc=.links-internal-check) -$(sources.links-internal-check): $(sources.html) +$(sources.links-internal-check): $(sources.html) $(slides.pdf) grep -E '^(link|image):' $*.links | cut -d: -f2- | \ xargs -I% test -e $(*D)/% @@ -374,15 +405,32 @@ symlink-deps = \ $(feeds.xml) \ $(categories.xml) \ src/content/.well-known/security.txt \ + $(sources.media.torrent) \ -check-unit-symlinks: src/all-symlinks.txt $(symlink-deps) +check-unit-links-symlinks: src/all-symlinks.txt $(symlink-deps) find `cat src/all-symlinks.txt` | xargs -n1 test -e check-unit-links: check-unit-links-internal check-unit-links-external -check-unit-links: check-unit-symlinks +check-unit-links: check-unit-links-symlinks + + +MAXSIZE = 52428800 # from spec: https://www.sitemaps.org/protocol.html +check-unit-sitemap-size: src/content/sitemap.xml + test "`stat --printf='%s' src/content/sitemap.xml`" -le $(MAXSIZE) + +check-unit-sitemap-count: src/content/sitemap.xml + test "`grep -cF '</url>' src/content/sitemap.xml`" -le 50000 + +check-unit-sitemap: check-unit-sitemap-count check-unit-sitemap-size + + +check-unit-expiry: expiry-epoch.txt now.txt + test "`cat expiry-epoch.txt`" -gt "`cat now.txt`" + check-unit: check-unit-sorting check-unit-updatedat check-unit-links +check-unit: check-unit-sitemap check-unit-expiry integration-tests = \ @@ -401,6 +449,11 @@ check: check-unit check-integration +i18n: + po4a po/po4a.cfg + + + ## Remove *all* derived artifacts produced during the build. ## A dedicated test asserts that this is always true. clean: @@ -3,56 +3,12 @@ ## TODO Hand pick trackers for the generated torrents {#td-5cab66be-9f82-4d25-de87-fc6392c3b26f} - TODO in 2022-06-04 -## TODO Use Opus over Ogg for podcasts {#td-2de2f57c-0773-530f-f6cf-70836080f46f} -- TODO in 2022-06-01 - ## TODO Assert code blocks stick to atmost 80 columns {#td-75506021-884a-af77-ffbe-448816f70cc5} - TODO in 2022-04-20 ## TODO Detect linkrot {#td-dba2ff82-59b3-dd17-06a9-edbc9cffb264} - TODO in 2022-04-13 -## TODO Revisit favicon references without links in articles {#td-3996432b-c5b8-a003-db82-c684035f58d5} -- TODO in 2022-04-12 - -## TODO Revisit `README.md` {#td-181014da-abbd-fbc3-ed42-a2c2d89f12a7} -- TODO in 2022-03-25 - -## TODO Rename pkgs.{nologin => shadow} {#td-db77b6f1-3044-e457-1672-5cf4314b47b2} -- TODO in 2022-03-14 - -## DOING Add `security.txt` {#td-a84b65c4-686c-c098-aa4b-cfba06a84825} -- DOING in 2022-04-12 - - Add the `.well-known/security.txt` file, with a `security.txt` symlink. - - Done in - [`764b6f4d312ed6a68d8591447bbcc1ba1e13f272`](https://euandre.org/git/euandre.org/commit/?id=764b6f4d312ed6a68d8591447bbcc1ba1e13f272). -- TODO in 2022-03-06 - ---- - -Add check to ensure that its `Expires` field is in sync with the refreshed GPG -key, and that this file in `euandre.org` is also in sync with `euandreh.xyz` and -other domains. - -Probably just: -``` -Contact: mailto:eu@euandre.org -Expires: 2022-07-12T03:00:00.000Z -Encryption: https://euandre.org/public-key.txt -Preferred-Languages: en, pt, fr, eo, es -``` - -## TODO Replace Jekyll with a Makefile {#td-e795e852-a836-edae-0f95-48b28096ea9a} -- TODO in 2022-03-06 - ---- - -Consider using [m4] for templating. - -[m4]: http://mbreen.com/m4.html - ## TODO Test robustness and responsiveness of HTML/CSS {#td-c76a7c83-20d2-a2cc-b48a-8499c6ca5b69} - TODO in 2022-03-06 @@ -103,14 +59,6 @@ cp a/b.x a/b.y This impacts the upcoming `lilypond -o $name` command in the Makefile. - -## TODO Use PostScript instead of Reveal.js {#td-6449803d-5774-b345-fde8-ad734af43e36} -- TODO in 2021-10-12 - ---- - -<i>À la</i> <https://github.com/jroimartin/ssg/>. - ## TODO Remove `alt` from some icons {#td-d01a98aa-ef1e-cb21-8cba-7325d98b3db0} - TODO in 2021-10-12 @@ -121,24 +69,15 @@ This impacts the upcoming `lilypond -o $name` command in the Makefile. <https://jigsaw.w3.org/css-validator/> -## TODO Reduce size of container image {#td-826dd92f-ba91-b7b4-1fcc-e5240f920e99} -- TODO in 2021-10-12 - ## TODO Add JID alongside email {#task-089dca19-14e2-e1c1-6a47-9af6ab8eb42a} - TODO in 2021-09-05 ## TODO Generate Opus for podcast {#task-93510453-111f-9b1f-575f-ca8c7c05883c} - TODO in 2021-06-07 -## TODO Generate PDFs for slides {#task-d2ef646f-6232-d82f-dd77-507c6981ee80} -- TODO in 2021-06-07 - ## TODO Podcast metadata: copy GNU World Order {#task-7b0aeb8d-282b-7ebf-4c5f-65c6cac1f0a1} - TODO in 2021-06-07 -## TODO Publish over Gemini {#task-319021df-ebdb-40cd-8330-329e8d01b747} -- TODO in 2021-02-22 - ## TODO Improve CSS of navigation bar {#task-ddd3795b-fd89-4d68-a78b-6adcb4702f92} - TODO in 2021-02-21 @@ -146,7 +85,7 @@ This impacts the upcoming `lilypond -o $name` command in the Makefile. It doesn't resize well for small screens, and links are too small and close to each other. -## TODO Screnncasts: Use scriptreplay and asciinema {#task-98a68a93-1294-4283-a78f-9b7f1150c729} +## TODO Screencasts: Use scriptreplay and asciinema {#task-98a68a93-1294-4283-a78f-9b7f1150c729} - TODO in 2021-02-11 ## TODO Add hunspell dictionaries {#task-67783646-ef33-488b-a1d2-3ecd0b12dbb3} @@ -155,68 +94,9 @@ It doesn't resize well for small screens, and links are too small and close to e ## TODO Shrink size of links at the end of slides {#task-7a53af07-57bf-4684-97c5-af43279848c0} - TODO in 2021-02-11 -## DONE `dengoso.ly` [9/9] {#task-95ac1eec-1a56-47cb-b7ad-8cadf5737323} -- DONE in 2021-01-03 -- TODO in 2021-01-01 - ---- - -- [X] use "<quarter> = 100" over "Andante moderato for `meter` -- [X] turn `cWithSlash` into a function -- [X] move `pestana=` into shared `pestana.ly` -- [X] ~~use fret-number over roman string on `pestana #"II" { }`~~ -- [X] `6 to D` on beginning of the song -- [X] share notes between voices -- [X] add string markers -- [X] pestana over rests (measure 42) -- [X] handle optional sharp on measure 77 - -## TODO `choro-da-saudade.ly` [0/2] {#task-04afbdc0-4e2c-4176-b7c3-0c04087c09a8} -- TODO in 2021-01-03 - ---- - -- [ ] Make `D.S. al Coda` appear in MIDI - - ```lilypond - bar ".."^markup { D.S. al Coda } - cadenzaOn - stopStaff - once override TextScript.extra-offset = #'(0 . -3) - <>^markup { D.S. al Coda } - repeat unfold 3 { - s1 - bar "" - } - cadenzaOff - startStaff - ``` - -## TODO `marcha-dos-marinheiros.ly` {#task-bbc19f19-ca4f-4cbf-bc4d-e119ad06deef} -- TODO in 2021-01-03 - -## DONE Embed LilyPond source code in PDF and audio {#task-340da973-622c-45d6-8d3c-7db839586517} -- DONE in 2021-01-03 - - Done in - [`bff2b07922272fd4c8f9ee0a7129d0a7c134dd38`](https://euandre.org/git/euandre.org/commit/?id=bff2b07922272fd4c8f9ee0a7129d0a7c134dd38). -- TODO in 2021-01-03 - ---- - -Use the `embed-source-code` options: - -```scheme -#(ly:set-option 'embed-source-code #t) -``` - ## TODO Add torrent for audio in `music-listing.html` {#task-aa314475-6a19-48fe-a752-7c479ad26be2} - TODO in 2021-01-03 ---- - -Torrent for PDF, too? - ## TODO Investigate the ICE STUN/TURN servers used by WebTorrent {#task-c7e75b41-d86e-423b-b4a1-7d193c3a6ef1} - TODO in 2021-01-07 @@ -225,15 +105,7 @@ Torrent for PDF, too? Depending on the provider, maybe host my own, like [coturn](https://github.com/coturn/coturn). -## DONE Generate `favicon.ico` from `favicon.svg` {#task-720e79b4-9e38-41c6-9958-cdadd67d2298} -- DONE in 2021-01-03 - - Done in - [`433428cf6b4ef8a653f349e0a0d1fa0d10aab1e7`](https://euandre.org/git/euandre.org/commit/?id=bff2b07922272fd4c8f9ee0a7129d0a7c134dd38). -- TODO in 2021-01-01 - ## DONE Add page to listen an watch files with WebTorrent {#task-e5d2be9d-6471-40ba-a2d3-c7bc482bfaba} -- DONE in 2020-12-24 - TODO in 2020-12-23 ## DONE Use SVG favicon {#task-29f1bded-3a56-410b-933d-e6a11f47656a} @@ -252,10 +124,6 @@ $ inkscape -o icon-48x48.png -w 48 -h 48 icon.svg $ convert icon-48x48.png favicon.ico ``` -## DONE Create screencasts collection {#task-fb8e4ad8-7c8b-4b62-a4f2-5f16f84ec7e6} -- DONE in 2020-12-24 -- TODO in 2020-12-24 - ## DONE Add webtorrent-hybrid daemon {#task-1a2f5619-5d55-449f-a401-8c87afd5bea9} - DONE in 2020-12-28 @@ -315,31 +183,8 @@ $ git revert 2beab5441b4fcddc849cfc44b99547d49593691d # Improvements -## TODO `dengoso.ly` [0/1] {#improvement-fd989cc2-b638-4943-8109-b8e3cac0aae1} -- TODO in 2021-01-03 - ---- - -- [ ] measures 21~24: map previous notes, removing fingering notation instead of repeating notes - -## TODO Music sources {#improvement-610ed926-cc5e-418a-b046-27f4c4862d0d} -- TODO in 2021-01-04 - -[Barrios](https://imslp.org/wiki/Category:Barrios_Mangor%C3%A9,_Agust%C3%ADn) -(public domain), -[Villa-Lobos](https://imslp.org/wiki/Category:Villa-Lobos,_Heitor) -(public domain in 2030) and Garoto (public domain in 2026) - # Questions -## DONE Why insist on having `.ogg` files, but not the same for video? {#question-8203fbce-be76-4cc3-a62a-15f91bf22051} -- DONE in 2020-12-24 -- TODO in 2020-12-24 - ---- - -Because of subtitle embedding. - # Resources ## For bitmat images compression: @@ -352,17 +197,11 @@ Because of subtitle embedding. Future-proof wesite (and also later software): - commit directly most derived data, such as torrent files, ogg media, SVG from graphviz input, etc., so that the absence of those tools don't impede the generation of existing pages of the website. - - FIXMEs: - `date -d` isn't POSIX: simple replacement - translation not coming from english (like pt -> fr) -- po4a for markdown... -- render slides - shrink CSS - - Mobile-friendly tables: https://many.pw/ @@ -372,4 +211,3 @@ https://news.ycombinator.com/item?id=36739920 CSS from https://news.ycombinator.com/item?id=32972004 add link to archived versions -fnback is the number over the arrow @@ -1,6 +1,7 @@ pages.adoc = \ src/content/en/about.adoc \ src/content/en/index.adoc \ + src/content/pt/sobre.adoc \ articles.adoc = \ src/content/en/blog/2018/07/17/guix-nixos.adoc \ @@ -20,78 +21,85 @@ articles.adoc = \ src/content/en/blog/2021/01/26/remembering-ann.adoc \ src/content/en/blog/2021/02/17/fallible.adoc \ src/content/en/blog/2021/04/29/relational-review.adoc \ - src/content/en/pastebins/2016/04/05/rpn.adoc \ - src/content/en/pastebins/2018/07/11/nix-pinning.adoc \ - src/content/en/pastebins/2018/07/13/guix-nixos-systemd.adoc \ - src/content/en/pastebins/2018/07/13/guixbuilder-nixos.adoc \ - src/content/en/pastebins/2018/07/13/guixbuilder.adoc \ - src/content/en/pastebins/2018/07/13/nix-strpad.adoc \ - src/content/en/pastebins/2018/07/25/nix-exps.adoc \ - src/content/en/pastebins/2018/07/25/nix-showdrv.adoc \ - src/content/en/pastebins/2019/06/08/inconsistent-hash.adoc \ - src/content/en/pastebins/2019/12/29/raku-tuple-type.adoc \ - src/content/en/pastebins/2020/01/04/guix-import-failure.adoc \ - src/content/en/pastebins/2020/02/14/guix-shebang.adoc \ - src/content/en/pastebins/2020/11/27/guix-build-local.adoc \ - src/content/en/pastebins/2020/12/15/guix-pack-fail.adoc \ - src/content/en/pastebins/2021/04/03/naive-slugify-js.adoc \ - src/content/en/pastebins/2021/06/08/reading-session-pt1.adoc \ - src/content/en/pastebins/2021/06/22/curl-wget.adoc \ - src/content/en/pastebins/2021/08/11/h1-spacing.adoc \ - src/content/en/pastebins/2021/09/02/sicp-3-19.adoc \ - src/content/en/pastebins/2021/09/03/sicp-persistent-queue.adoc \ - src/content/en/pastebins/2022/07/14/git-cleanup.adoc \ - src/content/en/pastebins/2023/07/22/funcallable-amop.adoc \ - src/content/en/podcasts/2020/12/19/test-entry.adoc \ - src/content/en/screencasts/2021/02/07/autoqemu.adoc \ - src/content/en/tils/2020/08/12/filename-timestamp.adoc \ - src/content/en/tils/2020/08/13/code-jekyll.adoc \ - src/content/en/tils/2020/08/14/browse-git.adoc \ - src/content/en/tils/2020/08/16/git-search.adoc \ - src/content/en/tils/2020/08/28/grep-online.adoc \ - src/content/en/tils/2020/09/04/cli-email-fun-profit.adoc \ - src/content/en/tils/2020/09/05/oldschool-pr.adoc \ - src/content/en/tils/2020/10/11/search-git-history.adoc \ - src/content/en/tils/2020/11/08/find-broken-symlink.adoc \ - src/content/en/tils/2020/11/12/diy-nix-bash-ci.adoc \ - src/content/en/tils/2020/11/12/git-bisect-automation.adoc \ - src/content/en/tils/2020/11/12/useful-bashvars.adoc \ - src/content/en/tils/2020/11/14/gpodder-media.adoc \ - src/content/en/tils/2020/11/30/git-notes-ci.adoc \ - src/content/en/tils/2020/12/15/shellcheck-repo.adoc \ - src/content/en/tils/2020/12/29/svg.adoc \ - src/content/en/tils/2021/01/12/curl-awk-emails.adoc \ - src/content/en/tils/2021/01/17/posix-shebang.adoc \ - src/content/en/tils/2021/04/24/cl-generic-precedence.adoc \ - src/content/en/tils/2021/04/24/clojure-autocurry.adoc \ - src/content/en/tils/2021/04/24/scm-nif.adoc \ - src/content/en/tils/2021/07/23/git-tls-gpg.adoc \ - src/content/en/tils/2021/08/11/js-bigint-reviver.adoc \ + src/content/en/pastebin/2016/04/05/rpn.adoc \ + src/content/en/pastebin/2018/07/11/nix-pinning.adoc \ + src/content/en/pastebin/2018/07/13/guix-nixos-systemd.adoc \ + src/content/en/pastebin/2018/07/13/guixbuilder-nixos.adoc \ + src/content/en/pastebin/2018/07/13/guixbuilder.adoc \ + src/content/en/pastebin/2018/07/13/nix-strpad.adoc \ + src/content/en/pastebin/2018/07/25/nix-exps.adoc \ + src/content/en/pastebin/2018/07/25/nix-showdrv.adoc \ + src/content/en/pastebin/2019/06/08/inconsistent-hash.adoc \ + src/content/en/pastebin/2019/12/29/raku-tuple-type.adoc \ + src/content/en/pastebin/2020/01/04/guix-import-failure.adoc \ + src/content/en/pastebin/2020/02/14/guix-shebang.adoc \ + src/content/en/pastebin/2020/11/27/guix-build-local.adoc \ + src/content/en/pastebin/2020/12/15/guix-pack-fail.adoc \ + src/content/en/pastebin/2021/04/03/naive-slugify-js.adoc \ + src/content/en/pastebin/2021/06/08/reading-session-pt1.adoc \ + src/content/en/pastebin/2021/06/22/curl-wget.adoc \ + src/content/en/pastebin/2021/08/11/h1-spacing.adoc \ + src/content/en/pastebin/2021/09/02/sicp-3-19.adoc \ + src/content/en/pastebin/2021/09/03/sicp-persistent-queue.adoc \ + src/content/en/pastebin/2022/07/14/git-cleanup.adoc \ + src/content/en/pastebin/2023/07/22/funcallable-amop.adoc \ + src/content/en/podcast/2020/12/19/test-entry.adoc \ + src/content/en/screencast/2021/02/07/autoqemu.adoc \ + src/content/en/til/2020/08/12/filename-timestamp.adoc \ + src/content/en/til/2020/08/13/code-jekyll.adoc \ + src/content/en/til/2020/08/14/browse-git.adoc \ + src/content/en/til/2020/08/16/git-search.adoc \ + src/content/en/til/2020/08/28/grep-online.adoc \ + src/content/en/til/2020/09/04/cli-email-fun-profit.adoc \ + src/content/en/til/2020/09/05/oldschool-pr.adoc \ + src/content/en/til/2020/10/11/search-git-history.adoc \ + src/content/en/til/2020/11/08/find-broken-symlink.adoc \ + src/content/en/til/2020/11/12/diy-nix-bash-ci.adoc \ + src/content/en/til/2020/11/12/git-bisect-automation.adoc \ + src/content/en/til/2020/11/12/useful-bashvars.adoc \ + src/content/en/til/2020/11/14/gpodder-media.adoc \ + src/content/en/til/2020/11/30/git-notes-ci.adoc \ + src/content/en/til/2020/12/15/shellcheck-repo.adoc \ + src/content/en/til/2020/12/29/svg.adoc \ + src/content/en/til/2021/01/12/curl-awk-emails.adoc \ + src/content/en/til/2021/01/17/posix-shebang.adoc \ + src/content/en/til/2021/04/24/cl-generic-precedence.adoc \ + src/content/en/til/2021/04/24/clojure-autocurry.adoc \ + src/content/en/til/2021/04/24/scm-nif.adoc \ + src/content/en/til/2021/07/23/git-tls-gpg.adoc \ + src/content/en/til/2021/08/11/js-bigint-reviver.adoc \ + src/content/pt/hea/2020/08/12/arquivo-datado.adoc \ + +slides.adoc = \ + src/content/en/slide/2020/10/19/feature-flags.adoc \ + src/content/en/slide/2020/11/14/local-first-hype.adoc \ categories.adoc = \ src/content/en/blog/categories.adoc \ - src/content/en/pastebins/categories.adoc \ - src/content/en/podcasts/categories.adoc \ - src/content/en/screencasts/categories.adoc \ - src/content/en/tils/categories.adoc \ + src/content/en/pastebin/categories.adoc \ + src/content/en/podcast/categories.adoc \ + src/content/en/screencast/categories.adoc \ + src/content/en/til/categories.adoc \ + src/content/pt/hea/categorias.adoc \ indexes.adoc = \ src/content/en/blog/index.adoc \ - src/content/en/pastebins/index.adoc \ - src/content/en/podcasts/index.adoc \ - src/content/en/screencasts/index.adoc \ - src/content/en/tils/index.adoc \ + src/content/en/pastebin/index.adoc \ + src/content/en/podcast/index.adoc \ + src/content/en/screencast/index.adoc \ + src/content/en/til/index.adoc \ + src/content/pt/hea/index.adoc \ feeds.xml = \ src/content/en/blog/feed.xml \ - src/content/en/pastebins/feed.xml \ - src/content/en/podcasts/feed.xml \ - src/content/en/screencasts/feed.xml \ - src/content/en/tils/feed.xml \ + src/content/en/pastebin/feed.xml \ + src/content/en/podcast/feed.xml \ + src/content/en/screencast/feed.xml \ + src/content/en/til/feed.xml \ + src/content/pt/hea/feed.xml \ images.svg = \ - src/content/img/atom/dark.svg \ - src/content/img/atom/light.svg \ + src/content/img/atom.svg \ src/content/img/envelope/dark.svg \ src/content/img/envelope/light.svg \ src/content/img/favicon.svg \ @@ -103,9 +111,9 @@ images.svg = \ src/content/img/logo/light.svg \ sources.media = \ - src/content/en/podcasts/2020/12/19/test-entry.flac \ - src/content/en/podcasts/2020/12/19/test-entry.ogg \ - src/content/en/screencasts/2021/02/07/autoqemu.webm \ + src/content/en/podcast/2020/12/19/test-entry.flac \ + src/content/en/podcast/2020/12/19/test-entry.ogg \ + src/content/en/screencast/2021/02/07/autoqemu.webm \ sources.tarballs = \ src/content/en/blog/2020/10/05/cargo2nix-demo.tar.gz \ @@ -113,7 +121,7 @@ sources.tarballs = \ src/content/en/blog/2020/10/05/swift2nix-demo.tar.gz \ src/content/en/blog/2020/10/05/swift2nix.tar.gz \ src/content/en/blog/2021/02/17/fallible.tar.gz \ - src/content/en/screencasts/2021/02/07/autoqemu.tar.gz \ + src/content/en/screencast/2021/02/07/autoqemu.tar.gz \ sources.extras = \ src/content/en/blog/2020/10/05/cargo2nix-demo.tar.gz \ @@ -121,13 +129,23 @@ sources.extras = \ src/content/en/blog/2020/10/05/swift2nix-demo.tar.gz \ src/content/en/blog/2020/10/05/swift2nix.tar.gz \ src/content/en/blog/2021/02/17/fallible.tar.gz \ - src/content/en/podcasts/2020/12/19/test-entry.flac \ - src/content/en/podcasts/2020/12/19/test-entry.ogg \ - src/content/en/screencasts/2021/02/07/autoqemu.tar.gz \ - src/content/en/screencasts/2021/02/07/autoqemu.webm \ + src/content/en/podcast/2020/12/19/test-entry.flac \ + src/content/en/podcast/2020/12/19/test-entry.ogg \ + src/content/en/screencast/2021/02/07/autoqemu.tar.gz \ + src/content/en/screencast/2021/02/07/autoqemu.webm \ + +sources.po = \ + po/de.po \ + po/en.po \ + po/eo.po \ + po/es.po \ + po/euandre.org.pot \ + po/fr.po \ + po/pt.po \ src/content/en/about.html.gz: src/content/en/about.html src/content/en/index.html.gz: src/content/en/index.html +src/content/pt/sobre.html.gz: src/content/pt/sobre.html src/content/en/blog/2018/07/17/guix-nixos.html.gz: src/content/en/blog/2018/07/17/guix-nixos.html src/content/en/blog/2018/08/01/npm-ci-reproducibility.html.gz: src/content/en/blog/2018/08/01/npm-ci-reproducibility.html src/content/en/blog/2018/12/21/ytdl-subs.html.gz: src/content/en/blog/2018/12/21/ytdl-subs.html @@ -145,65 +163,69 @@ src/content/en/blog/2020/11/14/local-first-review.html.gz: src/content/en/blog/2 src/content/en/blog/2021/01/26/remembering-ann.html.gz: src/content/en/blog/2021/01/26/remembering-ann.html src/content/en/blog/2021/02/17/fallible.html.gz: src/content/en/blog/2021/02/17/fallible.html src/content/en/blog/2021/04/29/relational-review.html.gz: src/content/en/blog/2021/04/29/relational-review.html -src/content/en/pastebins/2016/04/05/rpn.html.gz: src/content/en/pastebins/2016/04/05/rpn.html -src/content/en/pastebins/2018/07/11/nix-pinning.html.gz: src/content/en/pastebins/2018/07/11/nix-pinning.html -src/content/en/pastebins/2018/07/13/guix-nixos-systemd.html.gz: src/content/en/pastebins/2018/07/13/guix-nixos-systemd.html -src/content/en/pastebins/2018/07/13/guixbuilder-nixos.html.gz: src/content/en/pastebins/2018/07/13/guixbuilder-nixos.html -src/content/en/pastebins/2018/07/13/guixbuilder.html.gz: src/content/en/pastebins/2018/07/13/guixbuilder.html -src/content/en/pastebins/2018/07/13/nix-strpad.html.gz: src/content/en/pastebins/2018/07/13/nix-strpad.html -src/content/en/pastebins/2018/07/25/nix-exps.html.gz: src/content/en/pastebins/2018/07/25/nix-exps.html -src/content/en/pastebins/2018/07/25/nix-showdrv.html.gz: src/content/en/pastebins/2018/07/25/nix-showdrv.html -src/content/en/pastebins/2019/06/08/inconsistent-hash.html.gz: src/content/en/pastebins/2019/06/08/inconsistent-hash.html -src/content/en/pastebins/2019/12/29/raku-tuple-type.html.gz: src/content/en/pastebins/2019/12/29/raku-tuple-type.html -src/content/en/pastebins/2020/01/04/guix-import-failure.html.gz: src/content/en/pastebins/2020/01/04/guix-import-failure.html -src/content/en/pastebins/2020/02/14/guix-shebang.html.gz: src/content/en/pastebins/2020/02/14/guix-shebang.html -src/content/en/pastebins/2020/11/27/guix-build-local.html.gz: src/content/en/pastebins/2020/11/27/guix-build-local.html -src/content/en/pastebins/2020/12/15/guix-pack-fail.html.gz: src/content/en/pastebins/2020/12/15/guix-pack-fail.html -src/content/en/pastebins/2021/04/03/naive-slugify-js.html.gz: src/content/en/pastebins/2021/04/03/naive-slugify-js.html -src/content/en/pastebins/2021/06/08/reading-session-pt1.html.gz: src/content/en/pastebins/2021/06/08/reading-session-pt1.html -src/content/en/pastebins/2021/06/22/curl-wget.html.gz: src/content/en/pastebins/2021/06/22/curl-wget.html -src/content/en/pastebins/2021/08/11/h1-spacing.html.gz: src/content/en/pastebins/2021/08/11/h1-spacing.html -src/content/en/pastebins/2021/09/02/sicp-3-19.html.gz: src/content/en/pastebins/2021/09/02/sicp-3-19.html -src/content/en/pastebins/2021/09/03/sicp-persistent-queue.html.gz: src/content/en/pastebins/2021/09/03/sicp-persistent-queue.html -src/content/en/pastebins/2022/07/14/git-cleanup.html.gz: src/content/en/pastebins/2022/07/14/git-cleanup.html -src/content/en/pastebins/2023/07/22/funcallable-amop.html.gz: src/content/en/pastebins/2023/07/22/funcallable-amop.html -src/content/en/podcasts/2020/12/19/test-entry.html.gz: src/content/en/podcasts/2020/12/19/test-entry.html -src/content/en/screencasts/2021/02/07/autoqemu.html.gz: src/content/en/screencasts/2021/02/07/autoqemu.html -src/content/en/tils/2020/08/12/filename-timestamp.html.gz: src/content/en/tils/2020/08/12/filename-timestamp.html -src/content/en/tils/2020/08/13/code-jekyll.html.gz: src/content/en/tils/2020/08/13/code-jekyll.html -src/content/en/tils/2020/08/14/browse-git.html.gz: src/content/en/tils/2020/08/14/browse-git.html -src/content/en/tils/2020/08/16/git-search.html.gz: src/content/en/tils/2020/08/16/git-search.html -src/content/en/tils/2020/08/28/grep-online.html.gz: src/content/en/tils/2020/08/28/grep-online.html -src/content/en/tils/2020/09/04/cli-email-fun-profit.html.gz: src/content/en/tils/2020/09/04/cli-email-fun-profit.html -src/content/en/tils/2020/09/05/oldschool-pr.html.gz: src/content/en/tils/2020/09/05/oldschool-pr.html -src/content/en/tils/2020/10/11/search-git-history.html.gz: src/content/en/tils/2020/10/11/search-git-history.html -src/content/en/tils/2020/11/08/find-broken-symlink.html.gz: src/content/en/tils/2020/11/08/find-broken-symlink.html -src/content/en/tils/2020/11/12/diy-nix-bash-ci.html.gz: src/content/en/tils/2020/11/12/diy-nix-bash-ci.html -src/content/en/tils/2020/11/12/git-bisect-automation.html.gz: src/content/en/tils/2020/11/12/git-bisect-automation.html -src/content/en/tils/2020/11/12/useful-bashvars.html.gz: src/content/en/tils/2020/11/12/useful-bashvars.html -src/content/en/tils/2020/11/14/gpodder-media.html.gz: src/content/en/tils/2020/11/14/gpodder-media.html -src/content/en/tils/2020/11/30/git-notes-ci.html.gz: src/content/en/tils/2020/11/30/git-notes-ci.html -src/content/en/tils/2020/12/15/shellcheck-repo.html.gz: src/content/en/tils/2020/12/15/shellcheck-repo.html -src/content/en/tils/2020/12/29/svg.html.gz: src/content/en/tils/2020/12/29/svg.html -src/content/en/tils/2021/01/12/curl-awk-emails.html.gz: src/content/en/tils/2021/01/12/curl-awk-emails.html -src/content/en/tils/2021/01/17/posix-shebang.html.gz: src/content/en/tils/2021/01/17/posix-shebang.html -src/content/en/tils/2021/04/24/cl-generic-precedence.html.gz: src/content/en/tils/2021/04/24/cl-generic-precedence.html -src/content/en/tils/2021/04/24/clojure-autocurry.html.gz: src/content/en/tils/2021/04/24/clojure-autocurry.html -src/content/en/tils/2021/04/24/scm-nif.html.gz: src/content/en/tils/2021/04/24/scm-nif.html -src/content/en/tils/2021/07/23/git-tls-gpg.html.gz: src/content/en/tils/2021/07/23/git-tls-gpg.html -src/content/en/tils/2021/08/11/js-bigint-reviver.html.gz: src/content/en/tils/2021/08/11/js-bigint-reviver.html +src/content/en/pastebin/2016/04/05/rpn.html.gz: src/content/en/pastebin/2016/04/05/rpn.html +src/content/en/pastebin/2018/07/11/nix-pinning.html.gz: src/content/en/pastebin/2018/07/11/nix-pinning.html +src/content/en/pastebin/2018/07/13/guix-nixos-systemd.html.gz: src/content/en/pastebin/2018/07/13/guix-nixos-systemd.html +src/content/en/pastebin/2018/07/13/guixbuilder-nixos.html.gz: src/content/en/pastebin/2018/07/13/guixbuilder-nixos.html +src/content/en/pastebin/2018/07/13/guixbuilder.html.gz: src/content/en/pastebin/2018/07/13/guixbuilder.html +src/content/en/pastebin/2018/07/13/nix-strpad.html.gz: src/content/en/pastebin/2018/07/13/nix-strpad.html +src/content/en/pastebin/2018/07/25/nix-exps.html.gz: src/content/en/pastebin/2018/07/25/nix-exps.html +src/content/en/pastebin/2018/07/25/nix-showdrv.html.gz: src/content/en/pastebin/2018/07/25/nix-showdrv.html +src/content/en/pastebin/2019/06/08/inconsistent-hash.html.gz: src/content/en/pastebin/2019/06/08/inconsistent-hash.html +src/content/en/pastebin/2019/12/29/raku-tuple-type.html.gz: src/content/en/pastebin/2019/12/29/raku-tuple-type.html +src/content/en/pastebin/2020/01/04/guix-import-failure.html.gz: src/content/en/pastebin/2020/01/04/guix-import-failure.html +src/content/en/pastebin/2020/02/14/guix-shebang.html.gz: src/content/en/pastebin/2020/02/14/guix-shebang.html +src/content/en/pastebin/2020/11/27/guix-build-local.html.gz: src/content/en/pastebin/2020/11/27/guix-build-local.html +src/content/en/pastebin/2020/12/15/guix-pack-fail.html.gz: src/content/en/pastebin/2020/12/15/guix-pack-fail.html +src/content/en/pastebin/2021/04/03/naive-slugify-js.html.gz: src/content/en/pastebin/2021/04/03/naive-slugify-js.html +src/content/en/pastebin/2021/06/08/reading-session-pt1.html.gz: src/content/en/pastebin/2021/06/08/reading-session-pt1.html +src/content/en/pastebin/2021/06/22/curl-wget.html.gz: src/content/en/pastebin/2021/06/22/curl-wget.html +src/content/en/pastebin/2021/08/11/h1-spacing.html.gz: src/content/en/pastebin/2021/08/11/h1-spacing.html +src/content/en/pastebin/2021/09/02/sicp-3-19.html.gz: src/content/en/pastebin/2021/09/02/sicp-3-19.html +src/content/en/pastebin/2021/09/03/sicp-persistent-queue.html.gz: src/content/en/pastebin/2021/09/03/sicp-persistent-queue.html +src/content/en/pastebin/2022/07/14/git-cleanup.html.gz: src/content/en/pastebin/2022/07/14/git-cleanup.html +src/content/en/pastebin/2023/07/22/funcallable-amop.html.gz: src/content/en/pastebin/2023/07/22/funcallable-amop.html +src/content/en/podcast/2020/12/19/test-entry.html.gz: src/content/en/podcast/2020/12/19/test-entry.html +src/content/en/screencast/2021/02/07/autoqemu.html.gz: src/content/en/screencast/2021/02/07/autoqemu.html +src/content/en/til/2020/08/12/filename-timestamp.html.gz: src/content/en/til/2020/08/12/filename-timestamp.html +src/content/en/til/2020/08/13/code-jekyll.html.gz: src/content/en/til/2020/08/13/code-jekyll.html +src/content/en/til/2020/08/14/browse-git.html.gz: src/content/en/til/2020/08/14/browse-git.html +src/content/en/til/2020/08/16/git-search.html.gz: src/content/en/til/2020/08/16/git-search.html +src/content/en/til/2020/08/28/grep-online.html.gz: src/content/en/til/2020/08/28/grep-online.html +src/content/en/til/2020/09/04/cli-email-fun-profit.html.gz: src/content/en/til/2020/09/04/cli-email-fun-profit.html +src/content/en/til/2020/09/05/oldschool-pr.html.gz: src/content/en/til/2020/09/05/oldschool-pr.html +src/content/en/til/2020/10/11/search-git-history.html.gz: src/content/en/til/2020/10/11/search-git-history.html +src/content/en/til/2020/11/08/find-broken-symlink.html.gz: src/content/en/til/2020/11/08/find-broken-symlink.html +src/content/en/til/2020/11/12/diy-nix-bash-ci.html.gz: src/content/en/til/2020/11/12/diy-nix-bash-ci.html +src/content/en/til/2020/11/12/git-bisect-automation.html.gz: src/content/en/til/2020/11/12/git-bisect-automation.html +src/content/en/til/2020/11/12/useful-bashvars.html.gz: src/content/en/til/2020/11/12/useful-bashvars.html +src/content/en/til/2020/11/14/gpodder-media.html.gz: src/content/en/til/2020/11/14/gpodder-media.html +src/content/en/til/2020/11/30/git-notes-ci.html.gz: src/content/en/til/2020/11/30/git-notes-ci.html +src/content/en/til/2020/12/15/shellcheck-repo.html.gz: src/content/en/til/2020/12/15/shellcheck-repo.html +src/content/en/til/2020/12/29/svg.html.gz: src/content/en/til/2020/12/29/svg.html +src/content/en/til/2021/01/12/curl-awk-emails.html.gz: src/content/en/til/2021/01/12/curl-awk-emails.html +src/content/en/til/2021/01/17/posix-shebang.html.gz: src/content/en/til/2021/01/17/posix-shebang.html +src/content/en/til/2021/04/24/cl-generic-precedence.html.gz: src/content/en/til/2021/04/24/cl-generic-precedence.html +src/content/en/til/2021/04/24/clojure-autocurry.html.gz: src/content/en/til/2021/04/24/clojure-autocurry.html +src/content/en/til/2021/04/24/scm-nif.html.gz: src/content/en/til/2021/04/24/scm-nif.html +src/content/en/til/2021/07/23/git-tls-gpg.html.gz: src/content/en/til/2021/07/23/git-tls-gpg.html +src/content/en/til/2021/08/11/js-bigint-reviver.html.gz: src/content/en/til/2021/08/11/js-bigint-reviver.html +src/content/pt/hea/2020/08/12/arquivo-datado.html.gz: src/content/pt/hea/2020/08/12/arquivo-datado.html src/content/en/blog/index.html.gz: src/content/en/blog/index.html -src/content/en/pastebins/index.html.gz: src/content/en/pastebins/index.html -src/content/en/podcasts/index.html.gz: src/content/en/podcasts/index.html -src/content/en/screencasts/index.html.gz: src/content/en/screencasts/index.html -src/content/en/tils/index.html.gz: src/content/en/tils/index.html +src/content/en/pastebin/index.html.gz: src/content/en/pastebin/index.html +src/content/en/podcast/index.html.gz: src/content/en/podcast/index.html +src/content/en/screencast/index.html.gz: src/content/en/screencast/index.html +src/content/en/til/index.html.gz: src/content/en/til/index.html +src/content/pt/hea/index.html.gz: src/content/pt/hea/index.html src/content/en/blog/categories.html.gz: src/content/en/blog/categories.html -src/content/en/pastebins/categories.html.gz: src/content/en/pastebins/categories.html -src/content/en/podcasts/categories.html.gz: src/content/en/podcasts/categories.html -src/content/en/screencasts/categories.html.gz: src/content/en/screencasts/categories.html -src/content/en/tils/categories.html.gz: src/content/en/tils/categories.html +src/content/en/pastebin/categories.html.gz: src/content/en/pastebin/categories.html +src/content/en/podcast/categories.html.gz: src/content/en/podcast/categories.html +src/content/en/screencast/categories.html.gz: src/content/en/screencast/categories.html +src/content/en/til/categories.html.gz: src/content/en/til/categories.html +src/content/pt/hea/categorias.html.gz: src/content/pt/hea/categorias.html src/content/en/about.snippets.gz: src/content/en/about.snippets src/content/en/index.snippets.gz: src/content/en/index.snippets +src/content/pt/sobre.snippets.gz: src/content/pt/sobre.snippets src/content/en/blog/2018/07/17/guix-nixos.snippets.gz: src/content/en/blog/2018/07/17/guix-nixos.snippets src/content/en/blog/2018/08/01/npm-ci-reproducibility.snippets.gz: src/content/en/blog/2018/08/01/npm-ci-reproducibility.snippets src/content/en/blog/2018/12/21/ytdl-subs.snippets.gz: src/content/en/blog/2018/12/21/ytdl-subs.snippets @@ -221,76 +243,81 @@ src/content/en/blog/2020/11/14/local-first-review.snippets.gz: src/content/en/bl src/content/en/blog/2021/01/26/remembering-ann.snippets.gz: src/content/en/blog/2021/01/26/remembering-ann.snippets src/content/en/blog/2021/02/17/fallible.snippets.gz: src/content/en/blog/2021/02/17/fallible.snippets src/content/en/blog/2021/04/29/relational-review.snippets.gz: src/content/en/blog/2021/04/29/relational-review.snippets -src/content/en/pastebins/2016/04/05/rpn.snippets.gz: src/content/en/pastebins/2016/04/05/rpn.snippets -src/content/en/pastebins/2018/07/11/nix-pinning.snippets.gz: src/content/en/pastebins/2018/07/11/nix-pinning.snippets -src/content/en/pastebins/2018/07/13/guix-nixos-systemd.snippets.gz: src/content/en/pastebins/2018/07/13/guix-nixos-systemd.snippets -src/content/en/pastebins/2018/07/13/guixbuilder-nixos.snippets.gz: src/content/en/pastebins/2018/07/13/guixbuilder-nixos.snippets -src/content/en/pastebins/2018/07/13/guixbuilder.snippets.gz: src/content/en/pastebins/2018/07/13/guixbuilder.snippets -src/content/en/pastebins/2018/07/13/nix-strpad.snippets.gz: src/content/en/pastebins/2018/07/13/nix-strpad.snippets -src/content/en/pastebins/2018/07/25/nix-exps.snippets.gz: src/content/en/pastebins/2018/07/25/nix-exps.snippets -src/content/en/pastebins/2018/07/25/nix-showdrv.snippets.gz: src/content/en/pastebins/2018/07/25/nix-showdrv.snippets -src/content/en/pastebins/2019/06/08/inconsistent-hash.snippets.gz: src/content/en/pastebins/2019/06/08/inconsistent-hash.snippets -src/content/en/pastebins/2019/12/29/raku-tuple-type.snippets.gz: src/content/en/pastebins/2019/12/29/raku-tuple-type.snippets -src/content/en/pastebins/2020/01/04/guix-import-failure.snippets.gz: src/content/en/pastebins/2020/01/04/guix-import-failure.snippets -src/content/en/pastebins/2020/02/14/guix-shebang.snippets.gz: src/content/en/pastebins/2020/02/14/guix-shebang.snippets -src/content/en/pastebins/2020/11/27/guix-build-local.snippets.gz: src/content/en/pastebins/2020/11/27/guix-build-local.snippets -src/content/en/pastebins/2020/12/15/guix-pack-fail.snippets.gz: src/content/en/pastebins/2020/12/15/guix-pack-fail.snippets -src/content/en/pastebins/2021/04/03/naive-slugify-js.snippets.gz: src/content/en/pastebins/2021/04/03/naive-slugify-js.snippets -src/content/en/pastebins/2021/06/08/reading-session-pt1.snippets.gz: src/content/en/pastebins/2021/06/08/reading-session-pt1.snippets -src/content/en/pastebins/2021/06/22/curl-wget.snippets.gz: src/content/en/pastebins/2021/06/22/curl-wget.snippets -src/content/en/pastebins/2021/08/11/h1-spacing.snippets.gz: src/content/en/pastebins/2021/08/11/h1-spacing.snippets -src/content/en/pastebins/2021/09/02/sicp-3-19.snippets.gz: src/content/en/pastebins/2021/09/02/sicp-3-19.snippets -src/content/en/pastebins/2021/09/03/sicp-persistent-queue.snippets.gz: src/content/en/pastebins/2021/09/03/sicp-persistent-queue.snippets -src/content/en/pastebins/2022/07/14/git-cleanup.snippets.gz: src/content/en/pastebins/2022/07/14/git-cleanup.snippets -src/content/en/pastebins/2023/07/22/funcallable-amop.snippets.gz: src/content/en/pastebins/2023/07/22/funcallable-amop.snippets -src/content/en/podcasts/2020/12/19/test-entry.snippets.gz: src/content/en/podcasts/2020/12/19/test-entry.snippets -src/content/en/screencasts/2021/02/07/autoqemu.snippets.gz: src/content/en/screencasts/2021/02/07/autoqemu.snippets -src/content/en/tils/2020/08/12/filename-timestamp.snippets.gz: src/content/en/tils/2020/08/12/filename-timestamp.snippets -src/content/en/tils/2020/08/13/code-jekyll.snippets.gz: src/content/en/tils/2020/08/13/code-jekyll.snippets -src/content/en/tils/2020/08/14/browse-git.snippets.gz: src/content/en/tils/2020/08/14/browse-git.snippets -src/content/en/tils/2020/08/16/git-search.snippets.gz: src/content/en/tils/2020/08/16/git-search.snippets -src/content/en/tils/2020/08/28/grep-online.snippets.gz: src/content/en/tils/2020/08/28/grep-online.snippets -src/content/en/tils/2020/09/04/cli-email-fun-profit.snippets.gz: src/content/en/tils/2020/09/04/cli-email-fun-profit.snippets -src/content/en/tils/2020/09/05/oldschool-pr.snippets.gz: src/content/en/tils/2020/09/05/oldschool-pr.snippets -src/content/en/tils/2020/10/11/search-git-history.snippets.gz: src/content/en/tils/2020/10/11/search-git-history.snippets -src/content/en/tils/2020/11/08/find-broken-symlink.snippets.gz: src/content/en/tils/2020/11/08/find-broken-symlink.snippets -src/content/en/tils/2020/11/12/diy-nix-bash-ci.snippets.gz: src/content/en/tils/2020/11/12/diy-nix-bash-ci.snippets -src/content/en/tils/2020/11/12/git-bisect-automation.snippets.gz: src/content/en/tils/2020/11/12/git-bisect-automation.snippets -src/content/en/tils/2020/11/12/useful-bashvars.snippets.gz: src/content/en/tils/2020/11/12/useful-bashvars.snippets -src/content/en/tils/2020/11/14/gpodder-media.snippets.gz: src/content/en/tils/2020/11/14/gpodder-media.snippets -src/content/en/tils/2020/11/30/git-notes-ci.snippets.gz: src/content/en/tils/2020/11/30/git-notes-ci.snippets -src/content/en/tils/2020/12/15/shellcheck-repo.snippets.gz: src/content/en/tils/2020/12/15/shellcheck-repo.snippets -src/content/en/tils/2020/12/29/svg.snippets.gz: src/content/en/tils/2020/12/29/svg.snippets -src/content/en/tils/2021/01/12/curl-awk-emails.snippets.gz: src/content/en/tils/2021/01/12/curl-awk-emails.snippets -src/content/en/tils/2021/01/17/posix-shebang.snippets.gz: src/content/en/tils/2021/01/17/posix-shebang.snippets -src/content/en/tils/2021/04/24/cl-generic-precedence.snippets.gz: src/content/en/tils/2021/04/24/cl-generic-precedence.snippets -src/content/en/tils/2021/04/24/clojure-autocurry.snippets.gz: src/content/en/tils/2021/04/24/clojure-autocurry.snippets -src/content/en/tils/2021/04/24/scm-nif.snippets.gz: src/content/en/tils/2021/04/24/scm-nif.snippets -src/content/en/tils/2021/07/23/git-tls-gpg.snippets.gz: src/content/en/tils/2021/07/23/git-tls-gpg.snippets -src/content/en/tils/2021/08/11/js-bigint-reviver.snippets.gz: src/content/en/tils/2021/08/11/js-bigint-reviver.snippets +src/content/en/pastebin/2016/04/05/rpn.snippets.gz: src/content/en/pastebin/2016/04/05/rpn.snippets +src/content/en/pastebin/2018/07/11/nix-pinning.snippets.gz: src/content/en/pastebin/2018/07/11/nix-pinning.snippets +src/content/en/pastebin/2018/07/13/guix-nixos-systemd.snippets.gz: src/content/en/pastebin/2018/07/13/guix-nixos-systemd.snippets +src/content/en/pastebin/2018/07/13/guixbuilder-nixos.snippets.gz: src/content/en/pastebin/2018/07/13/guixbuilder-nixos.snippets +src/content/en/pastebin/2018/07/13/guixbuilder.snippets.gz: src/content/en/pastebin/2018/07/13/guixbuilder.snippets +src/content/en/pastebin/2018/07/13/nix-strpad.snippets.gz: src/content/en/pastebin/2018/07/13/nix-strpad.snippets +src/content/en/pastebin/2018/07/25/nix-exps.snippets.gz: src/content/en/pastebin/2018/07/25/nix-exps.snippets +src/content/en/pastebin/2018/07/25/nix-showdrv.snippets.gz: src/content/en/pastebin/2018/07/25/nix-showdrv.snippets +src/content/en/pastebin/2019/06/08/inconsistent-hash.snippets.gz: src/content/en/pastebin/2019/06/08/inconsistent-hash.snippets +src/content/en/pastebin/2019/12/29/raku-tuple-type.snippets.gz: src/content/en/pastebin/2019/12/29/raku-tuple-type.snippets +src/content/en/pastebin/2020/01/04/guix-import-failure.snippets.gz: src/content/en/pastebin/2020/01/04/guix-import-failure.snippets +src/content/en/pastebin/2020/02/14/guix-shebang.snippets.gz: src/content/en/pastebin/2020/02/14/guix-shebang.snippets +src/content/en/pastebin/2020/11/27/guix-build-local.snippets.gz: src/content/en/pastebin/2020/11/27/guix-build-local.snippets +src/content/en/pastebin/2020/12/15/guix-pack-fail.snippets.gz: src/content/en/pastebin/2020/12/15/guix-pack-fail.snippets +src/content/en/pastebin/2021/04/03/naive-slugify-js.snippets.gz: src/content/en/pastebin/2021/04/03/naive-slugify-js.snippets +src/content/en/pastebin/2021/06/08/reading-session-pt1.snippets.gz: src/content/en/pastebin/2021/06/08/reading-session-pt1.snippets +src/content/en/pastebin/2021/06/22/curl-wget.snippets.gz: src/content/en/pastebin/2021/06/22/curl-wget.snippets +src/content/en/pastebin/2021/08/11/h1-spacing.snippets.gz: src/content/en/pastebin/2021/08/11/h1-spacing.snippets +src/content/en/pastebin/2021/09/02/sicp-3-19.snippets.gz: src/content/en/pastebin/2021/09/02/sicp-3-19.snippets +src/content/en/pastebin/2021/09/03/sicp-persistent-queue.snippets.gz: src/content/en/pastebin/2021/09/03/sicp-persistent-queue.snippets +src/content/en/pastebin/2022/07/14/git-cleanup.snippets.gz: src/content/en/pastebin/2022/07/14/git-cleanup.snippets +src/content/en/pastebin/2023/07/22/funcallable-amop.snippets.gz: src/content/en/pastebin/2023/07/22/funcallable-amop.snippets +src/content/en/podcast/2020/12/19/test-entry.snippets.gz: src/content/en/podcast/2020/12/19/test-entry.snippets +src/content/en/screencast/2021/02/07/autoqemu.snippets.gz: src/content/en/screencast/2021/02/07/autoqemu.snippets +src/content/en/til/2020/08/12/filename-timestamp.snippets.gz: src/content/en/til/2020/08/12/filename-timestamp.snippets +src/content/en/til/2020/08/13/code-jekyll.snippets.gz: src/content/en/til/2020/08/13/code-jekyll.snippets +src/content/en/til/2020/08/14/browse-git.snippets.gz: src/content/en/til/2020/08/14/browse-git.snippets +src/content/en/til/2020/08/16/git-search.snippets.gz: src/content/en/til/2020/08/16/git-search.snippets +src/content/en/til/2020/08/28/grep-online.snippets.gz: src/content/en/til/2020/08/28/grep-online.snippets +src/content/en/til/2020/09/04/cli-email-fun-profit.snippets.gz: src/content/en/til/2020/09/04/cli-email-fun-profit.snippets +src/content/en/til/2020/09/05/oldschool-pr.snippets.gz: src/content/en/til/2020/09/05/oldschool-pr.snippets +src/content/en/til/2020/10/11/search-git-history.snippets.gz: src/content/en/til/2020/10/11/search-git-history.snippets +src/content/en/til/2020/11/08/find-broken-symlink.snippets.gz: src/content/en/til/2020/11/08/find-broken-symlink.snippets +src/content/en/til/2020/11/12/diy-nix-bash-ci.snippets.gz: src/content/en/til/2020/11/12/diy-nix-bash-ci.snippets +src/content/en/til/2020/11/12/git-bisect-automation.snippets.gz: src/content/en/til/2020/11/12/git-bisect-automation.snippets +src/content/en/til/2020/11/12/useful-bashvars.snippets.gz: src/content/en/til/2020/11/12/useful-bashvars.snippets +src/content/en/til/2020/11/14/gpodder-media.snippets.gz: src/content/en/til/2020/11/14/gpodder-media.snippets +src/content/en/til/2020/11/30/git-notes-ci.snippets.gz: src/content/en/til/2020/11/30/git-notes-ci.snippets +src/content/en/til/2020/12/15/shellcheck-repo.snippets.gz: src/content/en/til/2020/12/15/shellcheck-repo.snippets +src/content/en/til/2020/12/29/svg.snippets.gz: src/content/en/til/2020/12/29/svg.snippets +src/content/en/til/2021/01/12/curl-awk-emails.snippets.gz: src/content/en/til/2021/01/12/curl-awk-emails.snippets +src/content/en/til/2021/01/17/posix-shebang.snippets.gz: src/content/en/til/2021/01/17/posix-shebang.snippets +src/content/en/til/2021/04/24/cl-generic-precedence.snippets.gz: src/content/en/til/2021/04/24/cl-generic-precedence.snippets +src/content/en/til/2021/04/24/clojure-autocurry.snippets.gz: src/content/en/til/2021/04/24/clojure-autocurry.snippets +src/content/en/til/2021/04/24/scm-nif.snippets.gz: src/content/en/til/2021/04/24/scm-nif.snippets +src/content/en/til/2021/07/23/git-tls-gpg.snippets.gz: src/content/en/til/2021/07/23/git-tls-gpg.snippets +src/content/en/til/2021/08/11/js-bigint-reviver.snippets.gz: src/content/en/til/2021/08/11/js-bigint-reviver.snippets +src/content/pt/hea/2020/08/12/arquivo-datado.snippets.gz: src/content/pt/hea/2020/08/12/arquivo-datado.snippets src/content/en/blog/index.snippets.gz: src/content/en/blog/index.snippets -src/content/en/pastebins/index.snippets.gz: src/content/en/pastebins/index.snippets -src/content/en/podcasts/index.snippets.gz: src/content/en/podcasts/index.snippets -src/content/en/screencasts/index.snippets.gz: src/content/en/screencasts/index.snippets -src/content/en/tils/index.snippets.gz: src/content/en/tils/index.snippets +src/content/en/pastebin/index.snippets.gz: src/content/en/pastebin/index.snippets +src/content/en/podcast/index.snippets.gz: src/content/en/podcast/index.snippets +src/content/en/screencast/index.snippets.gz: src/content/en/screencast/index.snippets +src/content/en/til/index.snippets.gz: src/content/en/til/index.snippets +src/content/pt/hea/index.snippets.gz: src/content/pt/hea/index.snippets src/content/en/blog/categories.snippets.gz: src/content/en/blog/categories.snippets -src/content/en/pastebins/categories.snippets.gz: src/content/en/pastebins/categories.snippets -src/content/en/podcasts/categories.snippets.gz: src/content/en/podcasts/categories.snippets -src/content/en/screencasts/categories.snippets.gz: src/content/en/screencasts/categories.snippets -src/content/en/tils/categories.snippets.gz: src/content/en/tils/categories.snippets -src/content/en/blog/categories.xml.gz: src/content/en/blog/categories.xml -src/content/en/pastebins/categories.xml.gz: src/content/en/pastebins/categories.xml -src/content/en/podcasts/categories.xml.gz: src/content/en/podcasts/categories.xml -src/content/en/screencasts/categories.xml.gz: src/content/en/screencasts/categories.xml -src/content/en/tils/categories.xml.gz: src/content/en/tils/categories.xml +src/content/en/pastebin/categories.snippets.gz: src/content/en/pastebin/categories.snippets +src/content/en/podcast/categories.snippets.gz: src/content/en/podcast/categories.snippets +src/content/en/screencast/categories.snippets.gz: src/content/en/screencast/categories.snippets +src/content/en/til/categories.snippets.gz: src/content/en/til/categories.snippets +src/content/pt/hea/categorias.snippets.gz: src/content/pt/hea/categorias.snippets +src/content/en/slide/2020/10/19/feature-flags.pdf.gz: src/content/en/slide/2020/10/19/feature-flags.pdf +src/content/en/slide/2020/11/14/local-first-hype.pdf.gz: src/content/en/slide/2020/11/14/local-first-hype.pdf src/content/en/blog/feed.xml.gz: src/content/en/blog/feed.xml -src/content/en/pastebins/feed.xml.gz: src/content/en/pastebins/feed.xml -src/content/en/podcasts/feed.xml.gz: src/content/en/podcasts/feed.xml -src/content/en/screencasts/feed.xml.gz: src/content/en/screencasts/feed.xml -src/content/en/tils/feed.xml.gz: src/content/en/tils/feed.xml +src/content/en/pastebin/feed.xml.gz: src/content/en/pastebin/feed.xml +src/content/en/podcast/feed.xml.gz: src/content/en/podcast/feed.xml +src/content/en/screencast/feed.xml.gz: src/content/en/screencast/feed.xml +src/content/en/til/feed.xml.gz: src/content/en/til/feed.xml +src/content/pt/hea/feed.xml.gz: src/content/pt/hea/feed.xml +src/content/en/podcast/2020/12/19/test-entry.flac.torrent.gz: src/content/en/podcast/2020/12/19/test-entry.flac.torrent +src/content/en/podcast/2020/12/19/test-entry.ogg.torrent.gz: src/content/en/podcast/2020/12/19/test-entry.ogg.torrent +src/content/en/screencast/2021/02/07/autoqemu.webm.torrent.gz: src/content/en/screencast/2021/02/07/autoqemu.webm.torrent src/content/en/about.htmlbody src/content/en/about.snippets src/content/en/about.conf: src/content/en/about.adoc src/content/en/index.htmlbody src/content/en/index.snippets src/content/en/index.conf: src/content/en/index.adoc +src/content/pt/sobre.htmlbody src/content/pt/sobre.snippets src/content/pt/sobre.conf: src/content/pt/sobre.adoc src/content/en/blog/2018/07/17/guix-nixos.htmlbody src/content/en/blog/2018/07/17/guix-nixos.snippets src/content/en/blog/2018/07/17/guix-nixos.conf: src/content/en/blog/2018/07/17/guix-nixos.adoc src/content/en/blog/2018/08/01/npm-ci-reproducibility.htmlbody src/content/en/blog/2018/08/01/npm-ci-reproducibility.snippets src/content/en/blog/2018/08/01/npm-ci-reproducibility.conf: src/content/en/blog/2018/08/01/npm-ci-reproducibility.adoc src/content/en/blog/2018/12/21/ytdl-subs.htmlbody src/content/en/blog/2018/12/21/ytdl-subs.snippets src/content/en/blog/2018/12/21/ytdl-subs.conf: src/content/en/blog/2018/12/21/ytdl-subs.adoc @@ -308,65 +335,69 @@ src/content/en/blog/2020/11/14/local-first-review.htmlbody src/content/en/blog/2 src/content/en/blog/2021/01/26/remembering-ann.htmlbody src/content/en/blog/2021/01/26/remembering-ann.snippets src/content/en/blog/2021/01/26/remembering-ann.conf: src/content/en/blog/2021/01/26/remembering-ann.adoc src/content/en/blog/2021/02/17/fallible.htmlbody src/content/en/blog/2021/02/17/fallible.snippets src/content/en/blog/2021/02/17/fallible.conf: src/content/en/blog/2021/02/17/fallible.adoc src/content/en/blog/2021/04/29/relational-review.htmlbody src/content/en/blog/2021/04/29/relational-review.snippets src/content/en/blog/2021/04/29/relational-review.conf: src/content/en/blog/2021/04/29/relational-review.adoc -src/content/en/pastebins/2016/04/05/rpn.htmlbody src/content/en/pastebins/2016/04/05/rpn.snippets src/content/en/pastebins/2016/04/05/rpn.conf: src/content/en/pastebins/2016/04/05/rpn.adoc -src/content/en/pastebins/2018/07/11/nix-pinning.htmlbody src/content/en/pastebins/2018/07/11/nix-pinning.snippets src/content/en/pastebins/2018/07/11/nix-pinning.conf: src/content/en/pastebins/2018/07/11/nix-pinning.adoc -src/content/en/pastebins/2018/07/13/guix-nixos-systemd.htmlbody src/content/en/pastebins/2018/07/13/guix-nixos-systemd.snippets src/content/en/pastebins/2018/07/13/guix-nixos-systemd.conf: src/content/en/pastebins/2018/07/13/guix-nixos-systemd.adoc -src/content/en/pastebins/2018/07/13/guixbuilder-nixos.htmlbody src/content/en/pastebins/2018/07/13/guixbuilder-nixos.snippets src/content/en/pastebins/2018/07/13/guixbuilder-nixos.conf: src/content/en/pastebins/2018/07/13/guixbuilder-nixos.adoc -src/content/en/pastebins/2018/07/13/guixbuilder.htmlbody src/content/en/pastebins/2018/07/13/guixbuilder.snippets src/content/en/pastebins/2018/07/13/guixbuilder.conf: src/content/en/pastebins/2018/07/13/guixbuilder.adoc -src/content/en/pastebins/2018/07/13/nix-strpad.htmlbody src/content/en/pastebins/2018/07/13/nix-strpad.snippets src/content/en/pastebins/2018/07/13/nix-strpad.conf: src/content/en/pastebins/2018/07/13/nix-strpad.adoc -src/content/en/pastebins/2018/07/25/nix-exps.htmlbody src/content/en/pastebins/2018/07/25/nix-exps.snippets src/content/en/pastebins/2018/07/25/nix-exps.conf: src/content/en/pastebins/2018/07/25/nix-exps.adoc -src/content/en/pastebins/2018/07/25/nix-showdrv.htmlbody src/content/en/pastebins/2018/07/25/nix-showdrv.snippets src/content/en/pastebins/2018/07/25/nix-showdrv.conf: src/content/en/pastebins/2018/07/25/nix-showdrv.adoc -src/content/en/pastebins/2019/06/08/inconsistent-hash.htmlbody src/content/en/pastebins/2019/06/08/inconsistent-hash.snippets src/content/en/pastebins/2019/06/08/inconsistent-hash.conf: src/content/en/pastebins/2019/06/08/inconsistent-hash.adoc -src/content/en/pastebins/2019/12/29/raku-tuple-type.htmlbody src/content/en/pastebins/2019/12/29/raku-tuple-type.snippets src/content/en/pastebins/2019/12/29/raku-tuple-type.conf: src/content/en/pastebins/2019/12/29/raku-tuple-type.adoc -src/content/en/pastebins/2020/01/04/guix-import-failure.htmlbody src/content/en/pastebins/2020/01/04/guix-import-failure.snippets src/content/en/pastebins/2020/01/04/guix-import-failure.conf: src/content/en/pastebins/2020/01/04/guix-import-failure.adoc -src/content/en/pastebins/2020/02/14/guix-shebang.htmlbody src/content/en/pastebins/2020/02/14/guix-shebang.snippets src/content/en/pastebins/2020/02/14/guix-shebang.conf: src/content/en/pastebins/2020/02/14/guix-shebang.adoc -src/content/en/pastebins/2020/11/27/guix-build-local.htmlbody src/content/en/pastebins/2020/11/27/guix-build-local.snippets src/content/en/pastebins/2020/11/27/guix-build-local.conf: src/content/en/pastebins/2020/11/27/guix-build-local.adoc -src/content/en/pastebins/2020/12/15/guix-pack-fail.htmlbody src/content/en/pastebins/2020/12/15/guix-pack-fail.snippets src/content/en/pastebins/2020/12/15/guix-pack-fail.conf: src/content/en/pastebins/2020/12/15/guix-pack-fail.adoc -src/content/en/pastebins/2021/04/03/naive-slugify-js.htmlbody src/content/en/pastebins/2021/04/03/naive-slugify-js.snippets src/content/en/pastebins/2021/04/03/naive-slugify-js.conf: src/content/en/pastebins/2021/04/03/naive-slugify-js.adoc -src/content/en/pastebins/2021/06/08/reading-session-pt1.htmlbody src/content/en/pastebins/2021/06/08/reading-session-pt1.snippets src/content/en/pastebins/2021/06/08/reading-session-pt1.conf: src/content/en/pastebins/2021/06/08/reading-session-pt1.adoc -src/content/en/pastebins/2021/06/22/curl-wget.htmlbody src/content/en/pastebins/2021/06/22/curl-wget.snippets src/content/en/pastebins/2021/06/22/curl-wget.conf: src/content/en/pastebins/2021/06/22/curl-wget.adoc -src/content/en/pastebins/2021/08/11/h1-spacing.htmlbody src/content/en/pastebins/2021/08/11/h1-spacing.snippets src/content/en/pastebins/2021/08/11/h1-spacing.conf: src/content/en/pastebins/2021/08/11/h1-spacing.adoc -src/content/en/pastebins/2021/09/02/sicp-3-19.htmlbody src/content/en/pastebins/2021/09/02/sicp-3-19.snippets src/content/en/pastebins/2021/09/02/sicp-3-19.conf: src/content/en/pastebins/2021/09/02/sicp-3-19.adoc -src/content/en/pastebins/2021/09/03/sicp-persistent-queue.htmlbody src/content/en/pastebins/2021/09/03/sicp-persistent-queue.snippets src/content/en/pastebins/2021/09/03/sicp-persistent-queue.conf: src/content/en/pastebins/2021/09/03/sicp-persistent-queue.adoc -src/content/en/pastebins/2022/07/14/git-cleanup.htmlbody src/content/en/pastebins/2022/07/14/git-cleanup.snippets src/content/en/pastebins/2022/07/14/git-cleanup.conf: src/content/en/pastebins/2022/07/14/git-cleanup.adoc -src/content/en/pastebins/2023/07/22/funcallable-amop.htmlbody src/content/en/pastebins/2023/07/22/funcallable-amop.snippets src/content/en/pastebins/2023/07/22/funcallable-amop.conf: src/content/en/pastebins/2023/07/22/funcallable-amop.adoc -src/content/en/podcasts/2020/12/19/test-entry.htmlbody src/content/en/podcasts/2020/12/19/test-entry.snippets src/content/en/podcasts/2020/12/19/test-entry.conf: src/content/en/podcasts/2020/12/19/test-entry.adoc -src/content/en/screencasts/2021/02/07/autoqemu.htmlbody src/content/en/screencasts/2021/02/07/autoqemu.snippets src/content/en/screencasts/2021/02/07/autoqemu.conf: src/content/en/screencasts/2021/02/07/autoqemu.adoc -src/content/en/tils/2020/08/12/filename-timestamp.htmlbody src/content/en/tils/2020/08/12/filename-timestamp.snippets src/content/en/tils/2020/08/12/filename-timestamp.conf: src/content/en/tils/2020/08/12/filename-timestamp.adoc -src/content/en/tils/2020/08/13/code-jekyll.htmlbody src/content/en/tils/2020/08/13/code-jekyll.snippets src/content/en/tils/2020/08/13/code-jekyll.conf: src/content/en/tils/2020/08/13/code-jekyll.adoc -src/content/en/tils/2020/08/14/browse-git.htmlbody src/content/en/tils/2020/08/14/browse-git.snippets src/content/en/tils/2020/08/14/browse-git.conf: src/content/en/tils/2020/08/14/browse-git.adoc -src/content/en/tils/2020/08/16/git-search.htmlbody src/content/en/tils/2020/08/16/git-search.snippets src/content/en/tils/2020/08/16/git-search.conf: src/content/en/tils/2020/08/16/git-search.adoc -src/content/en/tils/2020/08/28/grep-online.htmlbody src/content/en/tils/2020/08/28/grep-online.snippets src/content/en/tils/2020/08/28/grep-online.conf: src/content/en/tils/2020/08/28/grep-online.adoc -src/content/en/tils/2020/09/04/cli-email-fun-profit.htmlbody src/content/en/tils/2020/09/04/cli-email-fun-profit.snippets src/content/en/tils/2020/09/04/cli-email-fun-profit.conf: src/content/en/tils/2020/09/04/cli-email-fun-profit.adoc -src/content/en/tils/2020/09/05/oldschool-pr.htmlbody src/content/en/tils/2020/09/05/oldschool-pr.snippets src/content/en/tils/2020/09/05/oldschool-pr.conf: src/content/en/tils/2020/09/05/oldschool-pr.adoc -src/content/en/tils/2020/10/11/search-git-history.htmlbody src/content/en/tils/2020/10/11/search-git-history.snippets src/content/en/tils/2020/10/11/search-git-history.conf: src/content/en/tils/2020/10/11/search-git-history.adoc -src/content/en/tils/2020/11/08/find-broken-symlink.htmlbody src/content/en/tils/2020/11/08/find-broken-symlink.snippets src/content/en/tils/2020/11/08/find-broken-symlink.conf: src/content/en/tils/2020/11/08/find-broken-symlink.adoc -src/content/en/tils/2020/11/12/diy-nix-bash-ci.htmlbody src/content/en/tils/2020/11/12/diy-nix-bash-ci.snippets src/content/en/tils/2020/11/12/diy-nix-bash-ci.conf: src/content/en/tils/2020/11/12/diy-nix-bash-ci.adoc -src/content/en/tils/2020/11/12/git-bisect-automation.htmlbody src/content/en/tils/2020/11/12/git-bisect-automation.snippets src/content/en/tils/2020/11/12/git-bisect-automation.conf: src/content/en/tils/2020/11/12/git-bisect-automation.adoc -src/content/en/tils/2020/11/12/useful-bashvars.htmlbody src/content/en/tils/2020/11/12/useful-bashvars.snippets src/content/en/tils/2020/11/12/useful-bashvars.conf: src/content/en/tils/2020/11/12/useful-bashvars.adoc -src/content/en/tils/2020/11/14/gpodder-media.htmlbody src/content/en/tils/2020/11/14/gpodder-media.snippets src/content/en/tils/2020/11/14/gpodder-media.conf: src/content/en/tils/2020/11/14/gpodder-media.adoc -src/content/en/tils/2020/11/30/git-notes-ci.htmlbody src/content/en/tils/2020/11/30/git-notes-ci.snippets src/content/en/tils/2020/11/30/git-notes-ci.conf: src/content/en/tils/2020/11/30/git-notes-ci.adoc -src/content/en/tils/2020/12/15/shellcheck-repo.htmlbody src/content/en/tils/2020/12/15/shellcheck-repo.snippets src/content/en/tils/2020/12/15/shellcheck-repo.conf: src/content/en/tils/2020/12/15/shellcheck-repo.adoc -src/content/en/tils/2020/12/29/svg.htmlbody src/content/en/tils/2020/12/29/svg.snippets src/content/en/tils/2020/12/29/svg.conf: src/content/en/tils/2020/12/29/svg.adoc -src/content/en/tils/2021/01/12/curl-awk-emails.htmlbody src/content/en/tils/2021/01/12/curl-awk-emails.snippets src/content/en/tils/2021/01/12/curl-awk-emails.conf: src/content/en/tils/2021/01/12/curl-awk-emails.adoc -src/content/en/tils/2021/01/17/posix-shebang.htmlbody src/content/en/tils/2021/01/17/posix-shebang.snippets src/content/en/tils/2021/01/17/posix-shebang.conf: src/content/en/tils/2021/01/17/posix-shebang.adoc -src/content/en/tils/2021/04/24/cl-generic-precedence.htmlbody src/content/en/tils/2021/04/24/cl-generic-precedence.snippets src/content/en/tils/2021/04/24/cl-generic-precedence.conf: src/content/en/tils/2021/04/24/cl-generic-precedence.adoc -src/content/en/tils/2021/04/24/clojure-autocurry.htmlbody src/content/en/tils/2021/04/24/clojure-autocurry.snippets src/content/en/tils/2021/04/24/clojure-autocurry.conf: src/content/en/tils/2021/04/24/clojure-autocurry.adoc -src/content/en/tils/2021/04/24/scm-nif.htmlbody src/content/en/tils/2021/04/24/scm-nif.snippets src/content/en/tils/2021/04/24/scm-nif.conf: src/content/en/tils/2021/04/24/scm-nif.adoc -src/content/en/tils/2021/07/23/git-tls-gpg.htmlbody src/content/en/tils/2021/07/23/git-tls-gpg.snippets src/content/en/tils/2021/07/23/git-tls-gpg.conf: src/content/en/tils/2021/07/23/git-tls-gpg.adoc -src/content/en/tils/2021/08/11/js-bigint-reviver.htmlbody src/content/en/tils/2021/08/11/js-bigint-reviver.snippets src/content/en/tils/2021/08/11/js-bigint-reviver.conf: src/content/en/tils/2021/08/11/js-bigint-reviver.adoc +src/content/en/pastebin/2016/04/05/rpn.htmlbody src/content/en/pastebin/2016/04/05/rpn.snippets src/content/en/pastebin/2016/04/05/rpn.conf: src/content/en/pastebin/2016/04/05/rpn.adoc +src/content/en/pastebin/2018/07/11/nix-pinning.htmlbody src/content/en/pastebin/2018/07/11/nix-pinning.snippets src/content/en/pastebin/2018/07/11/nix-pinning.conf: src/content/en/pastebin/2018/07/11/nix-pinning.adoc +src/content/en/pastebin/2018/07/13/guix-nixos-systemd.htmlbody src/content/en/pastebin/2018/07/13/guix-nixos-systemd.snippets src/content/en/pastebin/2018/07/13/guix-nixos-systemd.conf: src/content/en/pastebin/2018/07/13/guix-nixos-systemd.adoc +src/content/en/pastebin/2018/07/13/guixbuilder-nixos.htmlbody src/content/en/pastebin/2018/07/13/guixbuilder-nixos.snippets src/content/en/pastebin/2018/07/13/guixbuilder-nixos.conf: src/content/en/pastebin/2018/07/13/guixbuilder-nixos.adoc +src/content/en/pastebin/2018/07/13/guixbuilder.htmlbody src/content/en/pastebin/2018/07/13/guixbuilder.snippets src/content/en/pastebin/2018/07/13/guixbuilder.conf: src/content/en/pastebin/2018/07/13/guixbuilder.adoc +src/content/en/pastebin/2018/07/13/nix-strpad.htmlbody src/content/en/pastebin/2018/07/13/nix-strpad.snippets src/content/en/pastebin/2018/07/13/nix-strpad.conf: src/content/en/pastebin/2018/07/13/nix-strpad.adoc +src/content/en/pastebin/2018/07/25/nix-exps.htmlbody src/content/en/pastebin/2018/07/25/nix-exps.snippets src/content/en/pastebin/2018/07/25/nix-exps.conf: src/content/en/pastebin/2018/07/25/nix-exps.adoc +src/content/en/pastebin/2018/07/25/nix-showdrv.htmlbody src/content/en/pastebin/2018/07/25/nix-showdrv.snippets src/content/en/pastebin/2018/07/25/nix-showdrv.conf: src/content/en/pastebin/2018/07/25/nix-showdrv.adoc +src/content/en/pastebin/2019/06/08/inconsistent-hash.htmlbody src/content/en/pastebin/2019/06/08/inconsistent-hash.snippets src/content/en/pastebin/2019/06/08/inconsistent-hash.conf: src/content/en/pastebin/2019/06/08/inconsistent-hash.adoc +src/content/en/pastebin/2019/12/29/raku-tuple-type.htmlbody src/content/en/pastebin/2019/12/29/raku-tuple-type.snippets src/content/en/pastebin/2019/12/29/raku-tuple-type.conf: src/content/en/pastebin/2019/12/29/raku-tuple-type.adoc +src/content/en/pastebin/2020/01/04/guix-import-failure.htmlbody src/content/en/pastebin/2020/01/04/guix-import-failure.snippets src/content/en/pastebin/2020/01/04/guix-import-failure.conf: src/content/en/pastebin/2020/01/04/guix-import-failure.adoc +src/content/en/pastebin/2020/02/14/guix-shebang.htmlbody src/content/en/pastebin/2020/02/14/guix-shebang.snippets src/content/en/pastebin/2020/02/14/guix-shebang.conf: src/content/en/pastebin/2020/02/14/guix-shebang.adoc +src/content/en/pastebin/2020/11/27/guix-build-local.htmlbody src/content/en/pastebin/2020/11/27/guix-build-local.snippets src/content/en/pastebin/2020/11/27/guix-build-local.conf: src/content/en/pastebin/2020/11/27/guix-build-local.adoc +src/content/en/pastebin/2020/12/15/guix-pack-fail.htmlbody src/content/en/pastebin/2020/12/15/guix-pack-fail.snippets src/content/en/pastebin/2020/12/15/guix-pack-fail.conf: src/content/en/pastebin/2020/12/15/guix-pack-fail.adoc +src/content/en/pastebin/2021/04/03/naive-slugify-js.htmlbody src/content/en/pastebin/2021/04/03/naive-slugify-js.snippets src/content/en/pastebin/2021/04/03/naive-slugify-js.conf: src/content/en/pastebin/2021/04/03/naive-slugify-js.adoc +src/content/en/pastebin/2021/06/08/reading-session-pt1.htmlbody src/content/en/pastebin/2021/06/08/reading-session-pt1.snippets src/content/en/pastebin/2021/06/08/reading-session-pt1.conf: src/content/en/pastebin/2021/06/08/reading-session-pt1.adoc +src/content/en/pastebin/2021/06/22/curl-wget.htmlbody src/content/en/pastebin/2021/06/22/curl-wget.snippets src/content/en/pastebin/2021/06/22/curl-wget.conf: src/content/en/pastebin/2021/06/22/curl-wget.adoc +src/content/en/pastebin/2021/08/11/h1-spacing.htmlbody src/content/en/pastebin/2021/08/11/h1-spacing.snippets src/content/en/pastebin/2021/08/11/h1-spacing.conf: src/content/en/pastebin/2021/08/11/h1-spacing.adoc +src/content/en/pastebin/2021/09/02/sicp-3-19.htmlbody src/content/en/pastebin/2021/09/02/sicp-3-19.snippets src/content/en/pastebin/2021/09/02/sicp-3-19.conf: src/content/en/pastebin/2021/09/02/sicp-3-19.adoc +src/content/en/pastebin/2021/09/03/sicp-persistent-queue.htmlbody src/content/en/pastebin/2021/09/03/sicp-persistent-queue.snippets src/content/en/pastebin/2021/09/03/sicp-persistent-queue.conf: src/content/en/pastebin/2021/09/03/sicp-persistent-queue.adoc +src/content/en/pastebin/2022/07/14/git-cleanup.htmlbody src/content/en/pastebin/2022/07/14/git-cleanup.snippets src/content/en/pastebin/2022/07/14/git-cleanup.conf: src/content/en/pastebin/2022/07/14/git-cleanup.adoc +src/content/en/pastebin/2023/07/22/funcallable-amop.htmlbody src/content/en/pastebin/2023/07/22/funcallable-amop.snippets src/content/en/pastebin/2023/07/22/funcallable-amop.conf: src/content/en/pastebin/2023/07/22/funcallable-amop.adoc +src/content/en/podcast/2020/12/19/test-entry.htmlbody src/content/en/podcast/2020/12/19/test-entry.snippets src/content/en/podcast/2020/12/19/test-entry.conf: src/content/en/podcast/2020/12/19/test-entry.adoc +src/content/en/screencast/2021/02/07/autoqemu.htmlbody src/content/en/screencast/2021/02/07/autoqemu.snippets src/content/en/screencast/2021/02/07/autoqemu.conf: src/content/en/screencast/2021/02/07/autoqemu.adoc +src/content/en/til/2020/08/12/filename-timestamp.htmlbody src/content/en/til/2020/08/12/filename-timestamp.snippets src/content/en/til/2020/08/12/filename-timestamp.conf: src/content/en/til/2020/08/12/filename-timestamp.adoc +src/content/en/til/2020/08/13/code-jekyll.htmlbody src/content/en/til/2020/08/13/code-jekyll.snippets src/content/en/til/2020/08/13/code-jekyll.conf: src/content/en/til/2020/08/13/code-jekyll.adoc +src/content/en/til/2020/08/14/browse-git.htmlbody src/content/en/til/2020/08/14/browse-git.snippets src/content/en/til/2020/08/14/browse-git.conf: src/content/en/til/2020/08/14/browse-git.adoc +src/content/en/til/2020/08/16/git-search.htmlbody src/content/en/til/2020/08/16/git-search.snippets src/content/en/til/2020/08/16/git-search.conf: src/content/en/til/2020/08/16/git-search.adoc +src/content/en/til/2020/08/28/grep-online.htmlbody src/content/en/til/2020/08/28/grep-online.snippets src/content/en/til/2020/08/28/grep-online.conf: src/content/en/til/2020/08/28/grep-online.adoc +src/content/en/til/2020/09/04/cli-email-fun-profit.htmlbody src/content/en/til/2020/09/04/cli-email-fun-profit.snippets src/content/en/til/2020/09/04/cli-email-fun-profit.conf: src/content/en/til/2020/09/04/cli-email-fun-profit.adoc +src/content/en/til/2020/09/05/oldschool-pr.htmlbody src/content/en/til/2020/09/05/oldschool-pr.snippets src/content/en/til/2020/09/05/oldschool-pr.conf: src/content/en/til/2020/09/05/oldschool-pr.adoc +src/content/en/til/2020/10/11/search-git-history.htmlbody src/content/en/til/2020/10/11/search-git-history.snippets src/content/en/til/2020/10/11/search-git-history.conf: src/content/en/til/2020/10/11/search-git-history.adoc +src/content/en/til/2020/11/08/find-broken-symlink.htmlbody src/content/en/til/2020/11/08/find-broken-symlink.snippets src/content/en/til/2020/11/08/find-broken-symlink.conf: src/content/en/til/2020/11/08/find-broken-symlink.adoc +src/content/en/til/2020/11/12/diy-nix-bash-ci.htmlbody src/content/en/til/2020/11/12/diy-nix-bash-ci.snippets src/content/en/til/2020/11/12/diy-nix-bash-ci.conf: src/content/en/til/2020/11/12/diy-nix-bash-ci.adoc +src/content/en/til/2020/11/12/git-bisect-automation.htmlbody src/content/en/til/2020/11/12/git-bisect-automation.snippets src/content/en/til/2020/11/12/git-bisect-automation.conf: src/content/en/til/2020/11/12/git-bisect-automation.adoc +src/content/en/til/2020/11/12/useful-bashvars.htmlbody src/content/en/til/2020/11/12/useful-bashvars.snippets src/content/en/til/2020/11/12/useful-bashvars.conf: src/content/en/til/2020/11/12/useful-bashvars.adoc +src/content/en/til/2020/11/14/gpodder-media.htmlbody src/content/en/til/2020/11/14/gpodder-media.snippets src/content/en/til/2020/11/14/gpodder-media.conf: src/content/en/til/2020/11/14/gpodder-media.adoc +src/content/en/til/2020/11/30/git-notes-ci.htmlbody src/content/en/til/2020/11/30/git-notes-ci.snippets src/content/en/til/2020/11/30/git-notes-ci.conf: src/content/en/til/2020/11/30/git-notes-ci.adoc +src/content/en/til/2020/12/15/shellcheck-repo.htmlbody src/content/en/til/2020/12/15/shellcheck-repo.snippets src/content/en/til/2020/12/15/shellcheck-repo.conf: src/content/en/til/2020/12/15/shellcheck-repo.adoc +src/content/en/til/2020/12/29/svg.htmlbody src/content/en/til/2020/12/29/svg.snippets src/content/en/til/2020/12/29/svg.conf: src/content/en/til/2020/12/29/svg.adoc +src/content/en/til/2021/01/12/curl-awk-emails.htmlbody src/content/en/til/2021/01/12/curl-awk-emails.snippets src/content/en/til/2021/01/12/curl-awk-emails.conf: src/content/en/til/2021/01/12/curl-awk-emails.adoc +src/content/en/til/2021/01/17/posix-shebang.htmlbody src/content/en/til/2021/01/17/posix-shebang.snippets src/content/en/til/2021/01/17/posix-shebang.conf: src/content/en/til/2021/01/17/posix-shebang.adoc +src/content/en/til/2021/04/24/cl-generic-precedence.htmlbody src/content/en/til/2021/04/24/cl-generic-precedence.snippets src/content/en/til/2021/04/24/cl-generic-precedence.conf: src/content/en/til/2021/04/24/cl-generic-precedence.adoc +src/content/en/til/2021/04/24/clojure-autocurry.htmlbody src/content/en/til/2021/04/24/clojure-autocurry.snippets src/content/en/til/2021/04/24/clojure-autocurry.conf: src/content/en/til/2021/04/24/clojure-autocurry.adoc +src/content/en/til/2021/04/24/scm-nif.htmlbody src/content/en/til/2021/04/24/scm-nif.snippets src/content/en/til/2021/04/24/scm-nif.conf: src/content/en/til/2021/04/24/scm-nif.adoc +src/content/en/til/2021/07/23/git-tls-gpg.htmlbody src/content/en/til/2021/07/23/git-tls-gpg.snippets src/content/en/til/2021/07/23/git-tls-gpg.conf: src/content/en/til/2021/07/23/git-tls-gpg.adoc +src/content/en/til/2021/08/11/js-bigint-reviver.htmlbody src/content/en/til/2021/08/11/js-bigint-reviver.snippets src/content/en/til/2021/08/11/js-bigint-reviver.conf: src/content/en/til/2021/08/11/js-bigint-reviver.adoc +src/content/pt/hea/2020/08/12/arquivo-datado.htmlbody src/content/pt/hea/2020/08/12/arquivo-datado.snippets src/content/pt/hea/2020/08/12/arquivo-datado.conf: src/content/pt/hea/2020/08/12/arquivo-datado.adoc src/content/en/blog/index.htmlbody src/content/en/blog/index.snippets src/content/en/blog/index.conf: src/content/en/blog/index.adoc -src/content/en/pastebins/index.htmlbody src/content/en/pastebins/index.snippets src/content/en/pastebins/index.conf: src/content/en/pastebins/index.adoc -src/content/en/podcasts/index.htmlbody src/content/en/podcasts/index.snippets src/content/en/podcasts/index.conf: src/content/en/podcasts/index.adoc -src/content/en/screencasts/index.htmlbody src/content/en/screencasts/index.snippets src/content/en/screencasts/index.conf: src/content/en/screencasts/index.adoc -src/content/en/tils/index.htmlbody src/content/en/tils/index.snippets src/content/en/tils/index.conf: src/content/en/tils/index.adoc +src/content/en/pastebin/index.htmlbody src/content/en/pastebin/index.snippets src/content/en/pastebin/index.conf: src/content/en/pastebin/index.adoc +src/content/en/podcast/index.htmlbody src/content/en/podcast/index.snippets src/content/en/podcast/index.conf: src/content/en/podcast/index.adoc +src/content/en/screencast/index.htmlbody src/content/en/screencast/index.snippets src/content/en/screencast/index.conf: src/content/en/screencast/index.adoc +src/content/en/til/index.htmlbody src/content/en/til/index.snippets src/content/en/til/index.conf: src/content/en/til/index.adoc +src/content/pt/hea/index.htmlbody src/content/pt/hea/index.snippets src/content/pt/hea/index.conf: src/content/pt/hea/index.adoc src/content/en/blog/categories.htmlbody src/content/en/blog/categories.snippets src/content/en/blog/categories.conf: src/content/en/blog/categories.adoc -src/content/en/pastebins/categories.htmlbody src/content/en/pastebins/categories.snippets src/content/en/pastebins/categories.conf: src/content/en/pastebins/categories.adoc -src/content/en/podcasts/categories.htmlbody src/content/en/podcasts/categories.snippets src/content/en/podcasts/categories.conf: src/content/en/podcasts/categories.adoc -src/content/en/screencasts/categories.htmlbody src/content/en/screencasts/categories.snippets src/content/en/screencasts/categories.conf: src/content/en/screencasts/categories.adoc -src/content/en/tils/categories.htmlbody src/content/en/tils/categories.snippets src/content/en/tils/categories.conf: src/content/en/tils/categories.adoc +src/content/en/pastebin/categories.htmlbody src/content/en/pastebin/categories.snippets src/content/en/pastebin/categories.conf: src/content/en/pastebin/categories.adoc +src/content/en/podcast/categories.htmlbody src/content/en/podcast/categories.snippets src/content/en/podcast/categories.conf: src/content/en/podcast/categories.adoc +src/content/en/screencast/categories.htmlbody src/content/en/screencast/categories.snippets src/content/en/screencast/categories.conf: src/content/en/screencast/categories.adoc +src/content/en/til/categories.htmlbody src/content/en/til/categories.snippets src/content/en/til/categories.conf: src/content/en/til/categories.adoc +src/content/pt/hea/categorias.htmlbody src/content/pt/hea/categorias.snippets src/content/pt/hea/categorias.conf: src/content/pt/hea/categorias.adoc src/content/en/about.html: src/content/en/about.conf src/content/en/about.htmlbody src/content/en/index.html: src/content/en/index.conf src/content/en/index.htmlbody +src/content/pt/sobre.html: src/content/pt/sobre.conf src/content/pt/sobre.htmlbody src/content/en/blog/2018/07/17/guix-nixos.html: src/content/en/blog/2018/07/17/guix-nixos.conf src/content/en/blog/2018/07/17/guix-nixos.htmlbody src/content/en/blog/2018/08/01/npm-ci-reproducibility.html: src/content/en/blog/2018/08/01/npm-ci-reproducibility.conf src/content/en/blog/2018/08/01/npm-ci-reproducibility.htmlbody src/content/en/blog/2018/12/21/ytdl-subs.html: src/content/en/blog/2018/12/21/ytdl-subs.conf src/content/en/blog/2018/12/21/ytdl-subs.htmlbody @@ -384,66 +415,70 @@ src/content/en/blog/2020/11/14/local-first-review.html: src/content/en/blog/2020 src/content/en/blog/2021/01/26/remembering-ann.html: src/content/en/blog/2021/01/26/remembering-ann.conf src/content/en/blog/2021/01/26/remembering-ann.htmlbody src/content/en/blog/2021/02/17/fallible.html: src/content/en/blog/2021/02/17/fallible.conf src/content/en/blog/2021/02/17/fallible.htmlbody src/content/en/blog/2021/04/29/relational-review.html: src/content/en/blog/2021/04/29/relational-review.conf src/content/en/blog/2021/04/29/relational-review.htmlbody -src/content/en/pastebins/2016/04/05/rpn.html: src/content/en/pastebins/2016/04/05/rpn.conf src/content/en/pastebins/2016/04/05/rpn.htmlbody -src/content/en/pastebins/2018/07/11/nix-pinning.html: src/content/en/pastebins/2018/07/11/nix-pinning.conf src/content/en/pastebins/2018/07/11/nix-pinning.htmlbody -src/content/en/pastebins/2018/07/13/guix-nixos-systemd.html: src/content/en/pastebins/2018/07/13/guix-nixos-systemd.conf src/content/en/pastebins/2018/07/13/guix-nixos-systemd.htmlbody -src/content/en/pastebins/2018/07/13/guixbuilder-nixos.html: src/content/en/pastebins/2018/07/13/guixbuilder-nixos.conf src/content/en/pastebins/2018/07/13/guixbuilder-nixos.htmlbody -src/content/en/pastebins/2018/07/13/guixbuilder.html: src/content/en/pastebins/2018/07/13/guixbuilder.conf src/content/en/pastebins/2018/07/13/guixbuilder.htmlbody -src/content/en/pastebins/2018/07/13/nix-strpad.html: src/content/en/pastebins/2018/07/13/nix-strpad.conf src/content/en/pastebins/2018/07/13/nix-strpad.htmlbody -src/content/en/pastebins/2018/07/25/nix-exps.html: src/content/en/pastebins/2018/07/25/nix-exps.conf src/content/en/pastebins/2018/07/25/nix-exps.htmlbody -src/content/en/pastebins/2018/07/25/nix-showdrv.html: src/content/en/pastebins/2018/07/25/nix-showdrv.conf src/content/en/pastebins/2018/07/25/nix-showdrv.htmlbody -src/content/en/pastebins/2019/06/08/inconsistent-hash.html: src/content/en/pastebins/2019/06/08/inconsistent-hash.conf src/content/en/pastebins/2019/06/08/inconsistent-hash.htmlbody -src/content/en/pastebins/2019/12/29/raku-tuple-type.html: src/content/en/pastebins/2019/12/29/raku-tuple-type.conf src/content/en/pastebins/2019/12/29/raku-tuple-type.htmlbody -src/content/en/pastebins/2020/01/04/guix-import-failure.html: src/content/en/pastebins/2020/01/04/guix-import-failure.conf src/content/en/pastebins/2020/01/04/guix-import-failure.htmlbody -src/content/en/pastebins/2020/02/14/guix-shebang.html: src/content/en/pastebins/2020/02/14/guix-shebang.conf src/content/en/pastebins/2020/02/14/guix-shebang.htmlbody -src/content/en/pastebins/2020/11/27/guix-build-local.html: src/content/en/pastebins/2020/11/27/guix-build-local.conf src/content/en/pastebins/2020/11/27/guix-build-local.htmlbody -src/content/en/pastebins/2020/12/15/guix-pack-fail.html: src/content/en/pastebins/2020/12/15/guix-pack-fail.conf src/content/en/pastebins/2020/12/15/guix-pack-fail.htmlbody -src/content/en/pastebins/2021/04/03/naive-slugify-js.html: src/content/en/pastebins/2021/04/03/naive-slugify-js.conf src/content/en/pastebins/2021/04/03/naive-slugify-js.htmlbody -src/content/en/pastebins/2021/06/08/reading-session-pt1.html: src/content/en/pastebins/2021/06/08/reading-session-pt1.conf src/content/en/pastebins/2021/06/08/reading-session-pt1.htmlbody -src/content/en/pastebins/2021/06/22/curl-wget.html: src/content/en/pastebins/2021/06/22/curl-wget.conf src/content/en/pastebins/2021/06/22/curl-wget.htmlbody -src/content/en/pastebins/2021/08/11/h1-spacing.html: src/content/en/pastebins/2021/08/11/h1-spacing.conf src/content/en/pastebins/2021/08/11/h1-spacing.htmlbody -src/content/en/pastebins/2021/09/02/sicp-3-19.html: src/content/en/pastebins/2021/09/02/sicp-3-19.conf src/content/en/pastebins/2021/09/02/sicp-3-19.htmlbody -src/content/en/pastebins/2021/09/03/sicp-persistent-queue.html: src/content/en/pastebins/2021/09/03/sicp-persistent-queue.conf src/content/en/pastebins/2021/09/03/sicp-persistent-queue.htmlbody -src/content/en/pastebins/2022/07/14/git-cleanup.html: src/content/en/pastebins/2022/07/14/git-cleanup.conf src/content/en/pastebins/2022/07/14/git-cleanup.htmlbody -src/content/en/pastebins/2023/07/22/funcallable-amop.html: src/content/en/pastebins/2023/07/22/funcallable-amop.conf src/content/en/pastebins/2023/07/22/funcallable-amop.htmlbody -src/content/en/podcasts/2020/12/19/test-entry.html: src/content/en/podcasts/2020/12/19/test-entry.conf src/content/en/podcasts/2020/12/19/test-entry.htmlbody -src/content/en/screencasts/2021/02/07/autoqemu.html: src/content/en/screencasts/2021/02/07/autoqemu.conf src/content/en/screencasts/2021/02/07/autoqemu.htmlbody -src/content/en/tils/2020/08/12/filename-timestamp.html: src/content/en/tils/2020/08/12/filename-timestamp.conf src/content/en/tils/2020/08/12/filename-timestamp.htmlbody -src/content/en/tils/2020/08/13/code-jekyll.html: src/content/en/tils/2020/08/13/code-jekyll.conf src/content/en/tils/2020/08/13/code-jekyll.htmlbody -src/content/en/tils/2020/08/14/browse-git.html: src/content/en/tils/2020/08/14/browse-git.conf src/content/en/tils/2020/08/14/browse-git.htmlbody -src/content/en/tils/2020/08/16/git-search.html: src/content/en/tils/2020/08/16/git-search.conf src/content/en/tils/2020/08/16/git-search.htmlbody -src/content/en/tils/2020/08/28/grep-online.html: src/content/en/tils/2020/08/28/grep-online.conf src/content/en/tils/2020/08/28/grep-online.htmlbody -src/content/en/tils/2020/09/04/cli-email-fun-profit.html: src/content/en/tils/2020/09/04/cli-email-fun-profit.conf src/content/en/tils/2020/09/04/cli-email-fun-profit.htmlbody -src/content/en/tils/2020/09/05/oldschool-pr.html: src/content/en/tils/2020/09/05/oldschool-pr.conf src/content/en/tils/2020/09/05/oldschool-pr.htmlbody -src/content/en/tils/2020/10/11/search-git-history.html: src/content/en/tils/2020/10/11/search-git-history.conf src/content/en/tils/2020/10/11/search-git-history.htmlbody -src/content/en/tils/2020/11/08/find-broken-symlink.html: src/content/en/tils/2020/11/08/find-broken-symlink.conf src/content/en/tils/2020/11/08/find-broken-symlink.htmlbody -src/content/en/tils/2020/11/12/diy-nix-bash-ci.html: src/content/en/tils/2020/11/12/diy-nix-bash-ci.conf src/content/en/tils/2020/11/12/diy-nix-bash-ci.htmlbody -src/content/en/tils/2020/11/12/git-bisect-automation.html: src/content/en/tils/2020/11/12/git-bisect-automation.conf src/content/en/tils/2020/11/12/git-bisect-automation.htmlbody -src/content/en/tils/2020/11/12/useful-bashvars.html: src/content/en/tils/2020/11/12/useful-bashvars.conf src/content/en/tils/2020/11/12/useful-bashvars.htmlbody -src/content/en/tils/2020/11/14/gpodder-media.html: src/content/en/tils/2020/11/14/gpodder-media.conf src/content/en/tils/2020/11/14/gpodder-media.htmlbody -src/content/en/tils/2020/11/30/git-notes-ci.html: src/content/en/tils/2020/11/30/git-notes-ci.conf src/content/en/tils/2020/11/30/git-notes-ci.htmlbody -src/content/en/tils/2020/12/15/shellcheck-repo.html: src/content/en/tils/2020/12/15/shellcheck-repo.conf src/content/en/tils/2020/12/15/shellcheck-repo.htmlbody -src/content/en/tils/2020/12/29/svg.html: src/content/en/tils/2020/12/29/svg.conf src/content/en/tils/2020/12/29/svg.htmlbody -src/content/en/tils/2021/01/12/curl-awk-emails.html: src/content/en/tils/2021/01/12/curl-awk-emails.conf src/content/en/tils/2021/01/12/curl-awk-emails.htmlbody -src/content/en/tils/2021/01/17/posix-shebang.html: src/content/en/tils/2021/01/17/posix-shebang.conf src/content/en/tils/2021/01/17/posix-shebang.htmlbody -src/content/en/tils/2021/04/24/cl-generic-precedence.html: src/content/en/tils/2021/04/24/cl-generic-precedence.conf src/content/en/tils/2021/04/24/cl-generic-precedence.htmlbody -src/content/en/tils/2021/04/24/clojure-autocurry.html: src/content/en/tils/2021/04/24/clojure-autocurry.conf src/content/en/tils/2021/04/24/clojure-autocurry.htmlbody -src/content/en/tils/2021/04/24/scm-nif.html: src/content/en/tils/2021/04/24/scm-nif.conf src/content/en/tils/2021/04/24/scm-nif.htmlbody -src/content/en/tils/2021/07/23/git-tls-gpg.html: src/content/en/tils/2021/07/23/git-tls-gpg.conf src/content/en/tils/2021/07/23/git-tls-gpg.htmlbody -src/content/en/tils/2021/08/11/js-bigint-reviver.html: src/content/en/tils/2021/08/11/js-bigint-reviver.conf src/content/en/tils/2021/08/11/js-bigint-reviver.htmlbody +src/content/en/pastebin/2016/04/05/rpn.html: src/content/en/pastebin/2016/04/05/rpn.conf src/content/en/pastebin/2016/04/05/rpn.htmlbody +src/content/en/pastebin/2018/07/11/nix-pinning.html: src/content/en/pastebin/2018/07/11/nix-pinning.conf src/content/en/pastebin/2018/07/11/nix-pinning.htmlbody +src/content/en/pastebin/2018/07/13/guix-nixos-systemd.html: src/content/en/pastebin/2018/07/13/guix-nixos-systemd.conf src/content/en/pastebin/2018/07/13/guix-nixos-systemd.htmlbody +src/content/en/pastebin/2018/07/13/guixbuilder-nixos.html: src/content/en/pastebin/2018/07/13/guixbuilder-nixos.conf src/content/en/pastebin/2018/07/13/guixbuilder-nixos.htmlbody +src/content/en/pastebin/2018/07/13/guixbuilder.html: src/content/en/pastebin/2018/07/13/guixbuilder.conf src/content/en/pastebin/2018/07/13/guixbuilder.htmlbody +src/content/en/pastebin/2018/07/13/nix-strpad.html: src/content/en/pastebin/2018/07/13/nix-strpad.conf src/content/en/pastebin/2018/07/13/nix-strpad.htmlbody +src/content/en/pastebin/2018/07/25/nix-exps.html: src/content/en/pastebin/2018/07/25/nix-exps.conf src/content/en/pastebin/2018/07/25/nix-exps.htmlbody +src/content/en/pastebin/2018/07/25/nix-showdrv.html: src/content/en/pastebin/2018/07/25/nix-showdrv.conf src/content/en/pastebin/2018/07/25/nix-showdrv.htmlbody +src/content/en/pastebin/2019/06/08/inconsistent-hash.html: src/content/en/pastebin/2019/06/08/inconsistent-hash.conf src/content/en/pastebin/2019/06/08/inconsistent-hash.htmlbody +src/content/en/pastebin/2019/12/29/raku-tuple-type.html: src/content/en/pastebin/2019/12/29/raku-tuple-type.conf src/content/en/pastebin/2019/12/29/raku-tuple-type.htmlbody +src/content/en/pastebin/2020/01/04/guix-import-failure.html: src/content/en/pastebin/2020/01/04/guix-import-failure.conf src/content/en/pastebin/2020/01/04/guix-import-failure.htmlbody +src/content/en/pastebin/2020/02/14/guix-shebang.html: src/content/en/pastebin/2020/02/14/guix-shebang.conf src/content/en/pastebin/2020/02/14/guix-shebang.htmlbody +src/content/en/pastebin/2020/11/27/guix-build-local.html: src/content/en/pastebin/2020/11/27/guix-build-local.conf src/content/en/pastebin/2020/11/27/guix-build-local.htmlbody +src/content/en/pastebin/2020/12/15/guix-pack-fail.html: src/content/en/pastebin/2020/12/15/guix-pack-fail.conf src/content/en/pastebin/2020/12/15/guix-pack-fail.htmlbody +src/content/en/pastebin/2021/04/03/naive-slugify-js.html: src/content/en/pastebin/2021/04/03/naive-slugify-js.conf src/content/en/pastebin/2021/04/03/naive-slugify-js.htmlbody +src/content/en/pastebin/2021/06/08/reading-session-pt1.html: src/content/en/pastebin/2021/06/08/reading-session-pt1.conf src/content/en/pastebin/2021/06/08/reading-session-pt1.htmlbody +src/content/en/pastebin/2021/06/22/curl-wget.html: src/content/en/pastebin/2021/06/22/curl-wget.conf src/content/en/pastebin/2021/06/22/curl-wget.htmlbody +src/content/en/pastebin/2021/08/11/h1-spacing.html: src/content/en/pastebin/2021/08/11/h1-spacing.conf src/content/en/pastebin/2021/08/11/h1-spacing.htmlbody +src/content/en/pastebin/2021/09/02/sicp-3-19.html: src/content/en/pastebin/2021/09/02/sicp-3-19.conf src/content/en/pastebin/2021/09/02/sicp-3-19.htmlbody +src/content/en/pastebin/2021/09/03/sicp-persistent-queue.html: src/content/en/pastebin/2021/09/03/sicp-persistent-queue.conf src/content/en/pastebin/2021/09/03/sicp-persistent-queue.htmlbody +src/content/en/pastebin/2022/07/14/git-cleanup.html: src/content/en/pastebin/2022/07/14/git-cleanup.conf src/content/en/pastebin/2022/07/14/git-cleanup.htmlbody +src/content/en/pastebin/2023/07/22/funcallable-amop.html: src/content/en/pastebin/2023/07/22/funcallable-amop.conf src/content/en/pastebin/2023/07/22/funcallable-amop.htmlbody +src/content/en/podcast/2020/12/19/test-entry.html: src/content/en/podcast/2020/12/19/test-entry.conf src/content/en/podcast/2020/12/19/test-entry.htmlbody +src/content/en/screencast/2021/02/07/autoqemu.html: src/content/en/screencast/2021/02/07/autoqemu.conf src/content/en/screencast/2021/02/07/autoqemu.htmlbody +src/content/en/til/2020/08/12/filename-timestamp.html: src/content/en/til/2020/08/12/filename-timestamp.conf src/content/en/til/2020/08/12/filename-timestamp.htmlbody +src/content/en/til/2020/08/13/code-jekyll.html: src/content/en/til/2020/08/13/code-jekyll.conf src/content/en/til/2020/08/13/code-jekyll.htmlbody +src/content/en/til/2020/08/14/browse-git.html: src/content/en/til/2020/08/14/browse-git.conf src/content/en/til/2020/08/14/browse-git.htmlbody +src/content/en/til/2020/08/16/git-search.html: src/content/en/til/2020/08/16/git-search.conf src/content/en/til/2020/08/16/git-search.htmlbody +src/content/en/til/2020/08/28/grep-online.html: src/content/en/til/2020/08/28/grep-online.conf src/content/en/til/2020/08/28/grep-online.htmlbody +src/content/en/til/2020/09/04/cli-email-fun-profit.html: src/content/en/til/2020/09/04/cli-email-fun-profit.conf src/content/en/til/2020/09/04/cli-email-fun-profit.htmlbody +src/content/en/til/2020/09/05/oldschool-pr.html: src/content/en/til/2020/09/05/oldschool-pr.conf src/content/en/til/2020/09/05/oldschool-pr.htmlbody +src/content/en/til/2020/10/11/search-git-history.html: src/content/en/til/2020/10/11/search-git-history.conf src/content/en/til/2020/10/11/search-git-history.htmlbody +src/content/en/til/2020/11/08/find-broken-symlink.html: src/content/en/til/2020/11/08/find-broken-symlink.conf src/content/en/til/2020/11/08/find-broken-symlink.htmlbody +src/content/en/til/2020/11/12/diy-nix-bash-ci.html: src/content/en/til/2020/11/12/diy-nix-bash-ci.conf src/content/en/til/2020/11/12/diy-nix-bash-ci.htmlbody +src/content/en/til/2020/11/12/git-bisect-automation.html: src/content/en/til/2020/11/12/git-bisect-automation.conf src/content/en/til/2020/11/12/git-bisect-automation.htmlbody +src/content/en/til/2020/11/12/useful-bashvars.html: src/content/en/til/2020/11/12/useful-bashvars.conf src/content/en/til/2020/11/12/useful-bashvars.htmlbody +src/content/en/til/2020/11/14/gpodder-media.html: src/content/en/til/2020/11/14/gpodder-media.conf src/content/en/til/2020/11/14/gpodder-media.htmlbody +src/content/en/til/2020/11/30/git-notes-ci.html: src/content/en/til/2020/11/30/git-notes-ci.conf src/content/en/til/2020/11/30/git-notes-ci.htmlbody +src/content/en/til/2020/12/15/shellcheck-repo.html: src/content/en/til/2020/12/15/shellcheck-repo.conf src/content/en/til/2020/12/15/shellcheck-repo.htmlbody +src/content/en/til/2020/12/29/svg.html: src/content/en/til/2020/12/29/svg.conf src/content/en/til/2020/12/29/svg.htmlbody +src/content/en/til/2021/01/12/curl-awk-emails.html: src/content/en/til/2021/01/12/curl-awk-emails.conf src/content/en/til/2021/01/12/curl-awk-emails.htmlbody +src/content/en/til/2021/01/17/posix-shebang.html: src/content/en/til/2021/01/17/posix-shebang.conf src/content/en/til/2021/01/17/posix-shebang.htmlbody +src/content/en/til/2021/04/24/cl-generic-precedence.html: src/content/en/til/2021/04/24/cl-generic-precedence.conf src/content/en/til/2021/04/24/cl-generic-precedence.htmlbody +src/content/en/til/2021/04/24/clojure-autocurry.html: src/content/en/til/2021/04/24/clojure-autocurry.conf src/content/en/til/2021/04/24/clojure-autocurry.htmlbody +src/content/en/til/2021/04/24/scm-nif.html: src/content/en/til/2021/04/24/scm-nif.conf src/content/en/til/2021/04/24/scm-nif.htmlbody +src/content/en/til/2021/07/23/git-tls-gpg.html: src/content/en/til/2021/07/23/git-tls-gpg.conf src/content/en/til/2021/07/23/git-tls-gpg.htmlbody +src/content/en/til/2021/08/11/js-bigint-reviver.html: src/content/en/til/2021/08/11/js-bigint-reviver.conf src/content/en/til/2021/08/11/js-bigint-reviver.htmlbody +src/content/pt/hea/2020/08/12/arquivo-datado.html: src/content/pt/hea/2020/08/12/arquivo-datado.conf src/content/pt/hea/2020/08/12/arquivo-datado.htmlbody src/content/en/blog/index.html: src/content/en/blog/index.conf src/content/en/blog/index.htmlbody -src/content/en/pastebins/index.html: src/content/en/pastebins/index.conf src/content/en/pastebins/index.htmlbody -src/content/en/podcasts/index.html: src/content/en/podcasts/index.conf src/content/en/podcasts/index.htmlbody -src/content/en/screencasts/index.html: src/content/en/screencasts/index.conf src/content/en/screencasts/index.htmlbody -src/content/en/tils/index.html: src/content/en/tils/index.conf src/content/en/tils/index.htmlbody +src/content/en/pastebin/index.html: src/content/en/pastebin/index.conf src/content/en/pastebin/index.htmlbody +src/content/en/podcast/index.html: src/content/en/podcast/index.conf src/content/en/podcast/index.htmlbody +src/content/en/screencast/index.html: src/content/en/screencast/index.conf src/content/en/screencast/index.htmlbody +src/content/en/til/index.html: src/content/en/til/index.conf src/content/en/til/index.htmlbody +src/content/pt/hea/index.html: src/content/pt/hea/index.conf src/content/pt/hea/index.htmlbody src/content/en/blog/categories.html: src/content/en/blog/categories.conf src/content/en/blog/categories.htmlbody -src/content/en/pastebins/categories.html: src/content/en/pastebins/categories.conf src/content/en/pastebins/categories.htmlbody -src/content/en/podcasts/categories.html: src/content/en/podcasts/categories.conf src/content/en/podcasts/categories.htmlbody -src/content/en/screencasts/categories.html: src/content/en/screencasts/categories.conf src/content/en/screencasts/categories.htmlbody -src/content/en/tils/categories.html: src/content/en/tils/categories.conf src/content/en/tils/categories.htmlbody +src/content/en/pastebin/categories.html: src/content/en/pastebin/categories.conf src/content/en/pastebin/categories.htmlbody +src/content/en/podcast/categories.html: src/content/en/podcast/categories.conf src/content/en/podcast/categories.htmlbody +src/content/en/screencast/categories.html: src/content/en/screencast/categories.conf src/content/en/screencast/categories.htmlbody +src/content/en/til/categories.html: src/content/en/til/categories.conf src/content/en/til/categories.htmlbody +src/content/pt/hea/categorias.html: src/content/pt/hea/categorias.conf src/content/pt/hea/categorias.htmlbody src/content/en/about.updatedat-check: src/content/en/about.conf src/content/en/index.updatedat-check: src/content/en/index.conf +src/content/pt/sobre.updatedat-check: src/content/pt/sobre.conf src/content/en/blog/2018/07/17/guix-nixos.updatedat-check: src/content/en/blog/2018/07/17/guix-nixos.conf src/content/en/blog/2018/08/01/npm-ci-reproducibility.updatedat-check: src/content/en/blog/2018/08/01/npm-ci-reproducibility.conf src/content/en/blog/2018/12/21/ytdl-subs.updatedat-check: src/content/en/blog/2018/12/21/ytdl-subs.conf @@ -461,65 +496,69 @@ src/content/en/blog/2020/11/14/local-first-review.updatedat-check: src/content/e src/content/en/blog/2021/01/26/remembering-ann.updatedat-check: src/content/en/blog/2021/01/26/remembering-ann.conf src/content/en/blog/2021/02/17/fallible.updatedat-check: src/content/en/blog/2021/02/17/fallible.conf src/content/en/blog/2021/04/29/relational-review.updatedat-check: src/content/en/blog/2021/04/29/relational-review.conf -src/content/en/pastebins/2016/04/05/rpn.updatedat-check: src/content/en/pastebins/2016/04/05/rpn.conf -src/content/en/pastebins/2018/07/11/nix-pinning.updatedat-check: src/content/en/pastebins/2018/07/11/nix-pinning.conf -src/content/en/pastebins/2018/07/13/guix-nixos-systemd.updatedat-check: src/content/en/pastebins/2018/07/13/guix-nixos-systemd.conf -src/content/en/pastebins/2018/07/13/guixbuilder-nixos.updatedat-check: src/content/en/pastebins/2018/07/13/guixbuilder-nixos.conf -src/content/en/pastebins/2018/07/13/guixbuilder.updatedat-check: src/content/en/pastebins/2018/07/13/guixbuilder.conf -src/content/en/pastebins/2018/07/13/nix-strpad.updatedat-check: src/content/en/pastebins/2018/07/13/nix-strpad.conf -src/content/en/pastebins/2018/07/25/nix-exps.updatedat-check: src/content/en/pastebins/2018/07/25/nix-exps.conf -src/content/en/pastebins/2018/07/25/nix-showdrv.updatedat-check: src/content/en/pastebins/2018/07/25/nix-showdrv.conf -src/content/en/pastebins/2019/06/08/inconsistent-hash.updatedat-check: src/content/en/pastebins/2019/06/08/inconsistent-hash.conf -src/content/en/pastebins/2019/12/29/raku-tuple-type.updatedat-check: src/content/en/pastebins/2019/12/29/raku-tuple-type.conf -src/content/en/pastebins/2020/01/04/guix-import-failure.updatedat-check: src/content/en/pastebins/2020/01/04/guix-import-failure.conf -src/content/en/pastebins/2020/02/14/guix-shebang.updatedat-check: src/content/en/pastebins/2020/02/14/guix-shebang.conf -src/content/en/pastebins/2020/11/27/guix-build-local.updatedat-check: src/content/en/pastebins/2020/11/27/guix-build-local.conf -src/content/en/pastebins/2020/12/15/guix-pack-fail.updatedat-check: src/content/en/pastebins/2020/12/15/guix-pack-fail.conf -src/content/en/pastebins/2021/04/03/naive-slugify-js.updatedat-check: src/content/en/pastebins/2021/04/03/naive-slugify-js.conf -src/content/en/pastebins/2021/06/08/reading-session-pt1.updatedat-check: src/content/en/pastebins/2021/06/08/reading-session-pt1.conf -src/content/en/pastebins/2021/06/22/curl-wget.updatedat-check: src/content/en/pastebins/2021/06/22/curl-wget.conf -src/content/en/pastebins/2021/08/11/h1-spacing.updatedat-check: src/content/en/pastebins/2021/08/11/h1-spacing.conf -src/content/en/pastebins/2021/09/02/sicp-3-19.updatedat-check: src/content/en/pastebins/2021/09/02/sicp-3-19.conf -src/content/en/pastebins/2021/09/03/sicp-persistent-queue.updatedat-check: src/content/en/pastebins/2021/09/03/sicp-persistent-queue.conf -src/content/en/pastebins/2022/07/14/git-cleanup.updatedat-check: src/content/en/pastebins/2022/07/14/git-cleanup.conf -src/content/en/pastebins/2023/07/22/funcallable-amop.updatedat-check: src/content/en/pastebins/2023/07/22/funcallable-amop.conf -src/content/en/podcasts/2020/12/19/test-entry.updatedat-check: src/content/en/podcasts/2020/12/19/test-entry.conf -src/content/en/screencasts/2021/02/07/autoqemu.updatedat-check: src/content/en/screencasts/2021/02/07/autoqemu.conf -src/content/en/tils/2020/08/12/filename-timestamp.updatedat-check: src/content/en/tils/2020/08/12/filename-timestamp.conf -src/content/en/tils/2020/08/13/code-jekyll.updatedat-check: src/content/en/tils/2020/08/13/code-jekyll.conf -src/content/en/tils/2020/08/14/browse-git.updatedat-check: src/content/en/tils/2020/08/14/browse-git.conf -src/content/en/tils/2020/08/16/git-search.updatedat-check: src/content/en/tils/2020/08/16/git-search.conf -src/content/en/tils/2020/08/28/grep-online.updatedat-check: src/content/en/tils/2020/08/28/grep-online.conf -src/content/en/tils/2020/09/04/cli-email-fun-profit.updatedat-check: src/content/en/tils/2020/09/04/cli-email-fun-profit.conf -src/content/en/tils/2020/09/05/oldschool-pr.updatedat-check: src/content/en/tils/2020/09/05/oldschool-pr.conf -src/content/en/tils/2020/10/11/search-git-history.updatedat-check: src/content/en/tils/2020/10/11/search-git-history.conf -src/content/en/tils/2020/11/08/find-broken-symlink.updatedat-check: src/content/en/tils/2020/11/08/find-broken-symlink.conf -src/content/en/tils/2020/11/12/diy-nix-bash-ci.updatedat-check: src/content/en/tils/2020/11/12/diy-nix-bash-ci.conf -src/content/en/tils/2020/11/12/git-bisect-automation.updatedat-check: src/content/en/tils/2020/11/12/git-bisect-automation.conf -src/content/en/tils/2020/11/12/useful-bashvars.updatedat-check: src/content/en/tils/2020/11/12/useful-bashvars.conf -src/content/en/tils/2020/11/14/gpodder-media.updatedat-check: src/content/en/tils/2020/11/14/gpodder-media.conf -src/content/en/tils/2020/11/30/git-notes-ci.updatedat-check: src/content/en/tils/2020/11/30/git-notes-ci.conf -src/content/en/tils/2020/12/15/shellcheck-repo.updatedat-check: src/content/en/tils/2020/12/15/shellcheck-repo.conf -src/content/en/tils/2020/12/29/svg.updatedat-check: src/content/en/tils/2020/12/29/svg.conf -src/content/en/tils/2021/01/12/curl-awk-emails.updatedat-check: src/content/en/tils/2021/01/12/curl-awk-emails.conf -src/content/en/tils/2021/01/17/posix-shebang.updatedat-check: src/content/en/tils/2021/01/17/posix-shebang.conf -src/content/en/tils/2021/04/24/cl-generic-precedence.updatedat-check: src/content/en/tils/2021/04/24/cl-generic-precedence.conf -src/content/en/tils/2021/04/24/clojure-autocurry.updatedat-check: src/content/en/tils/2021/04/24/clojure-autocurry.conf -src/content/en/tils/2021/04/24/scm-nif.updatedat-check: src/content/en/tils/2021/04/24/scm-nif.conf -src/content/en/tils/2021/07/23/git-tls-gpg.updatedat-check: src/content/en/tils/2021/07/23/git-tls-gpg.conf -src/content/en/tils/2021/08/11/js-bigint-reviver.updatedat-check: src/content/en/tils/2021/08/11/js-bigint-reviver.conf +src/content/en/pastebin/2016/04/05/rpn.updatedat-check: src/content/en/pastebin/2016/04/05/rpn.conf +src/content/en/pastebin/2018/07/11/nix-pinning.updatedat-check: src/content/en/pastebin/2018/07/11/nix-pinning.conf +src/content/en/pastebin/2018/07/13/guix-nixos-systemd.updatedat-check: src/content/en/pastebin/2018/07/13/guix-nixos-systemd.conf +src/content/en/pastebin/2018/07/13/guixbuilder-nixos.updatedat-check: src/content/en/pastebin/2018/07/13/guixbuilder-nixos.conf +src/content/en/pastebin/2018/07/13/guixbuilder.updatedat-check: src/content/en/pastebin/2018/07/13/guixbuilder.conf +src/content/en/pastebin/2018/07/13/nix-strpad.updatedat-check: src/content/en/pastebin/2018/07/13/nix-strpad.conf +src/content/en/pastebin/2018/07/25/nix-exps.updatedat-check: src/content/en/pastebin/2018/07/25/nix-exps.conf +src/content/en/pastebin/2018/07/25/nix-showdrv.updatedat-check: src/content/en/pastebin/2018/07/25/nix-showdrv.conf +src/content/en/pastebin/2019/06/08/inconsistent-hash.updatedat-check: src/content/en/pastebin/2019/06/08/inconsistent-hash.conf +src/content/en/pastebin/2019/12/29/raku-tuple-type.updatedat-check: src/content/en/pastebin/2019/12/29/raku-tuple-type.conf +src/content/en/pastebin/2020/01/04/guix-import-failure.updatedat-check: src/content/en/pastebin/2020/01/04/guix-import-failure.conf +src/content/en/pastebin/2020/02/14/guix-shebang.updatedat-check: src/content/en/pastebin/2020/02/14/guix-shebang.conf +src/content/en/pastebin/2020/11/27/guix-build-local.updatedat-check: src/content/en/pastebin/2020/11/27/guix-build-local.conf +src/content/en/pastebin/2020/12/15/guix-pack-fail.updatedat-check: src/content/en/pastebin/2020/12/15/guix-pack-fail.conf +src/content/en/pastebin/2021/04/03/naive-slugify-js.updatedat-check: src/content/en/pastebin/2021/04/03/naive-slugify-js.conf +src/content/en/pastebin/2021/06/08/reading-session-pt1.updatedat-check: src/content/en/pastebin/2021/06/08/reading-session-pt1.conf +src/content/en/pastebin/2021/06/22/curl-wget.updatedat-check: src/content/en/pastebin/2021/06/22/curl-wget.conf +src/content/en/pastebin/2021/08/11/h1-spacing.updatedat-check: src/content/en/pastebin/2021/08/11/h1-spacing.conf +src/content/en/pastebin/2021/09/02/sicp-3-19.updatedat-check: src/content/en/pastebin/2021/09/02/sicp-3-19.conf +src/content/en/pastebin/2021/09/03/sicp-persistent-queue.updatedat-check: src/content/en/pastebin/2021/09/03/sicp-persistent-queue.conf +src/content/en/pastebin/2022/07/14/git-cleanup.updatedat-check: src/content/en/pastebin/2022/07/14/git-cleanup.conf +src/content/en/pastebin/2023/07/22/funcallable-amop.updatedat-check: src/content/en/pastebin/2023/07/22/funcallable-amop.conf +src/content/en/podcast/2020/12/19/test-entry.updatedat-check: src/content/en/podcast/2020/12/19/test-entry.conf +src/content/en/screencast/2021/02/07/autoqemu.updatedat-check: src/content/en/screencast/2021/02/07/autoqemu.conf +src/content/en/til/2020/08/12/filename-timestamp.updatedat-check: src/content/en/til/2020/08/12/filename-timestamp.conf +src/content/en/til/2020/08/13/code-jekyll.updatedat-check: src/content/en/til/2020/08/13/code-jekyll.conf +src/content/en/til/2020/08/14/browse-git.updatedat-check: src/content/en/til/2020/08/14/browse-git.conf +src/content/en/til/2020/08/16/git-search.updatedat-check: src/content/en/til/2020/08/16/git-search.conf +src/content/en/til/2020/08/28/grep-online.updatedat-check: src/content/en/til/2020/08/28/grep-online.conf +src/content/en/til/2020/09/04/cli-email-fun-profit.updatedat-check: src/content/en/til/2020/09/04/cli-email-fun-profit.conf +src/content/en/til/2020/09/05/oldschool-pr.updatedat-check: src/content/en/til/2020/09/05/oldschool-pr.conf +src/content/en/til/2020/10/11/search-git-history.updatedat-check: src/content/en/til/2020/10/11/search-git-history.conf +src/content/en/til/2020/11/08/find-broken-symlink.updatedat-check: src/content/en/til/2020/11/08/find-broken-symlink.conf +src/content/en/til/2020/11/12/diy-nix-bash-ci.updatedat-check: src/content/en/til/2020/11/12/diy-nix-bash-ci.conf +src/content/en/til/2020/11/12/git-bisect-automation.updatedat-check: src/content/en/til/2020/11/12/git-bisect-automation.conf +src/content/en/til/2020/11/12/useful-bashvars.updatedat-check: src/content/en/til/2020/11/12/useful-bashvars.conf +src/content/en/til/2020/11/14/gpodder-media.updatedat-check: src/content/en/til/2020/11/14/gpodder-media.conf +src/content/en/til/2020/11/30/git-notes-ci.updatedat-check: src/content/en/til/2020/11/30/git-notes-ci.conf +src/content/en/til/2020/12/15/shellcheck-repo.updatedat-check: src/content/en/til/2020/12/15/shellcheck-repo.conf +src/content/en/til/2020/12/29/svg.updatedat-check: src/content/en/til/2020/12/29/svg.conf +src/content/en/til/2021/01/12/curl-awk-emails.updatedat-check: src/content/en/til/2021/01/12/curl-awk-emails.conf +src/content/en/til/2021/01/17/posix-shebang.updatedat-check: src/content/en/til/2021/01/17/posix-shebang.conf +src/content/en/til/2021/04/24/cl-generic-precedence.updatedat-check: src/content/en/til/2021/04/24/cl-generic-precedence.conf +src/content/en/til/2021/04/24/clojure-autocurry.updatedat-check: src/content/en/til/2021/04/24/clojure-autocurry.conf +src/content/en/til/2021/04/24/scm-nif.updatedat-check: src/content/en/til/2021/04/24/scm-nif.conf +src/content/en/til/2021/07/23/git-tls-gpg.updatedat-check: src/content/en/til/2021/07/23/git-tls-gpg.conf +src/content/en/til/2021/08/11/js-bigint-reviver.updatedat-check: src/content/en/til/2021/08/11/js-bigint-reviver.conf +src/content/pt/hea/2020/08/12/arquivo-datado.updatedat-check: src/content/pt/hea/2020/08/12/arquivo-datado.conf src/content/en/blog/index.updatedat-check: src/content/en/blog/index.conf -src/content/en/pastebins/index.updatedat-check: src/content/en/pastebins/index.conf -src/content/en/podcasts/index.updatedat-check: src/content/en/podcasts/index.conf -src/content/en/screencasts/index.updatedat-check: src/content/en/screencasts/index.conf -src/content/en/tils/index.updatedat-check: src/content/en/tils/index.conf +src/content/en/pastebin/index.updatedat-check: src/content/en/pastebin/index.conf +src/content/en/podcast/index.updatedat-check: src/content/en/podcast/index.conf +src/content/en/screencast/index.updatedat-check: src/content/en/screencast/index.conf +src/content/en/til/index.updatedat-check: src/content/en/til/index.conf +src/content/pt/hea/index.updatedat-check: src/content/pt/hea/index.conf src/content/en/blog/categories.updatedat-check: src/content/en/blog/categories.conf -src/content/en/pastebins/categories.updatedat-check: src/content/en/pastebins/categories.conf -src/content/en/podcasts/categories.updatedat-check: src/content/en/podcasts/categories.conf -src/content/en/screencasts/categories.updatedat-check: src/content/en/screencasts/categories.conf -src/content/en/tils/categories.updatedat-check: src/content/en/tils/categories.conf +src/content/en/pastebin/categories.updatedat-check: src/content/en/pastebin/categories.conf +src/content/en/podcast/categories.updatedat-check: src/content/en/podcast/categories.conf +src/content/en/screencast/categories.updatedat-check: src/content/en/screencast/categories.conf +src/content/en/til/categories.updatedat-check: src/content/en/til/categories.conf +src/content/pt/hea/categorias.updatedat-check: src/content/pt/hea/categorias.conf src/content/en/about.links-internal-check: src/content/en/about.links src/content/en/index.links-internal-check: src/content/en/index.links +src/content/pt/sobre.links-internal-check: src/content/pt/sobre.links src/content/en/blog/2018/07/17/guix-nixos.links-internal-check: src/content/en/blog/2018/07/17/guix-nixos.links src/content/en/blog/2018/08/01/npm-ci-reproducibility.links-internal-check: src/content/en/blog/2018/08/01/npm-ci-reproducibility.links src/content/en/blog/2018/12/21/ytdl-subs.links-internal-check: src/content/en/blog/2018/12/21/ytdl-subs.links @@ -537,65 +576,69 @@ src/content/en/blog/2020/11/14/local-first-review.links-internal-check: src/cont src/content/en/blog/2021/01/26/remembering-ann.links-internal-check: src/content/en/blog/2021/01/26/remembering-ann.links src/content/en/blog/2021/02/17/fallible.links-internal-check: src/content/en/blog/2021/02/17/fallible.links src/content/en/blog/2021/04/29/relational-review.links-internal-check: src/content/en/blog/2021/04/29/relational-review.links -src/content/en/pastebins/2016/04/05/rpn.links-internal-check: src/content/en/pastebins/2016/04/05/rpn.links -src/content/en/pastebins/2018/07/11/nix-pinning.links-internal-check: src/content/en/pastebins/2018/07/11/nix-pinning.links -src/content/en/pastebins/2018/07/13/guix-nixos-systemd.links-internal-check: src/content/en/pastebins/2018/07/13/guix-nixos-systemd.links -src/content/en/pastebins/2018/07/13/guixbuilder-nixos.links-internal-check: src/content/en/pastebins/2018/07/13/guixbuilder-nixos.links -src/content/en/pastebins/2018/07/13/guixbuilder.links-internal-check: src/content/en/pastebins/2018/07/13/guixbuilder.links -src/content/en/pastebins/2018/07/13/nix-strpad.links-internal-check: src/content/en/pastebins/2018/07/13/nix-strpad.links -src/content/en/pastebins/2018/07/25/nix-exps.links-internal-check: src/content/en/pastebins/2018/07/25/nix-exps.links -src/content/en/pastebins/2018/07/25/nix-showdrv.links-internal-check: src/content/en/pastebins/2018/07/25/nix-showdrv.links -src/content/en/pastebins/2019/06/08/inconsistent-hash.links-internal-check: src/content/en/pastebins/2019/06/08/inconsistent-hash.links -src/content/en/pastebins/2019/12/29/raku-tuple-type.links-internal-check: src/content/en/pastebins/2019/12/29/raku-tuple-type.links -src/content/en/pastebins/2020/01/04/guix-import-failure.links-internal-check: src/content/en/pastebins/2020/01/04/guix-import-failure.links -src/content/en/pastebins/2020/02/14/guix-shebang.links-internal-check: src/content/en/pastebins/2020/02/14/guix-shebang.links -src/content/en/pastebins/2020/11/27/guix-build-local.links-internal-check: src/content/en/pastebins/2020/11/27/guix-build-local.links -src/content/en/pastebins/2020/12/15/guix-pack-fail.links-internal-check: src/content/en/pastebins/2020/12/15/guix-pack-fail.links -src/content/en/pastebins/2021/04/03/naive-slugify-js.links-internal-check: src/content/en/pastebins/2021/04/03/naive-slugify-js.links -src/content/en/pastebins/2021/06/08/reading-session-pt1.links-internal-check: src/content/en/pastebins/2021/06/08/reading-session-pt1.links -src/content/en/pastebins/2021/06/22/curl-wget.links-internal-check: src/content/en/pastebins/2021/06/22/curl-wget.links -src/content/en/pastebins/2021/08/11/h1-spacing.links-internal-check: src/content/en/pastebins/2021/08/11/h1-spacing.links -src/content/en/pastebins/2021/09/02/sicp-3-19.links-internal-check: src/content/en/pastebins/2021/09/02/sicp-3-19.links -src/content/en/pastebins/2021/09/03/sicp-persistent-queue.links-internal-check: src/content/en/pastebins/2021/09/03/sicp-persistent-queue.links -src/content/en/pastebins/2022/07/14/git-cleanup.links-internal-check: src/content/en/pastebins/2022/07/14/git-cleanup.links -src/content/en/pastebins/2023/07/22/funcallable-amop.links-internal-check: src/content/en/pastebins/2023/07/22/funcallable-amop.links -src/content/en/podcasts/2020/12/19/test-entry.links-internal-check: src/content/en/podcasts/2020/12/19/test-entry.links -src/content/en/screencasts/2021/02/07/autoqemu.links-internal-check: src/content/en/screencasts/2021/02/07/autoqemu.links -src/content/en/tils/2020/08/12/filename-timestamp.links-internal-check: src/content/en/tils/2020/08/12/filename-timestamp.links -src/content/en/tils/2020/08/13/code-jekyll.links-internal-check: src/content/en/tils/2020/08/13/code-jekyll.links -src/content/en/tils/2020/08/14/browse-git.links-internal-check: src/content/en/tils/2020/08/14/browse-git.links -src/content/en/tils/2020/08/16/git-search.links-internal-check: src/content/en/tils/2020/08/16/git-search.links -src/content/en/tils/2020/08/28/grep-online.links-internal-check: src/content/en/tils/2020/08/28/grep-online.links -src/content/en/tils/2020/09/04/cli-email-fun-profit.links-internal-check: src/content/en/tils/2020/09/04/cli-email-fun-profit.links -src/content/en/tils/2020/09/05/oldschool-pr.links-internal-check: src/content/en/tils/2020/09/05/oldschool-pr.links -src/content/en/tils/2020/10/11/search-git-history.links-internal-check: src/content/en/tils/2020/10/11/search-git-history.links -src/content/en/tils/2020/11/08/find-broken-symlink.links-internal-check: src/content/en/tils/2020/11/08/find-broken-symlink.links -src/content/en/tils/2020/11/12/diy-nix-bash-ci.links-internal-check: src/content/en/tils/2020/11/12/diy-nix-bash-ci.links -src/content/en/tils/2020/11/12/git-bisect-automation.links-internal-check: src/content/en/tils/2020/11/12/git-bisect-automation.links -src/content/en/tils/2020/11/12/useful-bashvars.links-internal-check: src/content/en/tils/2020/11/12/useful-bashvars.links -src/content/en/tils/2020/11/14/gpodder-media.links-internal-check: src/content/en/tils/2020/11/14/gpodder-media.links -src/content/en/tils/2020/11/30/git-notes-ci.links-internal-check: src/content/en/tils/2020/11/30/git-notes-ci.links -src/content/en/tils/2020/12/15/shellcheck-repo.links-internal-check: src/content/en/tils/2020/12/15/shellcheck-repo.links -src/content/en/tils/2020/12/29/svg.links-internal-check: src/content/en/tils/2020/12/29/svg.links -src/content/en/tils/2021/01/12/curl-awk-emails.links-internal-check: src/content/en/tils/2021/01/12/curl-awk-emails.links -src/content/en/tils/2021/01/17/posix-shebang.links-internal-check: src/content/en/tils/2021/01/17/posix-shebang.links -src/content/en/tils/2021/04/24/cl-generic-precedence.links-internal-check: src/content/en/tils/2021/04/24/cl-generic-precedence.links -src/content/en/tils/2021/04/24/clojure-autocurry.links-internal-check: src/content/en/tils/2021/04/24/clojure-autocurry.links -src/content/en/tils/2021/04/24/scm-nif.links-internal-check: src/content/en/tils/2021/04/24/scm-nif.links -src/content/en/tils/2021/07/23/git-tls-gpg.links-internal-check: src/content/en/tils/2021/07/23/git-tls-gpg.links -src/content/en/tils/2021/08/11/js-bigint-reviver.links-internal-check: src/content/en/tils/2021/08/11/js-bigint-reviver.links +src/content/en/pastebin/2016/04/05/rpn.links-internal-check: src/content/en/pastebin/2016/04/05/rpn.links +src/content/en/pastebin/2018/07/11/nix-pinning.links-internal-check: src/content/en/pastebin/2018/07/11/nix-pinning.links +src/content/en/pastebin/2018/07/13/guix-nixos-systemd.links-internal-check: src/content/en/pastebin/2018/07/13/guix-nixos-systemd.links +src/content/en/pastebin/2018/07/13/guixbuilder-nixos.links-internal-check: src/content/en/pastebin/2018/07/13/guixbuilder-nixos.links +src/content/en/pastebin/2018/07/13/guixbuilder.links-internal-check: src/content/en/pastebin/2018/07/13/guixbuilder.links +src/content/en/pastebin/2018/07/13/nix-strpad.links-internal-check: src/content/en/pastebin/2018/07/13/nix-strpad.links +src/content/en/pastebin/2018/07/25/nix-exps.links-internal-check: src/content/en/pastebin/2018/07/25/nix-exps.links +src/content/en/pastebin/2018/07/25/nix-showdrv.links-internal-check: src/content/en/pastebin/2018/07/25/nix-showdrv.links +src/content/en/pastebin/2019/06/08/inconsistent-hash.links-internal-check: src/content/en/pastebin/2019/06/08/inconsistent-hash.links +src/content/en/pastebin/2019/12/29/raku-tuple-type.links-internal-check: src/content/en/pastebin/2019/12/29/raku-tuple-type.links +src/content/en/pastebin/2020/01/04/guix-import-failure.links-internal-check: src/content/en/pastebin/2020/01/04/guix-import-failure.links +src/content/en/pastebin/2020/02/14/guix-shebang.links-internal-check: src/content/en/pastebin/2020/02/14/guix-shebang.links +src/content/en/pastebin/2020/11/27/guix-build-local.links-internal-check: src/content/en/pastebin/2020/11/27/guix-build-local.links +src/content/en/pastebin/2020/12/15/guix-pack-fail.links-internal-check: src/content/en/pastebin/2020/12/15/guix-pack-fail.links +src/content/en/pastebin/2021/04/03/naive-slugify-js.links-internal-check: src/content/en/pastebin/2021/04/03/naive-slugify-js.links +src/content/en/pastebin/2021/06/08/reading-session-pt1.links-internal-check: src/content/en/pastebin/2021/06/08/reading-session-pt1.links +src/content/en/pastebin/2021/06/22/curl-wget.links-internal-check: src/content/en/pastebin/2021/06/22/curl-wget.links +src/content/en/pastebin/2021/08/11/h1-spacing.links-internal-check: src/content/en/pastebin/2021/08/11/h1-spacing.links +src/content/en/pastebin/2021/09/02/sicp-3-19.links-internal-check: src/content/en/pastebin/2021/09/02/sicp-3-19.links +src/content/en/pastebin/2021/09/03/sicp-persistent-queue.links-internal-check: src/content/en/pastebin/2021/09/03/sicp-persistent-queue.links +src/content/en/pastebin/2022/07/14/git-cleanup.links-internal-check: src/content/en/pastebin/2022/07/14/git-cleanup.links +src/content/en/pastebin/2023/07/22/funcallable-amop.links-internal-check: src/content/en/pastebin/2023/07/22/funcallable-amop.links +src/content/en/podcast/2020/12/19/test-entry.links-internal-check: src/content/en/podcast/2020/12/19/test-entry.links +src/content/en/screencast/2021/02/07/autoqemu.links-internal-check: src/content/en/screencast/2021/02/07/autoqemu.links +src/content/en/til/2020/08/12/filename-timestamp.links-internal-check: src/content/en/til/2020/08/12/filename-timestamp.links +src/content/en/til/2020/08/13/code-jekyll.links-internal-check: src/content/en/til/2020/08/13/code-jekyll.links +src/content/en/til/2020/08/14/browse-git.links-internal-check: src/content/en/til/2020/08/14/browse-git.links +src/content/en/til/2020/08/16/git-search.links-internal-check: src/content/en/til/2020/08/16/git-search.links +src/content/en/til/2020/08/28/grep-online.links-internal-check: src/content/en/til/2020/08/28/grep-online.links +src/content/en/til/2020/09/04/cli-email-fun-profit.links-internal-check: src/content/en/til/2020/09/04/cli-email-fun-profit.links +src/content/en/til/2020/09/05/oldschool-pr.links-internal-check: src/content/en/til/2020/09/05/oldschool-pr.links +src/content/en/til/2020/10/11/search-git-history.links-internal-check: src/content/en/til/2020/10/11/search-git-history.links +src/content/en/til/2020/11/08/find-broken-symlink.links-internal-check: src/content/en/til/2020/11/08/find-broken-symlink.links +src/content/en/til/2020/11/12/diy-nix-bash-ci.links-internal-check: src/content/en/til/2020/11/12/diy-nix-bash-ci.links +src/content/en/til/2020/11/12/git-bisect-automation.links-internal-check: src/content/en/til/2020/11/12/git-bisect-automation.links +src/content/en/til/2020/11/12/useful-bashvars.links-internal-check: src/content/en/til/2020/11/12/useful-bashvars.links +src/content/en/til/2020/11/14/gpodder-media.links-internal-check: src/content/en/til/2020/11/14/gpodder-media.links +src/content/en/til/2020/11/30/git-notes-ci.links-internal-check: src/content/en/til/2020/11/30/git-notes-ci.links +src/content/en/til/2020/12/15/shellcheck-repo.links-internal-check: src/content/en/til/2020/12/15/shellcheck-repo.links +src/content/en/til/2020/12/29/svg.links-internal-check: src/content/en/til/2020/12/29/svg.links +src/content/en/til/2021/01/12/curl-awk-emails.links-internal-check: src/content/en/til/2021/01/12/curl-awk-emails.links +src/content/en/til/2021/01/17/posix-shebang.links-internal-check: src/content/en/til/2021/01/17/posix-shebang.links +src/content/en/til/2021/04/24/cl-generic-precedence.links-internal-check: src/content/en/til/2021/04/24/cl-generic-precedence.links +src/content/en/til/2021/04/24/clojure-autocurry.links-internal-check: src/content/en/til/2021/04/24/clojure-autocurry.links +src/content/en/til/2021/04/24/scm-nif.links-internal-check: src/content/en/til/2021/04/24/scm-nif.links +src/content/en/til/2021/07/23/git-tls-gpg.links-internal-check: src/content/en/til/2021/07/23/git-tls-gpg.links +src/content/en/til/2021/08/11/js-bigint-reviver.links-internal-check: src/content/en/til/2021/08/11/js-bigint-reviver.links +src/content/pt/hea/2020/08/12/arquivo-datado.links-internal-check: src/content/pt/hea/2020/08/12/arquivo-datado.links src/content/en/blog/index.links-internal-check: src/content/en/blog/index.links -src/content/en/pastebins/index.links-internal-check: src/content/en/pastebins/index.links -src/content/en/podcasts/index.links-internal-check: src/content/en/podcasts/index.links -src/content/en/screencasts/index.links-internal-check: src/content/en/screencasts/index.links -src/content/en/tils/index.links-internal-check: src/content/en/tils/index.links +src/content/en/pastebin/index.links-internal-check: src/content/en/pastebin/index.links +src/content/en/podcast/index.links-internal-check: src/content/en/podcast/index.links +src/content/en/screencast/index.links-internal-check: src/content/en/screencast/index.links +src/content/en/til/index.links-internal-check: src/content/en/til/index.links +src/content/pt/hea/index.links-internal-check: src/content/pt/hea/index.links src/content/en/blog/categories.links-internal-check: src/content/en/blog/categories.links -src/content/en/pastebins/categories.links-internal-check: src/content/en/pastebins/categories.links -src/content/en/podcasts/categories.links-internal-check: src/content/en/podcasts/categories.links -src/content/en/screencasts/categories.links-internal-check: src/content/en/screencasts/categories.links -src/content/en/tils/categories.links-internal-check: src/content/en/tils/categories.links +src/content/en/pastebin/categories.links-internal-check: src/content/en/pastebin/categories.links +src/content/en/podcast/categories.links-internal-check: src/content/en/podcast/categories.links +src/content/en/screencast/categories.links-internal-check: src/content/en/screencast/categories.links +src/content/en/til/categories.links-internal-check: src/content/en/til/categories.links +src/content/pt/hea/categorias.links-internal-check: src/content/pt/hea/categorias.links src/content/en/about.caslinks: src/content/en/about.links src/content/en/index.caslinks: src/content/en/index.links +src/content/pt/sobre.caslinks: src/content/pt/sobre.links src/content/en/blog/2018/07/17/guix-nixos.caslinks: src/content/en/blog/2018/07/17/guix-nixos.links src/content/en/blog/2018/08/01/npm-ci-reproducibility.caslinks: src/content/en/blog/2018/08/01/npm-ci-reproducibility.links src/content/en/blog/2018/12/21/ytdl-subs.caslinks: src/content/en/blog/2018/12/21/ytdl-subs.links @@ -613,63 +656,66 @@ src/content/en/blog/2020/11/14/local-first-review.caslinks: src/content/en/blog/ src/content/en/blog/2021/01/26/remembering-ann.caslinks: src/content/en/blog/2021/01/26/remembering-ann.links src/content/en/blog/2021/02/17/fallible.caslinks: src/content/en/blog/2021/02/17/fallible.links src/content/en/blog/2021/04/29/relational-review.caslinks: src/content/en/blog/2021/04/29/relational-review.links -src/content/en/pastebins/2016/04/05/rpn.caslinks: src/content/en/pastebins/2016/04/05/rpn.links -src/content/en/pastebins/2018/07/11/nix-pinning.caslinks: src/content/en/pastebins/2018/07/11/nix-pinning.links -src/content/en/pastebins/2018/07/13/guix-nixos-systemd.caslinks: src/content/en/pastebins/2018/07/13/guix-nixos-systemd.links -src/content/en/pastebins/2018/07/13/guixbuilder-nixos.caslinks: src/content/en/pastebins/2018/07/13/guixbuilder-nixos.links -src/content/en/pastebins/2018/07/13/guixbuilder.caslinks: src/content/en/pastebins/2018/07/13/guixbuilder.links -src/content/en/pastebins/2018/07/13/nix-strpad.caslinks: src/content/en/pastebins/2018/07/13/nix-strpad.links -src/content/en/pastebins/2018/07/25/nix-exps.caslinks: src/content/en/pastebins/2018/07/25/nix-exps.links -src/content/en/pastebins/2018/07/25/nix-showdrv.caslinks: src/content/en/pastebins/2018/07/25/nix-showdrv.links -src/content/en/pastebins/2019/06/08/inconsistent-hash.caslinks: src/content/en/pastebins/2019/06/08/inconsistent-hash.links -src/content/en/pastebins/2019/12/29/raku-tuple-type.caslinks: src/content/en/pastebins/2019/12/29/raku-tuple-type.links -src/content/en/pastebins/2020/01/04/guix-import-failure.caslinks: src/content/en/pastebins/2020/01/04/guix-import-failure.links -src/content/en/pastebins/2020/02/14/guix-shebang.caslinks: src/content/en/pastebins/2020/02/14/guix-shebang.links -src/content/en/pastebins/2020/11/27/guix-build-local.caslinks: src/content/en/pastebins/2020/11/27/guix-build-local.links -src/content/en/pastebins/2020/12/15/guix-pack-fail.caslinks: src/content/en/pastebins/2020/12/15/guix-pack-fail.links -src/content/en/pastebins/2021/04/03/naive-slugify-js.caslinks: src/content/en/pastebins/2021/04/03/naive-slugify-js.links -src/content/en/pastebins/2021/06/08/reading-session-pt1.caslinks: src/content/en/pastebins/2021/06/08/reading-session-pt1.links -src/content/en/pastebins/2021/06/22/curl-wget.caslinks: src/content/en/pastebins/2021/06/22/curl-wget.links -src/content/en/pastebins/2021/08/11/h1-spacing.caslinks: src/content/en/pastebins/2021/08/11/h1-spacing.links -src/content/en/pastebins/2021/09/02/sicp-3-19.caslinks: src/content/en/pastebins/2021/09/02/sicp-3-19.links -src/content/en/pastebins/2021/09/03/sicp-persistent-queue.caslinks: src/content/en/pastebins/2021/09/03/sicp-persistent-queue.links -src/content/en/pastebins/2022/07/14/git-cleanup.caslinks: src/content/en/pastebins/2022/07/14/git-cleanup.links -src/content/en/pastebins/2023/07/22/funcallable-amop.caslinks: src/content/en/pastebins/2023/07/22/funcallable-amop.links -src/content/en/podcasts/2020/12/19/test-entry.caslinks: src/content/en/podcasts/2020/12/19/test-entry.links -src/content/en/screencasts/2021/02/07/autoqemu.caslinks: src/content/en/screencasts/2021/02/07/autoqemu.links -src/content/en/tils/2020/08/12/filename-timestamp.caslinks: src/content/en/tils/2020/08/12/filename-timestamp.links -src/content/en/tils/2020/08/13/code-jekyll.caslinks: src/content/en/tils/2020/08/13/code-jekyll.links -src/content/en/tils/2020/08/14/browse-git.caslinks: src/content/en/tils/2020/08/14/browse-git.links -src/content/en/tils/2020/08/16/git-search.caslinks: src/content/en/tils/2020/08/16/git-search.links -src/content/en/tils/2020/08/28/grep-online.caslinks: src/content/en/tils/2020/08/28/grep-online.links -src/content/en/tils/2020/09/04/cli-email-fun-profit.caslinks: src/content/en/tils/2020/09/04/cli-email-fun-profit.links -src/content/en/tils/2020/09/05/oldschool-pr.caslinks: src/content/en/tils/2020/09/05/oldschool-pr.links -src/content/en/tils/2020/10/11/search-git-history.caslinks: src/content/en/tils/2020/10/11/search-git-history.links -src/content/en/tils/2020/11/08/find-broken-symlink.caslinks: src/content/en/tils/2020/11/08/find-broken-symlink.links -src/content/en/tils/2020/11/12/diy-nix-bash-ci.caslinks: src/content/en/tils/2020/11/12/diy-nix-bash-ci.links -src/content/en/tils/2020/11/12/git-bisect-automation.caslinks: src/content/en/tils/2020/11/12/git-bisect-automation.links -src/content/en/tils/2020/11/12/useful-bashvars.caslinks: src/content/en/tils/2020/11/12/useful-bashvars.links -src/content/en/tils/2020/11/14/gpodder-media.caslinks: src/content/en/tils/2020/11/14/gpodder-media.links -src/content/en/tils/2020/11/30/git-notes-ci.caslinks: src/content/en/tils/2020/11/30/git-notes-ci.links -src/content/en/tils/2020/12/15/shellcheck-repo.caslinks: src/content/en/tils/2020/12/15/shellcheck-repo.links -src/content/en/tils/2020/12/29/svg.caslinks: src/content/en/tils/2020/12/29/svg.links -src/content/en/tils/2021/01/12/curl-awk-emails.caslinks: src/content/en/tils/2021/01/12/curl-awk-emails.links -src/content/en/tils/2021/01/17/posix-shebang.caslinks: src/content/en/tils/2021/01/17/posix-shebang.links -src/content/en/tils/2021/04/24/cl-generic-precedence.caslinks: src/content/en/tils/2021/04/24/cl-generic-precedence.links -src/content/en/tils/2021/04/24/clojure-autocurry.caslinks: src/content/en/tils/2021/04/24/clojure-autocurry.links -src/content/en/tils/2021/04/24/scm-nif.caslinks: src/content/en/tils/2021/04/24/scm-nif.links -src/content/en/tils/2021/07/23/git-tls-gpg.caslinks: src/content/en/tils/2021/07/23/git-tls-gpg.links -src/content/en/tils/2021/08/11/js-bigint-reviver.caslinks: src/content/en/tils/2021/08/11/js-bigint-reviver.links +src/content/en/pastebin/2016/04/05/rpn.caslinks: src/content/en/pastebin/2016/04/05/rpn.links +src/content/en/pastebin/2018/07/11/nix-pinning.caslinks: src/content/en/pastebin/2018/07/11/nix-pinning.links +src/content/en/pastebin/2018/07/13/guix-nixos-systemd.caslinks: src/content/en/pastebin/2018/07/13/guix-nixos-systemd.links +src/content/en/pastebin/2018/07/13/guixbuilder-nixos.caslinks: src/content/en/pastebin/2018/07/13/guixbuilder-nixos.links +src/content/en/pastebin/2018/07/13/guixbuilder.caslinks: src/content/en/pastebin/2018/07/13/guixbuilder.links +src/content/en/pastebin/2018/07/13/nix-strpad.caslinks: src/content/en/pastebin/2018/07/13/nix-strpad.links +src/content/en/pastebin/2018/07/25/nix-exps.caslinks: src/content/en/pastebin/2018/07/25/nix-exps.links +src/content/en/pastebin/2018/07/25/nix-showdrv.caslinks: src/content/en/pastebin/2018/07/25/nix-showdrv.links +src/content/en/pastebin/2019/06/08/inconsistent-hash.caslinks: src/content/en/pastebin/2019/06/08/inconsistent-hash.links +src/content/en/pastebin/2019/12/29/raku-tuple-type.caslinks: src/content/en/pastebin/2019/12/29/raku-tuple-type.links +src/content/en/pastebin/2020/01/04/guix-import-failure.caslinks: src/content/en/pastebin/2020/01/04/guix-import-failure.links +src/content/en/pastebin/2020/02/14/guix-shebang.caslinks: src/content/en/pastebin/2020/02/14/guix-shebang.links +src/content/en/pastebin/2020/11/27/guix-build-local.caslinks: src/content/en/pastebin/2020/11/27/guix-build-local.links +src/content/en/pastebin/2020/12/15/guix-pack-fail.caslinks: src/content/en/pastebin/2020/12/15/guix-pack-fail.links +src/content/en/pastebin/2021/04/03/naive-slugify-js.caslinks: src/content/en/pastebin/2021/04/03/naive-slugify-js.links +src/content/en/pastebin/2021/06/08/reading-session-pt1.caslinks: src/content/en/pastebin/2021/06/08/reading-session-pt1.links +src/content/en/pastebin/2021/06/22/curl-wget.caslinks: src/content/en/pastebin/2021/06/22/curl-wget.links +src/content/en/pastebin/2021/08/11/h1-spacing.caslinks: src/content/en/pastebin/2021/08/11/h1-spacing.links +src/content/en/pastebin/2021/09/02/sicp-3-19.caslinks: src/content/en/pastebin/2021/09/02/sicp-3-19.links +src/content/en/pastebin/2021/09/03/sicp-persistent-queue.caslinks: src/content/en/pastebin/2021/09/03/sicp-persistent-queue.links +src/content/en/pastebin/2022/07/14/git-cleanup.caslinks: src/content/en/pastebin/2022/07/14/git-cleanup.links +src/content/en/pastebin/2023/07/22/funcallable-amop.caslinks: src/content/en/pastebin/2023/07/22/funcallable-amop.links +src/content/en/podcast/2020/12/19/test-entry.caslinks: src/content/en/podcast/2020/12/19/test-entry.links +src/content/en/screencast/2021/02/07/autoqemu.caslinks: src/content/en/screencast/2021/02/07/autoqemu.links +src/content/en/til/2020/08/12/filename-timestamp.caslinks: src/content/en/til/2020/08/12/filename-timestamp.links +src/content/en/til/2020/08/13/code-jekyll.caslinks: src/content/en/til/2020/08/13/code-jekyll.links +src/content/en/til/2020/08/14/browse-git.caslinks: src/content/en/til/2020/08/14/browse-git.links +src/content/en/til/2020/08/16/git-search.caslinks: src/content/en/til/2020/08/16/git-search.links +src/content/en/til/2020/08/28/grep-online.caslinks: src/content/en/til/2020/08/28/grep-online.links +src/content/en/til/2020/09/04/cli-email-fun-profit.caslinks: src/content/en/til/2020/09/04/cli-email-fun-profit.links +src/content/en/til/2020/09/05/oldschool-pr.caslinks: src/content/en/til/2020/09/05/oldschool-pr.links +src/content/en/til/2020/10/11/search-git-history.caslinks: src/content/en/til/2020/10/11/search-git-history.links +src/content/en/til/2020/11/08/find-broken-symlink.caslinks: src/content/en/til/2020/11/08/find-broken-symlink.links +src/content/en/til/2020/11/12/diy-nix-bash-ci.caslinks: src/content/en/til/2020/11/12/diy-nix-bash-ci.links +src/content/en/til/2020/11/12/git-bisect-automation.caslinks: src/content/en/til/2020/11/12/git-bisect-automation.links +src/content/en/til/2020/11/12/useful-bashvars.caslinks: src/content/en/til/2020/11/12/useful-bashvars.links +src/content/en/til/2020/11/14/gpodder-media.caslinks: src/content/en/til/2020/11/14/gpodder-media.links +src/content/en/til/2020/11/30/git-notes-ci.caslinks: src/content/en/til/2020/11/30/git-notes-ci.links +src/content/en/til/2020/12/15/shellcheck-repo.caslinks: src/content/en/til/2020/12/15/shellcheck-repo.links +src/content/en/til/2020/12/29/svg.caslinks: src/content/en/til/2020/12/29/svg.links +src/content/en/til/2021/01/12/curl-awk-emails.caslinks: src/content/en/til/2021/01/12/curl-awk-emails.links +src/content/en/til/2021/01/17/posix-shebang.caslinks: src/content/en/til/2021/01/17/posix-shebang.links +src/content/en/til/2021/04/24/cl-generic-precedence.caslinks: src/content/en/til/2021/04/24/cl-generic-precedence.links +src/content/en/til/2021/04/24/clojure-autocurry.caslinks: src/content/en/til/2021/04/24/clojure-autocurry.links +src/content/en/til/2021/04/24/scm-nif.caslinks: src/content/en/til/2021/04/24/scm-nif.links +src/content/en/til/2021/07/23/git-tls-gpg.caslinks: src/content/en/til/2021/07/23/git-tls-gpg.links +src/content/en/til/2021/08/11/js-bigint-reviver.caslinks: src/content/en/til/2021/08/11/js-bigint-reviver.links +src/content/pt/hea/2020/08/12/arquivo-datado.caslinks: src/content/pt/hea/2020/08/12/arquivo-datado.links src/content/en/blog/index.caslinks: src/content/en/blog/index.links -src/content/en/pastebins/index.caslinks: src/content/en/pastebins/index.links -src/content/en/podcasts/index.caslinks: src/content/en/podcasts/index.links -src/content/en/screencasts/index.caslinks: src/content/en/screencasts/index.links -src/content/en/tils/index.caslinks: src/content/en/tils/index.links +src/content/en/pastebin/index.caslinks: src/content/en/pastebin/index.links +src/content/en/podcast/index.caslinks: src/content/en/podcast/index.links +src/content/en/screencast/index.caslinks: src/content/en/screencast/index.links +src/content/en/til/index.caslinks: src/content/en/til/index.links +src/content/pt/hea/index.caslinks: src/content/pt/hea/index.links src/content/en/blog/categories.caslinks: src/content/en/blog/categories.links -src/content/en/pastebins/categories.caslinks: src/content/en/pastebins/categories.links -src/content/en/podcasts/categories.caslinks: src/content/en/podcasts/categories.links -src/content/en/screencasts/categories.caslinks: src/content/en/screencasts/categories.links -src/content/en/tils/categories.caslinks: src/content/en/tils/categories.links +src/content/en/pastebin/categories.caslinks: src/content/en/pastebin/categories.links +src/content/en/podcast/categories.caslinks: src/content/en/podcast/categories.links +src/content/en/screencast/categories.caslinks: src/content/en/screencast/categories.links +src/content/en/til/categories.caslinks: src/content/en/til/categories.links +src/content/pt/hea/categorias.caslinks: src/content/pt/hea/categorias.links src/content/en/blog/2018/07/17/guix-nixos.feedentry: src/content/en/blog/2018/07/17/guix-nixos.conf src/content/en/blog/2018/07/17/guix-nixos.htmlbody src/content/en/blog/2018/08/01/npm-ci-reproducibility.feedentry: src/content/en/blog/2018/08/01/npm-ci-reproducibility.conf src/content/en/blog/2018/08/01/npm-ci-reproducibility.htmlbody @@ -688,53 +734,54 @@ src/content/en/blog/2020/11/14/local-first-review.feedentry: src/content/en/blog src/content/en/blog/2021/01/26/remembering-ann.feedentry: src/content/en/blog/2021/01/26/remembering-ann.conf src/content/en/blog/2021/01/26/remembering-ann.htmlbody src/content/en/blog/2021/02/17/fallible.feedentry: src/content/en/blog/2021/02/17/fallible.conf src/content/en/blog/2021/02/17/fallible.htmlbody src/content/en/blog/2021/04/29/relational-review.feedentry: src/content/en/blog/2021/04/29/relational-review.conf src/content/en/blog/2021/04/29/relational-review.htmlbody -src/content/en/pastebins/2016/04/05/rpn.feedentry: src/content/en/pastebins/2016/04/05/rpn.conf src/content/en/pastebins/2016/04/05/rpn.htmlbody -src/content/en/pastebins/2018/07/11/nix-pinning.feedentry: src/content/en/pastebins/2018/07/11/nix-pinning.conf src/content/en/pastebins/2018/07/11/nix-pinning.htmlbody -src/content/en/pastebins/2018/07/13/guix-nixos-systemd.feedentry: src/content/en/pastebins/2018/07/13/guix-nixos-systemd.conf src/content/en/pastebins/2018/07/13/guix-nixos-systemd.htmlbody -src/content/en/pastebins/2018/07/13/guixbuilder-nixos.feedentry: src/content/en/pastebins/2018/07/13/guixbuilder-nixos.conf src/content/en/pastebins/2018/07/13/guixbuilder-nixos.htmlbody -src/content/en/pastebins/2018/07/13/guixbuilder.feedentry: src/content/en/pastebins/2018/07/13/guixbuilder.conf src/content/en/pastebins/2018/07/13/guixbuilder.htmlbody -src/content/en/pastebins/2018/07/13/nix-strpad.feedentry: src/content/en/pastebins/2018/07/13/nix-strpad.conf src/content/en/pastebins/2018/07/13/nix-strpad.htmlbody -src/content/en/pastebins/2018/07/25/nix-exps.feedentry: src/content/en/pastebins/2018/07/25/nix-exps.conf src/content/en/pastebins/2018/07/25/nix-exps.htmlbody -src/content/en/pastebins/2018/07/25/nix-showdrv.feedentry: src/content/en/pastebins/2018/07/25/nix-showdrv.conf src/content/en/pastebins/2018/07/25/nix-showdrv.htmlbody -src/content/en/pastebins/2019/06/08/inconsistent-hash.feedentry: src/content/en/pastebins/2019/06/08/inconsistent-hash.conf src/content/en/pastebins/2019/06/08/inconsistent-hash.htmlbody -src/content/en/pastebins/2019/12/29/raku-tuple-type.feedentry: src/content/en/pastebins/2019/12/29/raku-tuple-type.conf src/content/en/pastebins/2019/12/29/raku-tuple-type.htmlbody -src/content/en/pastebins/2020/01/04/guix-import-failure.feedentry: src/content/en/pastebins/2020/01/04/guix-import-failure.conf src/content/en/pastebins/2020/01/04/guix-import-failure.htmlbody -src/content/en/pastebins/2020/02/14/guix-shebang.feedentry: src/content/en/pastebins/2020/02/14/guix-shebang.conf src/content/en/pastebins/2020/02/14/guix-shebang.htmlbody -src/content/en/pastebins/2020/11/27/guix-build-local.feedentry: src/content/en/pastebins/2020/11/27/guix-build-local.conf src/content/en/pastebins/2020/11/27/guix-build-local.htmlbody -src/content/en/pastebins/2020/12/15/guix-pack-fail.feedentry: src/content/en/pastebins/2020/12/15/guix-pack-fail.conf src/content/en/pastebins/2020/12/15/guix-pack-fail.htmlbody -src/content/en/pastebins/2021/04/03/naive-slugify-js.feedentry: src/content/en/pastebins/2021/04/03/naive-slugify-js.conf src/content/en/pastebins/2021/04/03/naive-slugify-js.htmlbody -src/content/en/pastebins/2021/06/08/reading-session-pt1.feedentry: src/content/en/pastebins/2021/06/08/reading-session-pt1.conf src/content/en/pastebins/2021/06/08/reading-session-pt1.htmlbody -src/content/en/pastebins/2021/06/22/curl-wget.feedentry: src/content/en/pastebins/2021/06/22/curl-wget.conf src/content/en/pastebins/2021/06/22/curl-wget.htmlbody -src/content/en/pastebins/2021/08/11/h1-spacing.feedentry: src/content/en/pastebins/2021/08/11/h1-spacing.conf src/content/en/pastebins/2021/08/11/h1-spacing.htmlbody -src/content/en/pastebins/2021/09/02/sicp-3-19.feedentry: src/content/en/pastebins/2021/09/02/sicp-3-19.conf src/content/en/pastebins/2021/09/02/sicp-3-19.htmlbody -src/content/en/pastebins/2021/09/03/sicp-persistent-queue.feedentry: src/content/en/pastebins/2021/09/03/sicp-persistent-queue.conf src/content/en/pastebins/2021/09/03/sicp-persistent-queue.htmlbody -src/content/en/pastebins/2022/07/14/git-cleanup.feedentry: src/content/en/pastebins/2022/07/14/git-cleanup.conf src/content/en/pastebins/2022/07/14/git-cleanup.htmlbody -src/content/en/pastebins/2023/07/22/funcallable-amop.feedentry: src/content/en/pastebins/2023/07/22/funcallable-amop.conf src/content/en/pastebins/2023/07/22/funcallable-amop.htmlbody -src/content/en/podcasts/2020/12/19/test-entry.feedentry: src/content/en/podcasts/2020/12/19/test-entry.conf src/content/en/podcasts/2020/12/19/test-entry.htmlbody -src/content/en/screencasts/2021/02/07/autoqemu.feedentry: src/content/en/screencasts/2021/02/07/autoqemu.conf src/content/en/screencasts/2021/02/07/autoqemu.htmlbody -src/content/en/tils/2020/08/12/filename-timestamp.feedentry: src/content/en/tils/2020/08/12/filename-timestamp.conf src/content/en/tils/2020/08/12/filename-timestamp.htmlbody -src/content/en/tils/2020/08/13/code-jekyll.feedentry: src/content/en/tils/2020/08/13/code-jekyll.conf src/content/en/tils/2020/08/13/code-jekyll.htmlbody -src/content/en/tils/2020/08/14/browse-git.feedentry: src/content/en/tils/2020/08/14/browse-git.conf src/content/en/tils/2020/08/14/browse-git.htmlbody -src/content/en/tils/2020/08/16/git-search.feedentry: src/content/en/tils/2020/08/16/git-search.conf src/content/en/tils/2020/08/16/git-search.htmlbody -src/content/en/tils/2020/08/28/grep-online.feedentry: src/content/en/tils/2020/08/28/grep-online.conf src/content/en/tils/2020/08/28/grep-online.htmlbody -src/content/en/tils/2020/09/04/cli-email-fun-profit.feedentry: src/content/en/tils/2020/09/04/cli-email-fun-profit.conf src/content/en/tils/2020/09/04/cli-email-fun-profit.htmlbody -src/content/en/tils/2020/09/05/oldschool-pr.feedentry: src/content/en/tils/2020/09/05/oldschool-pr.conf src/content/en/tils/2020/09/05/oldschool-pr.htmlbody -src/content/en/tils/2020/10/11/search-git-history.feedentry: src/content/en/tils/2020/10/11/search-git-history.conf src/content/en/tils/2020/10/11/search-git-history.htmlbody -src/content/en/tils/2020/11/08/find-broken-symlink.feedentry: src/content/en/tils/2020/11/08/find-broken-symlink.conf src/content/en/tils/2020/11/08/find-broken-symlink.htmlbody -src/content/en/tils/2020/11/12/diy-nix-bash-ci.feedentry: src/content/en/tils/2020/11/12/diy-nix-bash-ci.conf src/content/en/tils/2020/11/12/diy-nix-bash-ci.htmlbody -src/content/en/tils/2020/11/12/git-bisect-automation.feedentry: src/content/en/tils/2020/11/12/git-bisect-automation.conf src/content/en/tils/2020/11/12/git-bisect-automation.htmlbody -src/content/en/tils/2020/11/12/useful-bashvars.feedentry: src/content/en/tils/2020/11/12/useful-bashvars.conf src/content/en/tils/2020/11/12/useful-bashvars.htmlbody -src/content/en/tils/2020/11/14/gpodder-media.feedentry: src/content/en/tils/2020/11/14/gpodder-media.conf src/content/en/tils/2020/11/14/gpodder-media.htmlbody -src/content/en/tils/2020/11/30/git-notes-ci.feedentry: src/content/en/tils/2020/11/30/git-notes-ci.conf src/content/en/tils/2020/11/30/git-notes-ci.htmlbody -src/content/en/tils/2020/12/15/shellcheck-repo.feedentry: src/content/en/tils/2020/12/15/shellcheck-repo.conf src/content/en/tils/2020/12/15/shellcheck-repo.htmlbody -src/content/en/tils/2020/12/29/svg.feedentry: src/content/en/tils/2020/12/29/svg.conf src/content/en/tils/2020/12/29/svg.htmlbody -src/content/en/tils/2021/01/12/curl-awk-emails.feedentry: src/content/en/tils/2021/01/12/curl-awk-emails.conf src/content/en/tils/2021/01/12/curl-awk-emails.htmlbody -src/content/en/tils/2021/01/17/posix-shebang.feedentry: src/content/en/tils/2021/01/17/posix-shebang.conf src/content/en/tils/2021/01/17/posix-shebang.htmlbody -src/content/en/tils/2021/04/24/cl-generic-precedence.feedentry: src/content/en/tils/2021/04/24/cl-generic-precedence.conf src/content/en/tils/2021/04/24/cl-generic-precedence.htmlbody -src/content/en/tils/2021/04/24/clojure-autocurry.feedentry: src/content/en/tils/2021/04/24/clojure-autocurry.conf src/content/en/tils/2021/04/24/clojure-autocurry.htmlbody -src/content/en/tils/2021/04/24/scm-nif.feedentry: src/content/en/tils/2021/04/24/scm-nif.conf src/content/en/tils/2021/04/24/scm-nif.htmlbody -src/content/en/tils/2021/07/23/git-tls-gpg.feedentry: src/content/en/tils/2021/07/23/git-tls-gpg.conf src/content/en/tils/2021/07/23/git-tls-gpg.htmlbody -src/content/en/tils/2021/08/11/js-bigint-reviver.feedentry: src/content/en/tils/2021/08/11/js-bigint-reviver.conf src/content/en/tils/2021/08/11/js-bigint-reviver.htmlbody +src/content/en/pastebin/2016/04/05/rpn.feedentry: src/content/en/pastebin/2016/04/05/rpn.conf src/content/en/pastebin/2016/04/05/rpn.htmlbody +src/content/en/pastebin/2018/07/11/nix-pinning.feedentry: src/content/en/pastebin/2018/07/11/nix-pinning.conf src/content/en/pastebin/2018/07/11/nix-pinning.htmlbody +src/content/en/pastebin/2018/07/13/guix-nixos-systemd.feedentry: src/content/en/pastebin/2018/07/13/guix-nixos-systemd.conf src/content/en/pastebin/2018/07/13/guix-nixos-systemd.htmlbody +src/content/en/pastebin/2018/07/13/guixbuilder-nixos.feedentry: src/content/en/pastebin/2018/07/13/guixbuilder-nixos.conf src/content/en/pastebin/2018/07/13/guixbuilder-nixos.htmlbody +src/content/en/pastebin/2018/07/13/guixbuilder.feedentry: src/content/en/pastebin/2018/07/13/guixbuilder.conf src/content/en/pastebin/2018/07/13/guixbuilder.htmlbody +src/content/en/pastebin/2018/07/13/nix-strpad.feedentry: src/content/en/pastebin/2018/07/13/nix-strpad.conf src/content/en/pastebin/2018/07/13/nix-strpad.htmlbody +src/content/en/pastebin/2018/07/25/nix-exps.feedentry: src/content/en/pastebin/2018/07/25/nix-exps.conf src/content/en/pastebin/2018/07/25/nix-exps.htmlbody +src/content/en/pastebin/2018/07/25/nix-showdrv.feedentry: src/content/en/pastebin/2018/07/25/nix-showdrv.conf src/content/en/pastebin/2018/07/25/nix-showdrv.htmlbody +src/content/en/pastebin/2019/06/08/inconsistent-hash.feedentry: src/content/en/pastebin/2019/06/08/inconsistent-hash.conf src/content/en/pastebin/2019/06/08/inconsistent-hash.htmlbody +src/content/en/pastebin/2019/12/29/raku-tuple-type.feedentry: src/content/en/pastebin/2019/12/29/raku-tuple-type.conf src/content/en/pastebin/2019/12/29/raku-tuple-type.htmlbody +src/content/en/pastebin/2020/01/04/guix-import-failure.feedentry: src/content/en/pastebin/2020/01/04/guix-import-failure.conf src/content/en/pastebin/2020/01/04/guix-import-failure.htmlbody +src/content/en/pastebin/2020/02/14/guix-shebang.feedentry: src/content/en/pastebin/2020/02/14/guix-shebang.conf src/content/en/pastebin/2020/02/14/guix-shebang.htmlbody +src/content/en/pastebin/2020/11/27/guix-build-local.feedentry: src/content/en/pastebin/2020/11/27/guix-build-local.conf src/content/en/pastebin/2020/11/27/guix-build-local.htmlbody +src/content/en/pastebin/2020/12/15/guix-pack-fail.feedentry: src/content/en/pastebin/2020/12/15/guix-pack-fail.conf src/content/en/pastebin/2020/12/15/guix-pack-fail.htmlbody +src/content/en/pastebin/2021/04/03/naive-slugify-js.feedentry: src/content/en/pastebin/2021/04/03/naive-slugify-js.conf src/content/en/pastebin/2021/04/03/naive-slugify-js.htmlbody +src/content/en/pastebin/2021/06/08/reading-session-pt1.feedentry: src/content/en/pastebin/2021/06/08/reading-session-pt1.conf src/content/en/pastebin/2021/06/08/reading-session-pt1.htmlbody +src/content/en/pastebin/2021/06/22/curl-wget.feedentry: src/content/en/pastebin/2021/06/22/curl-wget.conf src/content/en/pastebin/2021/06/22/curl-wget.htmlbody +src/content/en/pastebin/2021/08/11/h1-spacing.feedentry: src/content/en/pastebin/2021/08/11/h1-spacing.conf src/content/en/pastebin/2021/08/11/h1-spacing.htmlbody +src/content/en/pastebin/2021/09/02/sicp-3-19.feedentry: src/content/en/pastebin/2021/09/02/sicp-3-19.conf src/content/en/pastebin/2021/09/02/sicp-3-19.htmlbody +src/content/en/pastebin/2021/09/03/sicp-persistent-queue.feedentry: src/content/en/pastebin/2021/09/03/sicp-persistent-queue.conf src/content/en/pastebin/2021/09/03/sicp-persistent-queue.htmlbody +src/content/en/pastebin/2022/07/14/git-cleanup.feedentry: src/content/en/pastebin/2022/07/14/git-cleanup.conf src/content/en/pastebin/2022/07/14/git-cleanup.htmlbody +src/content/en/pastebin/2023/07/22/funcallable-amop.feedentry: src/content/en/pastebin/2023/07/22/funcallable-amop.conf src/content/en/pastebin/2023/07/22/funcallable-amop.htmlbody +src/content/en/podcast/2020/12/19/test-entry.feedentry: src/content/en/podcast/2020/12/19/test-entry.conf src/content/en/podcast/2020/12/19/test-entry.htmlbody +src/content/en/screencast/2021/02/07/autoqemu.feedentry: src/content/en/screencast/2021/02/07/autoqemu.conf src/content/en/screencast/2021/02/07/autoqemu.htmlbody +src/content/en/til/2020/08/12/filename-timestamp.feedentry: src/content/en/til/2020/08/12/filename-timestamp.conf src/content/en/til/2020/08/12/filename-timestamp.htmlbody +src/content/en/til/2020/08/13/code-jekyll.feedentry: src/content/en/til/2020/08/13/code-jekyll.conf src/content/en/til/2020/08/13/code-jekyll.htmlbody +src/content/en/til/2020/08/14/browse-git.feedentry: src/content/en/til/2020/08/14/browse-git.conf src/content/en/til/2020/08/14/browse-git.htmlbody +src/content/en/til/2020/08/16/git-search.feedentry: src/content/en/til/2020/08/16/git-search.conf src/content/en/til/2020/08/16/git-search.htmlbody +src/content/en/til/2020/08/28/grep-online.feedentry: src/content/en/til/2020/08/28/grep-online.conf src/content/en/til/2020/08/28/grep-online.htmlbody +src/content/en/til/2020/09/04/cli-email-fun-profit.feedentry: src/content/en/til/2020/09/04/cli-email-fun-profit.conf src/content/en/til/2020/09/04/cli-email-fun-profit.htmlbody +src/content/en/til/2020/09/05/oldschool-pr.feedentry: src/content/en/til/2020/09/05/oldschool-pr.conf src/content/en/til/2020/09/05/oldschool-pr.htmlbody +src/content/en/til/2020/10/11/search-git-history.feedentry: src/content/en/til/2020/10/11/search-git-history.conf src/content/en/til/2020/10/11/search-git-history.htmlbody +src/content/en/til/2020/11/08/find-broken-symlink.feedentry: src/content/en/til/2020/11/08/find-broken-symlink.conf src/content/en/til/2020/11/08/find-broken-symlink.htmlbody +src/content/en/til/2020/11/12/diy-nix-bash-ci.feedentry: src/content/en/til/2020/11/12/diy-nix-bash-ci.conf src/content/en/til/2020/11/12/diy-nix-bash-ci.htmlbody +src/content/en/til/2020/11/12/git-bisect-automation.feedentry: src/content/en/til/2020/11/12/git-bisect-automation.conf src/content/en/til/2020/11/12/git-bisect-automation.htmlbody +src/content/en/til/2020/11/12/useful-bashvars.feedentry: src/content/en/til/2020/11/12/useful-bashvars.conf src/content/en/til/2020/11/12/useful-bashvars.htmlbody +src/content/en/til/2020/11/14/gpodder-media.feedentry: src/content/en/til/2020/11/14/gpodder-media.conf src/content/en/til/2020/11/14/gpodder-media.htmlbody +src/content/en/til/2020/11/30/git-notes-ci.feedentry: src/content/en/til/2020/11/30/git-notes-ci.conf src/content/en/til/2020/11/30/git-notes-ci.htmlbody +src/content/en/til/2020/12/15/shellcheck-repo.feedentry: src/content/en/til/2020/12/15/shellcheck-repo.conf src/content/en/til/2020/12/15/shellcheck-repo.htmlbody +src/content/en/til/2020/12/29/svg.feedentry: src/content/en/til/2020/12/29/svg.conf src/content/en/til/2020/12/29/svg.htmlbody +src/content/en/til/2021/01/12/curl-awk-emails.feedentry: src/content/en/til/2021/01/12/curl-awk-emails.conf src/content/en/til/2021/01/12/curl-awk-emails.htmlbody +src/content/en/til/2021/01/17/posix-shebang.feedentry: src/content/en/til/2021/01/17/posix-shebang.conf src/content/en/til/2021/01/17/posix-shebang.htmlbody +src/content/en/til/2021/04/24/cl-generic-precedence.feedentry: src/content/en/til/2021/04/24/cl-generic-precedence.conf src/content/en/til/2021/04/24/cl-generic-precedence.htmlbody +src/content/en/til/2021/04/24/clojure-autocurry.feedentry: src/content/en/til/2021/04/24/clojure-autocurry.conf src/content/en/til/2021/04/24/clojure-autocurry.htmlbody +src/content/en/til/2021/04/24/scm-nif.feedentry: src/content/en/til/2021/04/24/scm-nif.conf src/content/en/til/2021/04/24/scm-nif.htmlbody +src/content/en/til/2021/07/23/git-tls-gpg.feedentry: src/content/en/til/2021/07/23/git-tls-gpg.conf src/content/en/til/2021/07/23/git-tls-gpg.htmlbody +src/content/en/til/2021/08/11/js-bigint-reviver.feedentry: src/content/en/til/2021/08/11/js-bigint-reviver.conf src/content/en/til/2021/08/11/js-bigint-reviver.htmlbody +src/content/pt/hea/2020/08/12/arquivo-datado.feedentry: src/content/pt/hea/2020/08/12/arquivo-datado.conf src/content/pt/hea/2020/08/12/arquivo-datado.htmlbody src/content/en/blog/2018/07/17/guix-nixos.sortdata: src/content/en/blog/2018/07/17/guix-nixos.conf src/content/en/blog/2018/08/01/npm-ci-reproducibility.sortdata: src/content/en/blog/2018/08/01/npm-ci-reproducibility.conf src/content/en/blog/2018/12/21/ytdl-subs.sortdata: src/content/en/blog/2018/12/21/ytdl-subs.conf @@ -752,53 +799,54 @@ src/content/en/blog/2020/11/14/local-first-review.sortdata: src/content/en/blog/ src/content/en/blog/2021/01/26/remembering-ann.sortdata: src/content/en/blog/2021/01/26/remembering-ann.conf src/content/en/blog/2021/02/17/fallible.sortdata: src/content/en/blog/2021/02/17/fallible.conf src/content/en/blog/2021/04/29/relational-review.sortdata: src/content/en/blog/2021/04/29/relational-review.conf -src/content/en/pastebins/2016/04/05/rpn.sortdata: src/content/en/pastebins/2016/04/05/rpn.conf -src/content/en/pastebins/2018/07/11/nix-pinning.sortdata: src/content/en/pastebins/2018/07/11/nix-pinning.conf -src/content/en/pastebins/2018/07/13/guix-nixos-systemd.sortdata: src/content/en/pastebins/2018/07/13/guix-nixos-systemd.conf -src/content/en/pastebins/2018/07/13/guixbuilder-nixos.sortdata: src/content/en/pastebins/2018/07/13/guixbuilder-nixos.conf -src/content/en/pastebins/2018/07/13/guixbuilder.sortdata: src/content/en/pastebins/2018/07/13/guixbuilder.conf -src/content/en/pastebins/2018/07/13/nix-strpad.sortdata: src/content/en/pastebins/2018/07/13/nix-strpad.conf -src/content/en/pastebins/2018/07/25/nix-exps.sortdata: src/content/en/pastebins/2018/07/25/nix-exps.conf -src/content/en/pastebins/2018/07/25/nix-showdrv.sortdata: src/content/en/pastebins/2018/07/25/nix-showdrv.conf -src/content/en/pastebins/2019/06/08/inconsistent-hash.sortdata: src/content/en/pastebins/2019/06/08/inconsistent-hash.conf -src/content/en/pastebins/2019/12/29/raku-tuple-type.sortdata: src/content/en/pastebins/2019/12/29/raku-tuple-type.conf -src/content/en/pastebins/2020/01/04/guix-import-failure.sortdata: src/content/en/pastebins/2020/01/04/guix-import-failure.conf -src/content/en/pastebins/2020/02/14/guix-shebang.sortdata: src/content/en/pastebins/2020/02/14/guix-shebang.conf -src/content/en/pastebins/2020/11/27/guix-build-local.sortdata: src/content/en/pastebins/2020/11/27/guix-build-local.conf -src/content/en/pastebins/2020/12/15/guix-pack-fail.sortdata: src/content/en/pastebins/2020/12/15/guix-pack-fail.conf -src/content/en/pastebins/2021/04/03/naive-slugify-js.sortdata: src/content/en/pastebins/2021/04/03/naive-slugify-js.conf -src/content/en/pastebins/2021/06/08/reading-session-pt1.sortdata: src/content/en/pastebins/2021/06/08/reading-session-pt1.conf -src/content/en/pastebins/2021/06/22/curl-wget.sortdata: src/content/en/pastebins/2021/06/22/curl-wget.conf -src/content/en/pastebins/2021/08/11/h1-spacing.sortdata: src/content/en/pastebins/2021/08/11/h1-spacing.conf -src/content/en/pastebins/2021/09/02/sicp-3-19.sortdata: src/content/en/pastebins/2021/09/02/sicp-3-19.conf -src/content/en/pastebins/2021/09/03/sicp-persistent-queue.sortdata: src/content/en/pastebins/2021/09/03/sicp-persistent-queue.conf -src/content/en/pastebins/2022/07/14/git-cleanup.sortdata: src/content/en/pastebins/2022/07/14/git-cleanup.conf -src/content/en/pastebins/2023/07/22/funcallable-amop.sortdata: src/content/en/pastebins/2023/07/22/funcallable-amop.conf -src/content/en/podcasts/2020/12/19/test-entry.sortdata: src/content/en/podcasts/2020/12/19/test-entry.conf -src/content/en/screencasts/2021/02/07/autoqemu.sortdata: src/content/en/screencasts/2021/02/07/autoqemu.conf -src/content/en/tils/2020/08/12/filename-timestamp.sortdata: src/content/en/tils/2020/08/12/filename-timestamp.conf -src/content/en/tils/2020/08/13/code-jekyll.sortdata: src/content/en/tils/2020/08/13/code-jekyll.conf -src/content/en/tils/2020/08/14/browse-git.sortdata: src/content/en/tils/2020/08/14/browse-git.conf -src/content/en/tils/2020/08/16/git-search.sortdata: src/content/en/tils/2020/08/16/git-search.conf -src/content/en/tils/2020/08/28/grep-online.sortdata: src/content/en/tils/2020/08/28/grep-online.conf -src/content/en/tils/2020/09/04/cli-email-fun-profit.sortdata: src/content/en/tils/2020/09/04/cli-email-fun-profit.conf -src/content/en/tils/2020/09/05/oldschool-pr.sortdata: src/content/en/tils/2020/09/05/oldschool-pr.conf -src/content/en/tils/2020/10/11/search-git-history.sortdata: src/content/en/tils/2020/10/11/search-git-history.conf -src/content/en/tils/2020/11/08/find-broken-symlink.sortdata: src/content/en/tils/2020/11/08/find-broken-symlink.conf -src/content/en/tils/2020/11/12/diy-nix-bash-ci.sortdata: src/content/en/tils/2020/11/12/diy-nix-bash-ci.conf -src/content/en/tils/2020/11/12/git-bisect-automation.sortdata: src/content/en/tils/2020/11/12/git-bisect-automation.conf -src/content/en/tils/2020/11/12/useful-bashvars.sortdata: src/content/en/tils/2020/11/12/useful-bashvars.conf -src/content/en/tils/2020/11/14/gpodder-media.sortdata: src/content/en/tils/2020/11/14/gpodder-media.conf -src/content/en/tils/2020/11/30/git-notes-ci.sortdata: src/content/en/tils/2020/11/30/git-notes-ci.conf -src/content/en/tils/2020/12/15/shellcheck-repo.sortdata: src/content/en/tils/2020/12/15/shellcheck-repo.conf -src/content/en/tils/2020/12/29/svg.sortdata: src/content/en/tils/2020/12/29/svg.conf -src/content/en/tils/2021/01/12/curl-awk-emails.sortdata: src/content/en/tils/2021/01/12/curl-awk-emails.conf -src/content/en/tils/2021/01/17/posix-shebang.sortdata: src/content/en/tils/2021/01/17/posix-shebang.conf -src/content/en/tils/2021/04/24/cl-generic-precedence.sortdata: src/content/en/tils/2021/04/24/cl-generic-precedence.conf -src/content/en/tils/2021/04/24/clojure-autocurry.sortdata: src/content/en/tils/2021/04/24/clojure-autocurry.conf -src/content/en/tils/2021/04/24/scm-nif.sortdata: src/content/en/tils/2021/04/24/scm-nif.conf -src/content/en/tils/2021/07/23/git-tls-gpg.sortdata: src/content/en/tils/2021/07/23/git-tls-gpg.conf -src/content/en/tils/2021/08/11/js-bigint-reviver.sortdata: src/content/en/tils/2021/08/11/js-bigint-reviver.conf +src/content/en/pastebin/2016/04/05/rpn.sortdata: src/content/en/pastebin/2016/04/05/rpn.conf +src/content/en/pastebin/2018/07/11/nix-pinning.sortdata: src/content/en/pastebin/2018/07/11/nix-pinning.conf +src/content/en/pastebin/2018/07/13/guix-nixos-systemd.sortdata: src/content/en/pastebin/2018/07/13/guix-nixos-systemd.conf +src/content/en/pastebin/2018/07/13/guixbuilder-nixos.sortdata: src/content/en/pastebin/2018/07/13/guixbuilder-nixos.conf +src/content/en/pastebin/2018/07/13/guixbuilder.sortdata: src/content/en/pastebin/2018/07/13/guixbuilder.conf +src/content/en/pastebin/2018/07/13/nix-strpad.sortdata: src/content/en/pastebin/2018/07/13/nix-strpad.conf +src/content/en/pastebin/2018/07/25/nix-exps.sortdata: src/content/en/pastebin/2018/07/25/nix-exps.conf +src/content/en/pastebin/2018/07/25/nix-showdrv.sortdata: src/content/en/pastebin/2018/07/25/nix-showdrv.conf +src/content/en/pastebin/2019/06/08/inconsistent-hash.sortdata: src/content/en/pastebin/2019/06/08/inconsistent-hash.conf +src/content/en/pastebin/2019/12/29/raku-tuple-type.sortdata: src/content/en/pastebin/2019/12/29/raku-tuple-type.conf +src/content/en/pastebin/2020/01/04/guix-import-failure.sortdata: src/content/en/pastebin/2020/01/04/guix-import-failure.conf +src/content/en/pastebin/2020/02/14/guix-shebang.sortdata: src/content/en/pastebin/2020/02/14/guix-shebang.conf +src/content/en/pastebin/2020/11/27/guix-build-local.sortdata: src/content/en/pastebin/2020/11/27/guix-build-local.conf +src/content/en/pastebin/2020/12/15/guix-pack-fail.sortdata: src/content/en/pastebin/2020/12/15/guix-pack-fail.conf +src/content/en/pastebin/2021/04/03/naive-slugify-js.sortdata: src/content/en/pastebin/2021/04/03/naive-slugify-js.conf +src/content/en/pastebin/2021/06/08/reading-session-pt1.sortdata: src/content/en/pastebin/2021/06/08/reading-session-pt1.conf +src/content/en/pastebin/2021/06/22/curl-wget.sortdata: src/content/en/pastebin/2021/06/22/curl-wget.conf +src/content/en/pastebin/2021/08/11/h1-spacing.sortdata: src/content/en/pastebin/2021/08/11/h1-spacing.conf +src/content/en/pastebin/2021/09/02/sicp-3-19.sortdata: src/content/en/pastebin/2021/09/02/sicp-3-19.conf +src/content/en/pastebin/2021/09/03/sicp-persistent-queue.sortdata: src/content/en/pastebin/2021/09/03/sicp-persistent-queue.conf +src/content/en/pastebin/2022/07/14/git-cleanup.sortdata: src/content/en/pastebin/2022/07/14/git-cleanup.conf +src/content/en/pastebin/2023/07/22/funcallable-amop.sortdata: src/content/en/pastebin/2023/07/22/funcallable-amop.conf +src/content/en/podcast/2020/12/19/test-entry.sortdata: src/content/en/podcast/2020/12/19/test-entry.conf +src/content/en/screencast/2021/02/07/autoqemu.sortdata: src/content/en/screencast/2021/02/07/autoqemu.conf +src/content/en/til/2020/08/12/filename-timestamp.sortdata: src/content/en/til/2020/08/12/filename-timestamp.conf +src/content/en/til/2020/08/13/code-jekyll.sortdata: src/content/en/til/2020/08/13/code-jekyll.conf +src/content/en/til/2020/08/14/browse-git.sortdata: src/content/en/til/2020/08/14/browse-git.conf +src/content/en/til/2020/08/16/git-search.sortdata: src/content/en/til/2020/08/16/git-search.conf +src/content/en/til/2020/08/28/grep-online.sortdata: src/content/en/til/2020/08/28/grep-online.conf +src/content/en/til/2020/09/04/cli-email-fun-profit.sortdata: src/content/en/til/2020/09/04/cli-email-fun-profit.conf +src/content/en/til/2020/09/05/oldschool-pr.sortdata: src/content/en/til/2020/09/05/oldschool-pr.conf +src/content/en/til/2020/10/11/search-git-history.sortdata: src/content/en/til/2020/10/11/search-git-history.conf +src/content/en/til/2020/11/08/find-broken-symlink.sortdata: src/content/en/til/2020/11/08/find-broken-symlink.conf +src/content/en/til/2020/11/12/diy-nix-bash-ci.sortdata: src/content/en/til/2020/11/12/diy-nix-bash-ci.conf +src/content/en/til/2020/11/12/git-bisect-automation.sortdata: src/content/en/til/2020/11/12/git-bisect-automation.conf +src/content/en/til/2020/11/12/useful-bashvars.sortdata: src/content/en/til/2020/11/12/useful-bashvars.conf +src/content/en/til/2020/11/14/gpodder-media.sortdata: src/content/en/til/2020/11/14/gpodder-media.conf +src/content/en/til/2020/11/30/git-notes-ci.sortdata: src/content/en/til/2020/11/30/git-notes-ci.conf +src/content/en/til/2020/12/15/shellcheck-repo.sortdata: src/content/en/til/2020/12/15/shellcheck-repo.conf +src/content/en/til/2020/12/29/svg.sortdata: src/content/en/til/2020/12/29/svg.conf +src/content/en/til/2021/01/12/curl-awk-emails.sortdata: src/content/en/til/2021/01/12/curl-awk-emails.conf +src/content/en/til/2021/01/17/posix-shebang.sortdata: src/content/en/til/2021/01/17/posix-shebang.conf +src/content/en/til/2021/04/24/cl-generic-precedence.sortdata: src/content/en/til/2021/04/24/cl-generic-precedence.conf +src/content/en/til/2021/04/24/clojure-autocurry.sortdata: src/content/en/til/2021/04/24/clojure-autocurry.conf +src/content/en/til/2021/04/24/scm-nif.sortdata: src/content/en/til/2021/04/24/scm-nif.conf +src/content/en/til/2021/07/23/git-tls-gpg.sortdata: src/content/en/til/2021/07/23/git-tls-gpg.conf +src/content/en/til/2021/08/11/js-bigint-reviver.sortdata: src/content/en/til/2021/08/11/js-bigint-reviver.conf +src/content/pt/hea/2020/08/12/arquivo-datado.sortdata: src/content/pt/hea/2020/08/12/arquivo-datado.conf src/content/en/blog/2018/07/17/guix-nixos.categorydata: src/content/en/blog/2018/07/17/guix-nixos.conf src/content/en/blog/2018/08/01/npm-ci-reproducibility.categorydata: src/content/en/blog/2018/08/01/npm-ci-reproducibility.conf src/content/en/blog/2018/12/21/ytdl-subs.categorydata: src/content/en/blog/2018/12/21/ytdl-subs.conf @@ -816,102 +864,116 @@ src/content/en/blog/2020/11/14/local-first-review.categorydata: src/content/en/b src/content/en/blog/2021/01/26/remembering-ann.categorydata: src/content/en/blog/2021/01/26/remembering-ann.conf src/content/en/blog/2021/02/17/fallible.categorydata: src/content/en/blog/2021/02/17/fallible.conf src/content/en/blog/2021/04/29/relational-review.categorydata: src/content/en/blog/2021/04/29/relational-review.conf -src/content/en/pastebins/2016/04/05/rpn.categorydata: src/content/en/pastebins/2016/04/05/rpn.conf -src/content/en/pastebins/2018/07/11/nix-pinning.categorydata: src/content/en/pastebins/2018/07/11/nix-pinning.conf -src/content/en/pastebins/2018/07/13/guix-nixos-systemd.categorydata: src/content/en/pastebins/2018/07/13/guix-nixos-systemd.conf -src/content/en/pastebins/2018/07/13/guixbuilder-nixos.categorydata: src/content/en/pastebins/2018/07/13/guixbuilder-nixos.conf -src/content/en/pastebins/2018/07/13/guixbuilder.categorydata: src/content/en/pastebins/2018/07/13/guixbuilder.conf -src/content/en/pastebins/2018/07/13/nix-strpad.categorydata: src/content/en/pastebins/2018/07/13/nix-strpad.conf -src/content/en/pastebins/2018/07/25/nix-exps.categorydata: src/content/en/pastebins/2018/07/25/nix-exps.conf -src/content/en/pastebins/2018/07/25/nix-showdrv.categorydata: src/content/en/pastebins/2018/07/25/nix-showdrv.conf -src/content/en/pastebins/2019/06/08/inconsistent-hash.categorydata: src/content/en/pastebins/2019/06/08/inconsistent-hash.conf -src/content/en/pastebins/2019/12/29/raku-tuple-type.categorydata: src/content/en/pastebins/2019/12/29/raku-tuple-type.conf -src/content/en/pastebins/2020/01/04/guix-import-failure.categorydata: src/content/en/pastebins/2020/01/04/guix-import-failure.conf -src/content/en/pastebins/2020/02/14/guix-shebang.categorydata: src/content/en/pastebins/2020/02/14/guix-shebang.conf -src/content/en/pastebins/2020/11/27/guix-build-local.categorydata: src/content/en/pastebins/2020/11/27/guix-build-local.conf -src/content/en/pastebins/2020/12/15/guix-pack-fail.categorydata: src/content/en/pastebins/2020/12/15/guix-pack-fail.conf -src/content/en/pastebins/2021/04/03/naive-slugify-js.categorydata: src/content/en/pastebins/2021/04/03/naive-slugify-js.conf -src/content/en/pastebins/2021/06/08/reading-session-pt1.categorydata: src/content/en/pastebins/2021/06/08/reading-session-pt1.conf -src/content/en/pastebins/2021/06/22/curl-wget.categorydata: src/content/en/pastebins/2021/06/22/curl-wget.conf -src/content/en/pastebins/2021/08/11/h1-spacing.categorydata: src/content/en/pastebins/2021/08/11/h1-spacing.conf -src/content/en/pastebins/2021/09/02/sicp-3-19.categorydata: src/content/en/pastebins/2021/09/02/sicp-3-19.conf -src/content/en/pastebins/2021/09/03/sicp-persistent-queue.categorydata: src/content/en/pastebins/2021/09/03/sicp-persistent-queue.conf -src/content/en/pastebins/2022/07/14/git-cleanup.categorydata: src/content/en/pastebins/2022/07/14/git-cleanup.conf -src/content/en/pastebins/2023/07/22/funcallable-amop.categorydata: src/content/en/pastebins/2023/07/22/funcallable-amop.conf -src/content/en/podcasts/2020/12/19/test-entry.categorydata: src/content/en/podcasts/2020/12/19/test-entry.conf -src/content/en/screencasts/2021/02/07/autoqemu.categorydata: src/content/en/screencasts/2021/02/07/autoqemu.conf -src/content/en/tils/2020/08/12/filename-timestamp.categorydata: src/content/en/tils/2020/08/12/filename-timestamp.conf -src/content/en/tils/2020/08/13/code-jekyll.categorydata: src/content/en/tils/2020/08/13/code-jekyll.conf -src/content/en/tils/2020/08/14/browse-git.categorydata: src/content/en/tils/2020/08/14/browse-git.conf -src/content/en/tils/2020/08/16/git-search.categorydata: src/content/en/tils/2020/08/16/git-search.conf -src/content/en/tils/2020/08/28/grep-online.categorydata: src/content/en/tils/2020/08/28/grep-online.conf -src/content/en/tils/2020/09/04/cli-email-fun-profit.categorydata: src/content/en/tils/2020/09/04/cli-email-fun-profit.conf -src/content/en/tils/2020/09/05/oldschool-pr.categorydata: src/content/en/tils/2020/09/05/oldschool-pr.conf -src/content/en/tils/2020/10/11/search-git-history.categorydata: src/content/en/tils/2020/10/11/search-git-history.conf -src/content/en/tils/2020/11/08/find-broken-symlink.categorydata: src/content/en/tils/2020/11/08/find-broken-symlink.conf -src/content/en/tils/2020/11/12/diy-nix-bash-ci.categorydata: src/content/en/tils/2020/11/12/diy-nix-bash-ci.conf -src/content/en/tils/2020/11/12/git-bisect-automation.categorydata: src/content/en/tils/2020/11/12/git-bisect-automation.conf -src/content/en/tils/2020/11/12/useful-bashvars.categorydata: src/content/en/tils/2020/11/12/useful-bashvars.conf -src/content/en/tils/2020/11/14/gpodder-media.categorydata: src/content/en/tils/2020/11/14/gpodder-media.conf -src/content/en/tils/2020/11/30/git-notes-ci.categorydata: src/content/en/tils/2020/11/30/git-notes-ci.conf -src/content/en/tils/2020/12/15/shellcheck-repo.categorydata: src/content/en/tils/2020/12/15/shellcheck-repo.conf -src/content/en/tils/2020/12/29/svg.categorydata: src/content/en/tils/2020/12/29/svg.conf -src/content/en/tils/2021/01/12/curl-awk-emails.categorydata: src/content/en/tils/2021/01/12/curl-awk-emails.conf -src/content/en/tils/2021/01/17/posix-shebang.categorydata: src/content/en/tils/2021/01/17/posix-shebang.conf -src/content/en/tils/2021/04/24/cl-generic-precedence.categorydata: src/content/en/tils/2021/04/24/cl-generic-precedence.conf -src/content/en/tils/2021/04/24/clojure-autocurry.categorydata: src/content/en/tils/2021/04/24/clojure-autocurry.conf -src/content/en/tils/2021/04/24/scm-nif.categorydata: src/content/en/tils/2021/04/24/scm-nif.conf -src/content/en/tils/2021/07/23/git-tls-gpg.categorydata: src/content/en/tils/2021/07/23/git-tls-gpg.conf -src/content/en/tils/2021/08/11/js-bigint-reviver.categorydata: src/content/en/tils/2021/08/11/js-bigint-reviver.conf +src/content/en/pastebin/2016/04/05/rpn.categorydata: src/content/en/pastebin/2016/04/05/rpn.conf +src/content/en/pastebin/2018/07/11/nix-pinning.categorydata: src/content/en/pastebin/2018/07/11/nix-pinning.conf +src/content/en/pastebin/2018/07/13/guix-nixos-systemd.categorydata: src/content/en/pastebin/2018/07/13/guix-nixos-systemd.conf +src/content/en/pastebin/2018/07/13/guixbuilder-nixos.categorydata: src/content/en/pastebin/2018/07/13/guixbuilder-nixos.conf +src/content/en/pastebin/2018/07/13/guixbuilder.categorydata: src/content/en/pastebin/2018/07/13/guixbuilder.conf +src/content/en/pastebin/2018/07/13/nix-strpad.categorydata: src/content/en/pastebin/2018/07/13/nix-strpad.conf +src/content/en/pastebin/2018/07/25/nix-exps.categorydata: src/content/en/pastebin/2018/07/25/nix-exps.conf +src/content/en/pastebin/2018/07/25/nix-showdrv.categorydata: src/content/en/pastebin/2018/07/25/nix-showdrv.conf +src/content/en/pastebin/2019/06/08/inconsistent-hash.categorydata: src/content/en/pastebin/2019/06/08/inconsistent-hash.conf +src/content/en/pastebin/2019/12/29/raku-tuple-type.categorydata: src/content/en/pastebin/2019/12/29/raku-tuple-type.conf +src/content/en/pastebin/2020/01/04/guix-import-failure.categorydata: src/content/en/pastebin/2020/01/04/guix-import-failure.conf +src/content/en/pastebin/2020/02/14/guix-shebang.categorydata: src/content/en/pastebin/2020/02/14/guix-shebang.conf +src/content/en/pastebin/2020/11/27/guix-build-local.categorydata: src/content/en/pastebin/2020/11/27/guix-build-local.conf +src/content/en/pastebin/2020/12/15/guix-pack-fail.categorydata: src/content/en/pastebin/2020/12/15/guix-pack-fail.conf +src/content/en/pastebin/2021/04/03/naive-slugify-js.categorydata: src/content/en/pastebin/2021/04/03/naive-slugify-js.conf +src/content/en/pastebin/2021/06/08/reading-session-pt1.categorydata: src/content/en/pastebin/2021/06/08/reading-session-pt1.conf +src/content/en/pastebin/2021/06/22/curl-wget.categorydata: src/content/en/pastebin/2021/06/22/curl-wget.conf +src/content/en/pastebin/2021/08/11/h1-spacing.categorydata: src/content/en/pastebin/2021/08/11/h1-spacing.conf +src/content/en/pastebin/2021/09/02/sicp-3-19.categorydata: src/content/en/pastebin/2021/09/02/sicp-3-19.conf +src/content/en/pastebin/2021/09/03/sicp-persistent-queue.categorydata: src/content/en/pastebin/2021/09/03/sicp-persistent-queue.conf +src/content/en/pastebin/2022/07/14/git-cleanup.categorydata: src/content/en/pastebin/2022/07/14/git-cleanup.conf +src/content/en/pastebin/2023/07/22/funcallable-amop.categorydata: src/content/en/pastebin/2023/07/22/funcallable-amop.conf +src/content/en/podcast/2020/12/19/test-entry.categorydata: src/content/en/podcast/2020/12/19/test-entry.conf +src/content/en/screencast/2021/02/07/autoqemu.categorydata: src/content/en/screencast/2021/02/07/autoqemu.conf +src/content/en/til/2020/08/12/filename-timestamp.categorydata: src/content/en/til/2020/08/12/filename-timestamp.conf +src/content/en/til/2020/08/13/code-jekyll.categorydata: src/content/en/til/2020/08/13/code-jekyll.conf +src/content/en/til/2020/08/14/browse-git.categorydata: src/content/en/til/2020/08/14/browse-git.conf +src/content/en/til/2020/08/16/git-search.categorydata: src/content/en/til/2020/08/16/git-search.conf +src/content/en/til/2020/08/28/grep-online.categorydata: src/content/en/til/2020/08/28/grep-online.conf +src/content/en/til/2020/09/04/cli-email-fun-profit.categorydata: src/content/en/til/2020/09/04/cli-email-fun-profit.conf +src/content/en/til/2020/09/05/oldschool-pr.categorydata: src/content/en/til/2020/09/05/oldschool-pr.conf +src/content/en/til/2020/10/11/search-git-history.categorydata: src/content/en/til/2020/10/11/search-git-history.conf +src/content/en/til/2020/11/08/find-broken-symlink.categorydata: src/content/en/til/2020/11/08/find-broken-symlink.conf +src/content/en/til/2020/11/12/diy-nix-bash-ci.categorydata: src/content/en/til/2020/11/12/diy-nix-bash-ci.conf +src/content/en/til/2020/11/12/git-bisect-automation.categorydata: src/content/en/til/2020/11/12/git-bisect-automation.conf +src/content/en/til/2020/11/12/useful-bashvars.categorydata: src/content/en/til/2020/11/12/useful-bashvars.conf +src/content/en/til/2020/11/14/gpodder-media.categorydata: src/content/en/til/2020/11/14/gpodder-media.conf +src/content/en/til/2020/11/30/git-notes-ci.categorydata: src/content/en/til/2020/11/30/git-notes-ci.conf +src/content/en/til/2020/12/15/shellcheck-repo.categorydata: src/content/en/til/2020/12/15/shellcheck-repo.conf +src/content/en/til/2020/12/29/svg.categorydata: src/content/en/til/2020/12/29/svg.conf +src/content/en/til/2021/01/12/curl-awk-emails.categorydata: src/content/en/til/2021/01/12/curl-awk-emails.conf +src/content/en/til/2021/01/17/posix-shebang.categorydata: src/content/en/til/2021/01/17/posix-shebang.conf +src/content/en/til/2021/04/24/cl-generic-precedence.categorydata: src/content/en/til/2021/04/24/cl-generic-precedence.conf +src/content/en/til/2021/04/24/clojure-autocurry.categorydata: src/content/en/til/2021/04/24/clojure-autocurry.conf +src/content/en/til/2021/04/24/scm-nif.categorydata: src/content/en/til/2021/04/24/scm-nif.conf +src/content/en/til/2021/07/23/git-tls-gpg.categorydata: src/content/en/til/2021/07/23/git-tls-gpg.conf +src/content/en/til/2021/08/11/js-bigint-reviver.categorydata: src/content/en/til/2021/08/11/js-bigint-reviver.conf +src/content/pt/hea/2020/08/12/arquivo-datado.categorydata: src/content/pt/hea/2020/08/12/arquivo-datado.conf src/content/en/blog/index.htmlheader src/content/en/blog/index.htmlfooter: src/content/en/blog/index.conf -src/content/en/pastebins/index.htmlheader src/content/en/pastebins/index.htmlfooter: src/content/en/pastebins/index.conf -src/content/en/podcasts/index.htmlheader src/content/en/podcasts/index.htmlfooter: src/content/en/podcasts/index.conf -src/content/en/screencasts/index.htmlheader src/content/en/screencasts/index.htmlfooter: src/content/en/screencasts/index.conf -src/content/en/tils/index.htmlheader src/content/en/tils/index.htmlfooter: src/content/en/tils/index.conf +src/content/en/pastebin/index.htmlheader src/content/en/pastebin/index.htmlfooter: src/content/en/pastebin/index.conf +src/content/en/podcast/index.htmlheader src/content/en/podcast/index.htmlfooter: src/content/en/podcast/index.conf +src/content/en/screencast/index.htmlheader src/content/en/screencast/index.htmlfooter: src/content/en/screencast/index.conf +src/content/en/til/index.htmlheader src/content/en/til/index.htmlfooter: src/content/en/til/index.conf +src/content/pt/hea/index.htmlheader src/content/pt/hea/index.htmlfooter: src/content/pt/hea/index.conf src/content/en/blog/categories.htmlheader src/content/en/blog/categories.htmlfooter: src/content/en/blog/categories.conf -src/content/en/pastebins/categories.htmlheader src/content/en/pastebins/categories.htmlfooter: src/content/en/pastebins/categories.conf -src/content/en/podcasts/categories.htmlheader src/content/en/podcasts/categories.htmlfooter: src/content/en/podcasts/categories.conf -src/content/en/screencasts/categories.htmlheader src/content/en/screencasts/categories.htmlfooter: src/content/en/screencasts/categories.conf -src/content/en/tils/categories.htmlheader src/content/en/tils/categories.htmlfooter: src/content/en/tils/categories.conf +src/content/en/pastebin/categories.htmlheader src/content/en/pastebin/categories.htmlfooter: src/content/en/pastebin/categories.conf +src/content/en/podcast/categories.htmlheader src/content/en/podcast/categories.htmlfooter: src/content/en/podcast/categories.conf +src/content/en/screencast/categories.htmlheader src/content/en/screencast/categories.htmlfooter: src/content/en/screencast/categories.conf +src/content/en/til/categories.htmlheader src/content/en/til/categories.htmlfooter: src/content/en/til/categories.conf +src/content/pt/hea/categorias.htmlheader src/content/pt/hea/categorias.htmlfooter: src/content/pt/hea/categorias.conf src/content/en/blog/index.htmllisting: src/content/en/blog/index.conf -src/content/en/pastebins/index.htmllisting: src/content/en/pastebins/index.conf -src/content/en/podcasts/index.htmllisting: src/content/en/podcasts/index.conf -src/content/en/screencasts/index.htmllisting: src/content/en/screencasts/index.conf -src/content/en/tils/index.htmllisting: src/content/en/tils/index.conf +src/content/en/pastebin/index.htmllisting: src/content/en/pastebin/index.conf +src/content/en/podcast/index.htmllisting: src/content/en/podcast/index.conf +src/content/en/screencast/index.htmllisting: src/content/en/screencast/index.conf +src/content/en/til/index.htmllisting: src/content/en/til/index.conf +src/content/pt/hea/index.htmllisting: src/content/pt/hea/index.conf src/content/en/blog/categories.htmllisting: src/content/en/blog/categories.conf -src/content/en/pastebins/categories.htmllisting: src/content/en/pastebins/categories.conf -src/content/en/podcasts/categories.htmllisting: src/content/en/podcasts/categories.conf -src/content/en/screencasts/categories.htmllisting: src/content/en/screencasts/categories.conf -src/content/en/tils/categories.htmllisting: src/content/en/tils/categories.conf +src/content/en/pastebin/categories.htmllisting: src/content/en/pastebin/categories.conf +src/content/en/podcast/categories.htmllisting: src/content/en/podcast/categories.conf +src/content/en/screencast/categories.htmllisting: src/content/en/screencast/categories.conf +src/content/en/til/categories.htmllisting: src/content/en/til/categories.conf +src/content/pt/hea/categorias.htmllisting: src/content/pt/hea/categorias.conf src/content/en/blog/index.html: src/content/en/blog/index.htmlheader src/content/en/blog/index.htmlfooter -src/content/en/pastebins/index.html: src/content/en/pastebins/index.htmlheader src/content/en/pastebins/index.htmlfooter -src/content/en/podcasts/index.html: src/content/en/podcasts/index.htmlheader src/content/en/podcasts/index.htmlfooter -src/content/en/screencasts/index.html: src/content/en/screencasts/index.htmlheader src/content/en/screencasts/index.htmlfooter -src/content/en/tils/index.html: src/content/en/tils/index.htmlheader src/content/en/tils/index.htmlfooter +src/content/en/pastebin/index.html: src/content/en/pastebin/index.htmlheader src/content/en/pastebin/index.htmlfooter +src/content/en/podcast/index.html: src/content/en/podcast/index.htmlheader src/content/en/podcast/index.htmlfooter +src/content/en/screencast/index.html: src/content/en/screencast/index.htmlheader src/content/en/screencast/index.htmlfooter +src/content/en/til/index.html: src/content/en/til/index.htmlheader src/content/en/til/index.htmlfooter +src/content/pt/hea/index.html: src/content/pt/hea/index.htmlheader src/content/pt/hea/index.htmlfooter src/content/en/blog/categories.html: src/content/en/blog/categories.htmlheader src/content/en/blog/categories.htmlfooter -src/content/en/pastebins/categories.html: src/content/en/pastebins/categories.htmlheader src/content/en/pastebins/categories.htmlfooter -src/content/en/podcasts/categories.html: src/content/en/podcasts/categories.htmlheader src/content/en/podcasts/categories.htmlfooter -src/content/en/screencasts/categories.html: src/content/en/screencasts/categories.htmlheader src/content/en/screencasts/categories.htmlfooter -src/content/en/tils/categories.html: src/content/en/tils/categories.htmlheader src/content/en/tils/categories.htmlfooter +src/content/en/pastebin/categories.html: src/content/en/pastebin/categories.htmlheader src/content/en/pastebin/categories.htmlfooter +src/content/en/podcast/categories.html: src/content/en/podcast/categories.htmlheader src/content/en/podcast/categories.htmlfooter +src/content/en/screencast/categories.html: src/content/en/screencast/categories.htmlheader src/content/en/screencast/categories.htmlfooter +src/content/en/til/categories.html: src/content/en/til/categories.htmlheader src/content/en/til/categories.htmlfooter +src/content/pt/hea/categorias.html: src/content/pt/hea/categorias.htmlheader src/content/pt/hea/categorias.htmlfooter src/content/en/blog/index.html: src/content/en/blog/index.htmllisting src/content/en/blog/index.htmlbody -src/content/en/pastebins/index.html: src/content/en/pastebins/index.htmllisting src/content/en/pastebins/index.htmlbody -src/content/en/podcasts/index.html: src/content/en/podcasts/index.htmllisting src/content/en/podcasts/index.htmlbody -src/content/en/screencasts/index.html: src/content/en/screencasts/index.htmllisting src/content/en/screencasts/index.htmlbody -src/content/en/tils/index.html: src/content/en/tils/index.htmllisting src/content/en/tils/index.htmlbody +src/content/en/pastebin/index.html: src/content/en/pastebin/index.htmllisting src/content/en/pastebin/index.htmlbody +src/content/en/podcast/index.html: src/content/en/podcast/index.htmllisting src/content/en/podcast/index.htmlbody +src/content/en/screencast/index.html: src/content/en/screencast/index.htmllisting src/content/en/screencast/index.htmlbody +src/content/en/til/index.html: src/content/en/til/index.htmllisting src/content/en/til/index.htmlbody +src/content/pt/hea/index.html: src/content/pt/hea/index.htmllisting src/content/pt/hea/index.htmlbody src/content/en/blog/categories.html: src/content/en/blog/categories.htmllisting src/content/en/blog/categories.htmlbody -src/content/en/pastebins/categories.html: src/content/en/pastebins/categories.htmllisting src/content/en/pastebins/categories.htmlbody -src/content/en/podcasts/categories.html: src/content/en/podcasts/categories.htmllisting src/content/en/podcasts/categories.htmlbody -src/content/en/screencasts/categories.html: src/content/en/screencasts/categories.htmllisting src/content/en/screencasts/categories.htmlbody -src/content/en/tils/categories.html: src/content/en/tils/categories.htmllisting src/content/en/tils/categories.htmlbody +src/content/en/pastebin/categories.html: src/content/en/pastebin/categories.htmllisting src/content/en/pastebin/categories.htmlbody +src/content/en/podcast/categories.html: src/content/en/podcast/categories.htmllisting src/content/en/podcast/categories.htmlbody +src/content/en/screencast/categories.html: src/content/en/screencast/categories.htmllisting src/content/en/screencast/categories.htmlbody +src/content/en/til/categories.html: src/content/en/til/categories.htmllisting src/content/en/til/categories.htmlbody +src/content/pt/hea/categorias.html: src/content/pt/hea/categorias.htmllisting src/content/pt/hea/categorias.htmlbody -src/content/en/podcasts/2020/12/19/test-entry.flac.torrent: src/content/en/podcasts/2020/12/19/test-entry.flac -src/content/en/podcasts/2020/12/19/test-entry.ogg.torrent: src/content/en/podcasts/2020/12/19/test-entry.ogg -src/content/en/screencasts/2021/02/07/autoqemu.webm.torrent: src/content/en/screencasts/2021/02/07/autoqemu.webm +src/content/en/podcast/2020/12/19/test-entry.flac.torrent: src/content/en/podcast/2020/12/19/test-entry.flac +src/content/en/podcast/2020/12/19/test-entry.ogg.torrent: src/content/en/podcast/2020/12/19/test-entry.ogg +src/content/en/screencast/2021/02/07/autoqemu.webm.torrent: src/content/en/screencast/2021/02/07/autoqemu.webm +src/content/en/slide/2020/10/19/feature-flags.ps: src/content/en/slide/2020/10/19/feature-flags.adoc +src/content/en/slide/2020/11/14/local-first-hype.ps: src/content/en/slide/2020/11/14/local-first-hype.adoc +src/content/en/slide/2020/10/19/feature-flags.pdf: src/content/en/slide/2020/10/19/feature-flags.ps +src/content/en/slide/2020/11/14/local-first-hype.pdf: src/content/en/slide/2020/11/14/local-first-hype.ps -articles.blog.adoc = \ + +articles.en.blog.adoc = \ src/content/en/blog/2018/07/17/guix-nixos.adoc \ src/content/en/blog/2018/08/01/npm-ci-reproducibility.adoc \ src/content/en/blog/2018/12/21/ytdl-subs.adoc \ @@ -930,161 +992,191 @@ articles.blog.adoc = \ src/content/en/blog/2021/02/17/fallible.adoc \ src/content/en/blog/2021/04/29/relational-review.adoc \ -articles.blog.sortdata = $(articles.blog.adoc:.adoc=.sortdata) -articles.blog.indexentry = $(articles.blog.adoc:.adoc=.indexentry) -articles.blog.feedentry = $(articles.blog.adoc:.adoc=.feedentry) -articles.blog.categorydata = $(articles.blog.adoc:.adoc=.categorydata) +articles.en.blog.sortdata = $(articles.en.blog.adoc:.adoc=.sortdata) +articles.en.blog.indexentry = $(articles.en.blog.adoc:.adoc=.indexentry) +articles.en.blog.feedentry = $(articles.en.blog.adoc:.adoc=.feedentry) +articles.en.blog.categorydata = $(articles.en.blog.adoc:.adoc=.categorydata) src/content/en/blog/sortdata.txt: deps.mk - printf '%s\n' $(articles.blog.sortdata) > $@ + printf '%s\n' $(articles.en.blog.sortdata) > $@ src/content/en/blog/feed.xml: src/content/en/blog/sortdata.txt -src/content/en/blog/feed.xml: $(articles.blog.sortdata) +src/content/en/blog/feed.xml: $(articles.en.blog.sortdata) src/content/en/blog/index.htmllisting: src/content/en/blog/sortdata.txt -src/content/en/blog/index.htmllisting: $(articles.blog.sortdata) +src/content/en/blog/index.htmllisting: $(articles.en.blog.sortdata) src/content/en/blog/categories.htmllisting: src/content/en/blog/sortdata.txt -src/content/en/blog/categories.htmllisting: $(articles.blog.sortdata) +src/content/en/blog/categories.htmllisting: $(articles.en.blog.sortdata) src/content/en/blog/categories.txt: src/content/en/blog/sortdata.txt -src/content/en/blog/categories.txt: $(articles.blog.sortdata) -src/content/en/blog/index.htmllisting src/content/en/blog/categories.htmllisting: $(articles.blog.indexentry) -src/content/en/blog/categories.txt: $(articles.blog.categorydata) -src/content/en/blog/categories.txt src/content/en/blog/feed.xml: $(articles.blog.feedentry) +src/content/en/blog/categories.txt: $(articles.en.blog.sortdata) +src/content/en/blog/index.htmllisting src/content/en/blog/categories.htmllisting: $(articles.en.blog.indexentry) +src/content/en/blog/categories.txt: $(articles.en.blog.categorydata) +src/content/en/blog/categories.txt src/content/en/blog/feed.xml: $(articles.en.blog.feedentry) src/content/en/blog/categories.htmllisting src/content/en/blog/categories.xml: src/content/en/blog/categories.txt +src/content/en/blog/categories.xml.gz: src/content/en/blog/categories.xml + + +articles.en.pastebin.adoc = \ + src/content/en/pastebin/2016/04/05/rpn.adoc \ + src/content/en/pastebin/2018/07/11/nix-pinning.adoc \ + src/content/en/pastebin/2018/07/13/guix-nixos-systemd.adoc \ + src/content/en/pastebin/2018/07/13/guixbuilder-nixos.adoc \ + src/content/en/pastebin/2018/07/13/guixbuilder.adoc \ + src/content/en/pastebin/2018/07/13/nix-strpad.adoc \ + src/content/en/pastebin/2018/07/25/nix-exps.adoc \ + src/content/en/pastebin/2018/07/25/nix-showdrv.adoc \ + src/content/en/pastebin/2019/06/08/inconsistent-hash.adoc \ + src/content/en/pastebin/2019/12/29/raku-tuple-type.adoc \ + src/content/en/pastebin/2020/01/04/guix-import-failure.adoc \ + src/content/en/pastebin/2020/02/14/guix-shebang.adoc \ + src/content/en/pastebin/2020/11/27/guix-build-local.adoc \ + src/content/en/pastebin/2020/12/15/guix-pack-fail.adoc \ + src/content/en/pastebin/2021/04/03/naive-slugify-js.adoc \ + src/content/en/pastebin/2021/06/08/reading-session-pt1.adoc \ + src/content/en/pastebin/2021/06/22/curl-wget.adoc \ + src/content/en/pastebin/2021/08/11/h1-spacing.adoc \ + src/content/en/pastebin/2021/09/02/sicp-3-19.adoc \ + src/content/en/pastebin/2021/09/03/sicp-persistent-queue.adoc \ + src/content/en/pastebin/2022/07/14/git-cleanup.adoc \ + src/content/en/pastebin/2023/07/22/funcallable-amop.adoc \ + +articles.en.pastebin.sortdata = $(articles.en.pastebin.adoc:.adoc=.sortdata) +articles.en.pastebin.indexentry = $(articles.en.pastebin.adoc:.adoc=.indexentry) +articles.en.pastebin.feedentry = $(articles.en.pastebin.adoc:.adoc=.feedentry) +articles.en.pastebin.categorydata = $(articles.en.pastebin.adoc:.adoc=.categorydata) +src/content/en/pastebin/sortdata.txt: deps.mk + printf '%s\n' $(articles.en.pastebin.sortdata) > $@ + +src/content/en/pastebin/feed.xml: src/content/en/pastebin/sortdata.txt +src/content/en/pastebin/feed.xml: $(articles.en.pastebin.sortdata) +src/content/en/pastebin/index.htmllisting: src/content/en/pastebin/sortdata.txt +src/content/en/pastebin/index.htmllisting: $(articles.en.pastebin.sortdata) +src/content/en/pastebin/categories.htmllisting: src/content/en/pastebin/sortdata.txt +src/content/en/pastebin/categories.htmllisting: $(articles.en.pastebin.sortdata) +src/content/en/pastebin/categories.txt: src/content/en/pastebin/sortdata.txt +src/content/en/pastebin/categories.txt: $(articles.en.pastebin.sortdata) +src/content/en/pastebin/index.htmllisting src/content/en/pastebin/categories.htmllisting: $(articles.en.pastebin.indexentry) +src/content/en/pastebin/categories.txt: $(articles.en.pastebin.categorydata) +src/content/en/pastebin/categories.txt src/content/en/pastebin/feed.xml: $(articles.en.pastebin.feedentry) +src/content/en/pastebin/categories.htmllisting src/content/en/pastebin/categories.xml: src/content/en/pastebin/categories.txt +src/content/en/pastebin/categories.xml.gz: src/content/en/pastebin/categories.xml -articles.pastebins.adoc = \ - src/content/en/pastebins/2016/04/05/rpn.adoc \ - src/content/en/pastebins/2018/07/11/nix-pinning.adoc \ - src/content/en/pastebins/2018/07/13/guix-nixos-systemd.adoc \ - src/content/en/pastebins/2018/07/13/guixbuilder-nixos.adoc \ - src/content/en/pastebins/2018/07/13/guixbuilder.adoc \ - src/content/en/pastebins/2018/07/13/nix-strpad.adoc \ - src/content/en/pastebins/2018/07/25/nix-exps.adoc \ - src/content/en/pastebins/2018/07/25/nix-showdrv.adoc \ - src/content/en/pastebins/2019/06/08/inconsistent-hash.adoc \ - src/content/en/pastebins/2019/12/29/raku-tuple-type.adoc \ - src/content/en/pastebins/2020/01/04/guix-import-failure.adoc \ - src/content/en/pastebins/2020/02/14/guix-shebang.adoc \ - src/content/en/pastebins/2020/11/27/guix-build-local.adoc \ - src/content/en/pastebins/2020/12/15/guix-pack-fail.adoc \ - src/content/en/pastebins/2021/04/03/naive-slugify-js.adoc \ - src/content/en/pastebins/2021/06/08/reading-session-pt1.adoc \ - src/content/en/pastebins/2021/06/22/curl-wget.adoc \ - src/content/en/pastebins/2021/08/11/h1-spacing.adoc \ - src/content/en/pastebins/2021/09/02/sicp-3-19.adoc \ - src/content/en/pastebins/2021/09/03/sicp-persistent-queue.adoc \ - src/content/en/pastebins/2022/07/14/git-cleanup.adoc \ - src/content/en/pastebins/2023/07/22/funcallable-amop.adoc \ +articles.en.podcast.adoc = \ + src/content/en/podcast/2020/12/19/test-entry.adoc \ -articles.pastebins.sortdata = $(articles.pastebins.adoc:.adoc=.sortdata) -articles.pastebins.indexentry = $(articles.pastebins.adoc:.adoc=.indexentry) -articles.pastebins.feedentry = $(articles.pastebins.adoc:.adoc=.feedentry) -articles.pastebins.categorydata = $(articles.pastebins.adoc:.adoc=.categorydata) -src/content/en/pastebins/sortdata.txt: deps.mk - printf '%s\n' $(articles.pastebins.sortdata) > $@ +articles.en.podcast.sortdata = $(articles.en.podcast.adoc:.adoc=.sortdata) +articles.en.podcast.indexentry = $(articles.en.podcast.adoc:.adoc=.indexentry) +articles.en.podcast.feedentry = $(articles.en.podcast.adoc:.adoc=.feedentry) +articles.en.podcast.categorydata = $(articles.en.podcast.adoc:.adoc=.categorydata) +src/content/en/podcast/sortdata.txt: deps.mk + printf '%s\n' $(articles.en.podcast.sortdata) > $@ -src/content/en/pastebins/feed.xml: src/content/en/pastebins/sortdata.txt -src/content/en/pastebins/feed.xml: $(articles.pastebins.sortdata) -src/content/en/pastebins/index.htmllisting: src/content/en/pastebins/sortdata.txt -src/content/en/pastebins/index.htmllisting: $(articles.pastebins.sortdata) -src/content/en/pastebins/categories.htmllisting: src/content/en/pastebins/sortdata.txt -src/content/en/pastebins/categories.htmllisting: $(articles.pastebins.sortdata) -src/content/en/pastebins/categories.txt: src/content/en/pastebins/sortdata.txt -src/content/en/pastebins/categories.txt: $(articles.pastebins.sortdata) -src/content/en/pastebins/index.htmllisting src/content/en/pastebins/categories.htmllisting: $(articles.pastebins.indexentry) -src/content/en/pastebins/categories.txt: $(articles.pastebins.categorydata) -src/content/en/pastebins/categories.txt src/content/en/pastebins/feed.xml: $(articles.pastebins.feedentry) -src/content/en/pastebins/categories.htmllisting src/content/en/pastebins/categories.xml: src/content/en/pastebins/categories.txt +src/content/en/podcast/feed.xml: src/content/en/podcast/sortdata.txt +src/content/en/podcast/feed.xml: $(articles.en.podcast.sortdata) +src/content/en/podcast/index.htmllisting: src/content/en/podcast/sortdata.txt +src/content/en/podcast/index.htmllisting: $(articles.en.podcast.sortdata) +src/content/en/podcast/categories.htmllisting: src/content/en/podcast/sortdata.txt +src/content/en/podcast/categories.htmllisting: $(articles.en.podcast.sortdata) +src/content/en/podcast/categories.txt: src/content/en/podcast/sortdata.txt +src/content/en/podcast/categories.txt: $(articles.en.podcast.sortdata) +src/content/en/podcast/index.htmllisting src/content/en/podcast/categories.htmllisting: $(articles.en.podcast.indexentry) +src/content/en/podcast/categories.txt: $(articles.en.podcast.categorydata) +src/content/en/podcast/categories.txt src/content/en/podcast/feed.xml: $(articles.en.podcast.feedentry) +src/content/en/podcast/categories.htmllisting src/content/en/podcast/categories.xml: src/content/en/podcast/categories.txt +src/content/en/podcast/categories.xml.gz: src/content/en/podcast/categories.xml -articles.podcasts.adoc = \ - src/content/en/podcasts/2020/12/19/test-entry.adoc \ +articles.en.screencast.adoc = \ + src/content/en/screencast/2021/02/07/autoqemu.adoc \ -articles.podcasts.sortdata = $(articles.podcasts.adoc:.adoc=.sortdata) -articles.podcasts.indexentry = $(articles.podcasts.adoc:.adoc=.indexentry) -articles.podcasts.feedentry = $(articles.podcasts.adoc:.adoc=.feedentry) -articles.podcasts.categorydata = $(articles.podcasts.adoc:.adoc=.categorydata) -src/content/en/podcasts/sortdata.txt: deps.mk - printf '%s\n' $(articles.podcasts.sortdata) > $@ +articles.en.screencast.sortdata = $(articles.en.screencast.adoc:.adoc=.sortdata) +articles.en.screencast.indexentry = $(articles.en.screencast.adoc:.adoc=.indexentry) +articles.en.screencast.feedentry = $(articles.en.screencast.adoc:.adoc=.feedentry) +articles.en.screencast.categorydata = $(articles.en.screencast.adoc:.adoc=.categorydata) +src/content/en/screencast/sortdata.txt: deps.mk + printf '%s\n' $(articles.en.screencast.sortdata) > $@ -src/content/en/podcasts/feed.xml: src/content/en/podcasts/sortdata.txt -src/content/en/podcasts/feed.xml: $(articles.podcasts.sortdata) -src/content/en/podcasts/index.htmllisting: src/content/en/podcasts/sortdata.txt -src/content/en/podcasts/index.htmllisting: $(articles.podcasts.sortdata) -src/content/en/podcasts/categories.htmllisting: src/content/en/podcasts/sortdata.txt -src/content/en/podcasts/categories.htmllisting: $(articles.podcasts.sortdata) -src/content/en/podcasts/categories.txt: src/content/en/podcasts/sortdata.txt -src/content/en/podcasts/categories.txt: $(articles.podcasts.sortdata) -src/content/en/podcasts/index.htmllisting src/content/en/podcasts/categories.htmllisting: $(articles.podcasts.indexentry) -src/content/en/podcasts/categories.txt: $(articles.podcasts.categorydata) -src/content/en/podcasts/categories.txt src/content/en/podcasts/feed.xml: $(articles.podcasts.feedentry) -src/content/en/podcasts/categories.htmllisting src/content/en/podcasts/categories.xml: src/content/en/podcasts/categories.txt +src/content/en/screencast/feed.xml: src/content/en/screencast/sortdata.txt +src/content/en/screencast/feed.xml: $(articles.en.screencast.sortdata) +src/content/en/screencast/index.htmllisting: src/content/en/screencast/sortdata.txt +src/content/en/screencast/index.htmllisting: $(articles.en.screencast.sortdata) +src/content/en/screencast/categories.htmllisting: src/content/en/screencast/sortdata.txt +src/content/en/screencast/categories.htmllisting: $(articles.en.screencast.sortdata) +src/content/en/screencast/categories.txt: src/content/en/screencast/sortdata.txt +src/content/en/screencast/categories.txt: $(articles.en.screencast.sortdata) +src/content/en/screencast/index.htmllisting src/content/en/screencast/categories.htmllisting: $(articles.en.screencast.indexentry) +src/content/en/screencast/categories.txt: $(articles.en.screencast.categorydata) +src/content/en/screencast/categories.txt src/content/en/screencast/feed.xml: $(articles.en.screencast.feedentry) +src/content/en/screencast/categories.htmllisting src/content/en/screencast/categories.xml: src/content/en/screencast/categories.txt +src/content/en/screencast/categories.xml.gz: src/content/en/screencast/categories.xml -articles.screencasts.adoc = \ - src/content/en/screencasts/2021/02/07/autoqemu.adoc \ +articles.en.til.adoc = \ + src/content/en/til/2020/08/12/filename-timestamp.adoc \ + src/content/en/til/2020/08/13/code-jekyll.adoc \ + src/content/en/til/2020/08/14/browse-git.adoc \ + src/content/en/til/2020/08/16/git-search.adoc \ + src/content/en/til/2020/08/28/grep-online.adoc \ + src/content/en/til/2020/09/04/cli-email-fun-profit.adoc \ + src/content/en/til/2020/09/05/oldschool-pr.adoc \ + src/content/en/til/2020/10/11/search-git-history.adoc \ + src/content/en/til/2020/11/08/find-broken-symlink.adoc \ + src/content/en/til/2020/11/12/diy-nix-bash-ci.adoc \ + src/content/en/til/2020/11/12/git-bisect-automation.adoc \ + src/content/en/til/2020/11/12/useful-bashvars.adoc \ + src/content/en/til/2020/11/14/gpodder-media.adoc \ + src/content/en/til/2020/11/30/git-notes-ci.adoc \ + src/content/en/til/2020/12/15/shellcheck-repo.adoc \ + src/content/en/til/2020/12/29/svg.adoc \ + src/content/en/til/2021/01/12/curl-awk-emails.adoc \ + src/content/en/til/2021/01/17/posix-shebang.adoc \ + src/content/en/til/2021/04/24/cl-generic-precedence.adoc \ + src/content/en/til/2021/04/24/clojure-autocurry.adoc \ + src/content/en/til/2021/04/24/scm-nif.adoc \ + src/content/en/til/2021/07/23/git-tls-gpg.adoc \ + src/content/en/til/2021/08/11/js-bigint-reviver.adoc \ -articles.screencasts.sortdata = $(articles.screencasts.adoc:.adoc=.sortdata) -articles.screencasts.indexentry = $(articles.screencasts.adoc:.adoc=.indexentry) -articles.screencasts.feedentry = $(articles.screencasts.adoc:.adoc=.feedentry) -articles.screencasts.categorydata = $(articles.screencasts.adoc:.adoc=.categorydata) -src/content/en/screencasts/sortdata.txt: deps.mk - printf '%s\n' $(articles.screencasts.sortdata) > $@ +articles.en.til.sortdata = $(articles.en.til.adoc:.adoc=.sortdata) +articles.en.til.indexentry = $(articles.en.til.adoc:.adoc=.indexentry) +articles.en.til.feedentry = $(articles.en.til.adoc:.adoc=.feedentry) +articles.en.til.categorydata = $(articles.en.til.adoc:.adoc=.categorydata) +src/content/en/til/sortdata.txt: deps.mk + printf '%s\n' $(articles.en.til.sortdata) > $@ -src/content/en/screencasts/feed.xml: src/content/en/screencasts/sortdata.txt -src/content/en/screencasts/feed.xml: $(articles.screencasts.sortdata) -src/content/en/screencasts/index.htmllisting: src/content/en/screencasts/sortdata.txt -src/content/en/screencasts/index.htmllisting: $(articles.screencasts.sortdata) -src/content/en/screencasts/categories.htmllisting: src/content/en/screencasts/sortdata.txt -src/content/en/screencasts/categories.htmllisting: $(articles.screencasts.sortdata) -src/content/en/screencasts/categories.txt: src/content/en/screencasts/sortdata.txt -src/content/en/screencasts/categories.txt: $(articles.screencasts.sortdata) -src/content/en/screencasts/index.htmllisting src/content/en/screencasts/categories.htmllisting: $(articles.screencasts.indexentry) -src/content/en/screencasts/categories.txt: $(articles.screencasts.categorydata) -src/content/en/screencasts/categories.txt src/content/en/screencasts/feed.xml: $(articles.screencasts.feedentry) -src/content/en/screencasts/categories.htmllisting src/content/en/screencasts/categories.xml: src/content/en/screencasts/categories.txt +src/content/en/til/feed.xml: src/content/en/til/sortdata.txt +src/content/en/til/feed.xml: $(articles.en.til.sortdata) +src/content/en/til/index.htmllisting: src/content/en/til/sortdata.txt +src/content/en/til/index.htmllisting: $(articles.en.til.sortdata) +src/content/en/til/categories.htmllisting: src/content/en/til/sortdata.txt +src/content/en/til/categories.htmllisting: $(articles.en.til.sortdata) +src/content/en/til/categories.txt: src/content/en/til/sortdata.txt +src/content/en/til/categories.txt: $(articles.en.til.sortdata) +src/content/en/til/index.htmllisting src/content/en/til/categories.htmllisting: $(articles.en.til.indexentry) +src/content/en/til/categories.txt: $(articles.en.til.categorydata) +src/content/en/til/categories.txt src/content/en/til/feed.xml: $(articles.en.til.feedentry) +src/content/en/til/categories.htmllisting src/content/en/til/categories.xml: src/content/en/til/categories.txt +src/content/en/til/categories.xml.gz: src/content/en/til/categories.xml -articles.tils.adoc = \ - src/content/en/tils/2020/08/12/filename-timestamp.adoc \ - src/content/en/tils/2020/08/13/code-jekyll.adoc \ - src/content/en/tils/2020/08/14/browse-git.adoc \ - src/content/en/tils/2020/08/16/git-search.adoc \ - src/content/en/tils/2020/08/28/grep-online.adoc \ - src/content/en/tils/2020/09/04/cli-email-fun-profit.adoc \ - src/content/en/tils/2020/09/05/oldschool-pr.adoc \ - src/content/en/tils/2020/10/11/search-git-history.adoc \ - src/content/en/tils/2020/11/08/find-broken-symlink.adoc \ - src/content/en/tils/2020/11/12/diy-nix-bash-ci.adoc \ - src/content/en/tils/2020/11/12/git-bisect-automation.adoc \ - src/content/en/tils/2020/11/12/useful-bashvars.adoc \ - src/content/en/tils/2020/11/14/gpodder-media.adoc \ - src/content/en/tils/2020/11/30/git-notes-ci.adoc \ - src/content/en/tils/2020/12/15/shellcheck-repo.adoc \ - src/content/en/tils/2020/12/29/svg.adoc \ - src/content/en/tils/2021/01/12/curl-awk-emails.adoc \ - src/content/en/tils/2021/01/17/posix-shebang.adoc \ - src/content/en/tils/2021/04/24/cl-generic-precedence.adoc \ - src/content/en/tils/2021/04/24/clojure-autocurry.adoc \ - src/content/en/tils/2021/04/24/scm-nif.adoc \ - src/content/en/tils/2021/07/23/git-tls-gpg.adoc \ - src/content/en/tils/2021/08/11/js-bigint-reviver.adoc \ +articles.pt.hea.adoc = \ + src/content/pt/hea/2020/08/12/arquivo-datado.adoc \ -articles.tils.sortdata = $(articles.tils.adoc:.adoc=.sortdata) -articles.tils.indexentry = $(articles.tils.adoc:.adoc=.indexentry) -articles.tils.feedentry = $(articles.tils.adoc:.adoc=.feedentry) -articles.tils.categorydata = $(articles.tils.adoc:.adoc=.categorydata) -src/content/en/tils/sortdata.txt: deps.mk - printf '%s\n' $(articles.tils.sortdata) > $@ +articles.pt.hea.sortdata = $(articles.pt.hea.adoc:.adoc=.sortdata) +articles.pt.hea.indexentry = $(articles.pt.hea.adoc:.adoc=.indexentry) +articles.pt.hea.feedentry = $(articles.pt.hea.adoc:.adoc=.feedentry) +articles.pt.hea.categorydata = $(articles.pt.hea.adoc:.adoc=.categorydata) +src/content/pt/hea/sortdata.txt: deps.mk + printf '%s\n' $(articles.pt.hea.sortdata) > $@ -src/content/en/tils/feed.xml: src/content/en/tils/sortdata.txt -src/content/en/tils/feed.xml: $(articles.tils.sortdata) -src/content/en/tils/index.htmllisting: src/content/en/tils/sortdata.txt -src/content/en/tils/index.htmllisting: $(articles.tils.sortdata) -src/content/en/tils/categories.htmllisting: src/content/en/tils/sortdata.txt -src/content/en/tils/categories.htmllisting: $(articles.tils.sortdata) -src/content/en/tils/categories.txt: src/content/en/tils/sortdata.txt -src/content/en/tils/categories.txt: $(articles.tils.sortdata) -src/content/en/tils/index.htmllisting src/content/en/tils/categories.htmllisting: $(articles.tils.indexentry) -src/content/en/tils/categories.txt: $(articles.tils.categorydata) -src/content/en/tils/categories.txt src/content/en/tils/feed.xml: $(articles.tils.feedentry) -src/content/en/tils/categories.htmllisting src/content/en/tils/categories.xml: src/content/en/tils/categories.txt +src/content/pt/hea/feed.xml: src/content/pt/hea/sortdata.txt +src/content/pt/hea/feed.xml: $(articles.pt.hea.sortdata) +src/content/pt/hea/index.htmllisting: src/content/pt/hea/sortdata.txt +src/content/pt/hea/index.htmllisting: $(articles.pt.hea.sortdata) +src/content/pt/hea/categorias.htmllisting: src/content/pt/hea/sortdata.txt +src/content/pt/hea/categorias.htmllisting: $(articles.pt.hea.sortdata) +src/content/pt/hea/categorias.txt: src/content/pt/hea/sortdata.txt +src/content/pt/hea/categorias.txt: $(articles.pt.hea.sortdata) +src/content/pt/hea/index.htmllisting src/content/pt/hea/categorias.htmllisting: $(articles.pt.hea.indexentry) +src/content/pt/hea/categorias.txt: $(articles.pt.hea.categorydata) +src/content/pt/hea/categorias.txt src/content/pt/hea/feed.xml: $(articles.pt.hea.feedentry) +src/content/pt/hea/categorias.htmllisting src/content/pt/hea/categorias.xml: src/content/pt/hea/categorias.txt +src/content/pt/hea/categorias.xml.gz: src/content/pt/hea/categorias.xml diff --git a/meta.capim b/meta.capim new file mode 100644 index 0000000..a64fa37 --- /dev/null +++ b/meta.capim @@ -0,0 +1,11 @@ +{ + :description "Blog and personal website (euandre.org)." + :baseurl "https://euandre.org" + :email "eu@euandre.org" + :dependencies { + :build #{ + eslaides + mkwb + } + } +} diff --git a/meta.json b/meta.json deleted file mode 100644 index b5a8522..0000000 --- a/meta.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "description": "Blog and personal website (euandre.org).", - "baseurl": "https://euandre.org", - "email": "eu@euandre.org" -} @@ -9,19 +9,23 @@ normalize() { } pages() { - find src/pages/*/*.adoc -type f | normalize + find src/pages/*/*.adoc -type f | normalize } articles() { - find src/collections/*/*/ -type f -name '*.adoc' | normalize + find src/collections/*/*/*/ -type f -name '*.adoc' | normalize +} + +slides() { + find src/slides/*/*/ -type f -name '*.adoc' | normalize } indexes() { - find src/collections/*/index.adoc | normalize + find src/collections/*/*/index.adoc | normalize } categories() { - find src/collections/*/categories.adoc | normalize + grep -l '^:type: categories$' src/collections/*/*/*.adoc | normalize } media() { @@ -55,22 +59,25 @@ files() { } -pages | varlist 'pages.adoc' -articles | varlist 'articles.adoc' +pages | varlist 'pages.adoc' +articles | varlist 'articles.adoc' +slides | varlist 'slides.adoc' categories | varlist 'categories.adoc' -indexes | varlist 'indexes.adoc' +indexes | varlist 'indexes.adoc' indexes | sed 's|/index\.adoc$|/feed.xml|' | varlist 'feeds.xml' find src/content/img/ -name '*.svg' | varlist 'images.svg' media | varlist 'sources.media' tarballs | varlist 'sources.tarballs' extras | varlist 'sources.extras' +find po/*.po po/*.pot | varlist 'sources.po' { files | sed 's/^\(.*\)\.adoc$/\1.html/' files | sed 's/^\(.*\)\.adoc$/\1.snippets/' - indexes | sed 's|^\(.*\)/index\.adoc$|\1/categories.xml|' + slides | sed 's/^\(.*\)\.adoc$/\1.pdf/' indexes | sed 's|^\(.*\)/index\.adoc$|\1/feed.xml|' + media | sed 's/^\(.*\)$/\1.torrent/' } | sed 's/^\(.*\)$/\1.gz:\t\1/' printf '\n' @@ -94,48 +101,66 @@ listings | sed 's/^\(.*\)\.adoc$/\1.html:\t\1.htmlheader\t\1.htmlfooter/' listings | sed 's/^\(.*\)\.adoc$/\1.html:\t\1.htmllisting\t\1.htmlbody/' printf '\n' -media | sed 's/\(.*\)$/\1.torrent:\t\1/' +media | sed 's/^\(.*\)$/\1.torrent:\t\1/' +printf '\n' + +slides | sed 's/^\(.*\)\.adoc$/\1.ps:\t\1.adoc/' +slides | sed 's/^\(.*\)\.adoc$/\1.pdf:\t\1.ps/' printf '\n' -for colllink in src/collections/*; do + + +collectionentries() { + langlink="$1" + colllink="$2" + lang="$(basename "$langlink")" c="$(printf '%s' "$colllink" | normalize)" + plural="$(cat src/names/categories/"$lang".txt)" printf '\n\n' name="$(basename "$c")" - find "$c"/*/ -type f -name '*.adoc' | varlist "articles.$name.adoc" - art=articles # so things fit in 80 columns + art=articles."$lang" + find "$c"/*/ -type f -name '*.adoc' | varlist "$art.$name.adoc" echo "$art.$name.sortdata = \$($art.$name.adoc:.adoc=.sortdata)" echo "$art.$name.indexentry = \$($art.$name.adoc:.adoc=.indexentry)" echo "$art.$name.feedentry = \$($art.$name.adoc:.adoc=.feedentry)" echo "$art.$name.categorydata = \$($art.$name.adoc:.adoc=.categorydata)" - printf '%s/sortdata.txt:\tdeps.mk\n' "$c" - printf '\tprintf %s $(articles.%s.sortdata) > $@\n\n' "'%s\n'" "$name" + printf '\tprintf %s $(%s.%s.sortdata) > $@\n\n' "'%s\n'" "$art" "$name" - listings=' + listings=" feed.xml index.htmllisting - categories.htmllisting - categories.txt - ' + $plural.htmllisting + $plural.txt + " for lst in $listings; do - printf '%s/%s:\t%s/sortdata.txt\n' "$c" "$lst" "$c" - printf '%s/%s:\t$(articles.%s.sortdata)\n' "$c" "$lst" "$name" + printf '%s/%s:\t%s/sortdata.txt\n' "$c" "$lst" "$c" + printf '%s/%s:\t$(%s.%s.sortdata)\n' "$c" "$lst" "$art" "$name" done printf '%s/index.htmllisting\t' "$c" - printf '%s/categories.htmllisting:\t' "$c" - printf '$(articles.%s.indexentry)\n' "$name" + printf '%s/%s.htmllisting:\t' "$c" "$plural" + printf '$(%s.%s.indexentry)\n' "$art" "$name" - printf '%s/categories.txt:\t' "$c" - printf '$(articles.%s.categorydata)\n' "$name" + printf '%s/%s.txt:\t' "$c" "$plural" + printf '$(%s.%s.categorydata)\n' "$art" "$name" - printf '%s/categories.txt\t' "$c" + printf '%s/%s.txt\t' "$c" "$plural" printf '%s/feed.xml:\t' "$c" - printf '$(articles.%s.feedentry)\n' "$name" + printf '$(%s.%s.feedentry)\n' "$art" "$name" + + printf '%s/%s.htmllisting\t' "$c" "$plural" + printf '%s/%s.xml:\t' "$c" "$plural" + printf '%s/%s.txt\n' "$c" "$plural" + + printf '%s/%s.xml.gz:\t%s/%s.xml\n' "$c" "$plural" "$c" "$plural" +} + - printf '%s/categories.htmllisting\t' "$c" - printf '%s/categories.xml:\t' "$c" - printf '%s/categories.txt\n' "$c" +for langlink in src/collections/*; do + for colllink in "$langlink"/*; do + collectionentries "$langlink" "$colllink" + done done diff --git a/po/de.po b/po/de.po new file mode 100644 index 0000000..3524d73 --- /dev/null +++ b/po/de.po @@ -0,0 +1,161 @@ +# German translations for PACKAGE package +# Copyright (C) 2025 Free Software Foundation, Inc. +# This file is distributed under the same license as the PACKAGE package. +# Automatically generated, 2025. +# +msgid "" +msgstr "" +"Project-Id-Version: PACKAGE VERSION\n" +"POT-Creation-Date: 2025-05-01 19:02-0300\n" +"PO-Revision-Date: 2025-04-29 19:46-0300\n" +"Last-Translator: Automatically generated\n" +"Language-Team: none\n" +"Language: de\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#. type: Plain text +#: src/headers/ref.txt:2 +msgid "en/blog/\tBlog" +msgstr "" + +#. type: Plain text +#: src/headers/ref.txt:4 +msgid "en/til/\tTIL" +msgstr "" + +#. type: Plain text +#: src/headers/ref.txt:6 +msgid "en/podcast/\tPodcasts" +msgstr "" + +#. type: Plain text +#: src/headers/ref.txt:8 +msgid "en/screencast/\tScreencasts" +msgstr "" + +#. type: Plain text +#: src/headers/ref.txt:10 +msgid "en/pastebin/\tPastebins" +msgstr "" + +#. type: Plain text +#: src/headers/ref.txt:12 +msgid "en/slide/\tSlides" +msgstr "" + +#. type: Plain text +#: src/headers/ref.txt:13 +msgid "en/about.html\tAbout" +msgstr "" + +#. type: Plain text +#: src/names/categories/ref.txt:1 +msgid "categories" +msgstr "" + +#. type: Plain text +#: src/names/category/ref.txt:1 +msgid "category" +msgstr "" + +#. type: Title = +#: src/content/en/about.adoc:1 +#, no-wrap +msgid "About" +msgstr "" + +#. type: Plain text +#: src/content/en/about.adoc:9 +msgid "" +"Hi, I'm EuAndreh. I write software and, occasionally, music. You can find " +"my contact information in the footer of this page, or mail my {mailto}" +"[public inbox] ({archive}[archive])." +msgstr "" + +#. type: Plain text +#: src/content/en/about.adoc:11 +msgid "" +"This is my personal website where I write articles, publish software and " +"more related work." +msgstr "" + +#. type: Title = +#: src/content/en/til/index.adoc:1 +#, no-wrap +msgid "Today I Learned" +msgstr "" + +#. type: Plain text +#: src/content/en/til/index.adoc:6 +msgid "**T**oday **I** **L**earned: small entries of useful knowledge." +msgstr "" + +#. type: Plain text +#: src/content/en/til/index.adoc:7 +msgid "Shameless rip-off of {anna-e-so}[Anna e só]." +msgstr "" + +#. type: Title = +#: src/content/en/til/categories.adoc:1 +#, no-wrap +msgid "Articles by category" +msgstr "" + +#. type: Title = +#: src/content/en/til/2020/08/12/filename-timestamp.adoc:1 +#, no-wrap +msgid "Simple filename timestamp" +msgstr "" + +#. type: Plain text +#: src/content/en/til/2020/08/12/filename-timestamp.adoc:7 +msgid "" +"When writing Jekyll posts or creating log files with dates on them, I " +"usually struggle with finding a direct way of accomplishing that. There's a " +"simple solution: `date -I`." +msgstr "" + +#. type: delimited block - +#: src/content/en/til/2020/08/12/filename-timestamp.adoc:12 +#, no-wrap +msgid "" +"./my-program.sh > my-program.$(date -I).log\n" +"cp post-template.md _posts/$(date -I)-post-slug.md\n" +msgstr "" + +#. type: Plain text +#: src/content/en/til/2020/08/12/filename-timestamp.adoc:16 +msgid "" +"Using this built-in GNU/Linux tool allows you to `touch $(date -I).md` to " +"readily create a `2020-08-12.md` file." +msgstr "" + +#. type: Plain text +#: src/content/en/til/2020/08/12/filename-timestamp.adoc:20 +msgid "" +"I always had to read `man date` or search the web over and over, and after " +"doing this repeatedly it became clear that both `date -I` and `date -Is` " +"(`s` here stands for seconds) are the thing that I'm looking for 95% of the " +"time:" +msgstr "" + +#. type: delimited block - +#: src/content/en/til/2020/08/12/filename-timestamp.adoc:27 +#, no-wrap +msgid "" +"# inside my-program.sh\n" +"echo \"Program started at $(date -Is)\"\n" +"# output is:\n" +"# Program started at 2020-08-12T09:04:58-03:00\n" +msgstr "" + +#. type: Plain text +#: src/content/en/til/2020/08/12/filename-timestamp.adoc:31 +msgid "" +"Both date formats are hierarchical, having the bigger time intervals to the " +"left. This means that you can easily sort them (and even tab-complete " +"them) with no extra effort or tool required." +msgstr "" diff --git a/po/en.po b/po/en.po new file mode 100644 index 0000000..cc244ff --- /dev/null +++ b/po/en.po @@ -0,0 +1,171 @@ +# English translations for PACKAGE package +# Copyright (C) 2025 Free Software Foundation, Inc. +# This file is distributed under the same license as the PACKAGE package. +# Automatically generated, 2025. +# +msgid "" +msgstr "" +"Project-Id-Version: PACKAGE VERSION\n" +"POT-Creation-Date: 2025-05-01 19:02-0300\n" +"PO-Revision-Date: 2025-04-29 19:46-0300\n" +"Last-Translator: Automatically generated\n" +"Language-Team: none\n" +"Language: en\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#. type: Plain text +#: src/headers/ref.txt:2 +msgid "en/blog/\tBlog" +msgstr "" + +#. type: Plain text +#: src/headers/ref.txt:4 +msgid "en/til/\tTIL" +msgstr "" + +#. type: Plain text +#: src/headers/ref.txt:6 +msgid "en/podcast/\tPodcasts" +msgstr "" + +#. type: Plain text +#: src/headers/ref.txt:8 +msgid "en/screencast/\tScreencasts" +msgstr "" + +#. type: Plain text +#: src/headers/ref.txt:10 +msgid "en/pastebin/\tPastebins" +msgstr "" + +#. type: Plain text +#: src/headers/ref.txt:12 +msgid "en/slide/\tSlides" +msgstr "" + +#. type: Plain text +#: src/headers/ref.txt:13 +msgid "en/about.html\tAbout" +msgstr "" + +#. type: Plain text +#: src/names/categories/ref.txt:1 +msgid "categories" +msgstr "" + +#. type: Plain text +#: src/names/category/ref.txt:1 +msgid "category" +msgstr "" + +#. type: Title = +#: src/content/en/about.adoc:1 +#, no-wrap +msgid "About" +msgstr "About" + +#. type: Plain text +#: src/content/en/about.adoc:9 +#, fuzzy +#| msgid "" +#| "Hi, I'm EuAndreh. I write software and occasionally music. You can find " +#| "my contact information in the footer of this page, or mail my {mailto}" +#| "[public inbox] ({archive}[archive])." +msgid "" +"Hi, I'm EuAndreh. I write software and, occasionally, music. You can find " +"my contact information in the footer of this page, or mail my {mailto}" +"[public inbox] ({archive}[archive])." +msgstr "" +"Hi, I'm EuAndreh. I write software and occasionally music. You can find my " +"contact information in the footer of this page, or mail my {mailto}[public " +"inbox] ({archive}[archive])." + +#. type: Plain text +#: src/content/en/about.adoc:11 +msgid "" +"This is my personal website where I write articles, publish software and " +"more related work." +msgstr "" +"This is my personal website where I write articles, publish software and " +"more related work." + +#. type: Title = +#: src/content/en/til/index.adoc:1 +#, no-wrap +msgid "Today I Learned" +msgstr "" + +#. type: Plain text +#: src/content/en/til/index.adoc:6 +msgid "**T**oday **I** **L**earned: small entries of useful knowledge." +msgstr "" + +#. type: Plain text +#: src/content/en/til/index.adoc:7 +msgid "Shameless rip-off of {anna-e-so}[Anna e só]." +msgstr "" + +#. type: Title = +#: src/content/en/til/categories.adoc:1 +#, no-wrap +msgid "Articles by category" +msgstr "" + +#. type: Title = +#: src/content/en/til/2020/08/12/filename-timestamp.adoc:1 +#, no-wrap +msgid "Simple filename timestamp" +msgstr "" + +#. type: Plain text +#: src/content/en/til/2020/08/12/filename-timestamp.adoc:7 +msgid "" +"When writing Jekyll posts or creating log files with dates on them, I " +"usually struggle with finding a direct way of accomplishing that. There's a " +"simple solution: `date -I`." +msgstr "" + +#. type: delimited block - +#: src/content/en/til/2020/08/12/filename-timestamp.adoc:12 +#, no-wrap +msgid "" +"./my-program.sh > my-program.$(date -I).log\n" +"cp post-template.md _posts/$(date -I)-post-slug.md\n" +msgstr "" + +#. type: Plain text +#: src/content/en/til/2020/08/12/filename-timestamp.adoc:16 +msgid "" +"Using this built-in GNU/Linux tool allows you to `touch $(date -I).md` to " +"readily create a `2020-08-12.md` file." +msgstr "" + +#. type: Plain text +#: src/content/en/til/2020/08/12/filename-timestamp.adoc:20 +msgid "" +"I always had to read `man date` or search the web over and over, and after " +"doing this repeatedly it became clear that both `date -I` and `date -Is` " +"(`s` here stands for seconds) are the thing that I'm looking for 95% of the " +"time:" +msgstr "" + +#. type: delimited block - +#: src/content/en/til/2020/08/12/filename-timestamp.adoc:27 +#, no-wrap +msgid "" +"# inside my-program.sh\n" +"echo \"Program started at $(date -Is)\"\n" +"# output is:\n" +"# Program started at 2020-08-12T09:04:58-03:00\n" +msgstr "" + +#. type: Plain text +#: src/content/en/til/2020/08/12/filename-timestamp.adoc:31 +msgid "" +"Both date formats are hierarchical, having the bigger time intervals to the " +"left. This means that you can easily sort them (and even tab-complete " +"them) with no extra effort or tool required." +msgstr "" diff --git a/po/eo.po b/po/eo.po new file mode 100644 index 0000000..d0cda59 --- /dev/null +++ b/po/eo.po @@ -0,0 +1,161 @@ +# Esperanto translations for PACKAGE package +# Copyright (C) 2025 Free Software Foundation, Inc. +# This file is distributed under the same license as the PACKAGE package. +# Automatically generated, 2025. +# +msgid "" +msgstr "" +"Project-Id-Version: PACKAGE VERSION\n" +"POT-Creation-Date: 2025-05-01 19:02-0300\n" +"PO-Revision-Date: 2025-04-29 19:46-0300\n" +"Last-Translator: Automatically generated\n" +"Language-Team: none\n" +"Language: eo\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#. type: Plain text +#: src/headers/ref.txt:2 +msgid "en/blog/\tBlog" +msgstr "" + +#. type: Plain text +#: src/headers/ref.txt:4 +msgid "en/til/\tTIL" +msgstr "" + +#. type: Plain text +#: src/headers/ref.txt:6 +msgid "en/podcast/\tPodcasts" +msgstr "" + +#. type: Plain text +#: src/headers/ref.txt:8 +msgid "en/screencast/\tScreencasts" +msgstr "" + +#. type: Plain text +#: src/headers/ref.txt:10 +msgid "en/pastebin/\tPastebins" +msgstr "" + +#. type: Plain text +#: src/headers/ref.txt:12 +msgid "en/slide/\tSlides" +msgstr "" + +#. type: Plain text +#: src/headers/ref.txt:13 +msgid "en/about.html\tAbout" +msgstr "" + +#. type: Plain text +#: src/names/categories/ref.txt:1 +msgid "categories" +msgstr "" + +#. type: Plain text +#: src/names/category/ref.txt:1 +msgid "category" +msgstr "" + +#. type: Title = +#: src/content/en/about.adoc:1 +#, no-wrap +msgid "About" +msgstr "" + +#. type: Plain text +#: src/content/en/about.adoc:9 +msgid "" +"Hi, I'm EuAndreh. I write software and, occasionally, music. You can find " +"my contact information in the footer of this page, or mail my {mailto}" +"[public inbox] ({archive}[archive])." +msgstr "" + +#. type: Plain text +#: src/content/en/about.adoc:11 +msgid "" +"This is my personal website where I write articles, publish software and " +"more related work." +msgstr "" + +#. type: Title = +#: src/content/en/til/index.adoc:1 +#, no-wrap +msgid "Today I Learned" +msgstr "" + +#. type: Plain text +#: src/content/en/til/index.adoc:6 +msgid "**T**oday **I** **L**earned: small entries of useful knowledge." +msgstr "" + +#. type: Plain text +#: src/content/en/til/index.adoc:7 +msgid "Shameless rip-off of {anna-e-so}[Anna e só]." +msgstr "" + +#. type: Title = +#: src/content/en/til/categories.adoc:1 +#, no-wrap +msgid "Articles by category" +msgstr "" + +#. type: Title = +#: src/content/en/til/2020/08/12/filename-timestamp.adoc:1 +#, no-wrap +msgid "Simple filename timestamp" +msgstr "" + +#. type: Plain text +#: src/content/en/til/2020/08/12/filename-timestamp.adoc:7 +msgid "" +"When writing Jekyll posts or creating log files with dates on them, I " +"usually struggle with finding a direct way of accomplishing that. There's a " +"simple solution: `date -I`." +msgstr "" + +#. type: delimited block - +#: src/content/en/til/2020/08/12/filename-timestamp.adoc:12 +#, no-wrap +msgid "" +"./my-program.sh > my-program.$(date -I).log\n" +"cp post-template.md _posts/$(date -I)-post-slug.md\n" +msgstr "" + +#. type: Plain text +#: src/content/en/til/2020/08/12/filename-timestamp.adoc:16 +msgid "" +"Using this built-in GNU/Linux tool allows you to `touch $(date -I).md` to " +"readily create a `2020-08-12.md` file." +msgstr "" + +#. type: Plain text +#: src/content/en/til/2020/08/12/filename-timestamp.adoc:20 +msgid "" +"I always had to read `man date` or search the web over and over, and after " +"doing this repeatedly it became clear that both `date -I` and `date -Is` " +"(`s` here stands for seconds) are the thing that I'm looking for 95% of the " +"time:" +msgstr "" + +#. type: delimited block - +#: src/content/en/til/2020/08/12/filename-timestamp.adoc:27 +#, no-wrap +msgid "" +"# inside my-program.sh\n" +"echo \"Program started at $(date -Is)\"\n" +"# output is:\n" +"# Program started at 2020-08-12T09:04:58-03:00\n" +msgstr "" + +#. type: Plain text +#: src/content/en/til/2020/08/12/filename-timestamp.adoc:31 +msgid "" +"Both date formats are hierarchical, having the bigger time intervals to the " +"left. This means that you can easily sort them (and even tab-complete " +"them) with no extra effort or tool required." +msgstr "" diff --git a/po/es.po b/po/es.po new file mode 100644 index 0000000..43e2cbf --- /dev/null +++ b/po/es.po @@ -0,0 +1,161 @@ +# Spanish translations for PACKAGE package +# Copyright (C) 2025 Free Software Foundation, Inc. +# This file is distributed under the same license as the PACKAGE package. +# Automatically generated, 2025. +# +msgid "" +msgstr "" +"Project-Id-Version: PACKAGE VERSION\n" +"POT-Creation-Date: 2025-05-01 19:02-0300\n" +"PO-Revision-Date: 2025-04-29 19:46-0300\n" +"Last-Translator: Automatically generated\n" +"Language-Team: none\n" +"Language: es\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#. type: Plain text +#: src/headers/ref.txt:2 +msgid "en/blog/\tBlog" +msgstr "" + +#. type: Plain text +#: src/headers/ref.txt:4 +msgid "en/til/\tTIL" +msgstr "" + +#. type: Plain text +#: src/headers/ref.txt:6 +msgid "en/podcast/\tPodcasts" +msgstr "" + +#. type: Plain text +#: src/headers/ref.txt:8 +msgid "en/screencast/\tScreencasts" +msgstr "" + +#. type: Plain text +#: src/headers/ref.txt:10 +msgid "en/pastebin/\tPastebins" +msgstr "" + +#. type: Plain text +#: src/headers/ref.txt:12 +msgid "en/slide/\tSlides" +msgstr "" + +#. type: Plain text +#: src/headers/ref.txt:13 +msgid "en/about.html\tAbout" +msgstr "" + +#. type: Plain text +#: src/names/categories/ref.txt:1 +msgid "categories" +msgstr "" + +#. type: Plain text +#: src/names/category/ref.txt:1 +msgid "category" +msgstr "" + +#. type: Title = +#: src/content/en/about.adoc:1 +#, no-wrap +msgid "About" +msgstr "" + +#. type: Plain text +#: src/content/en/about.adoc:9 +msgid "" +"Hi, I'm EuAndreh. I write software and, occasionally, music. You can find " +"my contact information in the footer of this page, or mail my {mailto}" +"[public inbox] ({archive}[archive])." +msgstr "" + +#. type: Plain text +#: src/content/en/about.adoc:11 +msgid "" +"This is my personal website where I write articles, publish software and " +"more related work." +msgstr "" + +#. type: Title = +#: src/content/en/til/index.adoc:1 +#, no-wrap +msgid "Today I Learned" +msgstr "" + +#. type: Plain text +#: src/content/en/til/index.adoc:6 +msgid "**T**oday **I** **L**earned: small entries of useful knowledge." +msgstr "" + +#. type: Plain text +#: src/content/en/til/index.adoc:7 +msgid "Shameless rip-off of {anna-e-so}[Anna e só]." +msgstr "" + +#. type: Title = +#: src/content/en/til/categories.adoc:1 +#, no-wrap +msgid "Articles by category" +msgstr "" + +#. type: Title = +#: src/content/en/til/2020/08/12/filename-timestamp.adoc:1 +#, no-wrap +msgid "Simple filename timestamp" +msgstr "" + +#. type: Plain text +#: src/content/en/til/2020/08/12/filename-timestamp.adoc:7 +msgid "" +"When writing Jekyll posts or creating log files with dates on them, I " +"usually struggle with finding a direct way of accomplishing that. There's a " +"simple solution: `date -I`." +msgstr "" + +#. type: delimited block - +#: src/content/en/til/2020/08/12/filename-timestamp.adoc:12 +#, no-wrap +msgid "" +"./my-program.sh > my-program.$(date -I).log\n" +"cp post-template.md _posts/$(date -I)-post-slug.md\n" +msgstr "" + +#. type: Plain text +#: src/content/en/til/2020/08/12/filename-timestamp.adoc:16 +msgid "" +"Using this built-in GNU/Linux tool allows you to `touch $(date -I).md` to " +"readily create a `2020-08-12.md` file." +msgstr "" + +#. type: Plain text +#: src/content/en/til/2020/08/12/filename-timestamp.adoc:20 +msgid "" +"I always had to read `man date` or search the web over and over, and after " +"doing this repeatedly it became clear that both `date -I` and `date -Is` " +"(`s` here stands for seconds) are the thing that I'm looking for 95% of the " +"time:" +msgstr "" + +#. type: delimited block - +#: src/content/en/til/2020/08/12/filename-timestamp.adoc:27 +#, no-wrap +msgid "" +"# inside my-program.sh\n" +"echo \"Program started at $(date -Is)\"\n" +"# output is:\n" +"# Program started at 2020-08-12T09:04:58-03:00\n" +msgstr "" + +#. type: Plain text +#: src/content/en/til/2020/08/12/filename-timestamp.adoc:31 +msgid "" +"Both date formats are hierarchical, having the bigger time intervals to the " +"left. This means that you can easily sort them (and even tab-complete " +"them) with no extra effort or tool required." +msgstr "" diff --git a/po/euandre.org.pot b/po/euandre.org.pot new file mode 100644 index 0000000..783e8ab --- /dev/null +++ b/po/euandre.org.pot @@ -0,0 +1,161 @@ +# SOME DESCRIPTIVE TITLE +# Copyright (C) YEAR Free Software Foundation, Inc. +# This file is distributed under the same license as the PACKAGE package. +# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: PACKAGE VERSION\n" +"POT-Creation-Date: 2025-05-01 19:02-0300\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" +"Language-Team: LANGUAGE <LL@li.org>\n" +"Language: \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#. type: Plain text +#: src/headers/ref.txt:2 +msgid "en/blog/\tBlog" +msgstr "" + +#. type: Plain text +#: src/headers/ref.txt:4 +msgid "en/til/\tTIL" +msgstr "" + +#. type: Plain text +#: src/headers/ref.txt:6 +msgid "en/podcast/\tPodcasts" +msgstr "" + +#. type: Plain text +#: src/headers/ref.txt:8 +msgid "en/screencast/\tScreencasts" +msgstr "" + +#. type: Plain text +#: src/headers/ref.txt:10 +msgid "en/pastebin/\tPastebins" +msgstr "" + +#. type: Plain text +#: src/headers/ref.txt:12 +msgid "en/slide/\tSlides" +msgstr "" + +#. type: Plain text +#: src/headers/ref.txt:13 +msgid "en/about.html\tAbout" +msgstr "" + +#. type: Plain text +#: src/names/categories/ref.txt:1 +msgid "categories" +msgstr "" + +#. type: Plain text +#: src/names/category/ref.txt:1 +msgid "category" +msgstr "" + +#. type: Title = +#: src/content/en/about.adoc:1 +#, no-wrap +msgid "About" +msgstr "" + +#. type: Plain text +#: src/content/en/about.adoc:9 +msgid "" +"Hi, I'm EuAndreh. I write software and, occasionally, music. You can find " +"my contact information in the footer of this page, or mail my " +"{mailto}[public inbox] ({archive}[archive])." +msgstr "" + +#. type: Plain text +#: src/content/en/about.adoc:11 +msgid "" +"This is my personal website where I write articles, publish software and " +"more related work." +msgstr "" + +#. type: Title = +#: src/content/en/til/index.adoc:1 +#, no-wrap +msgid "Today I Learned" +msgstr "" + +#. type: Plain text +#: src/content/en/til/index.adoc:6 +msgid "**T**oday **I** **L**earned: small entries of useful knowledge." +msgstr "" + +#. type: Plain text +#: src/content/en/til/index.adoc:7 +msgid "Shameless rip-off of {anna-e-so}[Anna e só]." +msgstr "" + +#. type: Title = +#: src/content/en/til/categories.adoc:1 +#, no-wrap +msgid "Articles by category" +msgstr "" + +#. type: Title = +#: src/content/en/til/2020/08/12/filename-timestamp.adoc:1 +#, no-wrap +msgid "Simple filename timestamp" +msgstr "" + +#. type: Plain text +#: src/content/en/til/2020/08/12/filename-timestamp.adoc:7 +msgid "" +"When writing Jekyll posts or creating log files with dates on them, I " +"usually struggle with finding a direct way of accomplishing that. There's a " +"simple solution: `date -I`." +msgstr "" + +#. type: delimited block - +#: src/content/en/til/2020/08/12/filename-timestamp.adoc:12 +#, no-wrap +msgid "" +"./my-program.sh > my-program.$(date -I).log\n" +"cp post-template.md _posts/$(date -I)-post-slug.md\n" +msgstr "" + +#. type: Plain text +#: src/content/en/til/2020/08/12/filename-timestamp.adoc:16 +msgid "" +"Using this built-in GNU/Linux tool allows you to `touch $(date -I).md` to " +"readily create a `2020-08-12.md` file." +msgstr "" + +#. type: Plain text +#: src/content/en/til/2020/08/12/filename-timestamp.adoc:20 +msgid "" +"I always had to read `man date` or search the web over and over, and after " +"doing this repeatedly it became clear that both `date -I` and `date -Is` " +"(`s` here stands for seconds) are the thing that I'm looking for 95% of the " +"time:" +msgstr "" + +#. type: delimited block - +#: src/content/en/til/2020/08/12/filename-timestamp.adoc:27 +#, no-wrap +msgid "" +"# inside my-program.sh\n" +"echo \"Program started at $(date -Is)\"\n" +"# output is:\n" +"# Program started at 2020-08-12T09:04:58-03:00\n" +msgstr "" + +#. type: Plain text +#: src/content/en/til/2020/08/12/filename-timestamp.adoc:31 +msgid "" +"Both date formats are hierarchical, having the bigger time intervals to the " +"left. This means that you can easily sort them (and even tab-complete them) " +"with no extra effort or tool required." +msgstr "" diff --git a/po/fr.po b/po/fr.po new file mode 100644 index 0000000..7093686 --- /dev/null +++ b/po/fr.po @@ -0,0 +1,161 @@ +# French translations for PACKAGE package +# Copyright (C) 2025 Free Software Foundation, Inc. +# This file is distributed under the same license as the PACKAGE package. +# Automatically generated, 2025. +# +msgid "" +msgstr "" +"Project-Id-Version: PACKAGE VERSION\n" +"POT-Creation-Date: 2025-05-01 19:02-0300\n" +"PO-Revision-Date: 2025-04-29 19:46-0300\n" +"Last-Translator: Automatically generated\n" +"Language-Team: none\n" +"Language: fr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=(n > 1);\n" + +#. type: Plain text +#: src/headers/ref.txt:2 +msgid "en/blog/\tBlog" +msgstr "" + +#. type: Plain text +#: src/headers/ref.txt:4 +msgid "en/til/\tTIL" +msgstr "" + +#. type: Plain text +#: src/headers/ref.txt:6 +msgid "en/podcast/\tPodcasts" +msgstr "" + +#. type: Plain text +#: src/headers/ref.txt:8 +msgid "en/screencast/\tScreencasts" +msgstr "" + +#. type: Plain text +#: src/headers/ref.txt:10 +msgid "en/pastebin/\tPastebins" +msgstr "" + +#. type: Plain text +#: src/headers/ref.txt:12 +msgid "en/slide/\tSlides" +msgstr "" + +#. type: Plain text +#: src/headers/ref.txt:13 +msgid "en/about.html\tAbout" +msgstr "" + +#. type: Plain text +#: src/names/categories/ref.txt:1 +msgid "categories" +msgstr "" + +#. type: Plain text +#: src/names/category/ref.txt:1 +msgid "category" +msgstr "" + +#. type: Title = +#: src/content/en/about.adoc:1 +#, no-wrap +msgid "About" +msgstr "" + +#. type: Plain text +#: src/content/en/about.adoc:9 +msgid "" +"Hi, I'm EuAndreh. I write software and, occasionally, music. You can find " +"my contact information in the footer of this page, or mail my {mailto}" +"[public inbox] ({archive}[archive])." +msgstr "" + +#. type: Plain text +#: src/content/en/about.adoc:11 +msgid "" +"This is my personal website where I write articles, publish software and " +"more related work." +msgstr "" + +#. type: Title = +#: src/content/en/til/index.adoc:1 +#, no-wrap +msgid "Today I Learned" +msgstr "" + +#. type: Plain text +#: src/content/en/til/index.adoc:6 +msgid "**T**oday **I** **L**earned: small entries of useful knowledge." +msgstr "" + +#. type: Plain text +#: src/content/en/til/index.adoc:7 +msgid "Shameless rip-off of {anna-e-so}[Anna e só]." +msgstr "" + +#. type: Title = +#: src/content/en/til/categories.adoc:1 +#, no-wrap +msgid "Articles by category" +msgstr "" + +#. type: Title = +#: src/content/en/til/2020/08/12/filename-timestamp.adoc:1 +#, no-wrap +msgid "Simple filename timestamp" +msgstr "" + +#. type: Plain text +#: src/content/en/til/2020/08/12/filename-timestamp.adoc:7 +msgid "" +"When writing Jekyll posts or creating log files with dates on them, I " +"usually struggle with finding a direct way of accomplishing that. There's a " +"simple solution: `date -I`." +msgstr "" + +#. type: delimited block - +#: src/content/en/til/2020/08/12/filename-timestamp.adoc:12 +#, no-wrap +msgid "" +"./my-program.sh > my-program.$(date -I).log\n" +"cp post-template.md _posts/$(date -I)-post-slug.md\n" +msgstr "" + +#. type: Plain text +#: src/content/en/til/2020/08/12/filename-timestamp.adoc:16 +msgid "" +"Using this built-in GNU/Linux tool allows you to `touch $(date -I).md` to " +"readily create a `2020-08-12.md` file." +msgstr "" + +#. type: Plain text +#: src/content/en/til/2020/08/12/filename-timestamp.adoc:20 +msgid "" +"I always had to read `man date` or search the web over and over, and after " +"doing this repeatedly it became clear that both `date -I` and `date -Is` " +"(`s` here stands for seconds) are the thing that I'm looking for 95% of the " +"time:" +msgstr "" + +#. type: delimited block - +#: src/content/en/til/2020/08/12/filename-timestamp.adoc:27 +#, no-wrap +msgid "" +"# inside my-program.sh\n" +"echo \"Program started at $(date -Is)\"\n" +"# output is:\n" +"# Program started at 2020-08-12T09:04:58-03:00\n" +msgstr "" + +#. type: Plain text +#: src/content/en/til/2020/08/12/filename-timestamp.adoc:31 +msgid "" +"Both date formats are hierarchical, having the bigger time intervals to the " +"left. This means that you can easily sort them (and even tab-complete " +"them) with no extra effort or tool required." +msgstr "" diff --git a/po/note.txt b/po/note.txt new file mode 100644 index 0000000..45279a4 --- /dev/null +++ b/po/note.txt @@ -0,0 +1,5 @@ +PO4A-HEADER: mode=eof + + + +// Generated from po4a(1). diff --git a/po/po4a.cfg b/po/po4a.cfg new file mode 100644 index 0000000..77f48a6 --- /dev/null +++ b/po/po4a.cfg @@ -0,0 +1,12 @@ +[options] --keep 0 --master-charset UTF-8 --localized-charset UTF-8 --addendum-charset UTF-8 + +[po_directory] po + +[type: text] src/headers/ref.txt $lang:src/headers/$lang.txt +[type: text] src/names/categories/ref.txt $lang:src/names/categories/$lang.txt +[type: text] src/names/category/ref.txt $lang:src/names/category/$lang.txt + +[type: asciidoc] src/content/en/about.adoc pt:src/content/pt/sobre.adoc add_$lang:po/note.txt +[type: asciidoc] src/content/en/til/index.adoc pt:src/content/pt/hea/index.adoc add_$lang:po/note.txt +[type: asciidoc] src/content/en/til/categories.adoc pt:src/content/pt/hea/categorias.adoc add_$lang:po/note.txt +[type: asciidoc] src/content/en/til/2020/08/12/filename-timestamp.adoc pt:src/content/pt/hea/2020/08/12/arquivo-datado.adoc add_$lang:po/note.txt diff --git a/po/pt.po b/po/pt.po new file mode 100644 index 0000000..4794358 --- /dev/null +++ b/po/pt.po @@ -0,0 +1,190 @@ +# Portuguese translations for PACKAGE package +# Copyright (C) 2025 Free Software Foundation, Inc. +# This file is distributed under the same license as the PACKAGE package. +# Automatically generated, 2025. +# +msgid "" +msgstr "" +"Project-Id-Version: \n" +"POT-Creation-Date: 2025-05-01 19:02-0300\n" +"PO-Revision-Date: 2025-05-01 19:08-0300\n" +"Last-Translator: EuAndreh <eu@euandre.org>\n" +"Language-Team: none\n" +"Language: pt\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" +"X-Generator: Poedit 3.5\n" + +#. type: Plain text +#: src/headers/ref.txt:2 +msgid "en/blog/\tBlog" +msgstr "#" + +#. type: Plain text +#: src/headers/ref.txt:4 +msgid "en/til/\tTIL" +msgstr "pt/hea/\tHEA" + +#. type: Plain text +#: src/headers/ref.txt:6 +msgid "en/podcast/\tPodcasts" +msgstr "#" + +#. type: Plain text +#: src/headers/ref.txt:8 +msgid "en/screencast/\tScreencasts" +msgstr "#" + +#. type: Plain text +#: src/headers/ref.txt:10 +msgid "en/pastebin/\tPastebins" +msgstr "#" + +#. type: Plain text +#: src/headers/ref.txt:12 +msgid "en/slide/\tSlides" +msgstr "#" + +#. type: Plain text +#: src/headers/ref.txt:13 +msgid "en/about.html\tAbout" +msgstr "pt/sobre.html\tSobre" + +#. type: Plain text +#: src/names/categories/ref.txt:1 +msgid "categories" +msgstr "categorias" + +#. type: Plain text +#: src/names/category/ref.txt:1 +msgid "category" +msgstr "categoria" + +#. type: Title = +#: src/content/en/about.adoc:1 +#, no-wrap +msgid "About" +msgstr "Sobre" + +#. type: Plain text +#: src/content/en/about.adoc:9 +msgid "" +"Hi, I'm EuAndreh. I write software and, occasionally, music. You can find " +"my contact information in the footer of this page, or mail my {mailto}" +"[public inbox] ({archive}[archive])." +msgstr "" +"Oi, eu sou EuAndreh. Eu escrevo software e, ocasionalmente, música. Você " +"encontra meu dados para entrar em contato no rodapé desta página, ou pode " +"mandar também uma mensagem para minha {mailto}[caixa de entrada pública] " +"({archive}[arquivo])." + +#. type: Plain text +#: src/content/en/about.adoc:11 +msgid "" +"This is my personal website where I write articles, publish software and " +"more related work." +msgstr "" +"Esse é o meu site pessoal onde eu escrevo artigos, publico software e outros " +"trabalhos relacionados." + +#. type: Title = +#: src/content/en/til/index.adoc:1 +#, no-wrap +msgid "Today I Learned" +msgstr "Hoje Eu Aprendi" + +#. type: Plain text +#: src/content/en/til/index.adoc:6 +msgid "**T**oday **I** **L**earned: small entries of useful knowledge." +msgstr "" +"**H**oje **E**u **A**prendi (do inglês, _**T**oday **I** **L**earned_): " +"pequenas postagens de conhecimentos úteis." + +#. type: Plain text +#: src/content/en/til/index.adoc:7 +msgid "Shameless rip-off of {anna-e-so}[Anna e só]." +msgstr "Cópia descarada da {anna-e-so}[Anna e só]." + +#. type: Title = +#: src/content/en/til/categories.adoc:1 +#, no-wrap +msgid "Articles by category" +msgstr "Artigos por categoria" + +#. type: Title = +#: src/content/en/til/2020/08/12/filename-timestamp.adoc:1 +#, no-wrap +msgid "Simple filename timestamp" +msgstr "" +"Nome de arquivo com dia e hora de forma simplificada\n" +":updatedat: 2025-04-30" + +#. type: Plain text +#: src/content/en/til/2020/08/12/filename-timestamp.adoc:7 +msgid "" +"When writing Jekyll posts or creating log files with dates on them, I " +"usually struggle with finding a direct way of accomplishing that. There's a " +"simple solution: `date -I`." +msgstr "" +"Quando vou escrever um artigo no Jekyll ou criar um arquivo de log com a " +"data no nome, eu normalmente engasgo para achar um jeito direto de fazer " +"isso. Há uma solução simples: `date -I`." + +#. type: delimited block - +#: src/content/en/til/2020/08/12/filename-timestamp.adoc:12 +#, no-wrap +msgid "" +"./my-program.sh > my-program.$(date -I).log\n" +"cp post-template.md _posts/$(date -I)-post-slug.md\n" +msgstr "" +"./meu-programa.sh > meu-programa.$(date -I).log\n" +"cp template-de-artigo.md _posts/$(date -I)-slug-do-artigo.md\n" + +#. type: Plain text +#: src/content/en/til/2020/08/12/filename-timestamp.adoc:16 +msgid "" +"Using this built-in GNU/Linux tool allows you to `touch $(date -I).md` to " +"readily create a `2020-08-12.md` file." +msgstr "" +"Usar essa ferramenta padrão do GNU/Linux permite que você simplesmente " +"escreva `touch $(date -I).md` para criar um arquivo `2020-08-12.md`." + +#. type: Plain text +#: src/content/en/til/2020/08/12/filename-timestamp.adoc:20 +msgid "" +"I always had to read `man date` or search the web over and over, and after " +"doing this repeatedly it became clear that both `date -I` and `date -Is` " +"(`s` here stands for seconds) are the thing that I'm looking for 95% of the " +"time:" +msgstr "" +"Eu sempre tinha que para para reler o `man date` ou buscar na internet de " +"novo e de novo como fazer isso, e depois de sempre chegar no mesmo resultado " +"ficou claro para mim que tanto `date -I` quanto `date -Is` (`s` de segundos) " +"são as respostas que eu estou procurando 95% do tempo:" + +#. type: delimited block - +#: src/content/en/til/2020/08/12/filename-timestamp.adoc:27 +#, no-wrap +msgid "" +"# inside my-program.sh\n" +"echo \"Program started at $(date -Is)\"\n" +"# output is:\n" +"# Program started at 2020-08-12T09:04:58-03:00\n" +msgstr "" +"# dentro do meu programa.sh\n" +"echo \"Programa começou em $(date -Is)\"\n" +"# saída é:\n" +"# Programa começou em 2020-08-12T09:15:16-03:00\n" + +#. type: Plain text +#: src/content/en/til/2020/08/12/filename-timestamp.adoc:31 +msgid "" +"Both date formats are hierarchical, having the bigger time intervals to the " +"left. This means that you can easily sort them (and even tab-complete " +"them) with no extra effort or tool required." +msgstr "" +"Ambos os formatos de data são hierárquicos, com intervalos de tempo maior à " +"esquerda. Isso significa que você pode facilmente ordená-los (e até usar " +"TAB para completar) sem esforço ou ferramenta extra." diff --git a/src/collections/en.blog b/src/collections/en.blog deleted file mode 120000 index 92ecf5f..0000000 --- a/src/collections/en.blog +++ /dev/null @@ -1 +0,0 @@ -../content/en/blog
\ No newline at end of file diff --git a/src/collections/en.pastebins b/src/collections/en.pastebins deleted file mode 120000 index 89113e9..0000000 --- a/src/collections/en.pastebins +++ /dev/null @@ -1 +0,0 @@ -../content/en/pastebins
\ No newline at end of file diff --git a/src/collections/en.podcasts b/src/collections/en.podcasts deleted file mode 120000 index bb6be84..0000000 --- a/src/collections/en.podcasts +++ /dev/null @@ -1 +0,0 @@ -../content/en/podcasts
\ No newline at end of file diff --git a/src/collections/en.screencasts b/src/collections/en.screencasts deleted file mode 120000 index e5f0a31..0000000 --- a/src/collections/en.screencasts +++ /dev/null @@ -1 +0,0 @@ -../content/en/screencasts
\ No newline at end of file diff --git a/src/collections/en.tils b/src/collections/en.tils deleted file mode 120000 index b539f00..0000000 --- a/src/collections/en.tils +++ /dev/null @@ -1 +0,0 @@ -../content/en/tils
\ No newline at end of file diff --git a/src/collections/en/blog b/src/collections/en/blog new file mode 120000 index 0000000..973ecf5 --- /dev/null +++ b/src/collections/en/blog @@ -0,0 +1 @@ +../../content/en/blog
\ No newline at end of file diff --git a/src/collections/en/pastebin b/src/collections/en/pastebin new file mode 120000 index 0000000..5168ff3 --- /dev/null +++ b/src/collections/en/pastebin @@ -0,0 +1 @@ +../../content/en/pastebin
\ No newline at end of file diff --git a/src/collections/en/podcast b/src/collections/en/podcast new file mode 120000 index 0000000..2334546 --- /dev/null +++ b/src/collections/en/podcast @@ -0,0 +1 @@ +../../content/en/podcast
\ No newline at end of file diff --git a/src/collections/en/screencast b/src/collections/en/screencast new file mode 120000 index 0000000..e04adf4 --- /dev/null +++ b/src/collections/en/screencast @@ -0,0 +1 @@ +../../content/en/screencast
\ No newline at end of file diff --git a/src/collections/en/til b/src/collections/en/til new file mode 120000 index 0000000..6519d09 --- /dev/null +++ b/src/collections/en/til @@ -0,0 +1 @@ +../../content/en/til
\ No newline at end of file diff --git a/src/collections/pt/hea b/src/collections/pt/hea new file mode 120000 index 0000000..ce49d8f --- /dev/null +++ b/src/collections/pt/hea @@ -0,0 +1 @@ +../../content/pt/hea
\ No newline at end of file diff --git a/src/content/en/about.adoc b/src/content/en/about.adoc index 9911496..14d5e22 100644 --- a/src/content/en/about.adoc +++ b/src/content/en/about.adoc @@ -3,7 +3,7 @@ :mailto: mailto:~euandreh/public-inbox@lists.sr.ht :archive: https://lists.sr.ht/~euandreh/public-inbox -Hi, I'm EuAndreh. I write software and occasionally music. You can find my +Hi, I'm EuAndreh. I write software and, occasionally, music. You can find my contact information in the footer of this page, or mail my {mailto}[public inbox] ({archive}[archive]). diff --git a/src/content/en/blog/2020/10/19/feature-flags.adoc b/src/content/en/blog/2020/10/19/feature-flags.adoc index 972f693..8788407 100644 --- a/src/content/en/blog/2020/10/19/feature-flags.adoc +++ b/src/content/en/blog/2020/10/19/feature-flags.adoc @@ -3,7 +3,7 @@ :updatedat: 2020-11-03 :empty: -:slides: link:../../../../slides/2020/10/19/feature-flags.html FIXME +:slides: link:../../../../slide/2020/10/19/feature-flags.pdf :fowler-article: https://martinfowler.com/articles/feature-toggles.html _This article is derived from a {slides}[presentation] on the same subject._ diff --git a/src/content/en/blog/2020/11/07/diy-bugs.adoc b/src/content/en/blog/2020/11/07/diy-bugs.adoc index 8ab7953..5fbc920 100644 --- a/src/content/en/blog/2020/11/07/diy-bugs.adoc +++ b/src/content/en/blog/2020/11/07/diy-bugs.adoc @@ -4,7 +4,7 @@ :attack-on-ytdl: https://github.com/github/dmca/blob/master/2020/10/2020-10-23-RIAA.md :list-discussions: https://sourcehut.org/blog/2020-10-29-how-mailing-lists-prevent-censorship/ :docs-in-repo: https://podcast.writethedocs.org/2017/01/25/episode-3-trends/ -:ci-in-notes: link:../../../../tils/2020/11/30/git-notes-ci.html +:ci-in-notes: link:../../../../til/2020/11/30/git-notes-ci.html :todos-mui: https://man.sr.ht/todo.sr.ht/#email-access :git-bug-bridges: https://github.com/MichaelMure/git-bug#bridges diff --git a/src/content/en/blog/2020/11/14/local-first-review.adoc b/src/content/en/blog/2020/11/14/local-first-review.adoc index f9dd4b0..2036069 100644 --- a/src/content/en/blog/2020/11/14/local-first-review.adoc +++ b/src/content/en/blog/2020/11/14/local-first-review.adoc @@ -2,7 +2,7 @@ :categories: presentation article-review :empty: -:presentation: link:../../../../slides/2020/11/14/local-first.html FIXME +:presentation: link:../../../../slide/2020/11/14/local-first-hype.pdf :reviewed-article: https://martin.kleppmann.com/papers/local-first.pdf _This article is derived from a {presentation}[presentation] given at a Papers diff --git a/src/content/en/blog/categories.adoc b/src/content/en/blog/categories.adoc index f29acda..feb64ff 100644 --- a/src/content/en/blog/categories.adoc +++ b/src/content/en/blog/categories.adoc @@ -1 +1,2 @@ = Articles by category +:type: categories diff --git a/src/content/en/pastebins/2016/04/05/rpn.adoc b/src/content/en/pastebin/2016/04/05/rpn.adoc index c567d0d..c567d0d 100644 --- a/src/content/en/pastebins/2016/04/05/rpn.adoc +++ b/src/content/en/pastebin/2016/04/05/rpn.adoc diff --git a/src/content/en/pastebins/2018/07/11/nix-pinning.adoc b/src/content/en/pastebin/2018/07/11/nix-pinning.adoc index 63b1ac9..63b1ac9 100644 --- a/src/content/en/pastebins/2018/07/11/nix-pinning.adoc +++ b/src/content/en/pastebin/2018/07/11/nix-pinning.adoc diff --git a/src/content/en/pastebins/2018/07/13/guix-nixos-systemd.adoc b/src/content/en/pastebin/2018/07/13/guix-nixos-systemd.adoc index fa4226a..fa4226a 100644 --- a/src/content/en/pastebins/2018/07/13/guix-nixos-systemd.adoc +++ b/src/content/en/pastebin/2018/07/13/guix-nixos-systemd.adoc diff --git a/src/content/en/pastebins/2018/07/13/guixbuilder-nixos.adoc b/src/content/en/pastebin/2018/07/13/guixbuilder-nixos.adoc index 65dbcc7..65dbcc7 100644 --- a/src/content/en/pastebins/2018/07/13/guixbuilder-nixos.adoc +++ b/src/content/en/pastebin/2018/07/13/guixbuilder-nixos.adoc diff --git a/src/content/en/pastebins/2018/07/13/guixbuilder.adoc b/src/content/en/pastebin/2018/07/13/guixbuilder.adoc index 35057f9..35057f9 100644 --- a/src/content/en/pastebins/2018/07/13/guixbuilder.adoc +++ b/src/content/en/pastebin/2018/07/13/guixbuilder.adoc diff --git a/src/content/en/pastebins/2018/07/13/nix-strpad.adoc b/src/content/en/pastebin/2018/07/13/nix-strpad.adoc index 71e8168..71e8168 100644 --- a/src/content/en/pastebins/2018/07/13/nix-strpad.adoc +++ b/src/content/en/pastebin/2018/07/13/nix-strpad.adoc diff --git a/src/content/en/pastebins/2018/07/25/nix-exps.adoc b/src/content/en/pastebin/2018/07/25/nix-exps.adoc index 04cb7f4..04cb7f4 100644 --- a/src/content/en/pastebins/2018/07/25/nix-exps.adoc +++ b/src/content/en/pastebin/2018/07/25/nix-exps.adoc diff --git a/src/content/en/pastebins/2018/07/25/nix-showdrv.adoc b/src/content/en/pastebin/2018/07/25/nix-showdrv.adoc index b62e526..b62e526 100644 --- a/src/content/en/pastebins/2018/07/25/nix-showdrv.adoc +++ b/src/content/en/pastebin/2018/07/25/nix-showdrv.adoc diff --git a/src/content/en/pastebins/2019/06/08/inconsistent-hash.adoc b/src/content/en/pastebin/2019/06/08/inconsistent-hash.adoc index 8dc5794..8dc5794 100644 --- a/src/content/en/pastebins/2019/06/08/inconsistent-hash.adoc +++ b/src/content/en/pastebin/2019/06/08/inconsistent-hash.adoc diff --git a/src/content/en/pastebins/2019/12/29/raku-tuple-type.adoc b/src/content/en/pastebin/2019/12/29/raku-tuple-type.adoc index 50dd841..50dd841 100644 --- a/src/content/en/pastebins/2019/12/29/raku-tuple-type.adoc +++ b/src/content/en/pastebin/2019/12/29/raku-tuple-type.adoc diff --git a/src/content/en/pastebins/2020/01/04/guix-import-failure.adoc b/src/content/en/pastebin/2020/01/04/guix-import-failure.adoc index 5896645..5896645 100644 --- a/src/content/en/pastebins/2020/01/04/guix-import-failure.adoc +++ b/src/content/en/pastebin/2020/01/04/guix-import-failure.adoc diff --git a/src/content/en/pastebins/2020/02/14/guix-shebang.adoc b/src/content/en/pastebin/2020/02/14/guix-shebang.adoc index d415d36..d415d36 100644 --- a/src/content/en/pastebins/2020/02/14/guix-shebang.adoc +++ b/src/content/en/pastebin/2020/02/14/guix-shebang.adoc diff --git a/src/content/en/pastebins/2020/11/27/guix-build-local.adoc b/src/content/en/pastebin/2020/11/27/guix-build-local.adoc index 1a18d4b..1a18d4b 100644 --- a/src/content/en/pastebins/2020/11/27/guix-build-local.adoc +++ b/src/content/en/pastebin/2020/11/27/guix-build-local.adoc diff --git a/src/content/en/pastebins/2020/12/15/guix-pack-fail.adoc b/src/content/en/pastebin/2020/12/15/guix-pack-fail.adoc index 3631fbc..3631fbc 100644 --- a/src/content/en/pastebins/2020/12/15/guix-pack-fail.adoc +++ b/src/content/en/pastebin/2020/12/15/guix-pack-fail.adoc diff --git a/src/content/en/pastebins/2021/04/03/naive-slugify-js.adoc b/src/content/en/pastebin/2021/04/03/naive-slugify-js.adoc index 184ce97..184ce97 100644 --- a/src/content/en/pastebins/2021/04/03/naive-slugify-js.adoc +++ b/src/content/en/pastebin/2021/04/03/naive-slugify-js.adoc diff --git a/src/content/en/pastebins/2021/06/08/reading-session-pt1.adoc b/src/content/en/pastebin/2021/06/08/reading-session-pt1.adoc index d9f1f91..d9f1f91 100644 --- a/src/content/en/pastebins/2021/06/08/reading-session-pt1.adoc +++ b/src/content/en/pastebin/2021/06/08/reading-session-pt1.adoc diff --git a/src/content/en/pastebins/2021/06/22/curl-wget.adoc b/src/content/en/pastebin/2021/06/22/curl-wget.adoc index 97f55c7..97f55c7 100644 --- a/src/content/en/pastebins/2021/06/22/curl-wget.adoc +++ b/src/content/en/pastebin/2021/06/22/curl-wget.adoc diff --git a/src/content/en/pastebins/2021/08/11/h1-spacing.adoc b/src/content/en/pastebin/2021/08/11/h1-spacing.adoc index 38dbb2e..38dbb2e 100644 --- a/src/content/en/pastebins/2021/08/11/h1-spacing.adoc +++ b/src/content/en/pastebin/2021/08/11/h1-spacing.adoc diff --git a/src/content/en/pastebins/2021/09/02/sicp-3-19.adoc b/src/content/en/pastebin/2021/09/02/sicp-3-19.adoc index 166170f..166170f 100644 --- a/src/content/en/pastebins/2021/09/02/sicp-3-19.adoc +++ b/src/content/en/pastebin/2021/09/02/sicp-3-19.adoc diff --git a/src/content/en/pastebins/2021/09/03/sicp-persistent-queue.adoc b/src/content/en/pastebin/2021/09/03/sicp-persistent-queue.adoc index 2b4a8a2..2b4a8a2 100644 --- a/src/content/en/pastebins/2021/09/03/sicp-persistent-queue.adoc +++ b/src/content/en/pastebin/2021/09/03/sicp-persistent-queue.adoc diff --git a/src/content/en/pastebins/2022/07/14/git-cleanup.adoc b/src/content/en/pastebin/2022/07/14/git-cleanup.adoc index b223f86..b223f86 100644 --- a/src/content/en/pastebins/2022/07/14/git-cleanup.adoc +++ b/src/content/en/pastebin/2022/07/14/git-cleanup.adoc diff --git a/src/content/en/pastebins/2023/07/22/funcallable-amop.adoc b/src/content/en/pastebin/2023/07/22/funcallable-amop.adoc index 47a8089..47a8089 100644 --- a/src/content/en/pastebins/2023/07/22/funcallable-amop.adoc +++ b/src/content/en/pastebin/2023/07/22/funcallable-amop.adoc diff --git a/src/content/en/pastebins/categories.adoc b/src/content/en/pastebin/categories.adoc index f29acda..feb64ff 100644 --- a/src/content/en/pastebins/categories.adoc +++ b/src/content/en/pastebin/categories.adoc @@ -1 +1,2 @@ = Articles by category +:type: categories diff --git a/src/content/en/pastebins/index.adoc b/src/content/en/pastebin/index.adoc index 433a2c1..433a2c1 100644 --- a/src/content/en/pastebins/index.adoc +++ b/src/content/en/pastebin/index.adoc diff --git a/src/content/en/podcasts/2020/12/19/test-entry.adoc b/src/content/en/podcast/2020/12/19/test-entry.adoc index 9e7eb00..9e7eb00 100644 --- a/src/content/en/podcasts/2020/12/19/test-entry.adoc +++ b/src/content/en/podcast/2020/12/19/test-entry.adoc diff --git a/src/content/en/podcasts/2020/12/19/test-entry.flac b/src/content/en/podcast/2020/12/19/test-entry.flac Binary files differindex 786ab59..786ab59 100644 --- a/src/content/en/podcasts/2020/12/19/test-entry.flac +++ b/src/content/en/podcast/2020/12/19/test-entry.flac diff --git a/src/content/en/podcasts/2020/12/19/test-entry.ogg b/src/content/en/podcast/2020/12/19/test-entry.ogg Binary files differindex 9bf5500..9bf5500 100644 --- a/src/content/en/podcasts/2020/12/19/test-entry.ogg +++ b/src/content/en/podcast/2020/12/19/test-entry.ogg diff --git a/src/content/en/podcasts/categories.adoc b/src/content/en/podcast/categories.adoc index f29acda..feb64ff 100644 --- a/src/content/en/podcasts/categories.adoc +++ b/src/content/en/podcast/categories.adoc @@ -1 +1,2 @@ = Articles by category +:type: categories diff --git a/src/content/en/podcasts/index.adoc b/src/content/en/podcast/index.adoc index 1f17da7..1f17da7 100644 --- a/src/content/en/podcasts/index.adoc +++ b/src/content/en/podcast/index.adoc diff --git a/src/content/en/podcasts/2020/12/19/test-entry.flac.torrent b/src/content/en/podcasts/2020/12/19/test-entry.flac.torrent Binary files differdeleted file mode 100644 index 519fb2f..0000000 --- a/src/content/en/podcasts/2020/12/19/test-entry.flac.torrent +++ /dev/null diff --git a/src/content/en/podcasts/2020/12/19/test-entry.ogg.torrent b/src/content/en/podcasts/2020/12/19/test-entry.ogg.torrent deleted file mode 100644 index 901eac3..0000000 --- a/src/content/en/podcasts/2020/12/19/test-entry.ogg.torrent +++ /dev/null @@ -1 +0,0 @@ -d10:created by13:mktorrent 1.14:infod6:lengthi97060e12:x_cross_seed42:mktorrent-9934A4BD4BF787E1BD685FCE62C6057A4:name14:test-entry.ogg12:piece lengthi32768e6:pieces60:dTKf^Q_e]OI}PG+'wg/2Ҥp_y_6!S<e8:url-list57:https://euandre.org/en/podcasts/2020/12/19/test-entry.ogge
\ No newline at end of file diff --git a/src/content/en/screencasts/2021/02/07/autoqemu.adoc b/src/content/en/screencast/2021/02/07/autoqemu.adoc index b20b092..b20b092 100644 --- a/src/content/en/screencasts/2021/02/07/autoqemu.adoc +++ b/src/content/en/screencast/2021/02/07/autoqemu.adoc diff --git a/src/content/en/screencasts/2021/02/07/autoqemu.tar.gz b/src/content/en/screencast/2021/02/07/autoqemu.tar.gz Binary files differindex c2fa042..c2fa042 100644 --- a/src/content/en/screencasts/2021/02/07/autoqemu.tar.gz +++ b/src/content/en/screencast/2021/02/07/autoqemu.tar.gz diff --git a/src/content/en/screencasts/2021/02/07/autoqemu.webm b/src/content/en/screencast/2021/02/07/autoqemu.webm Binary files differindex f553efb..f553efb 100644 --- a/src/content/en/screencasts/2021/02/07/autoqemu.webm +++ b/src/content/en/screencast/2021/02/07/autoqemu.webm diff --git a/src/content/en/screencasts/categories.adoc b/src/content/en/screencast/categories.adoc index f29acda..feb64ff 100644 --- a/src/content/en/screencasts/categories.adoc +++ b/src/content/en/screencast/categories.adoc @@ -1 +1,2 @@ = Articles by category +:type: categories diff --git a/src/content/en/screencasts/index.adoc b/src/content/en/screencast/index.adoc index 083adac..083adac 100644 --- a/src/content/en/screencasts/index.adoc +++ b/src/content/en/screencast/index.adoc diff --git a/src/content/en/screencasts/2021/02/07/autoqemu.webm.torrent b/src/content/en/screencasts/2021/02/07/autoqemu.webm.torrent Binary files differdeleted file mode 100644 index 24bfe73..0000000 --- a/src/content/en/screencasts/2021/02/07/autoqemu.webm.torrent +++ /dev/null diff --git a/src/content/en/slide/2020/10/19/feature-flags.adoc b/src/content/en/slide/2020/10/19/feature-flags.adoc new file mode 100644 index 0000000..553cf4c --- /dev/null +++ b/src/content/en/slide/2020/10/19/feature-flags.adoc @@ -0,0 +1,230 @@ +--- +# Rollout, feature flag, experiment, operational toggle + +@Different use cases for backend, frontend and mobile + +--- +. +. +. +# "Feature flags" tend to come up when talking about continuous deployment + +--- +. +. +. +. +@CI: continuous integration +. +@CD: continuous delivery +. +@CD: continuous deployment + +--- +## Types +. +. +. +1. rollout +2. feature flag +3. experiment +4. operational toggle + +% {favicon.svg} +--- +## Rollout + +# For *rolling out* a new version of software + +Short-lived using percentages + +% FIXME: links +- a new deployment of kubernetes +- new APK released to the Play Store + +--- +## Feature flag + +# For turning a feature *on* or *off* + +Medium-lived using allow list, A/B test, percentage, app version, etc. + +- :new-chargeback-flow +- :new-debit-card-activation-screen + +--- +## Experiment + +# For analysing behaviour + +Medium-lived using allow list and A/B test + +- :debit-withdrawal-test + +--- +## Operational toggle + +# For disabling features in #crash-like situations + +Long-lived using percentage + +- :bank-barcode-payment +- :savings-bank-barcode-query-provider + +--- +. +. +@We know know about the types +# But they have different relevance for backend, frontend and mobile + +--- +## backend +. +. +1. rollout: k8s blue/green, canary and ~common-rollout~ common-xp +2. feature flag: ~common-rollout~ common-xp and datasets +3. experiment: common-xp +4. operational toggle: ~common-rollout~ common-xp + +--- +## frontend +. +. +1. rollout: CDN and page refreshes +2. feature flag: percentages and maybe IPs (no :customer/id on the website) +3. experiment: via dynamic backend control +4. operational toggle: via dynamic backend control + +--- +## backend +. +. +1. rollout: app stores +2. feature flag: via dynamic backend control +3. experiment: via dynamic backend control +4. operational toggle: via dynamic backend control + +--- +. +. +@Key differentiator is +# how much *control* we have over the environment + +--- +## backend +# full control +% FIXME: emoji +% 🎉 + +--- +## frontend +# partial control +We choose when to make a new version available + +--- +## mobile +# very limited control +- app stores can restrict updates (worse for iOS) +- customers still have to download new versions + +--- +# Costs +- more complex code +- compatibility with old app versions +- nesting is exponential + +--- +# Benefits +- dynamicity + +--- +## weighting costs × benefits +# The less control we have, the more we value dynamicity + +--- +## weighting costs × benefits +. +. +. +- backend: sometimes worth the cost +- frontend: almost always worth the cost +- mobile: *always* worth the cost + +--- +. +. +. +# Best practices + +--- +# dynamic content > feature flag +Always true for mobile, almost always for frontend + +--- +# Use :include-list for named groups +Always true for backend, frontend and mobile + + {:rules + #{{:types :include-list + :content {:filename "debit-team-members.txt"}}}} + +--- +# Always use :app-version +Only for mobile + + {:rules + #{{:types :app-version + :content {:min-version #{{:platform :android + :code 1000000} + {:platform :ios + :code 2000000}}}}}} + +--- +# Extend ~common-rollout~ common-xp if required + +That's how :include-list, :app-version, etc. were born + +--- +# Beware of many nested feature flags +True for backend, frontend and mobile + +--- +# Don't delete app-facing feature flags +True for mobile + +--- +. +. +. +# Include a feature flag on the whiteboarding phase + +--- +. +. +. +# Include deleting/retiring the feature flag at the end + +--- +# Avoid renaming a feature flag +Use :app-version with :min-version instead + +--- +. +. +. +# And most importantly... + +--- +# *Always* rely on a feature flag on the app +Never do a hotfix, avoid expedited releases at all costs + +--- +## References +. +% FIXME: links +1. "Feature Toggles (aka Feature Flags)", by Pete Hodgson +2. "Continuous integration vs. delivery vs. deployment", by Sten Pittet +3. Accelerate, by N. Forsgren, J. Humble and G. Kim +4. these slides: euandre.org/slide/ +5. prose version of this presentation +6. view source diff --git a/src/content/en/slide/2020/11/14/local-first-hype.adoc b/src/content/en/slide/2020/11/14/local-first-hype.adoc new file mode 100644 index 0000000..fd83115 --- /dev/null +++ b/src/content/en/slide/2020/11/14/local-first-hype.adoc @@ -0,0 +1,204 @@ +# On "local-first" + +@Beyond the CRDT silver bullet + +--- +## Part 1 +# Exposition + +--- +## Target +... +- documents +- files +- personal data repositories +.. +Not: banking services, e-commerce, social networking, ride-sharing, etc. + +--- +... +# 7 ideals for local-first software + +--- +... +# 1 - no spinners: your work at your fingertips + +--- +... +# 2 - your work is not trapped on one device + +--- +... +# 3 - the network is optional + +--- +... +# 4 - seamless collaboration with your colleagues + +--- +... +# 5 - the long now + +--- +... +# 6 - security and privacy by default + +--- +... +# 7 - you retain ultimate ownership and control + +--- +## Towards a better future +.... +@ CRDTs (Conflict-free Replicated Data Types) as a Foundational Technology + +--- +## Use case +. + # in node A and node B + s = "Hello, World" + + # in node A + s = "Hello, Alice" + + # in node B + s = "Hello, Bob" + +How to reconcile those? +- Hello, ABloibce +- Hello, AliceBob +- Hello, BobAlice +- Hello, Alice +\... + +--- +# Existing CRDTs differ +- performance +- storage +- compression +- metadata overhead + +--- +... +# Hint towards the "automerge" CRDT + +--- +...... +@@show comparison table, page 9 + +--- +## Part 2 +# Critique + +--- +## Software license +... +@@"In our opinion, maintaining control and ownership of data does not mean that the software must necessarily be open source." + +--- +## Example 1 - intentional restriction +. + #!/bin/sh + TODAY="$(date +%s)" + LICENSE_EXPIRATION="$(date -d 2020-10-27 +%s)" + if [ "$TODAY" -ge "$LICENSE_EXPIRATION" ]; then + echo 'License expired!' + exit 1 + fi + echo $((2 + 2)) +. + # today + $ ./useful-adder.sh + 4 + + # tomorrow + $ ./useful-adder.sh + License expired! +--- +## Example 2 - unintentional restriction +. + # today + $ useful-program + # ... useful output ... + + # tomorrow, with more data + $ useful-program + ERROR: Panic! Stack overflow! + +--- +.. +# local-first *requires* free software + +Otherwise "The Long Now" (ideal nº5) is lost + +--- +## Denial of existing solutions +.. +@@"In principle it is possible to collaborate without a repository service, e.g. by sending patch files by email, but the majority of Git users rely on GitHub." +. +Solution: either GitHub+CRDTs or git send-email + +--- +## Plain-text formats +. +@@"Git is highly optimized for code and similar line-based text file" +. +It even pulls software to the plain text directtion, e.g.: +- delivery-templates +- common-core.protocols.config +. +Why not exploit that more? + +--- +## Ditching of web applications +.. +@@"The architecture of web apps remains fundamentally server-centric +. +% FIXME: links +Disagree. Contrast PouchDB with Android Instant Apps + +--- +## Costs are underrated +. +- storage +- backups +- maintenance +. +Example: blog vs vlog + +--- +## Real-time collaboration a bit overrated +. +It is only possible on the presence of reliable, medium-quality network connection +.. +@@"X also works when inside an elevator, subway or plane!" + +--- +## On CRDTs and developer experience +. +@@"For an app developer, how does the use of a CRDT-based data layer compare to existing storage layers like a SQL database, a filesystem, or CoreData? Is a distributed system harder to write software for? +. +@YES. +. +% FIXME: link +See "A Note on Distributed Computing" + +--- +## Conclusion +. +Why this is a "paper I love": it took offline-first and ran with it. +. +But a pinch of CRDT won't make the world local-first. +. +The tricky part is the end of the sentence: "in spite of the Cloud". + +--- +## References +. +% FIXME: links +1. "Local-First Software: You Own Your Data, in spite of the Cloud", by M. Kleppmann, A. Wiggins, P. Van Hardenberg and M. F. McGranaghan +2. The Morning Paper article +3. "A Note on Distributed Compiting", by J. Waldo, G. Wyant, A. Wollrath and S. Kendall +4. these slides: euandre.org/slide/ +5. prose version of this presentation +6. view source diff --git a/src/content/en/slides/2020-10-19-rollout-feature-flag-experiment-operational-toggle.slides b/src/content/en/slides/2020-10-19-rollout-feature-flag-experiment-operational-toggle.slides deleted file mode 100644 index 22770e6..0000000 --- a/src/content/en/slides/2020-10-19-rollout-feature-flag-experiment-operational-toggle.slides +++ /dev/null @@ -1,343 +0,0 @@ ---- - -title: Rollout, feature flag, experiment, operational toggle - -date: 2020-10-19 - -layout: slides - -lang: en - -ref: rollout-feature-flag-experiment-operational-toggle - -article: _articles/2020-10-19-feature-flags-differences-between-backend-frontend-and-mobile.md - ---- - -# Rollout, feature flag, experiment, operational toggle -Different use cases for **backend**, **frontend** and **mobile** - ---- - -"Feature flags" tend to come up when talking about **continuous deployment** - -??? - -I'm using "quotes" because I'm mixing up different meanings of "rollout" - ---- - -# CI -continuous integration - -# CD -continuous delivery - -# CD -**continuous deployment** - -??? - -Background: build vocabulary, why are feature flags related to CD - -CI solves: manual integration of long-lived branches - -CD solves: automation of deployment process - -CD solves: releases as frequent as possible - -That's where the "GoCD" name comes from - ---- - -# Types: -1. rollout -2. feature flag -3. experiment -4. operational toggle - ---- - -# rollout -## For *rolling out* a new version of software - -**Short-lived** using **percentages** - -- a [new deployment of k8s][k8s] -- new [APK released to the Play Store][apk] - -[k8s]: https://kubernetes.io/docs/concepts/workloads/controllers/deployment/#creating-a-deployment -[apk]: https://support.google.com/googleplay/android-developer/answer/6346149?hl=en - -??? - -Relevant as long as the new code is deployed - ---- - -# feature flag -## For turning a feature *on* or *off* - -**Medium-lived** using **allow list**, **A/B test**, **percentage**, -**app version**, *etc*. - -- `:new-chargeback-flow` -- `:new-debit-card-activation-screen` - -??? - -Relevant as long as the new code is being developed - ---- - -# experiment -## For analyzing behaviour - -**Medium-lived** using **allow list** and **A/B test** - -- `:debit-withdrawal-test` - ---- - -# operational toggle -## For disabling features in `#crash`-like situations - -**Long-lived** using **percentage** - -- `:bank-barcode-payment` -- `:savings-bank-barcode-query-provider` - -??? - -Lives for as long as the code is in production. - -It feels like a system-level circuit breaker. - ---- - -We now know about the types - -## But they have different relevance for **backend**, **frontend** and **mobile** - ---- - -# backend - -1. **rollout**: k8s blue/green, canary and ~`common-rollout`~ `common-xp` -2. **feature flag**: ~`common-rollout`~ `common-xp` and datasets -3. **experiment**: `common-xp` -4. **operational toggle**: ~`common-rollout`~ `common-xp` - -??? - -This is a bit why common-rollout isn't called *common-feature-flag*: it was -initially designed with backend usage of mostly *rollouts* in mind, and just a -bit *feature flags*. - -Avoid using configuration for doing operational toggles: it is less dynamic, so -it defeats the purpose. - ---- - -# frontend - -1. **rollout**: CDN and page refreshes -2. **feature flag**: percentages and maybe IPs (no `:customer/id` on the website) -3. **experiment**: via dynamic backend control -4. **operational toggle**: via dynamic backend control - ---- - -# mobile - -1. **rollout**: app stores -2. **feature flag**: via dynamic backend control -3. **experiment**: via dynamic backend control -4. **operational toggle**: via dynamic backend control - ---- - -Key differentiator is -## How much **control** we have over the **environment** - ---- - -## **backend** - -# Full control -🎉 - -??? - -Can edit, update and even delete rollouts as desired. - -Mix and match at will! - ---- - -## **frontend** - -# Partial control - -When choose when to make a new version available - -??? - -We can control when a new version is available, partially when someone will -upgrade it. - -But it is easy to fallback to "reload the page and try again". - ---- - -## **mobile** - -# Very limited control - -- app stores can restrict updates (worse for iOS) -- customers still have to download new versions - ---- - -# Costs - -- more complex code -- compatibility with old app versions -- nesting is exponential - ---- - -# Benefits - -- dynamicity - ---- - -## Weighting costs × benefits - -The less control we have, the more we value dynamicity - ---- - -## Weighting costs × benefits - -- backend: sometimes worth the cost -- frontend: almost always worth cost -- mobile: **always** worth cost - ---- - -# Best practices - ---- - -## Dynamic content > feature flag - -Always true for **mobile**, almost always for **frontend** - ---- - -## Use `:include-list` for named groups - -Always true for **backend**, **frontend** and **mobile** - -{% raw %} -```clojure [2-3] -{:rules - #{{:type :include-list - :content {:filename "debit-team-members.txt"}}}} -``` -{% endraw %} - ---- - -## Always use `:app-version` - -only for **mobile** - -{% raw %} -```clojure [2] -{:rules - #{{:type :app-version - :content {:min-version #{{:platform :android - :code 1000000} - {:platform :ios - :code 2000000}}}}}} -``` -{% endraw %} - ---- - -## Extend ~`common-rollout`~ `common-xp` if required - -That's how `:include-list`, `:app-version`, *etc.* were born - ---- - -## Beware of many nested feature flags - -True for **backend**, **frontend** and **mobile** - -??? - -Exponential growth of combinations - ---- - -## Don't delete app-facing feature flags - -True for **mobile** - -??? - -This could break old app versions, only do this intentionally - -We don't have (yet) a strategy for dealing with LTS of the app, and we just say: -"we'll support every app version out there". - ---- - -## Include a feature flag on the whiteboarding phase - ---- - -## Include deleting/retiring the feature flag at the end - ---- - -## Avoid renaming a feature flag - -Use `:app-version` with `:min-version` instead - ---- - -# And most importantly... - ---- - -# ***Always*** rely on a feature flag on the app - -Never do a hot fix, avoid expedited releases at all costs - -??? - -The app is where we have less control, so the feature flag is how we get some of -that control back. - -This doesn't mean you'll need 1 feature flag per PR - -There's not such thing as: -"This is such a small thing, it doesn't need a feature flag" - -You should ask yourself: -"It this crashes the app, am I OK with waiting for the next release train?" - ---- - -## Thank you! - -References: - -1. "[Feature Toggles (aka Feature Flags)](https://martinfowler.com/articles/feature-toggles.html)", by Pete Hodgson -1. "[Continuous integration vs. continuous delivery vs. continuous deployment](https://www.atlassian.com/continuous-delivery/principles/continuous-integration-vs-delivery-vs-deployment)", by Sten Pittet -1. [Accelerate](https://itrevolution.com/book/accelerate/), by N. Forsgren, J. Humble and G. Kim diff --git a/src/content/en/slides/2020-11-14-on-local-first-beyond-the-crdt-silver-bullet.slides b/src/content/en/slides/2020-11-14-on-local-first-beyond-the-crdt-silver-bullet.slides deleted file mode 100644 index 8f17982..0000000 --- a/src/content/en/slides/2020-11-14-on-local-first-beyond-the-crdt-silver-bullet.slides +++ /dev/null @@ -1,266 +0,0 @@ ---- - -title: 'On "local-first": beyond the CRDT silver bullet' - -date: 2020-11-14 - -layout: slides - -lang: en - -ref: on-local-first-beyond-the-crdt-silver-bullet - -article: _articles/2020-11-14-local-first-software-you-own-your-data-in-spite-of-the-cloud-article-review.md - ---- - -# On local-first - -Beyond the CRDT silver bullet - ---- - -# Part 1 - -Exposition - ---- - -## "cloud apps" vs "old-fashioned apps" - ---- - -## Target - -- documents -- files -- personal data repositories - -Not: banking services, e-commerce, social networking, ride-sharing, *etc*. - ---- - -## 7 Ideals for local-first software - ---- - -### 1 - No Spinners: Your Work at Your Fingertips - ---- - -### 2 - Your Work Is Not Trapped on One Device - ---- - -### 3 - The Network Is Optional - ---- - -### 4 - Seamless Collaboration with Your Colleagues - ---- - -### 5 - The Long Now - ---- - -### 6 - Security and Privacy by Default - ---- - -### 7 - You Retain Ultimate Ownership and Control - ---- - -## Towards a Better Future - -CRDTs (Conflict-free Replicated Data Types) as a Foundational Technology - ---- - -### Use case - -``` -# in node A and node B -s = "Hello, World" - -# in node A -s = "Hello, Alice" - -# in node B -s = "Hello, Bob" -``` - -How to reconcile those? -- `Hello, ABloibce` -- `Hello, AliceBob` -- `Hello, BobAlice` -- `Hello, Alice` -- `Hello, Bob` - ---- - -Existing CRDTs differ: -- performance -- storage -- compression -- metadata overhead - ---- - -Hint towards the "automerge" CRDT - ---- - -*show comparison table, page 9* - ---- - -# Part 2 - -Critique - ---- - -### Software license - -> In our opinion, maintaining control and ownership of data does not mean that -> the software must necessarily be open source. - ---- - -#### Example 1 - intentional restriction - -```bash -#!/bin/sh - -TODAY=$(date +%s) -LICENSE_EXPIRATION=$(date -d 2020-10-27 +%s) - -if [ $TODAY -ge $LICENSE_EXPIRATION ]; then - echo 'License expired!' - exit 1 -fi - -echo $((2 + 2)) -``` - -```bash -# today -$ ./useful-adder.sh -4 -# tomorrow -$ ./useful-adder.sh -License expired! -``` - ---- - -#### Example 2 - unintentional restriction - -```bash -# today -$ useful-program -# ...useful output... - -# tomorrow, with more data -$ useful-program -ERROR: Panic! Stack overflow! -``` ---- - -### local-first **requires** free software - -Otherwise "The Long Now" (ideal nº5) is lost - ---- - -### Denial of existing solutions - -> In principle it is possible to collaborate without a repository service, -> e.g. by sending patch files by email, but the majority of Git users rely -> on GitHub. - -Solution: either GitHub+CRDTs or `git` **`send-email`** - ---- - -### Plain text formats - -> Git is highly optimized for code and similar line-based text file - -It even pulls software to the plain text direction, e.g.: -- delivery-templates -- `common-core.protocols.config` - -Why not exploit that more? - ---- - -### Ditching of web applications - -> The architecture of web apps remains fundamentally server-centric - -Disagree. Contrast [PouchDB][pouchdb] with Android [Instant Apps][instant-apps] - -[pouchdb]: https://pouchdb.com/ -[instant-apps]: https://developer.android.com/topic/google-play-instant - -??? - -Talk on dynamic content - ---- - -### Costs are underrated - -- storage -- backups -- maintenance - -Example: blog vs vlog - ---- - -### Real-time collaboration a bit overrated - -It is only possible on the presence of reliable, medium-quality network -connection - -> X also works when inside an elevator, subway or plane! - -<!-- 🤦 --> - ---- - -### On CRDTs and developer experience - -> For an app developer, how does the use of a CRDT-based data layer compare to -> existing storage layers like a SQL database, a filesystem, or CoreData? Is a -> distributed system harder to write software for? - -Yes. - -See "[A Note on Distributed Computing][note-dist-comp]" - -[note-dist-comp]: https://web.archive.org/web/20130116163535/http://labs.oracle.com/techrep/1994/smli_tr-94-29.pdf - ---- - -## Conclusion - -Why this is a "paper I love": it took offline-first and ran with it. - -But a pinch of CRDT won't make the world local-first. - -The tricky part is the end of the sentence: "**in spite of the Cloud**". - ---- - -## Thank you! - -References: - -1. "[Local-First Software: You Own Your Data, in spite of the Cloud](https://martin.kleppmann.com/papers/local-first.pdf)", by M. Kleppmann, A. Wiggins, P. Van Hardenberg and M. F. McGranaghan -1. [The Morning Paper](https://blog.acolyer.org/2019/11/20/local-first-software/) article -1. "[A Note on Distributed Computing](https://web.archive.org/web/20130116163535/http://labs.oracle.com/techrep/1994/smli_tr-94-29.pdf)", by J. Waldo, G. Wyant, A. Wollrath and S Kendall diff --git a/src/content/en/tils/2020/08/12/filename-timestamp.adoc b/src/content/en/til/2020/08/12/filename-timestamp.adoc index aa8d63b..aa8d63b 100644 --- a/src/content/en/tils/2020/08/12/filename-timestamp.adoc +++ b/src/content/en/til/2020/08/12/filename-timestamp.adoc diff --git a/src/content/en/tils/2020/08/13/code-jekyll.adoc b/src/content/en/til/2020/08/13/code-jekyll.adoc index 6bd90b0..6bd90b0 100644 --- a/src/content/en/tils/2020/08/13/code-jekyll.adoc +++ b/src/content/en/til/2020/08/13/code-jekyll.adoc diff --git a/src/content/en/tils/2020/08/14/browse-git.adoc b/src/content/en/til/2020/08/14/browse-git.adoc index 6b3ff6d..6b3ff6d 100644 --- a/src/content/en/tils/2020/08/14/browse-git.adoc +++ b/src/content/en/til/2020/08/14/browse-git.adoc diff --git a/src/content/en/tils/2020/08/16/git-search.adoc b/src/content/en/til/2020/08/16/git-search.adoc index 4113f3f..4113f3f 100644 --- a/src/content/en/tils/2020/08/16/git-search.adoc +++ b/src/content/en/til/2020/08/16/git-search.adoc diff --git a/src/content/en/tils/2020/08/28/grep-online.adoc b/src/content/en/til/2020/08/28/grep-online.adoc index 77363ab..77363ab 100644 --- a/src/content/en/tils/2020/08/28/grep-online.adoc +++ b/src/content/en/til/2020/08/28/grep-online.adoc diff --git a/src/content/en/tils/2020/09/04/cli-email-fun-profit.adoc b/src/content/en/til/2020/09/04/cli-email-fun-profit.adoc index 1da1154..1da1154 100644 --- a/src/content/en/tils/2020/09/04/cli-email-fun-profit.adoc +++ b/src/content/en/til/2020/09/04/cli-email-fun-profit.adoc diff --git a/src/content/en/tils/2020/09/05/oldschool-pr.adoc b/src/content/en/til/2020/09/05/oldschool-pr.adoc index 392ec67..392ec67 100644 --- a/src/content/en/tils/2020/09/05/oldschool-pr.adoc +++ b/src/content/en/til/2020/09/05/oldschool-pr.adoc diff --git a/src/content/en/tils/2020/10/11/search-git-history.adoc b/src/content/en/til/2020/10/11/search-git-history.adoc index 696368c..696368c 100644 --- a/src/content/en/tils/2020/10/11/search-git-history.adoc +++ b/src/content/en/til/2020/10/11/search-git-history.adoc diff --git a/src/content/en/tils/2020/11/08/find-broken-symlink.adoc b/src/content/en/til/2020/11/08/find-broken-symlink.adoc index 624d24a..624d24a 100644 --- a/src/content/en/tils/2020/11/08/find-broken-symlink.adoc +++ b/src/content/en/til/2020/11/08/find-broken-symlink.adoc diff --git a/src/content/en/tils/2020/11/12/diy-nix-bash-ci.adoc b/src/content/en/til/2020/11/12/diy-nix-bash-ci.adoc index 97ace30..97ace30 100644 --- a/src/content/en/tils/2020/11/12/diy-nix-bash-ci.adoc +++ b/src/content/en/til/2020/11/12/diy-nix-bash-ci.adoc diff --git a/src/content/en/tils/2020/11/12/git-bisect-automation.adoc b/src/content/en/til/2020/11/12/git-bisect-automation.adoc index dff8737..dff8737 100644 --- a/src/content/en/tils/2020/11/12/git-bisect-automation.adoc +++ b/src/content/en/til/2020/11/12/git-bisect-automation.adoc diff --git a/src/content/en/tils/2020/11/12/useful-bashvars.adoc b/src/content/en/til/2020/11/12/useful-bashvars.adoc index fb148fb..fb148fb 100644 --- a/src/content/en/tils/2020/11/12/useful-bashvars.adoc +++ b/src/content/en/til/2020/11/12/useful-bashvars.adoc diff --git a/src/content/en/tils/2020/11/14/gpodder-media.adoc b/src/content/en/til/2020/11/14/gpodder-media.adoc index f722f35..f722f35 100644 --- a/src/content/en/tils/2020/11/14/gpodder-media.adoc +++ b/src/content/en/til/2020/11/14/gpodder-media.adoc diff --git a/src/content/en/tils/2020/11/30/git-notes-ci.adoc b/src/content/en/til/2020/11/30/git-notes-ci.adoc index 48a996b..48a996b 100644 --- a/src/content/en/tils/2020/11/30/git-notes-ci.adoc +++ b/src/content/en/til/2020/11/30/git-notes-ci.adoc diff --git a/src/content/en/tils/2020/12/15/shellcheck-repo.adoc b/src/content/en/til/2020/12/15/shellcheck-repo.adoc index 387e793..387e793 100644 --- a/src/content/en/tils/2020/12/15/shellcheck-repo.adoc +++ b/src/content/en/til/2020/12/15/shellcheck-repo.adoc diff --git a/src/content/en/tils/2020/12/29/svg.adoc b/src/content/en/til/2020/12/29/svg.adoc index e0e75a5..e0e75a5 100644 --- a/src/content/en/tils/2020/12/29/svg.adoc +++ b/src/content/en/til/2020/12/29/svg.adoc diff --git a/src/content/en/tils/2021/01/12/curl-awk-emails.adoc b/src/content/en/til/2021/01/12/curl-awk-emails.adoc index d432da2..d432da2 100644 --- a/src/content/en/tils/2021/01/12/curl-awk-emails.adoc +++ b/src/content/en/til/2021/01/12/curl-awk-emails.adoc diff --git a/src/content/en/tils/2021/01/17/posix-shebang.adoc b/src/content/en/til/2021/01/17/posix-shebang.adoc index 5cf0695..5cf0695 100644 --- a/src/content/en/tils/2021/01/17/posix-shebang.adoc +++ b/src/content/en/til/2021/01/17/posix-shebang.adoc diff --git a/src/content/en/tils/2021/04/24/cl-generic-precedence.adoc b/src/content/en/til/2021/04/24/cl-generic-precedence.adoc index 541afb0..541afb0 100644 --- a/src/content/en/tils/2021/04/24/cl-generic-precedence.adoc +++ b/src/content/en/til/2021/04/24/cl-generic-precedence.adoc diff --git a/src/content/en/tils/2021/04/24/clojure-autocurry.adoc b/src/content/en/til/2021/04/24/clojure-autocurry.adoc index a2c2835..a2c2835 100644 --- a/src/content/en/tils/2021/04/24/clojure-autocurry.adoc +++ b/src/content/en/til/2021/04/24/clojure-autocurry.adoc diff --git a/src/content/en/tils/2021/04/24/scm-nif.adoc b/src/content/en/til/2021/04/24/scm-nif.adoc index 2ea8a6f..2ea8a6f 100644 --- a/src/content/en/tils/2021/04/24/scm-nif.adoc +++ b/src/content/en/til/2021/04/24/scm-nif.adoc diff --git a/src/content/en/tils/2021/07/23/git-tls-gpg.adoc b/src/content/en/til/2021/07/23/git-tls-gpg.adoc index f198c2b..f198c2b 100644 --- a/src/content/en/tils/2021/07/23/git-tls-gpg.adoc +++ b/src/content/en/til/2021/07/23/git-tls-gpg.adoc diff --git a/src/content/en/tils/2021/08/11/js-bigint-reviver.adoc b/src/content/en/til/2021/08/11/js-bigint-reviver.adoc index 98ee79b..98ee79b 100644 --- a/src/content/en/tils/2021/08/11/js-bigint-reviver.adoc +++ b/src/content/en/til/2021/08/11/js-bigint-reviver.adoc diff --git a/src/content/en/tils/categories.adoc b/src/content/en/til/categories.adoc index f29acda..feb64ff 100644 --- a/src/content/en/tils/categories.adoc +++ b/src/content/en/til/categories.adoc @@ -1 +1,2 @@ = Articles by category +:type: categories diff --git a/src/content/en/tils/index.adoc b/src/content/en/til/index.adoc index 7e85335..7e85335 100644 --- a/src/content/en/tils/index.adoc +++ b/src/content/en/til/index.adoc diff --git a/src/content/favicon.png b/src/content/favicon.png Binary files differindex a416e71..136d8cb 100644 --- a/src/content/favicon.png +++ b/src/content/favicon.png diff --git a/src/content/img/atom.svg b/src/content/img/atom.svg new file mode 100644 index 0000000..23ab291 --- /dev/null +++ b/src/content/img/atom.svg @@ -0,0 +1,6 @@ +<?xml version="1.0" encoding="utf-8"?> +<svg width="22" height="22" viewBox="0 0 1792 1792" xmlns="http://www.w3.org/2000/svg"> + <path + fill="#EA990E" + d="M576 1344q0 80-56 136t-136 56-136-56-56-136 56-136 136-56 136 56 56 136zm512 123q2 28-17 48-18 21-47 21h-135q-25 0-43-16.5t-20-41.5q-22-229-184.5-391.5t-391.5-184.5q-25-2-41.5-20t-16.5-43v-135q0-29 21-47 17-17 43-17h5q160 13 306 80.5t259 181.5q114 113 181.5 259t80.5 306zm512 2q2 27-18 47-18 20-46 20h-143q-26 0-44.5-17.5t-19.5-42.5q-12-215-101-408.5t-231.5-336-336-231.5-408.5-102q-25-1-42.5-19.5t-17.5-43.5v-143q0-28 20-46 18-18 44-18h3q262 13 501.5 120t425.5 294q187 186 294 425.5t120 501.5z" /> +</svg> diff --git a/src/content/img/atom/dark.svg b/src/content/img/atom/dark.svg deleted file mode 120000 index 4d0de78..0000000 --- a/src/content/img/atom/dark.svg +++ /dev/null @@ -1 +0,0 @@ -light.svg
\ No newline at end of file diff --git a/src/content/img/atom/light.svg b/src/content/img/atom/light.svg deleted file mode 100644 index 37bace2..0000000 --- a/src/content/img/atom/light.svg +++ /dev/null @@ -1,5 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<svg width="22" height="22" viewBox="0 0 1792 1792" xmlns="http://www.w3.org/2000/svg"> - <path d="M576 1344q0 80-56 136t-136 56-136-56-56-136 56-136 136-56 136 56 56 136zm512 123q2 28-17 48-18 21-47 21h-135q-25 0-43-16.5t-20-41.5q-22-229-184.5-391.5t-391.5-184.5q-25-2-41.5-20t-16.5-43v-135q0-29 21-47 17-17 43-17h5q160 13 306 80.5t259 181.5q114 113 181.5 259t80.5 306zm512 2q2 27-18 47-18 20-46 20h-143q-26 0-44.5-17.5t-19.5-42.5q-12-215-101-408.5t-231.5-336-336-231.5-408.5-102q-25-1-42.5-19.5t-17.5-43.5v-143q0-28 20-46 18-18 44-18h3q262 13 501.5 120t425.5 294q187 186 294 425.5t120 501.5z" - fill="#EA990E" /> -</svg> diff --git a/src/content/img/envelope/dark.svg b/src/content/img/envelope/dark.svg index 4d0de78..f521a8f 120000..100644 --- a/src/content/img/envelope/dark.svg +++ b/src/content/img/envelope/dark.svg @@ -1 +1,6 @@ -light.svg
\ No newline at end of file +<?xml version="1.0" encoding="utf-8"?> +<svg width="22" height="22" viewBox="0 0 1792 1792" xmlns="http://www.w3.org/2000/svg"> + <path + fill="white" + d="M1664 1504v-768q-32 36-69 66-268 206-426 338-51 43-83 67t-86.5 48.5-102.5 24.5h-2q-48 0-102.5-24.5t-86.5-48.5-83-67q-158-132-426-338-37-30-69-66v768q0 13 9.5 22.5t22.5 9.5h1472q13 0 22.5-9.5t9.5-22.5zm0-1051v-24.5l-.5-13-3-12.5-5.5-9-9-7.5-14-2.5h-1472q-13 0-22.5 9.5t-9.5 22.5q0 168 147 284 193 152 401 317 6 5 35 29.5t46 37.5 44.5 31.5 50.5 27.5 43 9h2q20 0 43-9t50.5-27.5 44.5-31.5 46-37.5 35-29.5q208-165 401-317 54-43 100.5-115.5t46.5-131.5zm128-37v1088q0 66-47 113t-113 47h-1472q-66 0-113-47t-47-113v-1088q0-66 47-113t113-47h1472q66 0 113 47t47 113z" /> +</svg> diff --git a/src/content/img/envelope/light.svg b/src/content/img/envelope/light.svg index c2251f4..12aba9f 100644 --- a/src/content/img/envelope/light.svg +++ b/src/content/img/envelope/light.svg @@ -1,4 +1,6 @@ <?xml version="1.0" encoding="utf-8"?> <svg width="22" height="22" viewBox="0 0 1792 1792" xmlns="http://www.w3.org/2000/svg"> - <path d="M1664 1504v-768q-32 36-69 66-268 206-426 338-51 43-83 67t-86.5 48.5-102.5 24.5h-2q-48 0-102.5-24.5t-86.5-48.5-83-67q-158-132-426-338-37-30-69-66v768q0 13 9.5 22.5t22.5 9.5h1472q13 0 22.5-9.5t9.5-22.5zm0-1051v-24.5l-.5-13-3-12.5-5.5-9-9-7.5-14-2.5h-1472q-13 0-22.5 9.5t-9.5 22.5q0 168 147 284 193 152 401 317 6 5 35 29.5t46 37.5 44.5 31.5 50.5 27.5 43 9h2q20 0 43-9t50.5-27.5 44.5-31.5 46-37.5 35-29.5q208-165 401-317 54-43 100.5-115.5t46.5-131.5zm128-37v1088q0 66-47 113t-113 47h-1472q-66 0-113-47t-47-113v-1088q0-66 47-113t113-47h1472q66 0 113 47t47 113z" /> + <path + fill="black" + d="M1664 1504v-768q-32 36-69 66-268 206-426 338-51 43-83 67t-86.5 48.5-102.5 24.5h-2q-48 0-102.5-24.5t-86.5-48.5-83-67q-158-132-426-338-37-30-69-66v768q0 13 9.5 22.5t22.5 9.5h1472q13 0 22.5-9.5t9.5-22.5zm0-1051v-24.5l-.5-13-3-12.5-5.5-9-9-7.5-14-2.5h-1472q-13 0-22.5 9.5t-9.5 22.5q0 168 147 284 193 152 401 317 6 5 35 29.5t46 37.5 44.5 31.5 50.5 27.5 43 9h2q20 0 43-9t50.5-27.5 44.5-31.5 46-37.5 35-29.5q208-165 401-317 54-43 100.5-115.5t46.5-131.5zm128-37v1088q0 66-47 113t-113 47h-1472q-66 0-113-47t-47-113v-1088q0-66 47-113t113-47h1472q66 0 113 47t47 113z" /> </svg> diff --git a/src/content/img/link/dark.svg b/src/content/img/link/dark.svg index 4d0de78..fd6ca35 120000..100644 --- a/src/content/img/link/dark.svg +++ b/src/content/img/link/dark.svg @@ -1 +1,7 @@ -light.svg
\ No newline at end of file +<?xml version="1.0" encoding="utf-8"?> +<svg width="22" height="22" viewBox="0 0 16 16" xmlns="http://www.w3.org/2000/svg"> + <path + fill="white" + fill-rule="evenodd" + d="M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z" /> +</svg> diff --git a/src/content/img/link/light.svg b/src/content/img/link/light.svg index e5c7050..fd9033f 100644 --- a/src/content/img/link/light.svg +++ b/src/content/img/link/light.svg @@ -1,5 +1,7 @@ <?xml version="1.0" encoding="utf-8"?> <svg width="22" height="22" viewBox="0 0 16 16" xmlns="http://www.w3.org/2000/svg"> - <path fill-rule="evenodd" - d="M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z" /> + <path + fill="black" + fill-rule="evenodd" + d="M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z" /> </svg> diff --git a/src/content/img/lock/dark.svg b/src/content/img/lock/dark.svg index 4d0de78..98a36bc 120000..100644 --- a/src/content/img/lock/dark.svg +++ b/src/content/img/lock/dark.svg @@ -1 +1,6 @@ -light.svg
\ No newline at end of file +<?xml version="1.0" encoding="utf-8"?> +<svg width="22" height="22" viewBox="0 0 1792 1792" xmlns="http://www.w3.org/2000/svg"> + <path + fill="white" + d="M640 768h512v-192q0-106-75-181t-181-75-181 75-75 181v192zm832 96v576q0 40-28 68t-68 28h-960q-40 0-68-28t-28-68v-576q0-40 28-68t68-28h32v-192q0-184 132-316t316-132 316 132 132 316v192h32q40 0 68 28t28 68z" /> +</svg> diff --git a/src/content/img/lock/light.svg b/src/content/img/lock/light.svg index 1a4a18e..d449467 100644 --- a/src/content/img/lock/light.svg +++ b/src/content/img/lock/light.svg @@ -1,4 +1,6 @@ <?xml version="1.0" encoding="utf-8"?> <svg width="22" height="22" viewBox="0 0 1792 1792" xmlns="http://www.w3.org/2000/svg"> - <path d="M640 768h512v-192q0-106-75-181t-181-75-181 75-75 181v192zm832 96v576q0 40-28 68t-68 28h-960q-40 0-68-28t-28-68v-576q0-40 28-68t68-28h32v-192q0-184 132-316t316-132 316 132 132 316v192h32q40 0 68 28t28 68z" /> + <path + fill="black" + d="M640 768h512v-192q0-106-75-181t-181-75-181 75-75 181v192zm832 96v576q0 40-28 68t-68 28h-960q-40 0-68-28t-28-68v-576q0-40 28-68t68-28h32v-192q0-184 132-316t316-132 316 132 132 316v192h32q40 0 68 28t28 68z" /> </svg> diff --git a/src/content/img/logo/dark.svg b/src/content/img/logo/dark.svg index 4d0de78..96e0f87 120000..100644 --- a/src/content/img/logo/dark.svg +++ b/src/content/img/logo/dark.svg @@ -1 +1,62 @@ -light.svg
\ No newline at end of file +<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16" width="16" height="16"> + <path fill="white" d="M 0 8 L 1 8 L 1 9 L 0 9 L 0 8 Z" /> + <path fill="white" d="M 0 13 L 1 13 L 1 14 L 0 14 L 0 13 Z" /> + <path fill="white" d="M 1 8 L 2 8 L 2 9 L 1 9 L 1 8 Z" /> + <path fill="white" d="M 1 13 L 2 13 L 2 14 L 1 14 L 1 13 Z" /> + <path fill="white" d="M 2 8 L 3 8 L 3 9 L 2 9 L 2 8 Z" /> + <path fill="white" d="M 2 13 L 3 13 L 3 14 L 2 14 L 2 13 Z" /> + <path fill="white" d="M 3 8 L 4 8 L 4 9 L 3 9 L 3 8 Z" /> + <path fill="white" d="M 3 13 L 4 13 L 4 14 L 3 14 L 3 13 Z" /> + <path fill="white" d="M 4 7 L 5 7 L 5 8 L 4 8 L 4 7 Z" /> + <path fill="white" d="M 4 8 L 5 8 L 5 9 L 4 9 L 4 8 Z" /> + <path fill="white" d="M 4 13 L 5 13 L 5 14 L 4 14 L 4 13 Z" /> + <path fill="white" d="M 5 6 L 6 6 L 6 7 L 5 7 L 5 6 Z" /> + <path fill="white" d="M 5 7 L 6 7 L 6 8 L 5 8 L 5 7 Z" /> + <path fill="white" d="M 5 13 L 6 13 L 6 14 L 5 14 L 5 13 Z" /> + <path fill="white" d="M 6 5 L 7 5 L 7 6 L 6 6 L 6 5 Z" /> + <path fill="white" d="M 6 6 L 7 6 L 7 7 L 6 7 L 6 6 Z" /> + <path fill="white" d="M 6 14 L 7 14 L 7 15 L 6 15 L 6 14 Z" /> + <path fill="white" d="M 7 1 L 8 1 L 8 2 L 7 2 L 7 1 Z" /> + <path fill="white" d="M 7 14 L 8 14 L 8 15 L 7 15 L 7 14 Z" /> + <path fill="white" d="M 7 15 L 8 15 L 8 16 L 7 16 L 7 15 Z" /> + <path fill="white" d="M 7 2 L 8 2 L 8 3 L 7 3 L 7 2 Z" /> + <path fill="white" d="M 7 3 L 8 3 L 8 4 L 7 4 L 7 3 Z" /> + <path fill="white" d="M 7 4 L 8 4 L 8 5 L 7 5 L 7 4 Z" /> + <path fill="white" d="M 7 5 L 8 5 L 8 6 L 7 6 L 7 5 Z" /> + <path fill="white" d="M 8 1 L 9 1 L 9 2 L 8 2 L 8 1 Z" /> + <path fill="white" d="M 8 15 L 9 15 L 9 16 L 8 16 L 8 15 Z" /> + <path fill="white" d="M 9 1 L 10 1 L 10 2 L 9 2 L 9 1 Z" /> + <path fill="white" d="M 9 2 L 10 2 L 10 3 L 9 3 L 9 2 Z" /> + <path fill="white" d="M 9 6 L 10 6 L 10 7 L 9 7 L 9 6 Z" /> + <path fill="white" d="M 9 15 L 10 15 L 10 16 L 9 16 L 9 15 Z" /> + <path fill="white" d="M 10 2 L 11 2 L 11 3 L 10 3 L 10 2 Z" /> + <path fill="white" d="M 10 3 L 11 3 L 11 4 L 10 4 L 10 3 Z" /> + <path fill="white" d="M 10 4 L 11 4 L 11 5 L 10 5 L 10 4 Z" /> + <path fill="white" d="M 10 5 L 11 5 L 11 6 L 10 6 L 10 5 Z" /> + <path fill="white" d="M 10 6 L 11 6 L 11 7 L 10 7 L 10 6 Z" /> + <path fill="white" d="M 11 6 L 12 6 L 12 7 L 11 7 L 11 6 Z" /> + <path fill="white" d="M 11 8 L 12 8 L 12 9 L 11 9 L 11 8 Z" /> + <path fill="white" d="M 10 15 L 11 15 L 11 16 L 10 16 L 10 15 Z" /> + <path fill="white" d="M 11 10 L 12 10 L 12 11 L 11 11 L 11 10 Z" /> + <path fill="white" d="M 11 12 L 12 12 L 12 13 L 11 13 L 11 12 Z" /> + <path fill="white" d="M 11 14 L 12 14 L 12 15 L 11 15 L 11 14 Z" /> + <path fill="white" d="M 11 15 L 12 15 L 12 16 L 11 16 L 11 15 Z" /> + <path fill="white" d="M 12 6 L 13 6 L 13 7 L 12 7 L 12 6 Z" /> + <path fill="white" d="M 12 8 L 13 8 L 13 9 L 12 9 L 12 8 Z" /> + <path fill="white" d="M 12 10 L 13 10 L 13 11 L 12 11 L 12 10 Z" /> + <path fill="white" d="M 12 12 L 13 12 L 13 13 L 12 13 L 12 12 Z" /> + <path fill="white" d="M 12 14 L 13 14 L 13 15 L 12 15 L 12 14 Z" /> + <path fill="white" d="M 13 6 L 14 6 L 14 7 L 13 7 L 13 6 Z" /> + <path fill="white" d="M 13 8 L 14 8 L 14 9 L 13 9 L 13 8 Z" /> + <path fill="white" d="M 13 10 L 14 10 L 14 11 L 13 11 L 13 10 Z" /> + <path fill="white" d="M 13 12 L 14 12 L 14 13 L 13 13 L 13 12 Z" /> + <path fill="white" d="M 13 13 L 14 13 L 14 14 L 13 14 L 13 13 Z" /> + <path fill="white" d="M 13 14 L 14 14 L 14 15 L 13 15 L 13 14 Z" /> + <path fill="white" d="M 14 7 L 15 7 L 15 8 L 14 8 L 14 7 Z" /> + <path fill="white" d="M 14 8 L 15 8 L 15 9 L 14 9 L 14 8 Z" /> + <path fill="white" d="M 14 9 L 15 9 L 15 10 L 14 10 L 14 9 Z" /> + <path fill="white" d="M 14 10 L 15 10 L 15 11 L 14 11 L 14 10 Z" /> + <path fill="white" d="M 14 11 L 15 11 L 15 12 L 14 12 L 14 11 Z" /> + <path fill="white" d="M 14 12 L 15 12 L 15 13 L 14 13 L 14 12 Z" /> +</svg> diff --git a/src/content/img/logo/light.svg b/src/content/img/logo/light.svg index ce566b2..ab6000b 100644 --- a/src/content/img/logo/light.svg +++ b/src/content/img/logo/light.svg @@ -1,62 +1,62 @@ <?xml version="1.0" encoding="UTF-8" standalone="no"?> <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16" width="16" height="16"> - <path d="M 0 8 L 1 8 L 1 9 L 0 9 L 0 8 Z" /> - <path d="M 0 13 L 1 13 L 1 14 L 0 14 L 0 13 Z" /> - <path d="M 1 8 L 2 8 L 2 9 L 1 9 L 1 8 Z" /> - <path d="M 1 13 L 2 13 L 2 14 L 1 14 L 1 13 Z" /> - <path d="M 2 8 L 3 8 L 3 9 L 2 9 L 2 8 Z" /> - <path d="M 2 13 L 3 13 L 3 14 L 2 14 L 2 13 Z" /> - <path d="M 3 8 L 4 8 L 4 9 L 3 9 L 3 8 Z" /> - <path d="M 3 13 L 4 13 L 4 14 L 3 14 L 3 13 Z" /> - <path d="M 4 7 L 5 7 L 5 8 L 4 8 L 4 7 Z" /> - <path d="M 4 8 L 5 8 L 5 9 L 4 9 L 4 8 Z" /> - <path d="M 4 13 L 5 13 L 5 14 L 4 14 L 4 13 Z" /> - <path d="M 5 6 L 6 6 L 6 7 L 5 7 L 5 6 Z" /> - <path d="M 5 7 L 6 7 L 6 8 L 5 8 L 5 7 Z" /> - <path d="M 5 13 L 6 13 L 6 14 L 5 14 L 5 13 Z" /> - <path d="M 6 5 L 7 5 L 7 6 L 6 6 L 6 5 Z" /> - <path d="M 6 6 L 7 6 L 7 7 L 6 7 L 6 6 Z" /> - <path d="M 6 14 L 7 14 L 7 15 L 6 15 L 6 14 Z" /> - <path d="M 7 1 L 8 1 L 8 2 L 7 2 L 7 1 Z" /> - <path d="M 7 14 L 8 14 L 8 15 L 7 15 L 7 14 Z" /> - <path d="M 7 15 L 8 15 L 8 16 L 7 16 L 7 15 Z" /> - <path d="M 7 2 L 8 2 L 8 3 L 7 3 L 7 2 Z" /> - <path d="M 7 3 L 8 3 L 8 4 L 7 4 L 7 3 Z" /> - <path d="M 7 4 L 8 4 L 8 5 L 7 5 L 7 4 Z" /> - <path d="M 7 5 L 8 5 L 8 6 L 7 6 L 7 5 Z" /> - <path d="M 8 1 L 9 1 L 9 2 L 8 2 L 8 1 Z" /> - <path d="M 8 15 L 9 15 L 9 16 L 8 16 L 8 15 Z" /> - <path d="M 9 1 L 10 1 L 10 2 L 9 2 L 9 1 Z" /> - <path d="M 9 2 L 10 2 L 10 3 L 9 3 L 9 2 Z" /> - <path d="M 9 6 L 10 6 L 10 7 L 9 7 L 9 6 Z" /> - <path d="M 9 15 L 10 15 L 10 16 L 9 16 L 9 15 Z" /> - <path d="M 10 2 L 11 2 L 11 3 L 10 3 L 10 2 Z" /> - <path d="M 10 3 L 11 3 L 11 4 L 10 4 L 10 3 Z" /> - <path d="M 10 4 L 11 4 L 11 5 L 10 5 L 10 4 Z" /> - <path d="M 10 5 L 11 5 L 11 6 L 10 6 L 10 5 Z" /> - <path d="M 10 6 L 11 6 L 11 7 L 10 7 L 10 6 Z" /> - <path d="M 11 6 L 12 6 L 12 7 L 11 7 L 11 6 Z" /> - <path d="M 11 8 L 12 8 L 12 9 L 11 9 L 11 8 Z" /> - <path d="M 10 15 L 11 15 L 11 16 L 10 16 L 10 15 Z" /> - <path d="M 11 10 L 12 10 L 12 11 L 11 11 L 11 10 Z" /> - <path d="M 11 12 L 12 12 L 12 13 L 11 13 L 11 12 Z" /> - <path d="M 11 14 L 12 14 L 12 15 L 11 15 L 11 14 Z" /> - <path d="M 11 15 L 12 15 L 12 16 L 11 16 L 11 15 Z" /> - <path d="M 12 6 L 13 6 L 13 7 L 12 7 L 12 6 Z" /> - <path d="M 12 8 L 13 8 L 13 9 L 12 9 L 12 8 Z" /> - <path d="M 12 10 L 13 10 L 13 11 L 12 11 L 12 10 Z" /> - <path d="M 12 12 L 13 12 L 13 13 L 12 13 L 12 12 Z" /> - <path d="M 12 14 L 13 14 L 13 15 L 12 15 L 12 14 Z" /> - <path d="M 13 6 L 14 6 L 14 7 L 13 7 L 13 6 Z" /> - <path d="M 13 8 L 14 8 L 14 9 L 13 9 L 13 8 Z" /> - <path d="M 13 10 L 14 10 L 14 11 L 13 11 L 13 10 Z" /> - <path d="M 13 12 L 14 12 L 14 13 L 13 13 L 13 12 Z" /> - <path d="M 13 13 L 14 13 L 14 14 L 13 14 L 13 13 Z" /> - <path d="M 13 14 L 14 14 L 14 15 L 13 15 L 13 14 Z" /> - <path d="M 14 7 L 15 7 L 15 8 L 14 8 L 14 7 Z" /> - <path d="M 14 8 L 15 8 L 15 9 L 14 9 L 14 8 Z" /> - <path d="M 14 9 L 15 9 L 15 10 L 14 10 L 14 9 Z" /> - <path d="M 14 10 L 15 10 L 15 11 L 14 11 L 14 10 Z" /> - <path d="M 14 11 L 15 11 L 15 12 L 14 12 L 14 11 Z" /> - <path d="M 14 12 L 15 12 L 15 13 L 14 13 L 14 12 Z" /> + <path fill="black" d="M 0 8 L 1 8 L 1 9 L 0 9 L 0 8 Z" /> + <path fill="black" d="M 0 13 L 1 13 L 1 14 L 0 14 L 0 13 Z" /> + <path fill="black" d="M 1 8 L 2 8 L 2 9 L 1 9 L 1 8 Z" /> + <path fill="black" d="M 1 13 L 2 13 L 2 14 L 1 14 L 1 13 Z" /> + <path fill="black" d="M 2 8 L 3 8 L 3 9 L 2 9 L 2 8 Z" /> + <path fill="black" d="M 2 13 L 3 13 L 3 14 L 2 14 L 2 13 Z" /> + <path fill="black" d="M 3 8 L 4 8 L 4 9 L 3 9 L 3 8 Z" /> + <path fill="black" d="M 3 13 L 4 13 L 4 14 L 3 14 L 3 13 Z" /> + <path fill="black" d="M 4 7 L 5 7 L 5 8 L 4 8 L 4 7 Z" /> + <path fill="black" d="M 4 8 L 5 8 L 5 9 L 4 9 L 4 8 Z" /> + <path fill="black" d="M 4 13 L 5 13 L 5 14 L 4 14 L 4 13 Z" /> + <path fill="black" d="M 5 6 L 6 6 L 6 7 L 5 7 L 5 6 Z" /> + <path fill="black" d="M 5 7 L 6 7 L 6 8 L 5 8 L 5 7 Z" /> + <path fill="black" d="M 5 13 L 6 13 L 6 14 L 5 14 L 5 13 Z" /> + <path fill="black" d="M 6 5 L 7 5 L 7 6 L 6 6 L 6 5 Z" /> + <path fill="black" d="M 6 6 L 7 6 L 7 7 L 6 7 L 6 6 Z" /> + <path fill="black" d="M 6 14 L 7 14 L 7 15 L 6 15 L 6 14 Z" /> + <path fill="black" d="M 7 1 L 8 1 L 8 2 L 7 2 L 7 1 Z" /> + <path fill="black" d="M 7 14 L 8 14 L 8 15 L 7 15 L 7 14 Z" /> + <path fill="black" d="M 7 15 L 8 15 L 8 16 L 7 16 L 7 15 Z" /> + <path fill="black" d="M 7 2 L 8 2 L 8 3 L 7 3 L 7 2 Z" /> + <path fill="black" d="M 7 3 L 8 3 L 8 4 L 7 4 L 7 3 Z" /> + <path fill="black" d="M 7 4 L 8 4 L 8 5 L 7 5 L 7 4 Z" /> + <path fill="black" d="M 7 5 L 8 5 L 8 6 L 7 6 L 7 5 Z" /> + <path fill="black" d="M 8 1 L 9 1 L 9 2 L 8 2 L 8 1 Z" /> + <path fill="black" d="M 8 15 L 9 15 L 9 16 L 8 16 L 8 15 Z" /> + <path fill="black" d="M 9 1 L 10 1 L 10 2 L 9 2 L 9 1 Z" /> + <path fill="black" d="M 9 2 L 10 2 L 10 3 L 9 3 L 9 2 Z" /> + <path fill="black" d="M 9 6 L 10 6 L 10 7 L 9 7 L 9 6 Z" /> + <path fill="black" d="M 9 15 L 10 15 L 10 16 L 9 16 L 9 15 Z" /> + <path fill="black" d="M 10 2 L 11 2 L 11 3 L 10 3 L 10 2 Z" /> + <path fill="black" d="M 10 3 L 11 3 L 11 4 L 10 4 L 10 3 Z" /> + <path fill="black" d="M 10 4 L 11 4 L 11 5 L 10 5 L 10 4 Z" /> + <path fill="black" d="M 10 5 L 11 5 L 11 6 L 10 6 L 10 5 Z" /> + <path fill="black" d="M 10 6 L 11 6 L 11 7 L 10 7 L 10 6 Z" /> + <path fill="black" d="M 11 6 L 12 6 L 12 7 L 11 7 L 11 6 Z" /> + <path fill="black" d="M 11 8 L 12 8 L 12 9 L 11 9 L 11 8 Z" /> + <path fill="black" d="M 10 15 L 11 15 L 11 16 L 10 16 L 10 15 Z" /> + <path fill="black" d="M 11 10 L 12 10 L 12 11 L 11 11 L 11 10 Z" /> + <path fill="black" d="M 11 12 L 12 12 L 12 13 L 11 13 L 11 12 Z" /> + <path fill="black" d="M 11 14 L 12 14 L 12 15 L 11 15 L 11 14 Z" /> + <path fill="black" d="M 11 15 L 12 15 L 12 16 L 11 16 L 11 15 Z" /> + <path fill="black" d="M 12 6 L 13 6 L 13 7 L 12 7 L 12 6 Z" /> + <path fill="black" d="M 12 8 L 13 8 L 13 9 L 12 9 L 12 8 Z" /> + <path fill="black" d="M 12 10 L 13 10 L 13 11 L 12 11 L 12 10 Z" /> + <path fill="black" d="M 12 12 L 13 12 L 13 13 L 12 13 L 12 12 Z" /> + <path fill="black" d="M 12 14 L 13 14 L 13 15 L 12 15 L 12 14 Z" /> + <path fill="black" d="M 13 6 L 14 6 L 14 7 L 13 7 L 13 6 Z" /> + <path fill="black" d="M 13 8 L 14 8 L 14 9 L 13 9 L 13 8 Z" /> + <path fill="black" d="M 13 10 L 14 10 L 14 11 L 13 11 L 13 10 Z" /> + <path fill="black" d="M 13 12 L 14 12 L 14 13 L 13 13 L 13 12 Z" /> + <path fill="black" d="M 13 13 L 14 13 L 14 14 L 13 14 L 13 13 Z" /> + <path fill="black" d="M 13 14 L 14 14 L 14 15 L 13 15 L 13 14 Z" /> + <path fill="black" d="M 14 7 L 15 7 L 15 8 L 14 8 L 14 7 Z" /> + <path fill="black" d="M 14 8 L 15 8 L 15 9 L 14 9 L 14 8 Z" /> + <path fill="black" d="M 14 9 L 15 9 L 15 10 L 14 10 L 14 9 Z" /> + <path fill="black" d="M 14 10 L 15 10 L 15 11 L 14 11 L 14 10 Z" /> + <path fill="black" d="M 14 11 L 15 11 L 15 12 L 14 12 L 14 11 Z" /> + <path fill="black" d="M 14 12 L 15 12 L 15 13 L 14 13 L 14 12 Z" /> </svg> diff --git a/src/content/pt/2020-08-12-nome-de-arquivo-com-timestamp-simplificado.md b/src/content/pt/2020-08-12-nome-de-arquivo-com-timestamp-simplificado.md deleted file mode 100644 index 2e7fc32..0000000 --- a/src/content/pt/2020-08-12-nome-de-arquivo-com-timestamp-simplificado.md +++ /dev/null @@ -1,45 +0,0 @@ ---- - -title: Nome de arquivo com timestamp simplificado - -date: 2020-08-12 - -updated_at: 2020-11-04 - -layout: post - -lang: pt - -ref: simple-filename-timestamp - -eu_categories: shell - ---- - -Quando vou escrever um post no Jekyll ou criar um arquivo de log com a data no -nome, eu normalmente engasgo para achar um jeito direto de fazer isso. Há uma -solução simples: `date -I`. - -```shell -./meu-programa.sh > meu-programa.$(date -I).log -cp template-de-post.md _posts/$(date -I)-slug-do-post.md -``` - -Usar essa ferramenta padrão do GNU/Linux permite que você simplesmente escreva -`touch $(date -I).md` para criar um arquivo `2020-08-12.md`. - -Eu sempre tinha que parar para reler o `man date` ou buscar na internet de novo -e de novo como fazer isso, e depois de sempre chegar no mesmo resultado ficou -claro para mim que `date -I` quanto `date -Is` (`s` de segundos) são as -respostas que eu estou procurando 95% do tempo: - -```shell -# dentro do meu-programa.sh -echo "Programa começou em $(date -Is)" -# saída é: -# Programa começou em 2020-08-12T09:15:16-03:00 -``` - -Ambos os formatos de data são hierárquicos, com intervalos de tempo maior à -esquerda. Isso significa que você pode facilmente ordená-los (e até usar TAB -para completar) sem esforço ou ferramenta extra. diff --git a/src/content/pt/hea/2020/08/12/arquivo-datado.adoc b/src/content/pt/hea/2020/08/12/arquivo-datado.adoc new file mode 100644 index 0000000..42842ce --- /dev/null +++ b/src/content/pt/hea/2020/08/12/arquivo-datado.adoc @@ -0,0 +1,29 @@ += Nome de arquivo com dia e hora de forma simplificada +:updatedat: 2025-04-30 +:categories: shell + +Quando vou escrever um artigo no Jekyll ou criar um arquivo de log com a data no nome, eu normalmente engasgo para achar um jeito direto de fazer isso. Há uma solução simples: `date -I`. + +[source, sh] +---- +./meu-programa.sh > meu-programa.$(date -I).log +cp template-de-artigo.md _posts/$(date -I)-slug-do-artigo.md +---- + +Usar essa ferramenta padrão do GNU/Linux permite que você simplesmente escreva `touch $(date -I).md` para criar um arquivo `2020-08-12.md`. + +Eu sempre tinha que para para reler o `man date` ou buscar na internet de novo e de novo como fazer isso, e depois de sempre chegar no mesmo resultado ficou claro para mim que tanto `date -I` quanto `date -Is` (`s` de segundos) são as respostas que eu estou procurando 95% do tempo: + +[source, sh] +---- +# dentro do meu programa.sh +echo "Programa começou em $(date -Is)" +# saída é: +# Programa começou em 2020-08-12T09:15:16-03:00 +---- + +Ambos os formatos de data são hierárquicos, com intervalos de tempo maior à esquerda. Isso significa que você pode facilmente ordená-los (e até usar TAB para completar) sem esforço ou ferramenta extra. + + + +// Generated from po4a(1). diff --git a/src/content/pt/hea/categorias.adoc b/src/content/pt/hea/categorias.adoc new file mode 100644 index 0000000..19e7cb7 --- /dev/null +++ b/src/content/pt/hea/categorias.adoc @@ -0,0 +1,6 @@ += Artigos por categoria +:type: categories + + + +// Generated from po4a(1). diff --git a/src/content/pt/hea/index.adoc b/src/content/pt/hea/index.adoc new file mode 100644 index 0000000..77a035c --- /dev/null +++ b/src/content/pt/hea/index.adoc @@ -0,0 +1,11 @@ += Hoje Eu Aprendi + +:anna-e-so: https://til.flourishing.stream/ + +**H**oje **E**u **A**prendi (do inglês, _**T**oday **I** **L**earned_): pequenas postagens de conhecimentos úteis. + +Cópia descarada da {anna-e-so}[Anna e só]. + + + +// Generated from po4a(1). diff --git a/src/content/pt/sobre.adoc b/src/content/pt/sobre.adoc new file mode 100644 index 0000000..2d7ad20 --- /dev/null +++ b/src/content/pt/sobre.adoc @@ -0,0 +1,12 @@ += Sobre + +:mailto: mailto:~euandreh/public-inbox@lists.sr.ht +:archive: https://lists.sr.ht/~euandreh/public-inbox + +Oi, eu sou EuAndreh. Eu escrevo software e, ocasionalmente, música. Você encontra meu dados para entrar em contato no rodapé desta página, ou pode mandar também uma mensagem para minha {mailto}[caixa de entrada pública] ({archive}[arquivo]). + +Esse é o meu site pessoal onde eu escrevo artigos, publico software e outros trabalhos relacionados. + + + +// Generated from po4a(1). diff --git a/src/content/public.asc.txt b/src/content/public.asc.txt index 6559b02..d548547 100644 --- a/src/content/public.asc.txt +++ b/src/content/public.asc.txt @@ -36,51 +36,64 @@ gAvX3+Lr1PeAmigKkCnt9gKuZz5b2hD0WWb7P9HXLR04XtOq2QOvA5kObl51C+Af BcdEM9Q9FzQHqa5ofq0ZeS4WL72nkJFuAiGhi9kcpV70YHBMk0BuSIEuctGempuJ 4CeH6X2pKMHNJ5ijctZJiMPB8V2AzlWPber44IXD9f8B6HAQsNpZJ4+rWw2zCeKf Jj/n0UIqwEU9vG1KMU3OaAqrlaP0ePd3+BgjgIemMSwzNtSamtVc8TbqodXWKQF/ -uQINBFjVvh4BEADzt2iKa1gSksHtTFkPQ5ULqUF2sHDClr3ykbLq/AxgSCON58eP -A9SKQy2O+qDpojHAN1UULJgHEn34afzMkBzjxcJXMRgaTV2M+1trjwx/VluD9OKX -wmnhmSdvCIP7Z0qdhU78maLq10UG1vVwej3kVlxsf4Eu2ZA+NeIr7Tj0DERqEDQo -DRtNPVEy3h1xoYruy/VjNDi1CI3yFkM6HW1CgRA50rI7GDtvOuitZy+9Lpqs0mWq -vdApWZxoQwslFcziNd+ZVaQjgO6LSnkDttRkAOblFiD710OQy3/Yo97i7bqsKrnZ -qQMRUk0n12VXY9I94c7ELfViVqGk123ELtTViiIz5BT5iQRkJj1GiizTgGY6cfsj -kwWwvabpmWYdyQ85sYoVuNAPz3yDaLdtStWRNHWi4+UHC03J2BiBgIrQbuXoNGuc -j0b1fsntdntaBoZgFygwW6kXUjHLeEfnrGX3C2X49zg0rBTvEzdZwr2K0xgc2z26 -1EEf5ObmOGRt27K1fwrCxKHbKTscReHv78S4v3uN/9LvHfvIEaBoYHqMCcxy7Aii -dk+02dNDO/jZDnTAJH2NWhyB+PJvrlnK34zHhUMVH0i5nUjaCDL/n07Vd2sbE5qW -ivE2MWeayVKRGPci80tEGA1i42FJzGiA1uZrxXNImnsyxQyS8cr9iKoTIQARAQAB -iQIfBBgBCAAJBQJY1b4eAhsMAAoJEIH5DsPNNWBg+bYQALJyD1nyuz8+vl8rqj7K -Z9aRSW+XeG/wz6xrAqdY3OVvHwXYw33pgOmhNhfMUgP/Uy5OsxZdjIO7NzyKa2H9 -JoVSsAs/eLQDOQCcwXruBND6zuxt99kZh6o/Xp4lII9vuLafKner+fWluFHhOy/w -E3Q3VwCbC9npbmzweEl9Q83R7IxbEhtFF5HV0wKVRzW/GX7iWADoHpkAAQ2sUnQp -HhE1wOrdPm0dD9BEbTRQHekUiIQ8cFoORyWbJBwbflY64ioaFjyM+Ji49pNMykie -LzQFW1UYyhkXJeTvv93ym4XyMi2mhsOzna7mG1bonKvbKj6qaXb7gFHUXHh/ARuu -6CNARzBh6BTp+7c1brthGjT/L8CxrAeW2oE5wVIRuk8mdKiFoK3BuXc1P+vsnp36 -ioOQ0y+KPcp+PSbw6oDp7hTHztcW/3EoAgyHneWCmtYYi6RmVptTNpeeyHwqRP/O -elCN1cw9zopofVQhnxDEUgzVPrWWaE7UR6vrHbzlXvWMeGTYtmdmo/9xkYbQzZW7 -y90QLUGyDwQ+KeCG29W3EhygGy3myVQbRaXywgzzO2YvovjATDa7wZQrXNoVE7J9 -uLonNtRlyRlTAfFP6hCLDXwuE6WRHXhdu7aFKbq0LQGFv5hY4wPUp8vnUtGYT/wo -qqSkuSYhzNvmuKBIHPs6YD8duQINBGC7n68BEADnUv7iWOejQNa3fZ6v4lkHT6qF -Rp2+NuzIpFJ2Vy7eP58XZoiz6HJPcCU8Hf95JXwaXEwS4S7mXdw1x60hd8JIe058 -Ek6MZSSVQmlLfocGsAYj1wTrLmnQ8+PV0IeQlNj1aytBI1fL+v3IPt+JdLt6b+g3 -vwcEUU9efzxx2E0KZ5GIpb2meiCQ6ha+tcd7XqegB53eQj/h/coE2zLJodpaJ3xb -j894pE/OJCNC0+4d0Sv7oHhY7QoLYldTQbSgPyhyfl4iZpJf6OEPZxK2cJaB+cbe -oBB6aGNyU+CIJToM+uAJJ7H7EpvxfcnfJQ1PuY5szTdvFbW820euiUEKEW69mW4u -aFNPSc6D4Z8tZ5hXQIqBD40irULhF0CYNkIILmyNV/KJIZ5HkbQ1q+UrCFHJyvuH -/3aCTjj9OSfE7xHPQ3xd3Xw8vvj0Mjie09xFbbcklBTw5WRzH7cw8c+Q0O69kZZ8 -b+ykcdzWTeZeWNdnzptNqnMjfheig90rUIJ7DN0c+53jCUcGpWJxJhcYF9Uk1RNH -mSE5+VzK1y+20t0grVFX90nApm4Tl35QPrX7Qxp9C81cWiUB8xCAE6jYrmd4x+P/ -3wSQfc1Xg0Eg3QjJB+6JD7cbyDJpzDR3ja+CLZCAr9I0B4rDKD2d6et/z67iXPnZ -UWMyZ8RVVZPFbBMOTwARAQABiQI8BBgBCAAmAhsgFiEEW9rpuLL2xry7DWzlgfkO -w801YGAFAmT94IMFCQgEp9QACgkQgfkOw801YGBd1Q//bsHS8B2D3PCE69FdOBhG -0BmOw88Z6Bz2jwALG3vhoo5gZggKjReeu78zh9dVLgstF/Vz6K5/03GidZMlSc5G -2zuL2gzYINazcdPfJzToY/B+8dM9SsIXCI5augPTqinVKBMjay2NI87iorVGs0Cc -UVmCH139ns28OKrCW3VdskHdlxkkc5JmeHGU5950+WCrEvDPurO1MWb2XhjzXojz -QIbf91UNOWq0pB8kOTtF/JNq/EtI9HhNw1phaiqMafNvjwJBfKt5Ksvo4Z1F6gG4 -3Dx5BLGiEFYjc8oGf8b7ge/OW8MVrvjlP0HjJOe9UmHZIXQKpuDkVxGwelN0vaqj -17UyV54GQZmfFYUpZlZwmhzMPWnGNkYgU0jVozGhIwHTIDpPQ8Bu6mugCTZNefw0 -POwUk/oREz7dzUBE2LBnzAKOI0KHFflwSHhyI2W2RDnhkX/tIhBYHFwnwjAe5yQj -CvfQ6bSWE6K49tlauktfT90EJTip3A5VpB1pGiklTsTZchas3/yL6jtYAT3F0h1U -dmDQf5Y9Zr+U6znJ+xJcRLdjvDE5HxyFbTfz/LzZMQKTss/51nIUonbpVK+o8fEy -qaOL9QmM4H4rnFpoJ+WfOwrOxoR/l9EIisKnqV0heHT/HSymqwQk9c85vjSgGc3M -s5K/1f77Aqr6hdYRfw5KqGs= -=0+B8 +tCFwYXBvLmltIFN1cHBvcnQgPHN1cHBvcnRAcGFwby5pbT6JAlcEEwEIAEEWIQRb +2um4svbGvLsNbOWB+Q7DzTVgYAUCaBSRgAIbAwUJEYhk6wULCQgHAgIiAgYVCgkI +CwIEFgIDAQIeBwIXgAAKCRCB+Q7DzTVgYJ7dEACtW+VEVBIj2v390ph+6bB9hnvq +b78oC0EGryuKcKh797lld02jOW1WsIa2l7RzsS+XWDoY6c1DhCha75avLdr4uXgz +oLjScXinRNa5y9ECYdhiAScTVE3PbqURFbd9txPAY6rCP0Lo05tfXrX7zs/5UK8W +98FN4mSNge7YZEmOSSFFEQLaLRs/JH89GSlAXjfdke5cEiYqvabXXle/Zv/umm7B +J2ndd1bUgRbcL4SznMMo+JAhHzr1KpuvhFj/Dv4IUeMsWwv5x0KOXcCSUNpEnN0v +vw1aIFgI7JuQiYyMK0g3ubUfser5jOX7faz4Y5PJEcx6mzTrrdjC8vqCDaN+iA7O +pIS951yaYs6oI09ev1xQKCO+tJVFgPYMSh4lTMHMndZnMvTGUZy1Mt1tE+u8/Ps+ +Ps6UbApinrL1saeg1ODsels16mANGsQ62LXQfqTaQomKD/FfGHokOIogdj/hwhGC +XqhAoUtPoO5gQRqToenWybMNyu+fKo1gERU0WjXdqkledgY3Hi8JvjAaBgGyUmoi +DdRzGt8CAYZ72Tpwj4/yziVPw+myP6JmOvaRatZbL6SvFUEGnmip+ZWhA3yw0oyC +dSQ2TL6q2G/qjA/0cpxTGEyiObSLqlZgamV8i+bpqXn6yt3CoUk4xm0jsChHK9zF +w+7WzwhBSyDeeAIm8rkCDQRY1b4eARAA87doimtYEpLB7UxZD0OVC6lBdrBwwpa9 +8pGy6vwMYEgjjefHjwPUikMtjvqg6aIxwDdVFCyYBxJ9+Gn8zJAc48XCVzEYGk1d +jPtba48Mf1Zbg/Til8Jp4ZknbwiD+2dKnYVO/Jmi6tdFBtb1cHo95FZcbH+BLtmQ +PjXiK+049AxEahA0KA0bTT1RMt4dcaGK7sv1YzQ4tQiN8hZDOh1tQoEQOdKyOxg7 +bzrorWcvvS6arNJlqr3QKVmcaEMLJRXM4jXfmVWkI4Dui0p5A7bUZADm5RYg+9dD +kMt/2KPe4u26rCq52akDEVJNJ9dlV2PSPeHOxC31YlahpNdtxC7U1YoiM+QU+YkE +ZCY9Roos04BmOnH7I5MFsL2m6ZlmHckPObGKFbjQD898g2i3bUrVkTR1ouPlBwtN +ydgYgYCK0G7l6DRrnI9G9X7J7XZ7WgaGYBcoMFupF1Ixy3hH56xl9wtl+Pc4NKwU +7xM3WcK9itMYHNs9utRBH+Tm5jhkbduytX8KwsSh2yk7HEXh7+/EuL97jf/S7x37 +yBGgaGB6jAnMcuwIonZPtNnTQzv42Q50wCR9jVocgfjyb65Zyt+Mx4VDFR9IuZ1I +2ggy/59O1XdrGxOalorxNjFnmslSkRj3IvNLRBgNYuNhScxogNbma8VzSJp7MsUM +kvHK/YiqEyEAEQEAAYkCHwQYAQgACQUCWNW+HgIbDAAKCRCB+Q7DzTVgYPm2EACy +cg9Z8rs/Pr5fK6o+ymfWkUlvl3hv8M+sawKnWNzlbx8F2MN96YDpoTYXzFID/1Mu +TrMWXYyDuzc8imth/SaFUrALP3i0AzkAnMF67gTQ+s7sbffZGYeqP16eJSCPb7i2 +nyp3q/n1pbhR4Tsv8BN0N1cAmwvZ6W5s8HhJfUPN0eyMWxIbRReR1dMClUc1vxl+ +4lgA6B6ZAAENrFJ0KR4RNcDq3T5tHQ/QRG00UB3pFIiEPHBaDkclmyQcG35WOuIq +GhY8jPiYuPaTTMpIni80BVtVGMoZFyXk77/d8puF8jItpobDs52u5htW6Jyr2yo+ +qml2+4BR1Fx4fwEbrugjQEcwYegU6fu3NW67YRo0/y/AsawHltqBOcFSEbpPJnSo +haCtwbl3NT/r7J6d+oqDkNMvij3Kfj0m8OqA6e4Ux87XFv9xKAIMh53lgprWGIuk +ZlabUzaXnsh8KkT/znpQjdXMPc6KaH1UIZ8QxFIM1T61lmhO1Eer6x285V71jHhk +2LZnZqP/cZGG0M2Vu8vdEC1Bsg8EPinghtvVtxIcoBst5slUG0Wl8sIM8ztmL6L4 +wEw2u8GUK1zaFROyfbi6JzbUZckZUwHxT+oQiw18LhOlkR14Xbu2hSm6tC0Bhb+Y +WOMD1KfL51LRmE/8KKqkpLkmIczb5rigSBz7OmA/HbkCDQRgu5+vARAA51L+4ljn +o0DWt32er+JZB0+qhUadvjbsyKRSdlcu3j+fF2aIs+hyT3AlPB3/eSV8GlxMEuEu +5l3cNcetIXfCSHtOfBJOjGUklUJpS36HBrAGI9cE6y5p0PPj1dCHkJTY9WsrQSNX +y/r9yD7fiXS7em/oN78HBFFPXn88cdhNCmeRiKW9pnogkOoWvrXHe16noAed3kI/ +4f3KBNsyyaHaWid8W4/PeKRPziQjQtPuHdEr+6B4WO0KC2JXU0G0oD8ocn5eImaS +X+jhD2cStnCWgfnG3qAQemhjclPgiCU6DPrgCSex+xKb8X3J3yUNT7mObM03bxW1 +vNtHrolBChFuvZluLmhTT0nOg+GfLWeYV0CKgQ+NIq1C4RdAmDZCCC5sjVfyiSGe +R5G0NavlKwhRycr7h/92gk44/TknxO8Rz0N8Xd18PL749DI4ntPcRW23JJQU8OVk +cx+3MPHPkNDuvZGWfG/spHHc1k3mXljXZ86bTapzI34XooPdK1CCewzdHPud4wlH +BqVicSYXGBfVJNUTR5khOflcytcvttLdIK1RV/dJwKZuE5d+UD61+0MafQvNXFol +AfMQgBOo2K5neMfj/98EkH3NV4NBIN0IyQfuiQ+3G8gyacw0d42vgi2QgK/SNAeK +wyg9nenrf8+u4lz52VFjMmfEVVWTxWwTDk8AEQEAAYkCPAQYAQgAJgIbIBYhBFva +6biy9sa8uw1s5YH5DsPNNWBgBQJk/eCDBQkIBKfUAAoJEIH5DsPNNWBgXdUP/27B +0vAdg9zwhOvRXTgYRtAZjsPPGegc9o8ACxt74aKOYGYICo0Xnru/M4fXVS4LLRf1 +c+iuf9NxonWTJUnORts7i9oM2CDWs3HT3yc06GPwfvHTPUrCFwiOWroD06op1SgT +I2stjSPO4qK1RrNAnFFZgh9d/Z7NvDiqwlt1XbJB3ZcZJHOSZnhxlOfedPlgqxLw +z7qztTFm9l4Y816I80CG3/dVDTlqtKQfJDk7RfyTavxLSPR4TcNaYWoqjGnzb48C +QXyreSrL6OGdReoBuNw8eQSxohBWI3PKBn/G+4HvzlvDFa745T9B4yTnvVJh2SF0 +Cqbg5FcRsHpTdL2qo9e1MleeBkGZnxWFKWZWcJoczD1pxjZGIFNI1aMxoSMB0yA6 +T0PAbuproAk2TXn8NDzsFJP6ERM+3c1ARNiwZ8wCjiNChxX5cEh4ciNltkQ54ZF/ +7SIQWBxcJ8IwHuckIwr30Om0lhOiuPbZWrpLX0/dBCU4qdwOVaQdaRopJU7E2XIW +rN/8i+o7WAE9xdIdVHZg0H+WPWa/lOs5yfsSXES3Y7wxOR8chW038/y82TECk7LP ++dZyFKJ26VSvqPHxMqmji/UJjOB+K5xaaCflnzsKzsaEf5fRCIrCp6ldIXh0/x0s +pqsEJPXPOb40oBnNzLOSv9X++wKq+oXWEX8OSqhr +=bNun -----END PGP PUBLIC KEY BLOCK----- diff --git a/src/content/style.css b/src/content/style.css index cbe615b..dbd7967 100644 --- a/src/content/style.css +++ b/src/content/style.css @@ -5,6 +5,8 @@ --color-2nd-bg: #f5f5f5; --color-pre-border: hsla(0, 100%, 0%, 30%); + --link-url: url(img/link/light.svg); + color: var(--color-fg); background-color: var(--color-bg); } @@ -16,6 +18,8 @@ --color-2nd-fg: #aaaaaa; --color-2nd-bg: #222222; --color-pre-border: hsla(50, 100%, 70%, 10%); + + --link-url: url(img/link/dark.svg); } a { @@ -192,7 +196,7 @@ div.header-anchor:hover img { } a.anchor { - background: transparent url(img/link/light.svg) center right no-repeat; + background: transparent var(--link-url) center right no-repeat; padding-right: 22px; margin-left: 10px; visibility: hidden; diff --git a/src/headers.txt b/src/headers.txt deleted file mode 100644 index 5c050ab..0000000 --- a/src/headers.txt +++ /dev/null @@ -1,6 +0,0 @@ -blog/ Blog -tils/ TIL -podcasts/ Podcasts -screencasts/ Screencasts -pastebins/ Pastebins -about.html About diff --git a/src/headers/de.txt b/src/headers/de.txt new file mode 100644 index 0000000..ca848a3 --- /dev/null +++ b/src/headers/de.txt @@ -0,0 +1,13 @@ +en/blog/ Blog + +en/til/ TIL + +en/podcast/ Podcasts + +en/screencast/ Screencasts + +en/pastebin/ Pastebins + +en/slide/ Slides + +en/about.html About diff --git a/src/headers/en.txt b/src/headers/en.txt new file mode 100644 index 0000000..ca848a3 --- /dev/null +++ b/src/headers/en.txt @@ -0,0 +1,13 @@ +en/blog/ Blog + +en/til/ TIL + +en/podcast/ Podcasts + +en/screencast/ Screencasts + +en/pastebin/ Pastebins + +en/slide/ Slides + +en/about.html About diff --git a/src/headers/eo.txt b/src/headers/eo.txt new file mode 100644 index 0000000..ca848a3 --- /dev/null +++ b/src/headers/eo.txt @@ -0,0 +1,13 @@ +en/blog/ Blog + +en/til/ TIL + +en/podcast/ Podcasts + +en/screencast/ Screencasts + +en/pastebin/ Pastebins + +en/slide/ Slides + +en/about.html About diff --git a/src/headers/es.txt b/src/headers/es.txt new file mode 100644 index 0000000..ca848a3 --- /dev/null +++ b/src/headers/es.txt @@ -0,0 +1,13 @@ +en/blog/ Blog + +en/til/ TIL + +en/podcast/ Podcasts + +en/screencast/ Screencasts + +en/pastebin/ Pastebins + +en/slide/ Slides + +en/about.html About diff --git a/src/headers/fr.txt b/src/headers/fr.txt new file mode 100644 index 0000000..ca848a3 --- /dev/null +++ b/src/headers/fr.txt @@ -0,0 +1,13 @@ +en/blog/ Blog + +en/til/ TIL + +en/podcast/ Podcasts + +en/screencast/ Screencasts + +en/pastebin/ Pastebins + +en/slide/ Slides + +en/about.html About diff --git a/src/headers/pt.txt b/src/headers/pt.txt new file mode 100644 index 0000000..48f2523 --- /dev/null +++ b/src/headers/pt.txt @@ -0,0 +1,13 @@ +# + +pt/hea/ HEA + +# + +# + +# + +# + +pt/sobre.html Sobre diff --git a/src/headers/ref.txt b/src/headers/ref.txt new file mode 100644 index 0000000..ca848a3 --- /dev/null +++ b/src/headers/ref.txt @@ -0,0 +1,13 @@ +en/blog/ Blog + +en/til/ TIL + +en/podcast/ Podcasts + +en/screencast/ Screencasts + +en/pastebin/ Pastebins + +en/slide/ Slides + +en/about.html About diff --git a/src/linkonly-dirs.txt b/src/linkonly-dirs.txt new file mode 100644 index 0000000..3a038f0 --- /dev/null +++ b/src/linkonly-dirs.txt @@ -0,0 +1,5 @@ +src/content/css/ +src/content/favicon/ +src/content/images/ +src/content/resources/ +src/content/static/ diff --git a/src/names/categories/de.txt b/src/names/categories/de.txt new file mode 100644 index 0000000..36e8f75 --- /dev/null +++ b/src/names/categories/de.txt @@ -0,0 +1 @@ +categories diff --git a/src/names/categories/en.txt b/src/names/categories/en.txt new file mode 100644 index 0000000..36e8f75 --- /dev/null +++ b/src/names/categories/en.txt @@ -0,0 +1 @@ +categories diff --git a/src/names/categories/eo.txt b/src/names/categories/eo.txt new file mode 100644 index 0000000..36e8f75 --- /dev/null +++ b/src/names/categories/eo.txt @@ -0,0 +1 @@ +categories diff --git a/src/names/categories/es.txt b/src/names/categories/es.txt new file mode 100644 index 0000000..36e8f75 --- /dev/null +++ b/src/names/categories/es.txt @@ -0,0 +1 @@ +categories diff --git a/src/names/categories/fr.txt b/src/names/categories/fr.txt new file mode 100644 index 0000000..36e8f75 --- /dev/null +++ b/src/names/categories/fr.txt @@ -0,0 +1 @@ +categories diff --git a/src/names/categories/pt.txt b/src/names/categories/pt.txt new file mode 100644 index 0000000..7216072 --- /dev/null +++ b/src/names/categories/pt.txt @@ -0,0 +1 @@ +categorias diff --git a/src/names/categories/ref.txt b/src/names/categories/ref.txt new file mode 100644 index 0000000..36e8f75 --- /dev/null +++ b/src/names/categories/ref.txt @@ -0,0 +1 @@ +categories diff --git a/src/names/category/de.txt b/src/names/category/de.txt new file mode 100644 index 0000000..46e72f3 --- /dev/null +++ b/src/names/category/de.txt @@ -0,0 +1 @@ +category diff --git a/src/names/category/en.txt b/src/names/category/en.txt new file mode 100644 index 0000000..46e72f3 --- /dev/null +++ b/src/names/category/en.txt @@ -0,0 +1 @@ +category diff --git a/src/names/category/eo.txt b/src/names/category/eo.txt new file mode 100644 index 0000000..46e72f3 --- /dev/null +++ b/src/names/category/eo.txt @@ -0,0 +1 @@ +category diff --git a/src/names/category/es.txt b/src/names/category/es.txt new file mode 100644 index 0000000..46e72f3 --- /dev/null +++ b/src/names/category/es.txt @@ -0,0 +1 @@ +category diff --git a/src/names/category/fr.txt b/src/names/category/fr.txt new file mode 100644 index 0000000..46e72f3 --- /dev/null +++ b/src/names/category/fr.txt @@ -0,0 +1 @@ +category diff --git a/src/names/category/pt.txt b/src/names/category/pt.txt new file mode 100644 index 0000000..ae2c934 --- /dev/null +++ b/src/names/category/pt.txt @@ -0,0 +1 @@ +categoria diff --git a/src/names/category/ref.txt b/src/names/category/ref.txt new file mode 100644 index 0000000..46e72f3 --- /dev/null +++ b/src/names/category/ref.txt @@ -0,0 +1 @@ +category diff --git a/src/pages/pt b/src/pages/pt new file mode 120000 index 0000000..12d2087 --- /dev/null +++ b/src/pages/pt @@ -0,0 +1 @@ +../content/pt
\ No newline at end of file diff --git a/src/slides/en b/src/slides/en new file mode 120000 index 0000000..5cbb4c2 --- /dev/null +++ b/src/slides/en @@ -0,0 +1 @@ +../content/en/slide
\ No newline at end of file diff --git a/src/static.conf b/src/static.conf index 1007780..45f5028 100644 --- a/src/static.conf +++ b/src/static.conf @@ -1,5 +1,6 @@ +export headers_dir=src/headers +export names_dir=src/names export root_dir=src/content -export header_links=src/headers.txt export list_addr='~euandreh/public-inbox@lists.sr.ht' export discussions_url_prefix='https://lists.st.ht/~euandreh/public-inbox?search=' export sourcecode_url_prefix="$sourcecode_url/tree" diff --git a/src/symlinks.txt b/src/symlinks.txt index c8bac6b..ebd28aa 100644 --- a/src/symlinks.txt +++ b/src/symlinks.txt @@ -10,10 +10,10 @@ feed.xml en/blog/feed.xml rss.xml en/blog/feed.xml feed.atom en/blog/feed.xml feed.en.atom en/blog/feed.xml -feed.til.en.atom en/tils/feed.xml +feed.til.en.atom en/til/feed.xml # Some I think existed, and where the logs show a few hundred missing hits -images/atom.svg img/atom/light.svg +images/atom.svg img/atom.svg images/link.svg img/link/light.svg images/lock.svg img/lock/light.svg images/envelope.svg img/envelope/light.svg @@ -23,13 +23,13 @@ index.html en/index.html security.txt .well-known/security.txt # Current published pages -static/attachments/autoqemu.tar.gz en/screencasts/2021/02/07/autoqemu.tar.gz +static/attachments/autoqemu.tar.gz en/screencast/2021/02/07/autoqemu.tar.gz static/attachments/cargo2nix-demo.tar.gz en/blog/2020/10/05/cargo2nix-demo.tar.gz static/attachments/cargo2nix.tar.gz en/blog/2020/10/05/cargo2nix.tar.gz static/attachments/fallible.tar.gz en/blog/2021/02/17/fallible.tar.gz static/attachments/swift2nix-demo.tar.gz en/blog/2020/10/05/swift2nix-demo.tar.gz static/attachments/swift2nix.tar.gz en/blog/2020/10/05/swift2nix.tar.gz -static/atom.svg img/atom/light.svg +static/atom.svg img/atom.svg static/envelope.svg img/envelope/light.svg static/link.svg img/link/light.svg static/lock.svg img/lock/light.svg @@ -37,38 +37,38 @@ static/lord-favicon.ico favicon.ico static/lord-favicon.png favicon.png static/lord-favicon.svg img/favicon.svg -resources/podcasts/2020-12-19-a-test-entry.flac en/podcasts/2020/12/19/test-entry.flac -resources/podcasts/2020-12-19-a-test-entry.flac.torrent en/podcasts/2020/12/19/test-entry.flac.torrent -resources/podcasts/2020-12-19-a-test-entry.ogg en/podcasts/2020/12/19/test-entry.ogg -resources/screencasts/2021-02-07-autoqemu-automate-installation-and-ssh-setup-of-iso-os-images.webm en/screencasts/2021/02/07/autoqemu.webm -resources/screencasts/2021-02-07-autoqemu-automate-installation-and-ssh-setup-of-iso-os-images.webm.torrent en/screencasts/2021/02/07/autoqemu.webm.torrent +resources/podcasts/2020-12-19-a-test-entry.flac en/podcast/2020/12/19/test-entry.flac +resources/podcasts/2020-12-19-a-test-entry.flac.torrent en/podcast/2020/12/19/test-entry.flac.torrent +resources/podcasts/2020-12-19-a-test-entry.ogg en/podcast/2020/12/19/test-entry.ogg +resources/screencasts/2021-02-07-autoqemu-automate-installation-and-ssh-setup-of-iso-os-images.webm en/screencast/2021/02/07/autoqemu.webm +resources/screencasts/2021-02-07-autoqemu-automate-installation-and-ssh-setup-of-iso-os-images.webm.torrent en/screencast/2021/02/07/autoqemu.webm.torrent -til.html en/tils/index.html -podcast.en.html en/podcasts/index.html -screencasts.en.html en/screencasts/index.html -pastebins.en.html en/pastebins/index.html +til.html en/til/index.html +podcast.en.html en/podcast/index.html +screencasts.en.html en/screencast/index.html +pastebins.en.html en/pastebin/index.html about.html en/about.html articles-by-category.html en/blog/categories.html -til-by-category.html en/tils/categories.html -podcast-episodes-by-category.html en/podcasts/categories.html -screencasts-by-category.html en/screencasts/categories.html -pastebins-by-category.html en/pastebins/categories.html +til-by-category.html en/til/categories.html +podcast-episodes-by-category.html en/podcast/categories.html +screencasts-by-category.html en/screencast/categories.html +pastebins-by-category.html en/pastebin/categories.html feed.articles.en.atom en/blog/feed.xml feed.blog.en.atom en/blog/feed.xml feed.posts.en.atom en/blog/feed.xml -feed.tils.en.atom en/tils/feed.xml -feed.podcasts.en.atom en/podcasts/feed.xml -feed.screencasts.en.atom en/screencasts/feed.xml -feed.pastebins.en.atom en/pastebins/feed.xml +feed.tils.en.atom en/til/feed.xml +feed.podcasts.en.atom en/podcast/feed.xml +feed.screencasts.en.atom en/screencast/feed.xml +feed.pastebins.en.atom en/pastebin/feed.xml feed.articles-by-category.en.article-review.atom en/blog/feed.article-review.xml feed.articles-by-category.en.mediator.atom en/blog/feed.mediator.xml feed.articles-by-category.en.presentation.atom en/blog/feed.presentation.xml feed.articles-by-category.en.video-review.atom en/blog/feed.video-review.xml -feed.pastebins-by-category.en.guix.atom en/pastebins/feed.guix.xml -feed.pastebins-by-category.en.nix.atom en/pastebins/feed.nix.xml -feed.tils-by-category.en.ci.atom en/tils/feed.ci.xml -feed.tils-by-category.en.git.atom en/tils/feed.git.xml -feed.tils-by-category.en.shell.atom en/tils/feed.shell.xml +feed.pastebins-by-category.en.guix.atom en/pastebin/feed.guix.xml +feed.pastebins-by-category.en.nix.atom en/pastebin/feed.nix.xml +feed.tils-by-category.en.ci.atom en/til/feed.ci.xml +feed.tils-by-category.en.git.atom en/til/feed.git.xml +feed.tils-by-category.en.shell.atom en/til/feed.shell.xml |