diff --git a/Tuprules.tup b/Tuprules.tup index 3712e6e..a1c3ed5 100644 --- a/Tuprules.tup +++ b/Tuprules.tup @@ -24,3 +24,11 @@ HTML_TEMPLATE = main.html JPG_OPT = -quality 80 -strip -interlace Plane !blur_mini = |> ^ %f -> blur mini^ convert %f -resize 400x400 -blur 0x8 $(JPG_OPT) %o |> blur_mini.jpg !thumbnail = |> ^ %f -> thumbnail^ convert %f -resize 200x200 $(JPG_OPT) %o |> + +# +# Slides +# +MARP = npx @marp-team/marp-cli@latest +MARP_OPTS = --allow-local-files --bespoke.progress +!marp_pdf = |> $(MARP) $(MARP_OPTS) %f --pdf --output %o |> %B.pdf +!marp_html = |> $(MARP) $(MARP_OPTS) %f --html --output %o |> %B.html diff --git a/articles/jujutsu/Tupfile b/articles/jujutsu/Tupfile new file mode 100644 index 0000000..df556c8 --- /dev/null +++ b/articles/jujutsu/Tupfile @@ -0,0 +1,6 @@ +include_rules +HTML_TEMPLATE = article.html + +: slides.md |> !marp_pdf |> jujutsu_slides.pdf ./ +: index.md | ./ |> !html |> + diff --git a/articles/jujutsu/index.md b/articles/jujutsu/index.md new file mode 100644 index 0000000..1059614 --- /dev/null +++ b/articles/jujutsu/index.md @@ -0,0 +1,40 @@ +--- +title: "Lightning talk: Jujutsu" +date: 2024-11-26 +--- + +_This article is also available as a lightning talk: [pdf](./jujutsu_slides.pdf)_ + +## What is it? + +[Jujutsu](https://github.com/martinvonz/jj) is a new version control software +(VCS), like git, mercurial, etc. Git is the actual gold standard for VCS, even if its +UX could be better. There is a whole ecosystem around git that makes switching +to similar projects (eg. mercurial) a daunting task. How does jujutsu plans on +making us switch? + +Jujutsu separates the frontend (what the user interacts with) and the +backend (how the information is stored). And the main backend is actually git +repositories. There is a native backend being developed but it's not ready for +prime time. Sharing the same backend as the most popular VCS, Jujutsu aims to +improve on the frontend. + +## How does it compare? + +### No branch, only revisions + +Jujutsu understand git commits, but operates at a higher level with revisions. +Revisions wrap commits, however as you move revisions around (edit with changes, +or rebase), they keep their id. Only their underlying commit id changes. + +With revision ids being stable, you don't need branches to start working: create +a new revision, and start working. You will need to create a branch (or bookmark +in jujutsu world) to push your changes, but it can be done at the end. + +There is no special mode like git's "Detached HEAD", you are always on a revision. You can jump around + +## VCS landscape +> I was part of the team at Meta that built Sapling for many years. I’m no +> longer at Meta and I use jj full time. +> +> _[Discussion on Lobste.rs](https://lobste.rs/s/rojoz1/jujutsu_jj_git_compatible_vcs#c_foqya4)_ diff --git a/articles/jujutsu/jj_revision.drawio.png b/articles/jujutsu/jj_revision.drawio.png new file mode 100644 index 0000000..66d7151 Binary files /dev/null and b/articles/jujutsu/jj_revision.drawio.png differ diff --git a/articles/jujutsu/slides.md b/articles/jujutsu/slides.md new file mode 100644 index 0000000..b3ab148 --- /dev/null +++ b/articles/jujutsu/slides.md @@ -0,0 +1,23 @@ +--- +marp: true +theme: gaia +footer: '**Fabien Freling** - 2024-11-26' +paginate: true +--- + + + + + + +# Jujutsu + +Life after Git + +--- diff --git a/articles/web_stack.md b/articles/web_stack.md index 1ffc6d8..bface29 100644 --- a/articles/web_stack.md +++ b/articles/web_stack.md @@ -1,6 +1,7 @@ --- title: Web stack date: 2019-06-26 +update: 2024-11-26 --- Previous stacks diff --git a/flake.nix b/flake.nix index e0c7923..df507e3 100644 --- a/flake.nix +++ b/flake.nix @@ -7,10 +7,12 @@ devShell.x86_64-linux = with pkgs; mkShell { nativeBuildInputs = [ + graphviz-nox imagemagick just libavif libjxl + nodejs nushell pandoc tup