Compare commits
11 commits
Author | SHA1 | Date | |
---|---|---|---|
|
7f0abdbb93 | ||
|
381dcd1c1e | ||
|
4483828cf5 | ||
|
94e248b95e | ||
|
98f46c8081 | ||
|
d16f0957f9 | ||
|
cb36227bd4 | ||
|
cd620d648e | ||
|
44a33f2c72 | ||
|
b7325dfe07 | ||
|
c6105f8d61 |
20 changed files with 40 additions and 738 deletions
13
Tuprules.tup
13
Tuprules.tup
|
@ -1,5 +1,6 @@
|
|||
&root = .
|
||||
&tmpl_dir = ./templates
|
||||
&gen_tmpl_dir = ./build/templates
|
||||
|
||||
HTML_TEMPLATE = main.html
|
||||
|
||||
|
@ -9,8 +10,8 @@ HTML_TEMPLATE = main.html
|
|||
--template=&(tmpl_dir)/$(HTML_TEMPLATE) \
|
||||
--include-in-header=&(tmpl_dir)/header.html \
|
||||
--include-before-body=&(tmpl_dir)/nav.html \
|
||||
--include-after-body=&(tmpl_dir)/footer.html \
|
||||
--css &(root)/css/style.css \
|
||||
--include-after-body=&(gen_tmpl_dir)/footer.html \
|
||||
%f | sed 's|%%webRoot%%|&(root)|g' > %o \
|
||||
|> %B.html
|
||||
|
||||
|
@ -19,17 +20,7 @@ HTML_TEMPLATE = main.html
|
|||
!compress_png = |> zopflipng %f %o |>
|
||||
!compress_jpg = |> cjpeg -quality 80 -progressive -outfile %o %f |>
|
||||
!compress_pdf = |> ps2pdf %f %o |>
|
||||
!avif = |> avifenc %f %o |> %B.avif
|
||||
!jxl = |> cjxl %f %o |> %B.jxl
|
||||
|
||||
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
|
||||
|
|
2
about.md
2
about.md
|
@ -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">
|
||||
|
|
|
@ -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 |>
|
||||
|
|
|
@ -1,378 +0,0 @@
|
|||
---
|
||||
title: "Chasseur, cueilleur, parent"
|
||||
date: 2025-05-06
|
||||
---
|
||||
|
||||
_Ceci est un résumé du livre [Chasseur, cueilleur, parent](https://www.editionsleduc.com/produit/2579/9791028521592/chasseur-cueilleur-parent)_
|
||||
|
||||
## Méthode TEAM
|
||||
|
||||
1. tendre camaraderie
|
||||
2. encouragements
|
||||
3. autonomie
|
||||
4. minimum d’ingérence
|
||||
|
||||
## Comment élever des enfants serviables ?
|
||||
|
||||
- Les enfants ont le désir inné d’aider leurs parents. Il peut donc sembler
|
||||
inapte ou empoté. C’est à ses parents de le former.
|
||||
|
||||
- Ne découragez jamais un enfant d’aider. Si une tâche est trop difficile ou
|
||||
trop dangereuse, dites-lui d’observer. Ou divisez la tâche en sous-tâches plus
|
||||
réalisables.
|
||||
|
||||
- Tâches simples mais réelles à effectuer ensemble, 1x / heure.
|
||||
- aller chercher quelque chose dont vous avez besoin
|
||||
- porter un petit sac de courses
|
||||
- remuer une préparation dans une casserole
|
||||
- couper un légume
|
||||
- tenir la porte
|
||||
- ouvrir le robinet du tuyau d’arrosage
|
||||
- remettre un livre dans la bibliothèque
|
||||
|
||||
- Pour les enfants plus grands (à partir de 7 ans) : essayez de déclencher son
|
||||
action en faisant une allusion indirecte à la tâche :
|
||||
- "la gamelle du chien est vide"
|
||||
- "il est l’heure de préparer le dîner"
|
||||
|
||||
## Comment élever des enfants coopérants
|
||||
|
||||
- Les enfants sont animés d’une motivation naturelle très forte pour le travai
|
||||
en équipe et la coopération.
|
||||
|
||||
- Les activités centrées sur les enfants sapent cette motivation pour le travail
|
||||
en équipe.
|
||||
|
||||
- À l’inverse, en incluant les enfants dans les activités d’adulte, on accroît
|
||||
leur motivation à coopérer et à faire comme les autres membres de la famille.
|
||||
|
||||
- Les enfants ont tendance à mal se comporter lorsqu’ils doivent passer du monde
|
||||
des enfants au monde des adultes.
|
||||
|
||||
- Dans la plupart des cultures, les parents ne passent pas leur temps à stimuler
|
||||
et à divertir les enfants.
|
||||
|
||||
- Les enfants n’ont pas besoin qu’on les stimule ou qu’on les amuse.
|
||||
|
||||
### Actions pour tous les enfants
|
||||
|
||||
- Limitez les activités centrées sur les enfants. Veillez à ce que votre enfant
|
||||
ait accès à votre vie et à votre travail. Veillez à ce qu’il soit dans les
|
||||
parages lorsque vous vous adonnez à des tâches domestiques ou à d’autres
|
||||
activités d’adulte.
|
||||
|
||||
- Réduisez les distractions telles que les écrans et les jouets. Moins l’enfant
|
||||
disposera d’objets de «divertissement», plus il sera attiré par votre univers et
|
||||
plus il sera susceptible de vouloir vous aider et de passer du temps avec vous.
|
||||
|
||||
- Augmentez au maximum son exposition au monde des adultes. Vaquez à vos
|
||||
occupations avec votre enfant près de vous.
|
||||
|
||||
- Le week-end, choisissez des activités qui vous font envie, celles que vous
|
||||
feriez même si vous n’aviez pas d’enfant.
|
||||
|
||||
### Actions pour les enfants à partir de 7 ans
|
||||
|
||||
- Laissez-le prévoir et organiser ses activités (les cours de sport, de musique,
|
||||
d’arts plastiques, toute autre activité extrascolaire, les goûters avec
|
||||
les copains...).
|
||||
|
||||
- Augmentez progressivement les responsabilités de l’enfant dans la maison, y
|
||||
compris le fait de s’occuper de ses petits frères et sœurs, et sa participation
|
||||
à la préparation des repas et au ménage. Pensez à la manière dont il pourrait
|
||||
vous aider dans votre travail.
|
||||
|
||||
- Si un enfant plus âgé a été peu exposé au monde des adultes, allez-y par
|
||||
paliers. Vaquez à vos occupations en emmenant votre enfant avec vous. S’il se
|
||||
conduit mal, expliquez-lui comment il doit se comporter dans le monde des
|
||||
adultes.
|
||||
|
||||
- Si l’enfant a toujours un comportement perturbateur, soyez patient. Ne
|
||||
renoncez pas. Réessayez plus tard. Il apprendra.
|
||||
|
||||
## Comment motiver les enfants
|
||||
|
||||
- Si vous voulez motiver un enfant sans le soudoyer ou l’amadouer, il doit avoir
|
||||
l’impression :
|
||||
- D’être relié à vous ou à une autre personne proche.
|
||||
- De choisir d’accomplir la tâche sans que personne l’y oblige.
|
||||
- D’être compétent, en sorte que sa participation sera valorisée.
|
||||
|
||||
- Les compliments peuvent saper la motivation et générer de la compétition (et
|
||||
des querelles) entre frères et sœurs.
|
||||
|
||||
- Les connaissances peuvent circuler dans un sens comme dans l’autre. Lorsqu’on
|
||||
accorde de l’attention aux idées et aux points de vue d’un enfant, on en tire
|
||||
souvent des informations précieuses et utiles.
|
||||
|
||||
- Accepter les connaissances, les idées et les contributions d’un enfant est un
|
||||
excellent moyen de le motiver.
|
||||
|
||||
- Résistez à l’envie de corriger un enfant, surtout quand il est en train de
|
||||
mettre la main à la pâte ou d’aider la famille.
|
||||
|
||||
- Si un enfant refuse d’obéir à une demande (par exemple aider à débarrasser),
|
||||
vous êtes probablement trop insistant. L’enfant sait ce que vous voulez. Arrêtez
|
||||
de le demander. Attendez et laissez l’enfant prendre les rênes.
|
||||
|
||||
- Soyez très attentif à la participation de l’enfant, puis inspirez-vous de ses
|
||||
idées plutôt que de vous y opposer.
|
||||
|
||||
- Aidez un enfant à apprendre une tâche en le laissant pratiquer plutôt qu’en
|
||||
lui faisant un cours complet sur la manière de l’accomplir. Proposez de simples
|
||||
ajustements, avec parcimonie, pendant que l’enfant est à l’œuvre.
|
||||
|
||||
- Acceptez la contribution de l’enfant, même si elle ne répond pas à vos
|
||||
attentes ou à vos désirs.
|
||||
|
||||
- Usez des compliments avec modération. Associez vos félicitations à
|
||||
l’apprentissage d’une valeur globale («tu commences réellement à nous aider») ou
|
||||
à une certaine maturité («tu es en train de devenir une grande fille»).
|
||||
|
||||
## Comment apprendre aux enfants à maîtriser leur colère
|
||||
|
||||
- La colère contre un enfant est stérile. Elle génère du conflit, crée de la
|
||||
tension et coupe la communication. Chaque fois qu’on crie après un enfant,
|
||||
on lui apprend à hurler et à se mettre en colère au moindre problème ou à la
|
||||
moindre contrariété. L’enfant pratique la colère et les cris.
|
||||
|
||||
- Vous pouvez interrompre ce cycle en répondant à l’enfant avec calme et
|
||||
gentillesse.
|
||||
|
||||
- On surestime souvent l’intelligence émotionnelle des enfants.
|
||||
|
||||
- Pour aider un enfant à savoir maîtriser sa colère, le mieux est de maîtriser
|
||||
sa propre colère devant lui.
|
||||
|
||||
- Chaque fois qu’on répond avec calme et sang-froid à un enfant contrarié, on
|
||||
lui donne la possibilité de trouver cette réponse en lui.
|
||||
|
||||
- Lorsque vous ressentez de la colère à l’égard d’un enfant, restez silencieux
|
||||
et attendez que la colère passe. Si vous parlez, l’enfant ressentira votre
|
||||
colère. Mieux vaut donc se taire.
|
||||
|
||||
- Si vous ne parvenez pas à maîtriser votre colère, sortez de la pièce ou
|
||||
éloignez-vous de l’enfant. Revenez une fois que vous êtes calmé.
|
||||
|
||||
- Apprenez à ressentir moins (voire pas du tout) de colère à l’égard des
|
||||
enfants.
|
||||
|
||||
- **Modifiez votre point de vue sur leur comportement.** Attendez-vous à ce que
|
||||
les jeunes enfants se comportent mal et causent des problèmes.
|
||||
|
||||
- **Ne vous disputez (et ne négociez) jamais avec un enfant.** Les disputes
|
||||
permettent à l’enfant de s’entraîner à argumenter. Taisez-vous et éloignez-vous.
|
||||
|
||||
- **Arrêtez de forcer les enfants à faire des choses.** Cela engendre des
|
||||
conflits, érode la communication et fait monter la colère (des deux côtés).
|
||||
Utilisez les outils décrits dans le chapitre suivant pour favoriser un
|
||||
comportement approprié plutôt que de l’imposer.
|
||||
|
||||
## Outils pour modifier le comportement
|
||||
|
||||
- La parole est souvent le moyen de communication le moins efficace avec les
|
||||
enfants, en particulier les plus jeunes.
|
||||
|
||||
- Les émotions de l’enfant sont le miroir de nos émotions.
|
||||
- Si vous souhaitez que votre enfant soit calme, doux et silencieux, parlez peu
|
||||
ou pas du tout (les mots stimulent).
|
||||
- Si vous souhaitez que votre enfant soit bruyant et très agité, soyez-le.
|
||||
Parlez beaucoup.
|
||||
|
||||
- Les ordres et les leçons entraînent souvent des bras de fer, des négociations
|
||||
et des spirales de colère.
|
||||
|
||||
- On peut rompre le cycle de la colère et des bras de fer grâce à des outils
|
||||
non verbaux ou en amenant l’enfant à réfléchir plutôt que de lui dire ce qu’il
|
||||
doit faire.
|
||||
|
||||
- **Dompter les crises.** Les crises de colère se dissipent si vous réagissez
|
||||
avec calme.
|
||||
- **L’énergie.** En restant aussi calme et paisible que possible, tenez-vous
|
||||
près de l’enfant, en silence, et montrez-lui que vous êtes là pour lui et que
|
||||
vous le soutenez.
|
||||
- **Le contact physique.** Touchez doucement l’épaule de l’enfant ou tendez-lui
|
||||
la main.
|
||||
- **L’émerveillement.** Aidez l’enfant à remplacer la colère par cette émotion
|
||||
qu’est l’émerveillement.
|
||||
- **L’extérieur.** Si l’enfant ne se calme toujours pas, sortez-le prendre
|
||||
l’air. Conduisez-le dehors en douceur ou emmenez-le dans vos bras.
|
||||
|
||||
- **Changer de comportement et transmettre des valeurs.** Au lieu d’ordonner à
|
||||
l’enfant de «ne pas faire ça», poussez-le à réfléchir.
|
||||
- **Le regard-qui-dit-tout.** Prenez tout ce que vous avez envie de dire à
|
||||
un enfant qui se comporte mal et dirigez-le dans votre expression faciale.
|
||||
Ouvrez grand les yeux, plissez le nez ou secouez la tête. Puis jetez ce regard
|
||||
à l’enfant.
|
||||
- **Le puzzle des conséquences.** Énoncez calmement quelles sont les
|
||||
conséquences de ses actes, puis partez (par exemple: «Tu vas tomber et te faire
|
||||
mal»).
|
||||
- **Les questions.** Au lieu d’émettre des ordres et des consignes, posez une
|
||||
question à l’enfant (par exemple: «Qui est méchant avec Freddy?» quand il est
|
||||
en train de taper son frère, ou «Qui est irrespectueuse?» quand l’enfant ignore
|
||||
une demande).
|
||||
- **La responsabilité.** Si un enfant se comporte mal, donnez-lui une tâche à
|
||||
réaliser (par exemple, dites à un enfant qui pleurniche le matin: «Viens m’aider
|
||||
à préparer ta boîte à goûter»).
|
||||
- **Les actes.** Au lieu de demander à un enfant de faire quelque chose (par
|
||||
exemple sortir de la maison), faites-le. L’enfant suivra.
|
||||
|
||||
## Modeler le comportement grâce aux histoires et au jeu théâtral
|
||||
|
||||
- Quand un enfant est contrarié, il lui est difficile d’écouter et d’apprendre.
|
||||
|
||||
- Quand un enfant est détendu et se sent protégé de toute punition, il est ouvert
|
||||
pour apprendre de nouvelles règles et réparer ses erreurs.
|
||||
|
||||
- Si un enfant ne se montre pas coopérant dans une situation donnée (par exemple,
|
||||
faire ses devoirs), il est probable qu’il existe une tension sur cette question
|
||||
entre l’enfant et le parent. Une fois cette tension dissipée grâce au jeu
|
||||
théâtral ou à une histoire, l’enfant adoptera un meilleur comportement et sera
|
||||
plus coopérant.
|
||||
|
||||
- Les enfants adorent apprendre à travers des récits oraux, surtout quand ces
|
||||
histoires parlent de personnages, d’expériences et d’objets de leur propre vie.
|
||||
Ils ont une tendance naturelle à apprendre de cette manière. Ils adorent par
|
||||
exemple:
|
||||
|
||||
– Qu’on leur parle de leur histoire familiale et de l’enfance de leurs parents.
|
||||
|
||||
– Imaginer des objets prendre vie et faire des erreurs.
|
||||
|
||||
– S’imaginer vivre entourés de fantômes, de monstres, de fées et d’autres
|
||||
créatures surnaturelles qui les aident à apprendre à se comporter correctement.
|
||||
|
||||
- Les enfants adorent apprendre par le jeu. Cela leur permet de relâcher la
|
||||
tension et de s’entraîner à bien se comporter. Ils aiment rejouer une erreur ou
|
||||
un comportement problématique et observer les conséquences dans un environnement
|
||||
ludique et sans stress (sans craindre d’être punis).
|
||||
|
||||
Plutôt que de vous lancer dans des leçons de morale et de vous appuyer sur un
|
||||
raisonnement adulte pour modifier le comportement d’un enfant ou lui inculquer
|
||||
une valeur, attendez un moment de calme et de détente et essayez l’un de ces
|
||||
outils:
|
||||
|
||||
- **Racontez une anecdote de votre enfance.** Expliquez comment vous et vos
|
||||
parents aviez géré une bêtise, un problème, un mauvais comportement. Aviez-vous
|
||||
été puni ? Comment aviez-vous réagi ?
|
||||
|
||||
- **Faites un spectacle de marionnettes.** Prenez un animal en peluche ou une
|
||||
paire de chaussettes pour mettre en scène les conséquences du comportement de
|
||||
l’enfant et lui montrer comment vous aimeriez qu’il se conduise. Demandez-lui de
|
||||
jouer l’un des personnages.
|
||||
|
||||
- **Déplacez le problème sur le terrain du jeu.** Dites à l’enfant: «J’ai remarqué
|
||||
qu’on se dispute beaucoup à propos de tes devoirs [ou du problème en question].
|
||||
Si on jouait à un jeu ? Qui as-tu envie de jouer ? Toi ou moi ?» Puis rejouez
|
||||
sur un ton humoristique ce qui se passe pendant les disputes. N’ayez pas peur
|
||||
de partir dans le délire et l’exagération. L’objectif, c’est d’en rire et de
|
||||
relâcher la tension qui s’est créée autour de cette question.
|
||||
|
||||
- **Ayez recours à un monstre.** Créez un monstre tapi près de la maison. Dites
|
||||
à l’enfant qu’un monstre le regarde et que, s’il se conduit mal, le monstre
|
||||
viendra l’enlever (seulement pour quelques jours).
|
||||
|
||||
- **Donnez vie à un objet inanimé.** Utilisez une peluche, un vêtement ou tout
|
||||
autre objet inanimé pour amadouer l’enfant et le persuader d’accomplir une
|
||||
tâche. Faites faire cette tâche à l’objet en question (brosser les dents
|
||||
d’une peluche) ou faites parler l’objet (c’est la brosse à dents qui demande à
|
||||
l’enfant de se brosser les dents, par exemple).
|
||||
|
||||
## Comment élever un enfant sûr de lui
|
||||
|
||||
- Tout comme les adultes, les enfants, petits et grands, n’aiment pas qu’on
|
||||
les commande. Ils ont, quel que soit leur âge, un penchant naturel pour
|
||||
l’apprentissage de l’autonomie sans qu’on s’en mêle.
|
||||
|
||||
- Quand on mène un enfant à la baguette, on sape sa confiance en lui et son
|
||||
autonomie.
|
||||
|
||||
- Quand on respecte l’autonomie de l’enfant et qu’on réduit ses instructions
|
||||
au minimum, on lui envoie le message qu’il est autonome et capable de régler
|
||||
lui-même les problèmes.
|
||||
|
||||
- Donner de l’autonomie à un enfant est la meilleure façon de le protéger du
|
||||
stress et de l’anxiété.
|
||||
|
||||
- L’indépendance et l’autonomie sont deux concepts distincts:
|
||||
|
||||
- Un enfant indépendant est déconnecté des autres, il n’est responsable de
|
||||
personne d’autre que lui.
|
||||
|
||||
- Un enfant autonome est maître de ses actes et prend ses propres décisions,
|
||||
mais il est en relation permanente avec sa famille et ses amis. On attend de lui
|
||||
aide, partage et bienveillance. On attend de lui qu’il rende au groupe chaque
|
||||
fois qu’il le peut.
|
||||
|
||||
- **Soyez attentif à la fréquence des consignes que vous donnez à votre enfant.**
|
||||
Programmez le minuteur de votre téléphone sur vingt minutes. Comptez combien de
|
||||
commentaires, questions et demandes vous avez émis pendant ce laps de temps.
|
||||
|
||||
- **Limitez-vous à trois ordres par heure.** Efforcez-vous de vous y tenir, notamment
|
||||
dans les activités génératrices de conflits et de disputes (se préparer
|
||||
pour aller à l’école ou pour aller au lit, par exemple). N’ayez recours aux
|
||||
ordres que pour apprendre à l’enfant la serviabilité, la générosité et les
|
||||
responsabilités envers sa famille.
|
||||
|
||||
- **Trouvez une zone d’autonomie.** Identifiez des lieux autour de chez vous où les
|
||||
enfants de tous les âges peuvent évoluer en toute autonomie, où vous pouvez les
|
||||
surveiller de loin en interférant le moins possible. Pensez aux parcs et aux
|
||||
aires de jeux en plein air, aux prés et aux plages. Prenez de la lecture ou du
|
||||
travail et laissez les enfants jouer pendant quelques heures.
|
||||
|
||||
- **Faites de votre jardin et de votre quartier une zone d’autonomie.** Formez votre
|
||||
enfant à gérer les dangers, chez vous et aux alentours. Tissez un «filet de
|
||||
protection invisible» en sympathisant avec vos voisins et leurs enfants.
|
||||
|
||||
- **Cessez d’être ventriloque.** Mettez un point d’honneur à ne plus parler à la
|
||||
place de votre enfant ou lui dire ce qu’il doit dire. Laissez-le répondre aux
|
||||
questions qu’on lui pose, passer commande au restaurant, décider quand dire
|
||||
«s’il te plaît» et «merci». Faites en sorte qu’il soit capable de gérer lui-même
|
||||
toutes les conversations, y compris les discussions avec ses enseignants,
|
||||
entraîneurs ou moniteurs.
|
||||
|
||||
## Comment protéger ses enfants de la dépression
|
||||
|
||||
- Les bébés et les enfants sont conçus pour être élevés par toutes sortes
|
||||
de personnes. Grands-parents, tantes, nourrices, voisins... toutes sont
|
||||
importantes.
|
||||
|
||||
- Ce réseau d’amour et de soutien aide l’enfant à voir le monde comme un lieu
|
||||
bénéfique et bienveillant, ce qui le protège de la dépression et d’autres
|
||||
troubles de santé mentale.
|
||||
|
||||
- Un ou deux alloparents supplémentaires peuvent vraiment faire la différence
|
||||
dans la vie d’un enfant.
|
||||
|
||||
- Les autres enfants peuvent être de fantastiques alloparents et ont tendance
|
||||
à faire de meilleurs enseignants et camarades de jeu que les adultes. Les
|
||||
enfants intègrent naturellement le jeu aux apprentissages et ont des niveaux de
|
||||
compétence plus proches de ceux des petits que les adultes.
|
||||
|
||||
- Les amitiés intimes et profondes sont probablement tout aussi importantes pour
|
||||
votre santé et celle de votre enfant que l’exercice physique et une alimentation
|
||||
saine.
|
||||
|
||||
- **Tissez un réseau de tantes et d’oncles.** Collaborez avec trois ou quatre
|
||||
autres familles pour vous partager les temps extrascolaires, en mettant en
|
||||
place un roulement pour chaque jour de la semaine. Ce réseau procure un soutien
|
||||
émotionnel aux enfants et permet aux parents de souffler.
|
||||
|
||||
- **Créer un GEM (groupe d’enfants multiâges).** Encouragez votre enfant à jouer
|
||||
avec d’autres, de tous les âges et dans tout le quartier. Invitez les autres
|
||||
familles à des dîners ou des apéros. Organisez de grandes garderies de quartier
|
||||
le week-end, où vous invitez des enfants de tous les âges à jouer dans votre
|
||||
jardin ou dans un parc.
|
||||
|
||||
- **Formez de mini-alloparents.** Apprenez très tôt aux enfants plus âgés à
|
||||
s’occuper de leurs petits frères et sœurs. Établissez un lien entre l’aide
|
||||
qu’ils apportent et leur maturité croissante («Tu aides ton petit frère parce
|
||||
que tu es une grande fille maintenant»). Récompensez l’enfant en augmentant ses
|
||||
responsabilités au fil du temps.
|
||||
|
||||
- **Appréciez l’aide des alloparents déjà présents.** Travaillez main dans
|
||||
la main avec votre enfant pour exprimer votre reconnaissance aux nourrices,
|
||||
puéricultrices, professeurs et entraîneurs. Faites-lui rédiger des petits mots,
|
||||
préparer des biscuits et friandises pour les remercier. Considérez-les comme
|
||||
des membres importants de votre famille. Montrez l’exemple du respect et de
|
||||
la générosité.
|
|
@ -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
23
articles/generate_listing.sh
Executable 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
|
|
@ -1,9 +0,0 @@
|
|||
include_rules
|
||||
HTML_TEMPLATE = article.html
|
||||
|
||||
: foreach *.png |> !avif |>
|
||||
: foreach *.png |> !jxl |>
|
||||
: index.md | ./<deps> |> !html |>
|
||||
|
||||
# images embedding not working in marp + tup
|
||||
# : slides.md |> !marp_pdf |> jujutsu_slides.pdf ./<deps>
|
|
@ -1,154 +0,0 @@
|
|||
---
|
||||
title: "Lightning talk: Jujutsu"
|
||||
date: 2025-02-17
|
||||
---
|
||||
|
||||
_Slides available: [pdf](./jujutsu_slides.pdf)_
|
||||
|
||||
<p style="text-align:center;">
|
||||
<picture>
|
||||
<source type="image/avif" srcset="jj-logo.avif" />
|
||||
<source type="image/jxl" srcset="jj-logo.jxl" />
|
||||
<img src="jj-logo.png" alt="jujutsu logo" width=20% />
|
||||
</picture>
|
||||
</p>
|
||||
|
||||
## What is it?
|
||||
|
||||
[Jujutsu](https://github.com/jj-vcs/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 plan 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 the history and you will always see the whole
|
||||
history, unlike git where you only see parents revisions.
|
||||
|
||||
This emphasis on revisions changes the paradigm a bit: you tend to better split
|
||||
your revisions, whereas in git you often do smaller commits then clean the whole
|
||||
branch during a rebase phase.
|
||||
|
||||
You can also modify revisions freely: unlike git where you can only modify
|
||||
the current branch, you can squash part of any revision into another unrelated
|
||||
revision.
|
||||
|
||||
Some revisions (such as the `main` or `master` branch) are considered immutable,
|
||||
meaning you are not allowed to modify them. You can override this but this is a
|
||||
sane choice by default.
|
||||
|
||||
### No staging area
|
||||
|
||||
Every modification in jujutsu is stored. It removes a step from git and
|
||||
avoids scenarios where you cannot switch branches because of a untracked file
|
||||
collision, or when you forget to add a file (it works locally but not on the
|
||||
CI env).
|
||||
|
||||
It does require a good .gitignore file to avoid adding unnecessary (big) files,
|
||||
but that is good practice anyway.
|
||||
|
||||
You can mimic git staging area with a new revision on top of your work.[^1]
|
||||
|
||||
### Conflicts are ok
|
||||
|
||||
Conflicts during rebase are recorded but never stop the rebase. Revisions will
|
||||
be flagged as "conflicted" until the conflict markers are removed. You can then
|
||||
see how long the conflicts last (maybe a later revision fixes them).
|
||||
|
||||
You deal with conflicts how you want, it is never a hurry. You can save your
|
||||
progress and change branch in the meanwhile. Once you fix a conflict you do
|
||||
not need to explicitely mark them as resolved, the absence of markers is enough
|
||||
for jujutsu.
|
||||
|
||||
### Branch, bookmark
|
||||
|
||||
A "branch" in git is named "bookmark" in jujutsu. You do not need one during
|
||||
dev, you can safely switch revisions trees without naming them. This is very
|
||||
useful when you need to try something on top of the main branch: you just
|
||||
create a new revision on top of it without creating an dedicated branch or even
|
||||
modifying the main branch (I often modified my local copy of the main branch
|
||||
this way with git).
|
||||
|
||||
However, you need a bookmark when you want to push changes to a remote (which is often).
|
||||
I believe this could be skipped with a dedicated jujutsu backend.
|
||||
|
||||
When creating a bookmark, it sticks to the revision it was created on, you need
|
||||
to manually update it if you add revision on top of it. This manual step is
|
||||
useful when you want to push your changes but keep a few revisions private until
|
||||
your work is done.
|
||||
|
||||
Tracked bookmarks are similar to tracked branches in git, but they are
|
||||
automatically updated during fetching. No more out-of-date information between a
|
||||
local bookmark and its remote (I'm looking at you `origin/main`).
|
||||
|
||||
### Tooling
|
||||
|
||||
Jujutsu comes with nice CLI tools out-of-the-box: you can select part of a commit
|
||||
for squashing / splitting with a dedicated TUI, and the log are pretty-printed
|
||||
in graph format.
|
||||
|
||||
But it cannot compare to the exhaustive ecosystem that exists for git: GUI,
|
||||
scripts, etc. Unfortunately, git tools are confused when you use jujutsu in
|
||||
your repository: they only see the detached HEAD, they are missing the overall
|
||||
picture.
|
||||
|
||||
You can always come back to a regular git workflow based on branches (they are
|
||||
mapped on bookmarks), should you need it.
|
||||
|
||||
### Takeaway
|
||||
|
||||
Jujutsu shines when you are dealing with multiple tracks (bug hunting,
|
||||
work-in-progress, small tests).
|
||||
|
||||
The need to specify bookmarks when pushing changes feels a bit heavy compared
|
||||
to how smooth it is working locally. A backend tailored for jujutsu, supporting
|
||||
revisions without bookmarks, would remove a lot of friction.
|
||||
|
||||
Jujutsu has cool features, but I wouldn't consider them game-changing. It feels
|
||||
simpler though, which is good coming from git.
|
||||
|
||||
The ecosystem is almost null, but it is growing.[^2]
|
||||
|
||||
|
||||
## VCS landscape
|
||||
|
||||
Jujutsu seems to materialize what the next VCS after git should be: better
|
||||
conflict support and nicer UX.
|
||||
|
||||
It is developed by Googlers and I believe the goal is to slowly replace git CLI
|
||||
at Google. It is making good progress with frequent releases.
|
||||
|
||||
[Sapling](https://sapling-scm.com/) is another contender, developed at Facebook.
|
||||
It is more inspired by Mercurial (which is used at Facebook). Its feature set is
|
||||
similar to Jujutsu but it seems less popular.
|
||||
|
||||
> 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)_
|
||||
|
||||
[Pijul](https://pijul.org/) is less focusing on git compatibility and looks
|
||||
more like a research project, focusing on theory of patches. I am not sure how
|
||||
production ready it currently is, but the clean break with git means it needs to
|
||||
be rock solid to tempt people over.
|
||||
|
||||
[^1]: [The Squash Workflow](https://steveklabnik.github.io/jujutsu-tutorial/real-world-workflows/the-squash-workflow.html)
|
||||
[^2]: [GUI and TUI](https://github.com/jj-vcs/jj/wiki/GUI-and-TUI)
|
Binary file not shown.
Before Width: | Height: | Size: 50 KiB |
Binary file not shown.
Before Width: | Height: | Size: 56 KiB |
Binary file not shown.
Before Width: | Height: | Size: 58 KiB |
Binary file not shown.
Before Width: | Height: | Size: 63 KiB |
Binary file not shown.
Before Width: | Height: | Size: 7 KiB |
|
@ -1,131 +0,0 @@
|
|||
---
|
||||
marp: false
|
||||
theme: gaia
|
||||
footer: '**Fabien Freling** - 2025-02-17'
|
||||
paginate: true
|
||||
---
|
||||
|
||||
<style>
|
||||
section::after {
|
||||
content: attr(data-marpit-pagination) '/' attr(data-marpit-pagination-total);
|
||||
}
|
||||
</style>
|
||||
|
||||
|
||||
<!--
|
||||
_class: lead
|
||||
-->
|
||||
|
||||
# Jujutsu
|
||||
|
||||

|
||||
|
||||
---
|
||||
|
||||
## What is it?
|
||||
|
||||
* New version control software (VCS)
|
||||
* Separation of **frontend** and **backend**
|
||||
* Compatible with git
|
||||
* Slowly replacing git cli at Google (askip)
|
||||
* Aiming for a simpler workflow
|
||||
|
||||
---
|
||||
|
||||
## No branch, only revisions
|
||||
|
||||

|
||||
<revision id> <author> <date> <branch> <commit id>
|
||||
|
||||
- @ working copy
|
||||
- ◆ immutable
|
||||
- × conflict
|
||||
|
||||
---
|
||||
|
||||
## Embrace the DETACHED HEAD
|
||||
|
||||
- No need to be at the tip of a branch
|
||||
- Easy to change the current revision (no rebase step)
|
||||
- Each revision has a scope, you can switch / split / squash
|
||||
- You can modify other branches, not only the current one (there is none)
|
||||
|
||||
---
|
||||
|
||||
## Immutable revisions
|
||||
|
||||
- New concept
|
||||
- By default `master` is immutable, sane choice
|
||||
- Clearly express what would create conflict, even local copy cannot change
|
||||
- You can override it (but don't)
|
||||
|
||||
---
|
||||
|
||||
## No staging area, everything is logged
|
||||
|
||||
- You need a good gitignore
|
||||
- You can always switch commits without loss
|
||||
- You might want to recreate a "staging" commit
|
||||
|
||||
---
|
||||
|
||||
## Conflicts are ok
|
||||
|
||||
- Conflicts are recorded but never stop a rebase
|
||||
- Conflicted commits are annotated
|
||||
- You can safely rebase, deal with conflicts later on
|
||||
- No need to mark as resolved
|
||||
|
||||
---
|
||||
|
||||
## Branches, bookmarks
|
||||
|
||||
- Branches (git) = bookmarks (jujutsu)
|
||||
- Optional during dev
|
||||
- Mandatory when pushing
|
||||
- Stick to revision, manual step to update
|
||||
- Tracked bookmarks are updated during fetch
|
||||
- No sync conflict between a local copy and its remote
|
||||
|
||||
---
|
||||
|
||||
## Back to git?
|
||||
|
||||
- A way back is always possible
|
||||
- git view gets confused in detached HEAD
|
||||
|
||||
---
|
||||
|
||||
## Tooling
|
||||
|
||||
- Battery included
|
||||
- CLI tool for splitting commits
|
||||
- Git tools not compatible
|
||||
|
||||
---
|
||||
|
||||
## Takeaway
|
||||
|
||||
- 🤩 Good when dealing with multiple tracks
|
||||
- 😔 Need to explicitely specify branch when pushing commits
|
||||
- Small improvements, not game-changing
|
||||
- 😔 No ecosystem, but it's growing (TUI)
|
||||
- Native backend (not ready yet) would remove a lot of friction
|
||||
|
||||
---
|
||||
|
||||
<!--
|
||||
_class: lead
|
||||
-->
|
||||
|
||||
## Worth the switch?
|
||||
|
||||
# ✋ Not yet
|
||||
|
||||
---
|
||||
|
||||
# References
|
||||
|
||||
- [Official website](https://jj-vcs.github.io/jj/)
|
||||
- [GUI & TUI](https://github.com/jj-vcs/jj/wiki/GUI-and-TUI)
|
||||
|
|
@ -1,7 +1,6 @@
|
|||
---
|
||||
title: Web stack
|
||||
date: 2019-06-26
|
||||
update: 2024-11-26
|
||||
---
|
||||
|
||||
Previous stacks
|
||||
|
@ -25,5 +24,5 @@ Pandoc + Tup = ❤️
|
|||
I decided to use [Pandoc](https://pandoc.org/) to convert from Markdown to HTML.
|
||||
It is widely used by other generators and takes care of the file conversion.
|
||||
|
||||
For automation, I use a simple top-level [Justfile](https://just.systems/) and
|
||||
For automation, I use a simple top-level Makefile and
|
||||
[Tup](http://gittup.org/tup/index.html).
|
||||
|
|
|
@ -7,14 +7,10 @@
|
|||
devShell.x86_64-linux = with pkgs;
|
||||
mkShell {
|
||||
nativeBuildInputs = [
|
||||
entr
|
||||
graphviz-nox
|
||||
imagemagick
|
||||
just
|
||||
libavif
|
||||
libjxl
|
||||
nodejs
|
||||
nushell
|
||||
pandoc
|
||||
tup
|
||||
];
|
||||
|
|
14
justfile
14
justfile
|
@ -1,5 +1,5 @@
|
|||
root := justfile_directory()
|
||||
build := root / "build"
|
||||
# vim: set ft=make :
|
||||
root := `pwd`
|
||||
|
||||
# Build static website
|
||||
build:
|
||||
|
@ -23,13 +23,3 @@ deploy: build
|
|||
|
||||
preview: build
|
||||
python3 -m webbrowser -t "file://{{root}}/build/index.html"
|
||||
|
||||
JJ_SLIDES_SRC := root / "articles/jujutsu/slides.md"
|
||||
JJ_SLIDES_OUT := build / "articles/jujutsu/jujutsu_slides.pdf"
|
||||
jj-slides:
|
||||
npx @marp-team/marp-cli@latest --allow-local-files \
|
||||
--bespoke.progress {{ JJ_SLIDES_SRC }} --pdf \
|
||||
--output {{ JJ_SLIDES_OUT }}
|
||||
|
||||
jj-slides-watch:
|
||||
ls {{ JJ_SLIDES_SRC }} | entr just jj-slides
|
||||
|
|
1
templates/Tupfile
Normal file
1
templates/Tupfile
Normal file
|
@ -0,0 +1 @@
|
|||
: |> ./generate_footer.sh > %o |> footer.html ./<tmpl_group>
|
|
@ -1,3 +0,0 @@
|
|||
<div id="footer">
|
||||
Copyright © Fabien Freling since 2007
|
||||
</div>
|
9
templates/generate_footer.sh
Executable file
9
templates/generate_footer.sh
Executable file
|
@ -0,0 +1,9 @@
|
|||
#!/usr/bin/env bash
|
||||
|
||||
set -euo pipefail
|
||||
|
||||
cat << EOF
|
||||
<div id="footer">
|
||||
Copyright © Fabien Freling 2007-$(date +%Y)
|
||||
</div>
|
||||
EOF
|
Loading…
Add table
Add a link
Reference in a new issue