Compare commits

..

11 commits
main ... master

Author SHA1 Message Date
Fabien Freling 7f0abdbb93 fix variant path for footer generated file 2024-11-27 10:09:08 +01:00
Fabien Freling 381dcd1c1e remove ubuntu setup 2024-11-19 17:44:01 +01:00
Fabien Freling 4483828cf5 add jujutsu 2024-11-19 17:42:21 +01:00
Fabien Freling 94e248b95e switch to flake 2024-11-19 15:13:02 +01:00
Fabien Freling 98f46c8081 update "about" page 2022-07-10 23:45:04 +02:00
Fabien Freling d16f0957f9 add AVIF support 2022-01-13 14:41:39 +01:00
Fabien Freling cb36227bd4 add nix shell 2022-01-12 16:36:11 +01:00
Fabien Freling cd620d648e update deploy location 2021-12-29 17:51:19 +01:00
Fabien Freling 44a33f2c72 add git large files article 2021-12-29 16:02:26 +01:00
Fabien Freling b7325dfe07 add horizontal rule 2021-08-31 13:59:09 +02:00
Fabien Freling c6105f8d61 update build scripts 2021-08-31 13:58:44 +02:00
11 changed files with 25 additions and 115 deletions

View file

@ -24,11 +24,3 @@ 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

View file

@ -66,7 +66,7 @@ work on smart homes. I work in the Vision team, making home cameras smarter. I
am thrilled to work on computer vision again.
<div style="text-align:center; padding-top:2em;">
<a href="https://mas.to/@ffreling">
<a href="https://octodon.social/@ffreling">
<img src="images/mastodon.svg" alt="Mastodon" style="height:40px; padding-inline:5px">
</a>
<a href="http://code.ffreling.com">

View file

@ -1,5 +1,5 @@
include_rules
HTML_TEMPLATE = article.html
: *.md |> ./generate_listing.nu > %o |> index.md
: *.md |> ./generate_listing.sh > %o |> index.md
: foreach *.md |> !html |>

View file

@ -1,32 +0,0 @@
#!/usr/bin/env nu
def get_metadata [path: string] {
let lines = open $path | lines
let anchors = $lines | enumerate | filter {|l| ($l.item | str starts-with "---")} | take 2
let header = $lines
| range (($anchors | first | get 'index') + 1)..(($anchors | last | get 'index') - 1)
let metadata = $header | split column -n 2 --regex '\s*:\s*' | rename key value
let record = $metadata | reduce -f {} {|it, acc| $acc | upsert $it.key ($it.value | str trim --char '"') }
$record |
}
let pages = (glob *.md) ++ (glob **/index.md)
let sorted_pages = $pages | wrap 'path'
| upsert metadata {|row| (get_metadata $row.path)}
| sort-by --reverse metadata.date
print "---
title: Articles
---
"
let _ = $sorted_pages | each {|p|
let rel_path = $p.path | path relative-to (pwd)
let html_path = $rel_path | path parse --extension md | upsert extension { 'html' } | path join
print --no-newline $"- ($p.metadata.date): [($p.metadata.title)]\(($html_path)\)"
if $p.metadata.update? != null {
print $" \(Updated: ($p.metadata.update)\)"
} else {
print ""
}
}

23
articles/generate_listing.sh Executable file
View file

@ -0,0 +1,23 @@
#!/usr/bin/env bash
set -euo pipefail
cat << EOF
---
title: Articles
---
EOF
listing=""
for file in *.md; do
if [ $file = "index.md" ]; then
continue
fi
link=$(basename $file .md).html
date=$(sed -n 's/date: \(.*\)/\1/p' $file)
title=$(sed -n 's/title: \(.*\)/\1/p' $file)
listing="$listing- $date: [$title]($link)\n"
done
echo -e $listing | sort --reverse

View file

@ -1,6 +0,0 @@
include_rules
HTML_TEMPLATE = article.html
: slides.md |> !marp_pdf |> jujutsu_slides.pdf ./<deps>
: index.md | ./<deps> |> !html |>

View file

@ -1,40 +0,0 @@
---
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. Im 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)_

Binary file not shown.

Before

Width:  |  Height:  |  Size: 7 KiB

View file

@ -1,23 +0,0 @@
---
marp: true
theme: gaia
footer: '**Fabien Freling** - 2024-11-26'
paginate: true
---
<style>
section::after {
content: attr(data-marpit-pagination) '/' attr(data-marpit-pagination-total);
}
</style>
<!--
_class: lead
-->
# Jujutsu
Life after Git
---

View file

@ -1,7 +1,6 @@
---
title: Web stack
date: 2019-06-26
update: 2024-11-26
---
Previous stacks

View file

@ -7,13 +7,10 @@
devShell.x86_64-linux = with pkgs;
mkShell {
nativeBuildInputs = [
graphviz-nox
imagemagick
just
libavif
libjxl
nodejs
nushell
pandoc
tup
];