diff options
Diffstat (limited to 'src/content/en')
-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/screencasts/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/tils/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/podcasts/categories.adoc) | 1 | ||||
-rw-r--r-- | src/content/en/til/index.adoc (renamed from src/content/en/tils/index.adoc) | 0 |
71 files changed, 443 insertions, 614 deletions
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/screencasts/categories.adoc b/src/content/en/podcast/categories.adoc index f29acda..feb64ff 100644 --- a/src/content/en/screencasts/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/tils/categories.adoc b/src/content/en/screencast/categories.adoc index f29acda..feb64ff 100644 --- a/src/content/en/tils/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/podcasts/categories.adoc b/src/content/en/til/categories.adoc index f29acda..feb64ff 100644 --- a/src/content/en/podcasts/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 |