-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathatom.xml
More file actions
1278 lines (1230 loc) · 204 KB
/
atom.xml
File metadata and controls
1278 lines (1230 loc) · 204 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
<title>Mes 2¢</title>
<link href="https://ced-c.github.io/atom.xml" rel="self"/>
<link href="https://ced-c.github.io/"/>
<updated>2026-03-21T17:30:00+0000</updated>
<id>https://ced-c.github.io/</id>
<entry>
<title>Le monopole des goûts</title>
<link href="https://ced-c.github.io/blog/le-monopole-des-gouts/"/>
<updated>2026-03-21T00:00:00+0000</updated>
<id>https://ced-c.github.io/blog/le-monopole-des-gouts/</id>
<content type="html">&lt;p&gt;Je teste des IA de temps en temps. Je n’en suis pas fan, mais il paraît qu’il ne faut pas
rater le coche, que ça va bientôt envahir nos vies. Je ne veux pas passer à côté.&lt;&#x2F;p&gt;
&lt;p&gt;Récemment, j’ai eu l’occasion de faire du tourisme pour la première fois depuis longtemps.
Par curiosité, j’ai demandé à une IA de me proposer un séjour :&lt;&#x2F;p&gt;
&lt;blockquote&gt;
&lt;p&gt;Je vais passer 5 jours à Petochnoque, on sera 5 dont un bébé de deux ans.
On cherche donc une vibe détente, orientée nature, plage avec des randonnées. Propose-moi
un itinéraire point par point avec un budget total de XXX € sur place.&lt;&#x2F;p&gt;
&lt;&#x2F;blockquote&gt;
&lt;p&gt;J’ai eu un plan bien ficelé, mais fade. Le truc que tout le monde fait. Qui ne sort pas des
sentiers battus. Je ne l’ai pas suivi. Mais combien de personnes font de même ?&lt;&#x2F;p&gt;
&lt;p&gt;J’entrevois le tourisme de masse —encore plus massifié. Un trou noir touristique qui aspire
tout le monde… dans quelques lieux saturés, où l’attention converge.&lt;&#x2F;p&gt;
&lt;p&gt;Et si… c’était une conséquence logique des systèmes qui se mettent en place et qui accélèrent
depuis l’arrivée d’internet ?&lt;&#x2F;p&gt;
&lt;h2 id=&quot;le-capitalisme-aime-les-monopoles&quot;&gt;Le capitalisme aime les monopoles&lt;&#x2F;h2&gt;
&lt;p&gt;Les États-Unis se sont construits sur le capitalisme. Mais pas le capitalisme d’aujourd’hui, sans frontières ni régulation.
Non. À l’époque, au contraire, les législateurs avaient compris que le capitalisme aime les
monopoles —mais les consommateurs, eux, beaucoup moins. On avait donc mis en place des
gardes-fous : les lois &lt;em&gt;anti-trust&lt;&#x2F;em&gt;.&lt;&#x2F;p&gt;
&lt;p&gt;Le principe est simple : si une entreprise grossit trop et que les barrières d’entrée du marché
deviennent insurmontables, on scinde l’entreprise en plusieurs entités, chacune pouvant être
concurrencée.&lt;&#x2F;p&gt;
&lt;p&gt;AT&amp;amp;T et IBM avaient une peur bleue de ces lois. AT&amp;amp;T a raison puisqu’ils ont fini par être scindés, la dernière utilisation notable de ces lois.
IBM y a échappé, mais la peur d’une sanction avait contribué à l’ouverture de la séquence d’amorçage, c’est en partie grâce à ça qu’il est bien plus simple d’installer Linux sur
un ordinateur que sur un téléphone. La contrainte légale avait poussé à l’ouverture.&lt;&#x2F;p&gt;
&lt;p&gt;Puis, Reagan est arrivé. Et avec lui, la financiarisation de l’économie au nom de la croissance. On a dérégulé massivement
pour espérer ne pas arriver au bout des 30 glorieuses. Ça a échoué, mais la mentalité est restée. Plus tard, on a commencé à entendre la petite musique selon laquelle la guerre froide aurait été gagnée bien plus vite si on n’avait pas mis de bâtons dans les roues des grandes entreprises étasuniennes. Ça reste à démontrer, mais la musique résonne encore dans la tête des politiciens.&lt;&#x2F;p&gt;
&lt;p&gt;La suite, on la connaît : création des GAFAM, hégémonie des États-Unis… emmerdification du web !&lt;&#x2F;p&gt;
&lt;p&gt;Les monopoles ont compris qu’il valait mieux éviter d’attirer
l’attention. Ils se sont mis à se cacher. Google détient le quasi-monopole
du marché des moteurs de recherche —il s’est donc présenté comme
Alphabet, acteur parmi d’autres du marché de la publicité en ligne,
où les concurrents ne manquent pas. Chaque branche d’Alphabet a des
compétiteurs. C’est crédible… reste que la majorité de ses revenus
provient du moteur de recherche.&lt;&#x2F;p&gt;
&lt;p&gt;On a supprimé les garde-fous, et tout le monde semble trouver ça
très bien.&lt;&#x2F;p&gt;
&lt;h2 id=&quot;la-technologie-change-la-donne&quot;&gt;La technologie change la donne&lt;&#x2F;h2&gt;
&lt;p&gt;Le problème des monopoles n’est pas nouveau. Il est par contre exacerbé par les technologies —de la communication en particulier—
qui créent un effet &lt;em&gt;winner takes all&lt;&#x2F;em&gt;, les vainqueurs raflent tout.&lt;&#x2F;p&gt;
&lt;p&gt;Avant l’invention du phonographe, écouter de la musique demandait
des musiciens. C’était cher, tout le monde ne pouvait pas se le
permettre —mais les vitesses de déplacement faisaient qu’il en
fallait partout, dans toutes les villes. Si un Beethoven ou un
Mozart apparaissait, il était demandé par ceux qui avaient le plus
de moyens, mais il n’empêchait pas les autres d’exercer.&lt;&#x2F;p&gt;
&lt;p&gt;Avec l’enregistrement, puis la radio, puis le streaming, une seule interprétation peut être écoutée dans le monde entier, en
simultané.
On a besoin de beaucoup moins de musiciens (qui deviennent profs) et seuls quelques élus s’en sortent très bien. Le pire, c’est
que ce n’est même pas forcément les meilleurs (c’est une question de goût), mais parfois juste de mode, de marketing, de faits divers.&lt;&#x2F;p&gt;
&lt;p&gt;Les technologies de l’information ont ajouté une couche
supplémentaire : la hiérarchie visible. La note sur cinq étoiles,
le classement des articles, le « top 10 des meilleures… » —tout
cela concentre l’attention sur les mêmes références. Le premier
résultat Google reçoit statistiquement dix fois plus de clics que
le dixième. Dans un monde où l’attention est limitée, être bien
classé, c’est presque tout.&lt;&#x2F;p&gt;
&lt;p&gt;Les algorithmes de recommandation sont l’étape suivante. Plus
besoin de consulter les tops : on vous dit directement quoi
regarder, quoi écouter. La recommandation se veut personnalisée,
mais elle est biaisée par construction —culture occidentale par
défaut, biais de popularité, convergence vers le mainstream. Les
séries qui &lt;em&gt;hypent&lt;&#x2F;em&gt; sont proposées à tout le monde.&lt;&#x2F;p&gt;
&lt;h2 id=&quot;l-ia-une-reponse-pour-les-gouverner-toutes&quot;&gt;L’IA une réponse pour les gouverner toutes&lt;&#x2F;h2&gt;
&lt;p&gt;Nous entrons aujourd’hui à l’ère de l’IA. À toute question posée, plus de top 10, on apporte
désormais une réponse unique. Elles sont entraînées pour être d’accord avec nous et nous
beurrer l’ego.&lt;&#x2F;p&gt;
&lt;blockquote&gt;
&lt;p&gt;Même le pire des cons a une IA en train de lui dire qu’il a raison&lt;&#x2F;p&gt;
&lt;&#x2F;blockquote&gt;
&lt;p&gt;—Ai-je pu lire sur le net. C’est vrai, mais ce n’est pas le plus grave.&lt;&#x2F;p&gt;
&lt;p&gt;Le plus grave, c’est
que cette IA lui recommande aussi les mêmes films, les mêmes
musiques, les mêmes destinations que le voisin.
Et pour la même question posée
par des millions de personnes, elle donne à peu près la même
réponse —parce qu’elle est entraînée sur les mêmes données, avec
les mêmes biais culturels, dans les mêmes langues. Majoritairement
en anglais. Massivement sur du contenu occidental. La diversité
du monde réel n’a pas été invitée à la table.&lt;&#x2F;p&gt;
&lt;p&gt;La structure du marché va bientôt aggraver ça. Tout le monde parle de bulle de l’IA, et d’éclatement prochain.
La première conséquence de l’éclatement, c’est la concentration du marché.
Le nombre d’acteurs diminue, liquidés ou absorbés. Les coûts d’entraînement deviennent tellement
élevés que seule une poignée d’acteurs —les GAFAM en tête— en ressortiront vivants. Moins de choix, plus de convergence.&lt;&#x2F;p&gt;
&lt;p&gt;On aura alors tous une IA nous disant quoi lire, quoi regarder, quoi aimer —et peut-être même, quoi penser.&lt;&#x2F;p&gt;
&lt;h2 id=&quot;est-ce-grave&quot;&gt;Est-ce grave ?&lt;&#x2F;h2&gt;
&lt;p&gt;On a tendance à répondre oui par réflexe. La diversité, c’est
l’étendue des possibles, un monde plus complexe, plus intéressant.
Mais à bien y réfléchir, est-ce vraiment le cas ? Mes intuitions sont souvent
utilitaristes (conséquentialistes cherchant à maximiser le bonheur collectif) ;
dans le cas présent il me semble que les conséquences ne sont de prime abord pas si
graves.&lt;&#x2F;p&gt;
&lt;p&gt;Une normalisation des goûts et des opinions, ça signifie moins
de frictions entre individus. Moins de malentendus culturels.
Plus de terrain commun. On pourrait imaginer une démocratie plus
apaisée, des conflits moins nombreux. Ce n’est pas absurde.&lt;&#x2F;p&gt;
&lt;p&gt;On pourrait également regretter la baisse de l’innovation qui pourrait en découler
mais dans un monde en constante accélération comme ç’a été le cas les dernières
décennies, une pause serait appréciable pour les humains qui sont largués de plus en plus vite, comme pour la planète qui s’épuise d’autant plus vite qu’on accélère.&lt;&#x2F;p&gt;
&lt;p&gt;Le point mort du point de vue conséquentialiste ici est peut-être ce qui nous met intuitivement mal à l’aise avec l’idée : &lt;em&gt;qui décide&lt;&#x2F;em&gt; ?&lt;&#x2F;p&gt;
&lt;p&gt;Les GAFAM. Ou plutôt les boîtes qui font ces algorithmes, ces IA quelles qu’elles soient.
Or, on n’est plus dans le domaine de la recommandation, on est dans le domaine du pouvoir ;
et les plus riches sont rarement les plus altruistes. La concentration du pouvoir de définir les goûts, les références, les opinions de milliards de personnes entre les mains de
quelques acteurs privés non élus est un risque moral important
—quels que soient les beaux slogans qu’ils veulent nous faire avaler.&lt;&#x2F;p&gt;
&lt;p&gt;Taleb l’a noté dans &lt;em&gt;Le Cygne Noir&lt;&#x2F;em&gt; : la nature préfère les
petits territoires insulaires. Plus un territoire est petit,
plus il obéit aux lois de la diversité —plus d’espèces par
mètre carré, plus d’essais, plus d’échecs, plus d’innovations.
Les grands continents favorisent les espèces dominantes au
détriment des autres.&lt;&#x2F;p&gt;
&lt;p&gt;La culture ne fonctionne pas différemment. La biodiversité
des goûts, des références, des pratiques, c’est ce qui permet
à des idées vraiment nouvelles d’émerger. Un monde culturellement
uniforme est un monde où les erreurs collectives se propagent
sans résistance —personne ne peut surprendre personne, personne
ne peut pointer ce que tout le monde a raté.&lt;&#x2F;p&gt;
&lt;p&gt;L’uniformisation n’est pas seulement une perte esthétique.
C’est une vulnérabilité collective.&lt;&#x2F;p&gt;
&lt;h2 id=&quot;que-faire&quot;&gt;Que faire&lt;&#x2F;h2&gt;
&lt;p&gt;Lutter à l’échelle individuelle est très compliqué. Il y a bien sûr des outils à notre
disposition mais force est de constater qu’ils ne sont ni enthousiasmants, ni
socialement faciles à déployer.&lt;&#x2F;p&gt;
&lt;p&gt;On peut par exemple :&lt;&#x2F;p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;em&gt;Privilégier le local&lt;&#x2F;em&gt;. Un concert dans une salle de 200 personnes, un libraire
qui connaît ses clients, un podcast fait par quelqu’un de votre ville :
ces choses-là ne sont pas scalables par définition.
La géographie est une protection naturelle contre la concentration.&lt;&#x2F;li&gt;
&lt;li&gt;éviter les algorithmes de recommandation. Autant que possible. Trouver un resto
en se fiant à l’odeur, au monde plutôt qu’aux notes. Choisir un livre en fonction de sa
couverture. Se faire recommander par un ami plutôt qu’une IA.&lt;&#x2F;li&gt;
&lt;li&gt;cultiver de façon générale une âme de flâneur. Accepter l’imprévu. Se laisser
surprendre en bien comme en mal. Tester de nouvelles routes. La résistance à l’uniformisation commence par refuser de savoir à l’avance ce qu’on va penser de quelque chose.&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;p&gt;C’est bien sûr insuffisant, parce que le problème est
systémique. La solution la plus efficace reste la lutte
politique : se battre pour le monde qu’on veut voir demain,
soutenir des personnes qui partagent cette vision —même si
on ne sera pas d’accord sur tous les points.&lt;&#x2F;p&gt;
&lt;p&gt;Si on cherche quelqu’un d’accord avec notre point de vue
sur tout… la solution reste de se présenter.&lt;&#x2F;p&gt;
</content>
</entry>
<entry>
<title>Voyage Ergonomique : À deux touches du bonheur</title>
<link href="https://ced-c.github.io/blog/voyage-ergonomique-3/"/>
<updated>2026-03-18T00:00:00+0000</updated>
<id>https://ced-c.github.io/blog/voyage-ergonomique-3/</id>
<content type="html">&lt;p&gt;Si les machines à écrire nous hantent encore, j’étais en bonne voie pour devenir exorciste.
Avec &lt;a rel=&quot;noopener external&quot; target=&quot;_blank&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;Ced-C&#x2F;Bepolar&quot;&gt;Bépolar&lt;&#x2F;a&gt;, j’avais validé l’approche d’&lt;a rel=&quot;noopener external&quot; target=&quot;_blank&quot; href=&quot;https:&#x2F;&#x2F;ergol.org&#x2F;&quot;&gt;Ergo‑L&lt;&#x2F;a&gt; ; j’étais convaincu que c’était une bonne
solution pour &lt;em&gt;mon usage&lt;&#x2F;em&gt;.
Il n’y avait plus qu’à faire un dernier effort et investir dans l’apprentissage de la
disposition.&lt;&#x2F;p&gt;
&lt;h2 id=&quot;ergo-l&quot;&gt;Ergo-L&lt;&#x2F;h2&gt;
&lt;p&gt;Avec mon expérience d’apprentissage de Qwerty je savais à quoi m’attendre. Ou du moins
c’est ce que je me figurais ; deux semaines à péniblement apprendre toutes les touches
une par une. Puis, une fois prêt, une baisse de productivité temporaire.&lt;&#x2F;p&gt;
&lt;p&gt;C’est pourquoi, après plus d’un an de Bépolar, début 2024, à la sortie de la &lt;em&gt;release candidate&lt;&#x2F;em&gt;
version 1.0 d’Ergo‑L, je me lance dans son apprentissage.
J’utilise ducktypist. Je tiens une semaine, mais je n’avance pas comme les fois précédentes.
Je peine.
La raison ? Les roulements je pense. En Bépo(lar), les voyelles sont main gauche, et les
consonnes, main droite. Il en résulte qu’on alterne les mains souvent, à chaque sylable.
En Ergo‑L, les roulements sont privilégiés. Il en résulte que les voyelles sont réparties
sur les deux mains. C’est déroutant.
Pire, les lettres &lt;code&gt;EN&lt;&#x2F;code&gt; qui étaient sur les index au repos, se retrouvent sous les majeurs.
C’est à la fois similaire et différent. Mon cerveau s’embrouille.
Les lettres &lt;code&gt;ENTR&lt;&#x2F;code&gt; qui sont parmi les plus utiliées et qui s’enchainent dans toutes les
directions m’embrouille également. Je n’ai pas de repère.
Je finis par me dire que le moment n’est pas bien choisi, j’abandonne.&lt;&#x2F;p&gt;
&lt;p&gt;Après tout, même si je savais que la philosophie d’Ergo‑L fonctionnait, je l’avait implémenté
dans Bépolar, et j’en était satisfait. Il a suffi d’une petite baisse de motivation, d’une semaine
un peu plus chargée que prévu au travail pour me faire arrêter.&lt;&#x2F;p&gt;
&lt;p&gt;La philosophie n’était pas une motivation suffisante.&lt;&#x2F;p&gt;
&lt;p&gt;En Mai 2024, Ergo‑L sort en version 1.0 et est inclu dans XKB. Ça veut dire que c’est désormais un
standard sous linux. Bientôt, toutes les distributions proposeront Ergo‑L à l’installation
—et à l’usage.&lt;&#x2F;p&gt;
&lt;p&gt;Ça voulait dire la certitude de pouvoir utiliser Ergo‑L partout… Y compris sur mes serveurs.&lt;&#x2F;p&gt;
&lt;p&gt;C’était une motivation forte, et après l’été, je m’y suis remis.&lt;&#x2F;p&gt;
&lt;p&gt;Je faisais pas mal de &lt;a rel=&quot;noopener external&quot; target=&quot;_blank&quot; href=&quot;https:&#x2F;&#x2F;monkeytype.com&quot;&gt;MonkeyType&lt;&#x2F;a&gt; à l’époque et j’ai donc gardé l’historique de mon apprentissage.
Vous voyez ci-dessous le graph de ma progression en Ergo‑L. J’ai commencé MonkeyType après avoir « fini »
duckTypist, l’outil développé par Ergo‑L pour apprendre la dispo.&lt;&#x2F;p&gt;
&lt;script src=&quot;https:&#x2F;&#x2F;cdn.plot.ly&#x2F;plotly-latest.min.js&quot;&gt;&lt;&#x2F;script&gt;
&lt;div id=&quot;fig&quot; style=&quot;width:100%;height:400px;&quot;&gt;&lt;&#x2F;div&gt;
&lt;script&gt;
fetch(&#x27;fig.json&#x27;)
.then(r =&gt; r.json())
.then(fig =&gt; Plotly.newPlot(&#x27;fig&#x27;, fig.data, fig.layout));
&lt;&#x2F;script&gt;
&lt;p&gt;Les roulements, c’est difficile à appréhender au début parcequ’on tape les touches une par une,
le temps que la disposition rentre dans les doigts.
Ensuite, ça devient grisant. On à l’impression de faire des vagues sur son clavier, de suivre un
rythme régulier mais pas uniforme. C’est très satisfaisant.
Au bout d’un mois, je suis à ~60 mpm, c’est largement suffisant pour travailler. Puis, ça continue à monter.&lt;&#x2F;p&gt;
&lt;p&gt;Je suis content d’avoir fait le grand saut. En y réfléchissant, ce n’est que parce qu’Ergo‑L est intégré dans
XKB que je l’ai fait. J’hésitais à y proposer Bépolar ; cette expérience me fait penser que ce n’est pas une
bonne idée —je décide de ne pas le faire.&lt;&#x2F;p&gt;
&lt;h2 id=&quot;variante-a-ou-angle-mod&quot;&gt;Variante A ou &lt;em&gt;Angle‑Mod&lt;&#x2F;em&gt;&lt;&#x2F;h2&gt;
&lt;p&gt;Le truc que je n’ai pas précisé, c’est que quitte à perdre mes habitudes et à changer de dispo,
je me suis dit que j’allais essayer une méthode qui tourne pas mal sur la communauté des clavier.
La variante A.&lt;&#x2F;p&gt;
&lt;p&gt;L’idée est simple, mais pas facile à expliquer. En dactylographie, chaque touche est associée à un doigt.&lt;&#x2F;p&gt;
&lt;p&gt;&lt;div &gt;
&lt;img src=&quot;ergol_ansi.svg&quot; alt=&quot;Un clavier ANSI&quot;&gt;
&lt;div class=&quot;caption&quot;&gt;Un clavier ANSI, les différences avec le clavier ISO sont entouré en rouge.&lt;&#x2F;div&gt;
&lt;&#x2F;div&gt;
&lt;div &gt;
&lt;img src=&quot;ergol_iso.svg&quot; alt=&quot;Un clavier ISO&quot;&gt;
&lt;div class=&quot;caption&quot;&gt;Un clavier ISO, les différences avec un clavier ANSI sont entouré en rouge.&lt;&#x2F;div&gt;
&lt;&#x2F;div&gt;&lt;&#x2F;p&gt;
&lt;p&gt;Sur un clavier décalé, les claviers « classiques », le décalage des touches induit un mouvement
des doigts inconfortable : on a les doigts qui bougent en &lt;code&gt;\\&lt;&#x2F;code&gt;.
Ce n’est pas symétrique, et ça casse un peu les poignets. Il en résulte que la main droite suit
un mouvement bien plus naturel et confortable.
Une punition de plus pour les mains gauches mal aimées.&lt;&#x2F;p&gt;
&lt;p&gt;L’idée de la variante A, c’est d’utiliser la touche supplémentaire sur les claviers européen,
les fameux claviers ISO, pour corriger cette posture.&lt;&#x2F;p&gt;
&lt;p&gt;Mais pour ce faire sans dégrader la disposition, il faut décaler les symboles égalements.&lt;&#x2F;p&gt;
&lt;p&gt;&lt;img src=&quot;https:&#x2F;&#x2F;ced-c.github.io&#x2F;blog&#x2F;voyage-ergonomique-3&#x2F;angle_mod.svg&quot; alt=&quot;description de la variante A.&quot; &#x2F;&gt;&lt;&#x2F;p&gt;
&lt;p&gt;On passe alors d’un mouvement en &lt;code&gt;\\&lt;&#x2F;code&gt; à un mouvment en &lt;code&gt;&#x2F;\&lt;&#x2F;code&gt;, certains y voient un &lt;code&gt;A&lt;&#x2F;code&gt;
—c’est &lt;em&gt;l’angle-mod&lt;&#x2F;em&gt;.&lt;&#x2F;p&gt;
&lt;p&gt;Avec cette variante, la position de frappe se rapproche de celle d’un clavier ergonomique.
C’est un gain énorme en confort, et ça rend l’utilisation d’un clavier ISO acceptable.&lt;&#x2F;p&gt;
&lt;p&gt;C’est le détail qui permet de profiter du clavier de sont ordinateur portable.
Plus besoin de se déplacer avec un clavier ergonomique.&lt;&#x2F;p&gt;
&lt;p&gt;Cerise sur le gateau, la touche &lt;em&gt;la moins confortable&lt;&#x2F;em&gt;, la touche &lt;kbd&gt;B&lt;&#x2F;kbd&gt;
n’est plus utilisée pour les lettres.
Étant équidistante des index (et pouvant donc être utilisée des deux mains),
certains y voient un emplacement parfait pour rapprocher la touche &lt;em&gt;backspace&lt;&#x2F;em&gt;.&lt;&#x2F;p&gt;
&lt;p&gt;J’ai une meilleur approche —avec une autre touche magique.&lt;&#x2F;p&gt;
&lt;h2 id=&quot;l-autre-touche-magique&quot;&gt;L’autre touche magique &lt;kbd&gt;⎄&lt;&#x2F;kbd&gt;&lt;&#x2F;h2&gt;
&lt;p&gt;La force d’Ergo‑L, c’est de considérer qu’il y a peu de touche agréables à utiliser.
Dès lors, on se focalise sur les symboles dont tout le monde à besoin pour frapper :
les lettres, la ponctuation, et les diacritiques nécéssaire au français.&lt;&#x2F;p&gt;
&lt;p&gt;C’est la seule façon d’être universaliste et de correspondre au besoin du plus grand
nombre. C’est donc une disposition qui n’apporte que le nécessaire, et ferme la
porte à toute les possibilités apportées par Unicode. Enfin pas tout à fait.
Pas sous Linux en tout cas qui possède encore une touche particulière.
Une touche qui, brille autant par son utilité que son manque d’emplacement physique
sur le clavier —la touche compose (&lt;kbd&gt;⎄&lt;&#x2F;kbd&gt;).&lt;&#x2F;p&gt;
&lt;p&gt;Cette touche, elle permet de frapper un symbole en en mélangeant d’autres.&lt;&#x2F;p&gt;
&lt;p&gt;Par exemple, &lt;kbd&gt;⎄&lt;&#x2F;kbd&gt;-&lt;code&gt;-&amp;gt;&lt;&#x2F;code&gt; donne &lt;code&gt;→&lt;&#x2F;code&gt;, ou encore &lt;kbd&gt;⎄&lt;&#x2F;kbd&gt;-&lt;code&gt;tm&lt;&#x2F;code&gt; donne &lt;code&gt;™&lt;&#x2F;code&gt;.
Les séquences disponible de base dépendent de vos paramètres régionaux (ou &lt;em&gt;locale&lt;&#x2F;em&gt;).
Vous trouverez &lt;a rel=&quot;noopener external&quot; target=&quot;_blank&quot; href=&quot;https:&#x2F;&#x2F;cgit.freedesktop.org&#x2F;xorg&#x2F;lib&#x2F;libX11&#x2F;plain&#x2F;nls&#x2F;en_US.UTF-8&#x2F;Compose.pre&quot;&gt;ici les séquences composes&lt;&#x2F;a&gt;
les plus courantes disponible pour la &lt;em&gt;locale&lt;&#x2F;em&gt; en_EN, dont une bonne partie sont reprises en français.&lt;&#x2F;p&gt;
&lt;p&gt;Mais le plus intéressant, c’est qu’on peut ajouter nos propres séquences personnalisées.
Pour ça il suffit des les ajouter au fichier &lt;code&gt;~&#x2F;.XCompose&lt;&#x2F;code&gt; pour les adapter à vos besoins.&lt;&#x2F;p&gt;
&lt;p&gt;L’avantage de cette méthode c’est que les séquences sont bien plus simple à mémoriser
qu’une touche arbitrairement définie sur un clavier.&lt;&#x2F;p&gt;
&lt;p&gt;On peut y mettre ses émojis préférés, ou des symboles utiles à votre usage.&lt;&#x2F;p&gt;
&lt;p&gt;Parlant d’Ergo‑L et de la touche typo (&lt;kbd&gt;★&lt;&#x2F;kbd&gt;), nommée &lt;em&gt;one dead key&lt;&#x2F;em&gt;
en anglais, j’ai naturellement une sécance &lt;kbd&gt;⎄&lt;&#x2F;kbd&gt;-&lt;code&gt;odk&lt;&#x2F;code&gt; → &lt;code&gt;★&lt;&#x2F;code&gt;&lt;&#x2F;p&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;NB :&lt;&#x2F;strong&gt; Ne pas oublier de recharger sa méthode de saisie (ex. sous Gnome &lt;code&gt;ibus restart&lt;&#x2F;code&gt;) &lt;strong&gt;ou&lt;&#x2F;strong&gt; de se relogger pour que les changements soient appliqués&lt;&#x2F;p&gt;
&lt;p&gt;&lt;strong&gt;Pro-tip :&lt;&#x2F;strong&gt; On peut, pour se simplifier la vie, en ajoutant des préfixes pour les séquences de mêmes types. Par exemple, dans mon fichier compose, tous les émojis commencent par le symbole &lt;code&gt;:&lt;&#x2F;code&gt;. Cela permet d’éviter les collisions avec d’autres symboles tout en étant plus simple à mémoriser.&lt;&#x2F;p&gt;
&lt;&#x2F;blockquote&gt;
&lt;p&gt;On peut même aller plus loin et utiliser un système simple de &lt;em&gt;snipets&lt;&#x2F;em&gt; grâce à la touche. Par exemple, &lt;kbd&gt;⎄&lt;&#x2F;kbd&gt;-&lt;code&gt;rdv&lt;&#x2F;code&gt;, peut donner &lt;code&gt;rendez-vous&lt;&#x2F;code&gt;. Ça peut servir à écrire plus facilement son adresse courriel, son numéro de téléphone, ou d’autre informations pas trop sensibles quand même —le fichier est en claire.&lt;&#x2F;p&gt;
&lt;h2 id=&quot;a-deux-touches-du-bonheur&quot;&gt;À deux touches du bonheur&lt;&#x2F;h2&gt;
&lt;p&gt;Avec Ergo‑L (version ISO &lt;em&gt;a.k.a angle-mod&lt;&#x2F;em&gt;), l’angle-mod, la touche &lt;kbd&gt;★&lt;&#x2F;kbd&gt; et la touche &lt;kbd&gt;⎄&lt;&#x2F;kbd&gt; idéalement positionnée, j’ai une disposition me permettant de taper en français, en anglais, d’avoir les symboles de programmation sous les doigts, et tout ce qu’Unicode peut offrir à la volée. Surtout, ça s’appuie sur des standards : Ergo‑L désormais intégré à Linux, Compose présent depuis longtemps dans les systèmes Unix.&lt;&#x2F;p&gt;
&lt;div &gt;
&lt;img src=&quot;ergol_am_compose.svg&quot; alt=&quot;Un clavier Ergo‑L avec l’angle-mod et la touche compose&quot;&gt;
&lt;div class=&quot;caption&quot;&gt;Un clavier Ergo‑L avec l’angle-mod et la touche compose&lt;&#x2F;div&gt;
&lt;&#x2F;div&gt;
&lt;p&gt;Mais c’est l’&lt;em&gt;angle-mod&lt;&#x2F;em&gt; qui m’a appris la chose la plus importante. Je suis rentré dans le monde de l’ergonomie par la disposition, mais c’est probablement ce qu’il y a de moins important. La géométrie du clavier lui-même, la posture, l’environnement sont autant de choses qui font l’ergonomie. Ma vision s’est rapprochée de celle de Kazé et tient en 3 mots : confort sans blessures.&lt;&#x2F;p&gt;
&lt;p&gt;Taper en Ergo‑L, même parfaitement configuré, dans une position trolesque dans son lit… n’est pas ergonomique.&lt;&#x2F;p&gt;
</content>
</entry>
<entry>
<title>Voyage Ergonomique : Bépolar et philosophie Ergo‑L</title>
<link href="https://ced-c.github.io/blog/voyage-ergonomique-2/"/>
<updated>2026-03-08T00:00:00+0000</updated>
<id>https://ced-c.github.io/blog/voyage-ergonomique-2/</id>
<content type="html">&lt;p&gt;Les machines à écrire nous hantent encore. Sur le clavier, ça se voit
comme le nez au-dessus du visage.&lt;&#x2F;p&gt;
&lt;p&gt;&lt;img src=&quot;https:&#x2F;&#x2F;ced-c.github.io&#x2F;blog&#x2F;voyage-ergonomique-2&#x2F;clavier_105_touches.png&quot; alt=&quot;Un clavier 105 touches illustrant les touches les plus confortables, les touches décalées et les touches en matrices&quot; &#x2F;&gt;&lt;&#x2F;p&gt;
&lt;p&gt;Les zones rouges, ce sont les zones héritées des machines à écrire :
les touches sont décalées. Les autres touches, ajoutées pour les
ordinateurs, sont disposées en matrices —plus organisées, mais surtout, plus
pratiques.&lt;&#x2F;p&gt;
&lt;p&gt;Mais ce n’est que le début.&lt;&#x2F;p&gt;
&lt;p&gt;Les « touches mortes », vous savez, comme l’accent circonflexe en
Azerty : on tape la touche, il ne se passe rien, puis on tape une autre
touche (comme un &lt;code&gt;e&lt;&#x2F;code&gt;), et l’accent apparaît. C’est une mécanique des
machines à écrire —la première touche servait à imprimer l’accent
&lt;em&gt;sans faire avancer le chariot&lt;&#x2F;em&gt;, de sorte que la deuxième touche, la
lettre, soit apposée au même endroit. On s’épargnait ainsi une touche
dédiée par lettre accentuée.&lt;&#x2F;p&gt;
&lt;p&gt;Un autre exemple ? Les machines à écrire nécessitaient une grande
alternance des mains pour éviter de bloquer les marteaux en activant
des touches adjacentes. Des dispositions comme &lt;a rel=&quot;noopener external&quot; target=&quot;_blank&quot; href=&quot;https:&#x2F;&#x2F;fr.wikipedia.org&#x2F;wiki&#x2F;Disposition_Dvorak&quot;&gt;Dvorak&lt;&#x2F;a&gt; —ou &lt;a rel=&quot;noopener external&quot; target=&quot;_blank&quot; href=&quot;https:&#x2F;&#x2F;bepo.fr&#x2F;wiki&#x2F;Accueil&quot;&gt;Bépo&lt;&#x2F;a&gt;, qui
s’en inspire— ont hérité de cette contrainte. Pourtant, activer deux
touches adjacentes, pour peu qu’elles soient bien positionnées, c’est
l’un des enchaînements les plus confortables… &lt;em&gt;sur un clavier&lt;&#x2F;em&gt;.&lt;&#x2F;p&gt;
&lt;p&gt;Toutes ces contraintes héritées des machines à écrire font partie
intégrante du mécanisme de base des dispositions « classiques » comme
Azerty, Qwerty, et même Bépo. Mais que se passe-t-il si on change de
paradigme et qu’on imagine une disposition &lt;em&gt;pensée pour les
ordinateurs&lt;&#x2F;em&gt; ? Quelles sont les contraintes pertinentes pour
l’utilisation d’aujourd’hui ?&lt;&#x2F;p&gt;
&lt;p&gt;Ce sont les questions que se sont posées les créateurs d’Ergo‑L, et en
particulier &lt;a rel=&quot;noopener external&quot; target=&quot;_blank&quot; href=&quot;https:&#x2F;&#x2F;piaille.fr&#x2F;@NuclearSquid&quot;&gt;Nuclear Squid&lt;&#x2F;a&gt;, initiateur et chef du projet.&lt;&#x2F;p&gt;
&lt;h2 id=&quot;la-philosophie-ergo-l&quot;&gt;La philosophie Ergo‑L&lt;&#x2F;h2&gt;
&lt;p&gt;&lt;a rel=&quot;noopener external&quot; target=&quot;_blank&quot; href=&quot;https:&#x2F;&#x2F;ergol.org&quot;&gt;Ergo‑L&lt;&#x2F;a&gt; est une disposition conçue pour être confortable en français,
en anglais, et pour faire du code. Pour y parvenir, ses créateurs ont
dû trancher : qu’est-ce qui compte vraiment aujourd’hui ?&lt;&#x2F;p&gt;
&lt;p&gt;Leur réponse tient en quelques principes :&lt;&#x2F;p&gt;
&lt;ul&gt;
&lt;li&gt;les raccourcis clavier usuels (effectués à une main) sont des
standards ; il faut conserver leur emplacement autant que possible ;&lt;&#x2F;li&gt;
&lt;li&gt;les touches les plus accessibles contiennent les lettres &lt;em&gt;sans
diacritiques&lt;&#x2F;em&gt; ;&lt;&#x2F;li&gt;
&lt;li&gt;les diacritiques sont produits à l’aide d’une touche unique
&lt;kbd&gt;★&lt;&#x2F;kbd&gt;, sur laquelle je reviendrai ;&lt;&#x2F;li&gt;
&lt;li&gt;une couche dédiée à la programmation regroupe les symboles fréquents
en code, organisés de façon logique ;&lt;&#x2F;li&gt;
&lt;li&gt;les roulements confortables sont recherchés et privilégiés face à
l’alternance des mains.&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;p&gt;On organise donc la frappe en plusieurs &lt;em&gt;couches&lt;&#x2F;em&gt;, chacune ayant une
utilité : lettres, typographie, symboles. C’est l’opposé du paradigme
Bépo, qui cherche à tout mettre en accès direct quitte à positionner
certaines lettres trop loin. À la place, ce sont les touches qui
viennent sous les doigts.&lt;&#x2F;p&gt;
&lt;p&gt;C’est une approche moderne de la dactylographie, où les contraintes
des machines à écrire ne sont plus retenues ; où l’on fait table rase
du passé pour imaginer des solutions simples et élégantes.&lt;&#x2F;p&gt;
&lt;p&gt;Je suis convaincu sur le papier, mais concrètement, comment ça
marche ?&lt;&#x2F;p&gt;
&lt;h3 id=&quot;la-couche-alpha-a&quot;&gt;La couche « alpha » α&lt;&#x2F;h3&gt;
&lt;p&gt;C’est le nom qu’on donne aux touches accessibles en direct. Elles sont
uniquement présentes sur les 30 touches les plus accessibles : 5
touches par doigt sur 3 colonnes —les mêmes que celles utilisées par
Azerty et Qwerty pour les lettres. L’avantage : pas de touche comme le &lt;code&gt;É&lt;&#x2F;code&gt;
de Bépo, parfois mal reconnue pour les jeux ou les raccourcis clavier
personnalisés.&lt;&#x2F;p&gt;
&lt;h3 id=&quot;la-touche-typographique&quot;&gt;La touche typographique &lt;kbd&gt;★&lt;&#x2F;kbd&gt;&lt;&#x2F;h3&gt;
&lt;p&gt;La touche typographique est une &lt;em&gt;touche magique&lt;&#x2F;em&gt;.&lt;&#x2F;p&gt;
&lt;p&gt;On n’utilise plus de machine à écrire, donc on s’affranchit de la
contrainte historique : une touche morte, un seul diacritique. La
touche &lt;kbd&gt;★&lt;&#x2F;kbd&gt;, elle, ne se cantonne pas à une seule action. Elle
donne accès à &lt;em&gt;tous&lt;&#x2F;em&gt; les caractères nécessaires à la frappe du
français : accents grave, aigu, circonflexe, tréma, cédille, mais
aussi les ligatures (&lt;code&gt;œ&lt;&#x2F;code&gt; &lt;code&gt;æ&lt;&#x2F;code&gt;), et un certain
nombre de tirets dont les tirets (demi-)cadratins cher à ChatGPT.&lt;&#x2F;p&gt;
&lt;p&gt;Comme le dit un ergonaute : avec la touche &lt;kbd&gt;★&lt;&#x2F;kbd&gt;, on a deux
fois plus de caractères sur la ligne de repos —et ça, c’est
formidable.&lt;&#x2F;p&gt;
&lt;p&gt;C’est cette addition qui permet d’être à la fois efficace en français
et en anglais. Il n’y a plus besoin d’arbitrer entre une lettre avec
accent (qui privilégie le français) et une lettre sans (mécaniquement
plus fréquente en anglais). Les deux coexistent, chacune à sa place.&lt;&#x2F;p&gt;
&lt;h3 id=&quot;la-couche-altgr&quot;&gt;La couche &lt;kbd&gt;AltGr&lt;&#x2F;kbd&gt;&lt;&#x2F;h3&gt;
&lt;p&gt;Dédiée à la programmation, elle regroupe les symboles fréquents en
code. Hasard fortuit : il y en a 30 —soit le même nombre que les
touches principales.&lt;&#x2F;p&gt;
&lt;p&gt;&lt;img src=&quot;https:&#x2F;&#x2F;ced-c.github.io&#x2F;blog&#x2F;voyage-ergonomique-2&#x2F;ergol_altgr.svg&quot; alt=&quot;La couche AltGr&quot; &#x2F;&gt;&lt;&#x2F;p&gt;
&lt;p&gt;Les caractères sont organisés de façon logique et cohérente : les
paires sont regroupées (&lt;code&gt;() {} [] &amp;lt;&amp;gt;&lt;&#x2F;code&gt;), les opérateurs ensemble, et la
navigation dans Vim est pensée pour être naturelle sans remappage. Tout
cela est bien mieux expliqué dans &lt;a rel=&quot;noopener external&quot; target=&quot;_blank&quot; href=&quot;https:&#x2F;&#x2F;ergol.org&#x2F;articles&#x2F;vim_pour_les_ergonautes&#x2F;&quot;&gt;l’article de Kazé : Vim pour les
Ergonautes&lt;&#x2F;a&gt;.&lt;&#x2F;p&gt;
&lt;h2 id=&quot;ergo-l-pas-encore&quot;&gt;Ergo‑L ? Pas encore.&lt;&#x2F;h2&gt;
&lt;p&gt;Le problème, à l’époque, c’est qu’Ergo‑L n’est pas stable. La
disposition est en plein développement et connaîtra encore plusieurs
changements importants. Je ne me vois pas apprendre une nouvelle
disposition tous les quatre matins au risque de perdre en productivité
au travail.&lt;&#x2F;p&gt;
&lt;p&gt;En revanche, le groupe derrière Ergo‑L, conscient qu’il n’existe pas
de disposition idéale, développe plusieurs outils :&lt;&#x2F;p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a rel=&quot;noopener external&quot; target=&quot;_blank&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;OneDeadKey&#x2F;kalamine&quot;&gt;Kalamine&lt;&#x2F;a&gt; : un générateur de pilote &lt;em&gt;cross-platform&lt;&#x2F;em&gt; ;&lt;&#x2F;li&gt;
&lt;li&gt;un analyseur (en cours d’intégration à Kalamine, travail initié par votre serviteur), permettant de repérer rapidement les défauts
d’une disposition ;&lt;&#x2F;li&gt;
&lt;li&gt;&lt;a rel=&quot;noopener external&quot; target=&quot;_blank&quot; href=&quot;https:&#x2F;&#x2F;ergol.org&#x2F;dactylo&#x2F;&quot;&gt;ducktypist&lt;&#x2F;a&gt; : un composant web pour apprendre une disposition, réutilisant les fichiers générés par Kalamine.&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;p&gt;Il n’en faut pas plus pour me motiver à contacter les développeurs.&lt;&#x2F;p&gt;
&lt;h2 id=&quot;bepolar&quot;&gt;Bépolar&lt;&#x2F;h2&gt;
&lt;p&gt;L’idée est simple : capitaliser sur mon apprentissage de Bépo pour en
faire une variante suivant les préceptes d’Ergo‑L. Un investissement
faible pour vérifier si la promesse tient —réduire le nombre de
touches pour augmenter le confort— et rendre Bépo enfin compatible avec
l’anglais.&lt;&#x2F;p&gt;
&lt;p&gt;Adapter une disposition, c’est bien plus simple que de partir de zéro.
Mes contraintes étaient claires :&lt;&#x2F;p&gt;
&lt;ul&gt;
&lt;li&gt;rester le plus proche possible de Bépo ;&lt;&#x2F;li&gt;
&lt;li&gt;garder les chiffres en accès direct (par préférence personnelle) ;&lt;&#x2F;li&gt;
&lt;li&gt;supprimer les touches à diacritique comme &lt;code&gt;É È&lt;&#x2F;code&gt; pour &lt;em&gt;rapprocher&lt;&#x2F;em&gt; les touches trop excentrées ;&lt;&#x2F;li&gt;
&lt;li&gt;positionner les caractères restants de façon à minimiser les enchaînements inconfortables : bigrammes de même doigt, ciseaux,
etc. ;&lt;&#x2F;li&gt;
&lt;li&gt;adopter la couche &lt;kbd&gt;AltGr&lt;&#x2F;kbd&gt; développée par Ergo‑L.&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;p&gt;Je n’étais pas le seul à avoir cette idée —d’autres avaient commencé,
mais avaient fait des dispositions très personnelles, adaptées à leur
usage. Je voulais quelque chose de plus universel : un outil que
d’autres pourraient utiliser pour tester rapidement si la philosophie
Ergo‑L leur convenait.&lt;&#x2F;p&gt;
&lt;p&gt;Je vous passe les détails de conception, mais cette période fut
passionnante. Bépolar et Ergo‑L ont fini par se nourrir mutuellement.
Je propose par exemple d’inclure le point d’exclamation dans les 30
touches confortables, en reléguant le tréma, peu usité, en double
pression sur &lt;kbd&gt;★&lt;&#x2F;kbd&gt;.&lt;&#x2F;p&gt;
&lt;p&gt;&lt;img src=&quot;https:&#x2F;&#x2F;ced-c.github.io&#x2F;blog&#x2F;voyage-ergonomique-2&#x2F;bepolar_simple.svg&quot; alt=&quot;La disposition Bépolar. Les touches vertes sont accessibles via la touche ★&quot; &#x2F;&gt;&lt;&#x2F;p&gt;
&lt;p&gt;Ce qui me frappe immédiatement : correspondre en anglais n’est plus
une contrainte. C’est un plaisir. La touche &lt;kbd&gt;★&lt;&#x2F;kbd&gt; n’a pas la
&lt;em&gt;meilleure&lt;&#x2F;em&gt; position qui soit, mais elle ne représente que 4 % des
frappes —et surtout, son existence libère d’autres touches, rendant la
frappe bien plus confortable, que ce soit en français ou en anglais.&lt;&#x2F;p&gt;
&lt;p&gt;Venant de Bépo, l’apprentissage est remarquablement rapide. Deux jours
pour retrouver mes repères et ma vitesse. Moins d’une semaine pour
toutes les personnes que je connais qui y sont passées. Ma précision
augmente aussi, ce qui me permet &lt;em&gt;in fine&lt;&#x2F;em&gt; de taper plus vite.&lt;&#x2F;p&gt;
&lt;p&gt;Et pourtant, je ne serai pas parmi les premiers à migrer vers Ergo‑L
à sa sortie. Je resterai encore de longs mois sous Bépolar, redoutant
de devoir tout réapprendre.&lt;&#x2F;p&gt;
&lt;p&gt;Pour les autres utilisateurs de la disposition, c’est un déclic. Je ne
connais personne qui soit revenu en arrière. Certains ont continué vers
Ergo‑L. D’autres sont restés sur Bépolar, satisfaits du compromis
qu’il apportait —confort accru sans réapprentissage.&lt;&#x2F;p&gt;
&lt;p&gt;Ce qui est unanime, c’est la confirmation que la philosophie Ergo‑L
fonctionne et améliore largement le confort de frappe.&lt;&#x2F;p&gt;
&lt;h2 id=&quot;conclusion&quot;&gt;Conclusion&lt;&#x2F;h2&gt;
&lt;p&gt;Bépolar m’a appris une chose essentielle : la promesse d’Ergo‑L tient.
Réduire le nombre de touches accessibles en direct, confier les
diacritiques à une touche dédiée, organiser les symboles en couche
logique —tout cela fonctionne. Et le vérifier n’a coûté que deux
jours d’adaptation.&lt;&#x2F;p&gt;
&lt;p&gt;Ce qui est moins évident, c’est ce que Bépolar m’a &lt;em&gt;aussi&lt;&#x2F;em&gt; appris sur
moi : qu’on peut être convaincu par une idée et quand même hésiter à
franchir le pas. Ergo‑L était là, stable, prêt. Et j’ai quand même
attendu.&lt;&#x2F;p&gt;
&lt;p&gt;Si j’ai fini par franchir le pas, c’est aussi pour intégrer d’autres changements importants —la disposition ne fait pas tout.&lt;&#x2F;p&gt;
</content>
</entry>
<entry>
<title>Voyage Ergonomique : Errances & Typographie</title>
<link href="https://ced-c.github.io/blog/voyage-ergonomique-1/"/>
<updated>2026-02-24T00:00:00+0000</updated>
<id>https://ced-c.github.io/blog/voyage-ergonomique-1/</id>
<content type="html">&lt;p&gt;Je suis tombé dans le terrier de lapin de l’ergonomie clavier en 2023.
J’avais un peu de temps et je me suis dit que c’était un bon investissement que de me lancer dans l’apprentissage de la &lt;strong&gt;dactylographie&lt;&#x2F;strong&gt;. Le but, c’était de gagner du temps en tapant, mais aussi du confort.&lt;br &#x2F;&gt;
À l’époque, je tapais à 2 ou 4 doigts, sur un clavier ANSI, mais je savais que je pouvais faire mieux :&lt;&#x2F;p&gt;
&lt;div &gt;
&lt;img src=&quot;1vs10_fingers.jpeg&quot; alt=&quot;Un meme : on voit un clavier avec chaque touche assigée à un doigt grâce à un système de couleur, puis, moi, avec un doigt multicolor&quot;&gt;
&lt;div class=&quot;caption&quot;&gt;La méthode « hunt&amp;amp;peck » que j’utilisais&lt;&#x2F;div&gt;
&lt;&#x2F;div&gt;
&lt;p&gt;Ce que je ne savais pas à l’époque, c’est que c’est un monde fascinant, encore en évolution, où la science n’a pas encore tout tranché.&lt;&#x2F;p&gt;
&lt;p&gt;À l’époque, je tapais en &lt;strong&gt;Qwerty-international&lt;&#x2F;strong&gt;, et je ne comprenais pas pourquoi tout le monde ne faisait pas de même. Après tout, c’était &lt;em&gt;pratique&lt;&#x2F;em&gt;, surtout comparé à l’Azerty :&lt;&#x2F;p&gt;
&lt;ul&gt;
&lt;li&gt;les chiffres étaient en accès direct ;&lt;&#x2F;li&gt;
&lt;li&gt;les symboles courants en programmation étaient mieux placés (&lt;code&gt;{ } | &#x27; &lt;&#x2F;code&gt;) ;&lt;&#x2F;li&gt;
&lt;li&gt;les accents français se faisaient via des touches mortes (`“ ’ ``) pour le tréma, l’accent aigu et l’accent grave.&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;p&gt;C’était pratique en &lt;em&gt;hunt &amp;amp; peck&lt;&#x2F;em&gt;. Surtout c’était présent sur tous les ordinateurs par défaut, et suffisamment proche d’Azerty pour que je puisse taper ainsi même sur un clavier marqué Azerty.&lt;&#x2F;p&gt;
&lt;p&gt;Ah, l’innocence !&lt;&#x2F;p&gt;
&lt;p&gt;Aujourd’hui, je me demande comment on peut se servir de cette disposition au quotidien.&lt;br &#x2F;&gt;
La différence ? La dactylographie. En apprenant à se servir de ses 9 ou 10 doigts pour taper, les contraintes changent complètement.&lt;&#x2F;p&gt;
&lt;video autoplay loop muted=&quot;true&quot;
class=&quot;gif&quot;&gt;
&lt;source src=&quot;miguel-as-de-la-jungle.mp4&quot; type=&quot;video&#x2F;mp4&quot;&gt;
Your browser does not support the video tag.
&lt;&#x2F;video&gt;&lt;h2 id=&quot;le-depart-qwerty-international&quot;&gt;Le Départ : Qwerty-International&lt;&#x2F;h2&gt;
&lt;p&gt;J’avais donc décidé de me lancer dans l’apprentissage de la dactylo.
C’est d’abord très éprouvant mentalement. Même en se cantonnant à 5 à 15 minutes par jour, je sortais de session sans énergie mentale. Apprendre à utiliser ses 9 doigts et à les coordonner est étonnamment fatigant — adulte, on n’apprend plus aussi vite, ni aussi bien. Puis, on est crispé, on commence donc à ressentir de petites tensions et douleurs dans les mains.&lt;&#x2F;p&gt;
&lt;p&gt;Enfin, ça devient plus fluide. Je dépasse péniblement les 25 mpm, mais quelque chose cloche : je ne trouve pas Qwerty très confortable, même en anglais. Et je n’étais encore qu’aux exercices en anglais, sans tous les accents et diacritiques français. Plus j’avançais, pire c’était :&lt;&#x2F;p&gt;
&lt;ul&gt;
&lt;li&gt;j’avais l’impression que mon index et mon majeur passaient beaucoup trop de temps sur la ligne du haut ;&lt;&#x2F;li&gt;
&lt;li&gt;mon auriculaire droit commençait à souffrir, très sollicité pour les &lt;code&gt;M&lt;&#x2F;code&gt; et les diacritiques &lt;code&gt;´ ˝&lt;&#x2F;code&gt; ;&lt;&#x2F;li&gt;
&lt;li&gt;les accents graves étaient loin à aller chercher, trop loin.&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;p&gt;Je me suis dit qu’après tout, cela ne faisait qu’une semaine que je travaillais la disposition : je pouvais encore changer.
Mais changer pour quoi ? Je me suis mis à la recherche d’une disposition optimisée pour le français, puisque c’était le principal défaut que je trouvais à Qwerty-international. Un défaut impossible à voir tant qu’on est en &lt;em&gt;hunt &amp;amp; peck&lt;&#x2F;em&gt; : toutes les touches se valent, et les auriculaires sont peu sollicités.&lt;&#x2F;p&gt;
&lt;p&gt;La dactylographie, c’est très pratique : les mots apparaissent à l’écran quand on y pense, on peut se concentrer sur ce qu’on écrit plutôt que sur l’action de taper. Mais ça pousse aussi à s’éloigner de la norme. Impossible de rester en Qwerty pour ma part (et Azerty est largement pire).
J’ai alors écumé le web à la recherche de mieux…&lt;&#x2F;p&gt;
&lt;h3 id=&quot;tl-dr-qwerty-international&quot;&gt;TL;DR Qwerty-international&lt;&#x2F;h3&gt;
&lt;ul&gt;
&lt;li&gt;La dactylographie rend la position des touches critique.&lt;&#x2F;li&gt;
&lt;li&gt;Les touches excentrées surchargent les auriculaires.&lt;&#x2F;li&gt;
&lt;li&gt;5 à 15 min&#x2F;jour suffisent pour acquérir des bases en ~2 semaines.&lt;&#x2F;li&gt;
&lt;li&gt;Qwerty-international est peu confortable et très asymétrique.&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;h2 id=&quot;bepo-un-progres-arrive-100-ans-trop-tard&quot;&gt;Bépo : Un progrès arrivé 100 ans trop tard.&lt;&#x2F;h2&gt;
&lt;p&gt;…Et je suis retombé sur &lt;a rel=&quot;noopener external&quot; target=&quot;_blank&quot; href=&quot;https:&#x2F;&#x2F;bepo.fr&quot;&gt;Bépo&lt;&#x2F;a&gt;, dont j’avais entendu parler lors de sa certification AFNOR.
Quelque part, c’était rassurant : la disposition a été réfléchie. Elle est pensée pour le français ; avec Bépo, je ne pouvais pas me tromper ! Je me lance.&lt;&#x2F;p&gt;
&lt;p&gt;Je n’avais pas bien compris qu’en dactylo, on n’a plus besoin de regarder les touches. On tape en aveugle ; mon critère de « suffisamment proche d’Azerty » devenait caduque. Tant mieux, ça me laissait plus de liberté. Je voulais cependant rester sur un clavier « classique » : pas envie d’être perdu ailleurs, ni de voyager avec un clavier dans un sac déjà trop rempli.&lt;&#x2F;p&gt;
&lt;p&gt;Bépo était déroutant au début, mais très plaisant : on peut vite faire des mots, voire des phrases, sur la ligne de repos (&lt;em&gt;home row&lt;&#x2F;em&gt;). C’est très agréable en français. Je passe d’un clavier ANSI à un clavier ISO quand je remarque que la touche supplémentaire permet de taper directement &lt;code&gt;Ê&lt;&#x2F;code&gt; : pratique.&lt;&#x2F;p&gt;
&lt;details&gt;
&lt;summary&gt;
Je découvre avec joie l’accès à des caractères supplémentaires &lt;br&gt; pour une bonne typographie…
&lt;&#x2F;summary&gt;
&lt;h3 id=&quot;digression-typographique&quot;&gt;Digression typographique&lt;&#x2F;h3&gt;
&lt;p&gt;J’apprends que, pour faire bien, il faut utiliser l’apostrophe typographique &lt;code style=&quot;font-size:1.2em;&quot;&gt;’&lt;&#x2F;code&gt; plutôt que l’apostrophe droite &lt;code style=&quot;font-size:1.2em;&quot;&gt;&#x27;&lt;&#x2F;code&gt;, qui sert surtout en programmation.
Soit. C’est vrai que visuellement, ça fait mieux. Ça fait « comme dans les livres ».&lt;&#x2F;p&gt;
&lt;p&gt;J’apprends aussi qu’on dit &lt;em&gt;une&lt;&#x2F;em&gt; espace &lt;kbd&gt;␣&lt;&#x2F;kbd&gt; et qu’il en existe plusieurs sortes : la classique entre les mots, mais aussi l’insécable et l’insécable fine.&lt;br &#x2F;&gt;
Pourquoi ? En français, on met &lt;em&gt;une espace&lt;&#x2F;em&gt; avant certains caractères comme &lt;code&gt;? ! « » ; : €&lt;&#x2F;code&gt;.&lt;&#x2F;p&gt;
&lt;p&gt;Avec une espace classique, on risque d’avoir un caractère orphelin en début de ligne suivante :&lt;&#x2F;p&gt;
&lt;pre class=&quot;giallo&quot; style=&quot;color-scheme: light dark; color: light-dark(#24292E, #E1E4E8); background-color: light-dark(#FFFFFF, #24292E);&quot;&gt;&lt;code data-lang=&quot;plain&quot;&gt;&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;On ne veut pas de ça&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;!&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;---&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;On veut ça !&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;&lt;&#x2F;code&gt;&lt;&#x2F;pre&gt;
&lt;p&gt;Les espaces insécables garantissent que ça n’arrive pas.&lt;&#x2F;p&gt;
&lt;p&gt;La différence entre l’insécable et l’insécable fine, c’est simplement la largeur : la fine est plus… fine. Je trouve que ça se rapproche davantage de l’écriture manuscrite, donc je privilégie l’insécable fine avant les unités et les ponctuations doubles.&lt;&#x2F;p&gt;
&lt;&#x2F;details&gt;
&lt;p&gt;L’avantage de Bépo, c’est que certains symboles typographiques sont présents de base et placés de façon logique. Mais cela éloigne certains caractères fréquents en programmation (&lt;code&gt;# $ %&lt;&#x2F;code&gt;). Ce n’est pas dramatique pour moi, n’étant pas développeur de métier, mais ça se ressent tout de même.&lt;&#x2F;p&gt;
&lt;h3 id=&quot;entrainement-a-la-dactylographie&quot;&gt;Entraînement à la dactylographie&lt;&#x2F;h3&gt;
&lt;p&gt;Très vite, l’entraînement devient addictif.
En deux semaines, je connais tout le clavier par cœur, à 25 mpm : lent et frustrant.
En un mois, je passe 40 mpm : suffisant pour travailler, mais en dessous de ma vitesse de base (~55 mpm en recopie, ~70 mpm en dictée).
En deux mois, je suis à 60–70 mpm : lune de miel.&lt;&#x2F;p&gt;
&lt;p&gt;Mais tout n’est pas parfait : &lt;code&gt;Ç Z W&lt;&#x2F;code&gt; sont loin, mais rares en français. Hein, hein ?&lt;&#x2F;p&gt;
&lt;p&gt;Non.&lt;&#x2F;p&gt;
&lt;p&gt;En démarrant un nouvel emploi, où je dois communiquer presque exclusivement en anglais, le problème est immédiat. Bépo a été conçu pour le français, et ça se voit. Taper l’anglais, notamment les &lt;code&gt;wh&lt;&#x2F;code&gt;, est très pénible —et fréquent.&lt;&#x2F;p&gt;
&lt;p&gt;C’est frustrant. J’avais trouvé une disposition acceptable en français, mais c’est pénible pour le code et quasiment inutilisable en anglais.&lt;br &#x2F;&gt;
En somme, Bépo est arrivé 100 ans trop tard, il aurait fait le bonheur des dactylographes sur machine à écrire : que du français, pas de code.&lt;&#x2F;p&gt;
&lt;h3 id=&quot;tl-dr-bepo&quot;&gt;TL;DR Bépo&lt;&#x2F;h3&gt;
&lt;ul&gt;
&lt;li&gt;Pas mal pour le français.&lt;&#x2F;li&gt;
&lt;li&gt;Symboles de programmation parfois éloignés.&lt;&#x2F;li&gt;
&lt;li&gt;Mauvais compromis pour l’anglais moderne.&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;hr &#x2F;&gt;
&lt;h2 id=&quot;conclusion-apres-deux-mois-de-dactyloraphie&quot;&gt;Conclusion après deux mois de dactyloraphie&lt;&#x2F;h2&gt;
&lt;p&gt;Après deux mois de dactylographie, j’avais appris à taper à 9 doigts, mais je ne savais plus quelle disposition utiliser ; Qwerty était universel mais inconfortable, Bépo améliorait le français au dépans du reste.
Je me retrouvais dans un entre-deux frustrant : trop engagé pour revenir en arrière, pas totalement satisfait pour continuer.&lt;&#x2F;p&gt;
&lt;p&gt;Je ne pouvais pas être le seul francophone à taper en anglais et à coder.&lt;&#x2F;p&gt;
&lt;p&gt;En cherchant, je suis tombé sur une petite communauté qui se posait exactement les mêmes questions —&lt;a rel=&quot;noopener external&quot; target=&quot;_blank&quot; href=&quot;https:&#x2F;&#x2F;ergol.org&quot;&gt;Ergo-L&lt;&#x2F;a&gt;.&lt;&#x2F;p&gt;
&lt;p&gt;C’est là que les choses sont devenues vraiment intéressantes.&lt;&#x2F;p&gt;
</content>
</entry>
<entry>
<title>Commenter un site Statique (Zola) grâce au Fédiverse</title>
<link href="https://ced-c.github.io/blog/commenter-un-site-statique-grace-au-fediverse/"/>
<updated>2026-02-14T00:00:00+0000</updated>
<id>https://ced-c.github.io/blog/commenter-un-site-statique-grace-au-fediverse/</id>
<content type="html">&lt;p&gt;Un blog sert à publier, mais aussi à échanger.
J’utilise un site statique pour sa simplicité et sa robustesse, hébergé sur GitHub Pages. Cela fonctionne très bien, mais il n’y a pas de système de commentaires intégré.&lt;&#x2F;p&gt;
&lt;p&gt;Par défaut, je propose de me contacter via le Fédiverse, par exemple sur Mastodon. Je republiais parfois mes billets sur mon compte, et le fil de discussion servait alors de section de commentaires.
Je me suis demandé s’il était possible d’afficher directement ces discussions sous mes articles, sans transformer mon site en application dynamique.&lt;&#x2F;p&gt;
&lt;p&gt;En parcourant le blog de &lt;a rel=&quot;noopener external&quot; target=&quot;_blank&quot; href=&quot;https:&#x2F;&#x2F;lazybea.rs&#x2F;&quot;&gt;Hyde&lt;&#x2F;a&gt;, notamment via sa série Under&#x2F;Over et l’intervention de &lt;a rel=&quot;noopener external&quot; target=&quot;_blank&quot; href=&quot;https:&#x2F;&#x2F;mamot.fr&#x2F;@ploum&quot;&gt;Ploum&lt;&#x2F;a&gt;, j’ai vu son intégration inspirée d’&lt;a rel=&quot;noopener external&quot; target=&quot;_blank&quot; href=&quot;https:&#x2F;&#x2F;carlschwan.eu&#x2F;2020&#x2F;12&#x2F;29&#x2F;adding-comments-to-your-static-blog-with-mastodon&#x2F;&quot;&gt;un article de Carl Schwan&lt;&#x2F;a&gt;, j’y ai trouvé une solution simple : charger les commentaires depuis l’API Mastodon côté client. J’ai adapté cette approche à &lt;a rel=&quot;noopener external&quot; target=&quot;_blank&quot; href=&quot;https:&#x2F;&#x2F;www.getzola.org&#x2F;&quot;&gt;zola&lt;&#x2F;a&gt;.&lt;&#x2F;p&gt;
&lt;h2 id=&quot;le-principe&quot;&gt;Le principe&lt;&#x2F;h2&gt;
&lt;p&gt;Mastodon expose une API permettant de récupérer le contexte d’un message :&lt;&#x2F;p&gt;
&lt;pre class=&quot;giallo&quot; style=&quot;color-scheme: light dark; color: light-dark(#24292E, #E1E4E8); background-color: light-dark(#FFFFFF, #24292E);&quot;&gt;&lt;code data-lang=&quot;shellscript&quot;&gt;&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#6F42C1, #B392F0);&quot;&gt;https:&#x2F;&#x2F;$&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032F62, #9ECBFF);&quot;&gt;{&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032F62, #9ECBFF);&quot;&gt; host&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032F62, #9ECBFF);&quot;&gt; }&#x2F;api&#x2F;v1&#x2F;statuses&#x2F;&lt;&#x2F;span&gt;&lt;span&gt;$&lt;&#x2F;span&gt;&lt;span&gt;{&lt;&#x2F;span&gt;&lt;span&gt; comment_id&lt;&#x2F;span&gt;&lt;span&gt; }&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032F62, #9ECBFF);&quot;&gt;&#x2F;context&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;&lt;&#x2F;code&gt;&lt;&#x2F;pre&gt;
&lt;p&gt;Cette API renvoie les messages précédents (&lt;em&gt;ancestors&lt;&#x2F;em&gt;) et les réponses (&lt;em&gt;descendants&lt;&#x2F;em&gt;).
Dans notre cas, seuls les descendants nous intéressent : ce sont les commentaires.&lt;&#x2F;p&gt;
&lt;p&gt;Un script JavaScript se charge de :&lt;&#x2F;p&gt;
&lt;ul&gt;
&lt;li&gt;récupérer ces données ;&lt;&#x2F;li&gt;
&lt;li&gt;générer le HTML correspondant ;&lt;&#x2F;li&gt;
&lt;li&gt;insérer les commentaires dans la page.&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;h3 id=&quot;limites&quot;&gt;Limites&lt;&#x2F;h3&gt;
&lt;p&gt;Cette approche a quelques limites à garder en tête, de la moins pénible à la plus contraignante :&lt;&#x2F;p&gt;
&lt;ol&gt;
&lt;li&gt;Il faut avoir JavaScript d’activé, c’est une majorité de personnes, mais pas tout le monde. On peut envoyer vers le fil mastodon pour ceux qui ne l’on pas d’activé.&lt;&#x2F;li&gt;
&lt;li&gt;Le &lt;em&gt;workflow&lt;&#x2F;em&gt; est manuel et un poil pénible, il faut :
&lt;ol&gt;
&lt;li&gt;Publier le billet ;&lt;&#x2F;li&gt;
&lt;li&gt;publier le lien sur le Fédiverse ;&lt;&#x2F;li&gt;
&lt;li&gt;récupérer l’identifiant du post ;&lt;&#x2F;li&gt;
&lt;li&gt;ajouter cet indentifiant dans les métadonnées du billet ;&lt;&#x2F;li&gt;
&lt;li&gt;republier le site.&lt;&#x2F;li&gt;
&lt;&#x2F;ol&gt;
&lt;&#x2F;li&gt;
&lt;li&gt;les foncitonnalités de mastodon ne sont pas toutes gérées : pas de CW, de pièces jointes.&lt;&#x2F;li&gt;
&lt;li&gt;La modération est déléguée à Mastodon, on a moins de contrôle sur ce qui se fait. Si on est admin de son instance c’est pas trop gênant, mais ce n’est pas mon cas.&lt;&#x2F;li&gt;
&lt;li&gt;Le billet dépend de l’instance : si le post disparaît, les commentaires aussi. Une solution serait d’archiver régulièrement les réponses côté serveur, ce que je n’ai pas encore mis en place.&lt;&#x2F;li&gt;
&lt;&#x2F;ol&gt;
&lt;p&gt;Tout ça me semble globalement acceptable, on va donc passer à la suite : l’implémentation.&lt;&#x2F;p&gt;
&lt;h2 id=&quot;integration-a-zola&quot;&gt;Intégration à Zola&lt;&#x2F;h2&gt;
&lt;h3 id=&quot;variables-d-environnement&quot;&gt;Variables d’environnement&lt;&#x2F;h3&gt;
&lt;p&gt;Dans le fichier &lt;code&gt;config.toml&lt;&#x2F;code&gt;, j’ajoute l’adresse de l’instance cible et le nom de l’utilisateur qui postera les billets.&lt;&#x2F;p&gt;
&lt;pre class=&quot;giallo&quot; style=&quot;color-scheme: light dark; color: light-dark(#24292E, #E1E4E8); background-color: light-dark(#FFFFFF, #24292E);&quot;&gt;&lt;code data-lang=&quot;toml&quot;&gt;&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;[&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#6F42C1, #B392F0);&quot;&gt;extra&lt;&#x2F;span&gt;&lt;span&gt;.&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#6F42C1, #B392F0);&quot;&gt;mastodon&lt;&#x2F;span&gt;&lt;span&gt;]&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;host&lt;&#x2F;span&gt;&lt;span&gt; =&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032F62, #9ECBFF);&quot;&gt; &amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032F62, #9ECBFF);&quot;&gt;diaspodon.fr&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032F62, #9ECBFF);&quot;&gt;&amp;quot;&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;username&lt;&#x2F;span&gt;&lt;span&gt; =&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032F62, #9ECBFF);&quot;&gt; &amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032F62, #9ECBFF);&quot;&gt;CedC&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032F62, #9ECBFF);&quot;&gt;&amp;quot;&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;&lt;&#x2F;code&gt;&lt;&#x2F;pre&gt;
&lt;p&gt;Chaque billet peut ensuite définir l’identifiant du post mastodon dans ses métadonnées (&lt;em&gt;frontmatter&lt;&#x2F;em&gt;).&lt;&#x2F;p&gt;
&lt;pre class=&quot;giallo&quot; style=&quot;color-scheme: light dark; color: light-dark(#24292E, #E1E4E8); background-color: light-dark(#FFFFFF, #24292E);&quot;&gt;&lt;code data-lang=&quot;toml&quot;&gt;&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;[&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#6F42C1, #B392F0);&quot;&gt;extra&lt;&#x2F;span&gt;&lt;span&gt;]&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;comment_id&lt;&#x2F;span&gt;&lt;span&gt; =&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032F62, #9ECBFF);&quot;&gt; &amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032F62, #9ECBFF);&quot;&gt;1234567890&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032F62, #9ECBFF);&quot;&gt;&amp;quot;&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;&lt;&#x2F;code&gt;&lt;&#x2F;pre&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Note :&lt;&#x2F;strong&gt;
J’ai choisi de mettre l’adresse de l’instance dans la configuration globale du site pour éviter d’avoir à le taper pour chaque billet, mais cela sous-entend qu’on ne changera pas d’instance en cours de route. Il serait sûrement plus sûr de mettre le tout dans les métadonnées pour plus de flexibilité.&lt;&#x2F;p&gt;
&lt;&#x2F;blockquote&gt;
&lt;h3 id=&quot;template-html&quot;&gt;Template HTML&lt;&#x2F;h3&gt;
&lt;p&gt;Dans &lt;code&gt;page.html&lt;&#x2F;code&gt;, le squelette des pages de mon blog dans zola, j’ajoute une section commentaires peuplée si &lt;code&gt;comment_id&lt;&#x2F;code&gt; est défini.&lt;&#x2F;p&gt;
&lt;pre class=&quot;giallo&quot; style=&quot;color-scheme: light dark; color: light-dark(#24292E, #E1E4E8); background-color: light-dark(#FFFFFF, #24292E);&quot;&gt;&lt;code data-lang=&quot;html&quot;&gt;&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;&amp;lt;&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#B31D28, #FDAEB7);font-style: italic;&quot;&gt;comments&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#6F42C1, #B392F0);&quot;&gt; id&lt;&#x2F;span&gt;&lt;span&gt;=&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032F62, #9ECBFF);&quot;&gt;&amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032F62, #9ECBFF);&quot;&gt;comments&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032F62, #9ECBFF);&quot;&gt;&amp;quot;&lt;&#x2F;span&gt;&lt;span&gt;&amp;gt;&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt; {% if page.extra.comment_id %}&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt; {% set comment_id = page.extra.comment_id %}&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt; {% include &amp;quot;shortcodes&#x2F;comments.html&amp;quot; %}&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt; {% endif %}&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;&amp;lt;&#x2F;&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#B31D28, #FDAEB7);font-style: italic;&quot;&gt;comments&lt;&#x2F;span&gt;&lt;span&gt;&amp;gt;&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;&lt;&#x2F;code&gt;&lt;&#x2F;pre&gt;
&lt;p&gt;Le fichier &lt;code&gt;shortcodes&#x2F;comments.html&lt;&#x2F;code&gt; contient le bouton de chargement et les variables nécessaires au script JavaScript. Le fait de le séparer ainsi plutôt que d’intégrer le tout directement dans la page permet d’appeler le shortcode &lt;code&gt;comments(comment_id=foo)&lt;&#x2F;code&gt; à l’intérieur d’un fichier markdown si besoin. Ça permet en outre de garder une structure claire pour notre blog.&lt;&#x2F;p&gt;
&lt;h3 id=&quot;javascript&quot;&gt;JavaScript&lt;&#x2F;h3&gt;
&lt;p&gt;Tous les scripts sont dans le dossier &lt;code&gt;static&#x2F;js&#x2F;comments&lt;&#x2F;code&gt;
J’ai retouché à la marge le script de Scott, simplement pour modifier l’HTML généré, le simplifier un peu et l’adapté pour mon blog.
Tout le reste est intact. C’est plutôt bien fait, il y a même un appel à &lt;code&gt;DOMPurify&lt;&#x2F;code&gt; pour éviter les attaques par &lt;em&gt;crosscritpting&lt;&#x2F;em&gt;. J’ai préféré rapatrier en local le fichier plutôt que de faire appel à un CDN.&lt;&#x2F;p&gt;
&lt;h3 id=&quot;style&quot;&gt;Style&lt;&#x2F;h3&gt;
&lt;p&gt;Le ficher &lt;code&gt;static&#x2F;css&#x2F;comments.css&lt;&#x2F;code&gt; gère le style des commentaires de façon minimale.
Le style est volontairement simple : avatar à gauche, contenu à droite, métadonnées en haut et actions en bas. Pas de couleur pour s’adapter le plus facilement possible aux différents thèmes.&lt;&#x2F;p&gt;
&lt;h3 id=&quot;vue-globale-des-modifications&quot;&gt;Vue globale des modifications&lt;&#x2F;h3&gt;
&lt;p&gt;On a modifié beaucoup de fichiers, voici un récapitulatif des fichiers touchés :&lt;&#x2F;p&gt;
&lt;pre class=&quot;giallo&quot; style=&quot;color-scheme: light dark; color: light-dark(#24292E, #E1E4E8); background-color: light-dark(#FFFFFF, #24292E);&quot;&gt;&lt;code data-lang=&quot;shellscript&quot;&gt;&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#005CC5, #79B8FF);&quot;&gt;.&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#6F42C1, #B392F0);&quot;&gt;├──&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032F62, #9ECBFF);&quot;&gt; config.toml&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#6F42C1, #B392F0);&quot;&gt;├──&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032F62, #9ECBFF);&quot;&gt; content&#x2F;blog&#x2F;&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#005CC5, #79B8FF);&quot;&gt;*&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032F62, #9ECBFF);&quot;&gt;.md&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#6A737D, #6A737D);&quot;&gt; #&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#6A737D, #6A737D);&quot;&gt; comment_id dans le frontmatter&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#6F42C1, #B392F0);&quot;&gt;├──&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032F62, #9ECBFF);&quot;&gt; static&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#6F42C1, #B392F0);&quot;&gt;│&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032F62, #9ECBFF);&quot;&gt; ├──&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032F62, #9ECBFF);&quot;&gt; css&#x2F;comments.css&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#6F42C1, #B392F0);&quot;&gt;│&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032F62, #9ECBFF);&quot;&gt; └──&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032F62, #9ECBFF);&quot;&gt; js&#x2F;comments&#x2F;&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#6F42C1, #B392F0);&quot;&gt;│&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032F62, #9ECBFF);&quot;&gt; ├──&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032F62, #9ECBFF);&quot;&gt; comments.js&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#6F42C1, #B392F0);&quot;&gt;│&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032F62, #9ECBFF);&quot;&gt; ├──&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032F62, #9ECBFF);&quot;&gt; purify.min.js&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#6F42C1, #B392F0);&quot;&gt;│&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032F62, #9ECBFF);&quot;&gt; └──&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032F62, #9ECBFF);&quot;&gt; purify.min.js.map&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#6F42C1, #B392F0);&quot;&gt;└──&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032F62, #9ECBFF);&quot;&gt; templates&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#6F42C1, #B392F0);&quot;&gt; ├──&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032F62, #9ECBFF);&quot;&gt; page.html&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#6F42C1, #B392F0);&quot;&gt; └──&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032F62, #9ECBFF);&quot;&gt; shortcodes&#x2F;comments.html&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;&lt;&#x2F;code&gt;&lt;&#x2F;pre&gt;&lt;h2 id=&quot;conclusion&quot;&gt;Conclusion&lt;&#x2F;h2&gt;
&lt;p&gt;C’est ainsi que j’ai récupéré un système de commentaires pour mon site statique.
L’intégration reste simple, facultative et minimaliste, avec un code que je peux comprendre et maintenir.&lt;&#x2F;p&gt;
&lt;p&gt;Je délègue au Fédiverse la gestion et l’archivage des commentaires. Ce n’est pas un contrôle total, mais c’est un compromis que j’accepte volontiers : pas de base de données, pas de backend, et des échanges décentralisés.&lt;&#x2F;p&gt;
&lt;p&gt;Ce projet n’aurait pas été possible sans le travail et les partages d’autres personnes. Je publie donc cette adaptation à mon tour, pour contribuer à cette chaîne.&lt;&#x2F;p&gt;
&lt;p&gt;Si vous utilisez Zola (ou un autre générateur statique), cette approche devrait s’adapter sans trop de difficultés.&lt;&#x2F;p&gt;
</content>
</entry>
<entry>
<title>GrapheneOS : la pénultième étape de ma déGAFAMisation</title>
<link href="https://ced-c.github.io/blog/grapheneos/"/>
<updated>2026-02-04T00:00:00+0000</updated>
<id>https://ced-c.github.io/blog/grapheneos/</id>
<content type="html">&lt;p&gt;Je ne pensais pas réinstaller une ROM sur un téléphone un jour.&lt;&#x2F;p&gt;
&lt;p&gt;J’avais essayé CyanogenMod il y a longtemps, plus de 10 ans, au début des smartphones. Si ça fonctionnait assez bien, je n’y avais pas vu de véritable bénéfice à l’époque. C’était censé être plus léger, mais c’était quand même poussif avec mon téléphone d’alors, un LG Optimus L7 de mémoire.&lt;&#x2F;p&gt;
&lt;p&gt;J’ai donc arrêté de regarder.&lt;&#x2F;p&gt;
&lt;p&gt;J’avais entendu parler de &lt;a rel=&quot;noopener external&quot; target=&quot;_blank&quot; href=&quot;https:&#x2F;&#x2F;grapheneos.org&#x2F;&quot;&gt;GrapheneOS&lt;&#x2F;a&gt;, mais pas au point de vouloir essayer. Après tout, mon téléphone est mon outil de travail, j’ai besoin que ça fonctionne. Mais Android (comme iOS) n’est pas parfait. Pire, il y a des défauts qui me dérangent vraiment :&lt;&#x2F;p&gt;
&lt;ul&gt;
&lt;li&gt;Il n’est pas possible de supprimer certaines applications comme YouTube par défaut. Et c’est parfois tentant de regarder une vidéo au moindre temps mort (&lt;em&gt;cf.&lt;&#x2F;em&gt; mon &lt;a href=&quot;https:&#x2F;&#x2F;ced-c.github.io&#x2F;blog&#x2F;pourquoi-se-concentrer-est-devenu-un-acte-militant&#x2F;&quot;&gt;article sur l’attention&lt;&#x2F;a&gt;) ;&lt;&#x2F;li&gt;
&lt;li&gt;Servir ses données sur un plateau d’argent à une entreprise qui s’en servira probablement pour entraîner des IA qui ne correspondent pas au modèle que je défends ;&lt;&#x2F;li&gt;
&lt;li&gt;Le fait de ne pas pouvoir contrôler son téléphone complètement et de se voir des fonctionnalités refusées sans Android&#x2F;iOS. Pas de paiement sans contact possible avec des systèmes alternatifs comme &lt;a rel=&quot;noopener external&quot; target=&quot;_blank&quot; href=&quot;https:&#x2F;&#x2F;www.ubuntu-touch.io&#x2F;&quot;&gt;Ubuntu Touch&lt;&#x2F;a&gt; ou &lt;a rel=&quot;noopener external&quot; target=&quot;_blank&quot; href=&quot;https:&#x2F;&#x2F;plasma-mobile.org&#x2F;&quot;&gt;Plasma Mobile&lt;&#x2F;a&gt; ; pire, l’État pousse de plus en plus pour avoir des applications « sécurisées » pour accéder à ses services numériques, comme &lt;a rel=&quot;noopener external&quot; target=&quot;_blank&quot; href=&quot;https:&#x2F;&#x2F;www.franceconnect.gouv.fr&#x2F;franceconnect-plus&quot;&gt;FranceConnect+&lt;&#x2F;a&gt;, qui demande d’avoir un téléphone dépendant des États-Unis.&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;p&gt;Donc quand mon téléphone —le premier téléphone Google que j’achète— tombe en rade après moins de deux ans, je me dis que je ne veux plus donner de l’argent à Google et me demande quelles sont les alternatives.&lt;&#x2F;p&gt;
&lt;p&gt;En cherchant les alternatives possibles, je ne trouve pas grand-chose de très enthousiasmant. Je retombe par contre sur GrapheneOS, et c’est là que je me dis qu’il est peut-être temps de dire au revoir à l’un des derniers services des GAFAM que j’utilise : Android.&lt;&#x2F;p&gt;
&lt;h2 id=&quot;installation&quot;&gt;Installation&lt;&#x2F;h2&gt;
&lt;p&gt;J’achète un téléphone Google d’occasion, en m’assurant que le problème connu que j’ai eu sur celui qui a rendu l’âme (chargement d’électricité statique) est résolu. Je prends un modèle reconditionné, pas cher.&lt;&#x2F;p&gt;
&lt;p&gt;Ça fera le taf.&lt;&#x2F;p&gt;
&lt;p&gt;J’ai un plan pour me passer complètement de téléphone à l’avenir, mais il faut encore que j’essaie « pour de vrai ». Je me dis que, sur le papier, GrapheneOS répond à beaucoup de problèmes que j’ai soulevés avec Android :&lt;&#x2F;p&gt;
&lt;ol&gt;
&lt;li&gt;Il est compatible avec toutes les applications, ou presque&lt;&#x2F;li&gt;
&lt;li&gt;Il permet d’avoir les services Google dans un environnement cloisonné pour les applications qui s’appuient dessus (plus qu’on ne le pense). Il permet en outre de choisir les accès qu’on donne à Google, qui est traité comme n’importe quelle autre application&lt;&#x2F;li&gt;
&lt;li&gt;Il ne transmet pas de données personnelles par défaut&lt;&#x2F;li&gt;
&lt;li&gt;Il se veut plus sécurisé, même si je n’ai pas les compétences pour le vérifier&lt;&#x2F;li&gt;
&lt;&#x2F;ol&gt;
&lt;p&gt;C’est pas mal, donc. Suffisamment prometteur pour se donner la peine de l’installer. J’ai le souvenir de procédures compliquées pour les ROMs de l’époque ; est-ce toujours le cas ?&lt;&#x2F;p&gt;
&lt;p&gt;Étrangement, non ! C’est beaucoup plus simple. Mais pas accessible à tout le monde pour autant.&lt;&#x2F;p&gt;
&lt;p&gt;Sous Linux, il y a deux façons d’installer :&lt;&#x2F;p&gt;
&lt;ol&gt;
&lt;li&gt;Une interface web qu’ils proposent&lt;&#x2F;li&gt;
&lt;li&gt;La ligne de commande&lt;&#x2F;li&gt;
&lt;&#x2F;ol&gt;
&lt;p&gt;Je tente l’option de la simplicité, ça ne fonctionne pas. Le retour n’est pas très loquace sur les raisons pour lesquelles l’étape échoue. Je le comprendrai plus tard.&lt;&#x2F;p&gt;
&lt;p&gt;Je me retranche sur la ligne de commande et je comprends qu’une bibliothèque est obsolète et que je dois installer la dernière version à la main pour pouvoir avancer. J’aurais peut-être pu retourner sur l’interface web pour la suite, mais maintenant que je suis devant un terminal, je continue. Au moins, les erreurs donnent des pistes sur le &lt;em&gt;pourquoi&lt;&#x2F;em&gt; une étape échoue.&lt;&#x2F;p&gt;
&lt;p&gt;Pour peu qu’on sache lire une documentation, interpréter les retours de la ligne de commande et qu’on ait quelques notions d’informatique, l’installation n’est pas trop compliquée.&lt;&#x2F;p&gt;
&lt;p&gt;J’aurais peut-être eu la naïveté de le recommander à n’importe qui avant, mais force est de constater que ce n’est pas le cas. Ma compagne n’aurait pas réussi. Il faut quand même comprendre ce qu’on fait, savoir mettre à jour des dépendances à la main, même sous Ubuntu 25.10, qui se veut pourtant récent.&lt;&#x2F;p&gt;
&lt;p&gt;Une fois installé, on a un petit message à chaque redémarrage indiquant qu’un autre OS qu’Android est installé. Je ne sais pas si c’est censé faire peur, mais moi, ça me rassure. Ça veut dire que Google ne sait pas ce que je fais, et que ça l’embête.&lt;&#x2F;p&gt;
&lt;h2 id=&quot;utilisation&quot;&gt;Utilisation&lt;&#x2F;h2&gt;
&lt;p&gt;À l’utilisation, ce n’est pas très différent d’Android. C’est même pratiquement la même chose, à ceci près que l’on dispose d’un peu plus de contrôle sur les autorisations accordées aux applications. Toutes les applications. Même celles de Google, que j’évite.&lt;&#x2F;p&gt;
&lt;p&gt;L’environnement cloisonné dans lequel on peut installer les services Google est très simple d’accès, et des réglages permettent de définir des règles afin de le désactiver automatiquement. Je m’en sers peu, mais l’expérience est très fluide, bravo pour cette approche.&lt;&#x2F;p&gt;
&lt;h3 id=&quot;applications-utilisees&quot;&gt;Applications utilisées&lt;&#x2F;h3&gt;
&lt;p&gt;J’installe les applications de préférence via &lt;a rel=&quot;noopener external&quot; target=&quot;_blank&quot; href=&quot;https:&#x2F;&#x2F;f-droid.org&#x2F;&quot;&gt;F-Droid&lt;&#x2F;a&gt; quand je trouve mon bonheur (souvent), sinon je passe par Aurora, qui permet d’accéder aux applications présentes sur le Play Store.&lt;&#x2F;p&gt;
&lt;p&gt;&lt;strong&gt;Via F-Droid :&lt;&#x2F;strong&gt;&lt;&#x2F;p&gt;
&lt;ul&gt;
&lt;li&gt;Fossify Calendar – très bon calendrier&lt;&#x2F;li&gt;
&lt;li&gt;Aves Libre – galerie&lt;&#x2F;li&gt;
&lt;li&gt;CoMaps – GPS hors ligne avec circuits de randonnée très précis. C’est un peu long à se géolocaliser, mais ça fonctionne globalement bien&lt;&#x2F;li&gt;
&lt;li&gt;Nextcloud – sauvegarde de photos sur le cloud et accès à mes fichiers personnels&lt;&#x2F;li&gt;
&lt;li&gt;DAVx⁵ – synchronisation du calendrier et des contacts&lt;&#x2F;li&gt;
&lt;li&gt;Forkgram – client Telegram que j’utilise encore avec ma famille. Au moins, ce n’est pas un GAFAM&lt;&#x2F;li&gt;
&lt;li&gt;ProtonVPN, Proton Authenticator – j’utilise beaucoup l’écosystème &lt;a rel=&quot;noopener external&quot; target=&quot;_blank&quot; href=&quot;https:&#x2F;&#x2F;proton.me&#x2F;&quot;&gt;Proton&lt;&#x2F;a&gt;. Ce sont les seules applications que j’utilise qui sont sur F-Droid&lt;&#x2F;li&gt;
&lt;li&gt;Tusky – client Mastodon&lt;&#x2F;li&gt;
&lt;li&gt;PipePipe – accès minimaliste à YouTube, avec lecture en arrière-plan&lt;&#x2F;li&gt;
&lt;li&gt;Breezy Weather – météo&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;p&gt;&lt;strong&gt;Via Aurora :&lt;&#x2F;strong&gt;&lt;&#x2F;p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https:&#x2F;&#x2F;ced-c.github.io&#x2F;blog&#x2F;organiser-sa-vie-avec-md&#x2F;&quot;&gt;Obsidian&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;Application bancaire&lt;&#x2F;li&gt;
&lt;li&gt;LinkedIn — malheureusement nécessaire pour mon métier&lt;&#x2F;li&gt;
&lt;li&gt;Proton Mail – parce qu’il n’est pas sur F-Droid&lt;&#x2F;li&gt;
&lt;li&gt;Firefox Focus – j’aime bien l’expérience minimaliste qu’il propose comme navigateur par défaut. Firefox ensuite pour la synchronisation avec &lt;a href=&quot;https:&#x2F;&#x2F;ced-c.github.io&#x2F;blog&#x2F;zen-browser&#x2F;&quot;&gt;Zen Browser&lt;&#x2F;a&gt; sur desktop&lt;&#x2F;li&gt;
&lt;li&gt;Radio France – je vous avais dit que France Culture, c’est pas trop mal ?&lt;&#x2F;li&gt;
&lt;li&gt;SimpleLogin – masquer ses adresses mail est devenu nécessaire&lt;&#x2F;li&gt;
&lt;li&gt;WhatsApp – je ne m’en sers quasiment plus, mais ça fonctionne&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;p&gt;&lt;strong&gt;Via Google Play (dans l’environnement confiné) :&lt;&#x2F;strong&gt;&lt;&#x2F;p&gt;
&lt;ul&gt;
&lt;li&gt;Maps, que j’utilise parfois pour les informations sur le trafic routier&lt;&#x2F;li&gt;
&lt;li&gt;Wallet, pour l’accès aux cartes de fidélité ; le paiement, lui, ne fonctionne pas, Google ne pouvant pas « certifier » l’appareil&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;p&gt;Voilà. C’est assez sommaire, mais c’est ce que j’utilise depuis un mois. C’est donc assez représentatif de mon usage du téléphone.&lt;&#x2F;p&gt;
&lt;h2 id=&quot;deceptions&quot;&gt;Déceptions&lt;&#x2F;h2&gt;
&lt;p&gt;Je m’y attendais, mais forcément, il y a des concessions à faire.&lt;&#x2F;p&gt;
&lt;p&gt;L’application caméra et sa gestion native des QR codes ne sont pas folichonnes : on ne peut pas scanner un contact et l’ajouter, ni se connecter directement à un réseau Wi-Fi. Il faudrait que je trouve une meilleure application, mais c’est pénible de ne pas avoir cela intégré par défaut. Un petit bémol, mais rien de grave.&lt;&#x2F;p&gt;
&lt;p&gt;Pour être honnête, je m’attendais à ce que &lt;em&gt;plus&lt;&#x2F;em&gt; de choses ne fonctionnent pas. Globalement, je suis donc plutôt agréablement surpris. La grande majorité des applications fonctionnent bien. Les paiements, non. C’était prévu, mais j’ai maintenant la confirmation.&lt;&#x2F;p&gt;
&lt;p&gt;Il semblerait qu’une solution comme &lt;a rel=&quot;noopener external&quot; target=&quot;_blank&quot; href=&quot;https:&#x2F;&#x2F;www.curve.com&#x2F;&quot;&gt;Curve&lt;&#x2F;a&gt; fonctionne sous GrapheneOS, mais je n’ai pas essayé. De ce que j’ai compris, contrairement à Google Pay ou Samsung Pay, l’application a besoin d’accéder à Internet pour fonctionner, ce qui la rend en principe moins fiable.&lt;&#x2F;p&gt;
&lt;p&gt;Tant pis, j’utiliserai ma montre connectée pour payer… sauf que.&lt;&#x2F;p&gt;
&lt;h3 id=&quot;watch&quot;&gt;Watch&lt;&#x2F;h3&gt;
&lt;p&gt;La connexion à une montre Google ne fonctionne pas. Or, il est obligatoire d’appairer la montre avec un téléphone pour s’en servir. C’est frustrant, et ça rend mon nouvel achat inutilisable tel quel.&lt;&#x2F;p&gt;
&lt;p&gt;Il semblerait que certains aient réussi à appairer les deux, mais je ne sais pas si je suis passé à côté de quelque chose ou si les règles ont évolué. En tout cas, je n’ai pas réussi.&lt;&#x2F;p&gt;
&lt;p&gt;Comme solution temporaire, j’ai utilisé le téléphone de mon âme sœur, mais cela me donne accès à ses notifications, ce qui n’est pas idéal. Il faudrait que j’essaie avec une tablette Android quand je remettrai la main sur celle qui dort au fond d’un placard depuis des lustres.&lt;&#x2F;p&gt;
&lt;h3 id=&quot;android-auto&quot;&gt;Android Auto&lt;&#x2F;h3&gt;
&lt;p&gt;Là, c’est plus pénible et ça joue sur la sécurité. J’ai l’impression qu’il est possible de le faire fonctionner — en tout cas, on trouve sur le web des gens qui y arrivent — mais chez moi, ça ne fonctionne pas. Peu importe les permissions accordées à Google, même en étant &lt;em&gt;open bar&lt;&#x2F;em&gt;, rien à faire.&lt;&#x2F;p&gt;
&lt;p&gt;Je vais bientôt retrouver ma vieille voiture, qui n’est pas compatible, donc ce n’est pas trop gênant. Mais c’est quand même un confort énorme de pouvoir afficher le GPS de son choix sur l’écran central de la voiture. Il est à la bonne hauteur, on dirait presque que c’est fait pour. Pouvoir contrôler la musique ou la radio depuis cet écran est aussi extrêmement pratique.&lt;&#x2F;p&gt;
&lt;p&gt;Je prenais ça pour acquis. Il semblerait que ce soit un luxe dont le prix à payer est &lt;em&gt;toute&lt;&#x2F;em&gt; ma vie privée. C’est trop cher. Je ne payerai pas.&lt;&#x2F;p&gt;
&lt;hr &#x2F;&gt;
&lt;p&gt;Ce sont les deux ou trois concessions à faire pour avoir un système plus libre. Pour moi, ça vaut le coup. Mais chacun voit midi à sa porte. Je continuerai d’acheter des téléphones Google reconditionnés et d’y installer GrapheneOS à chaque fois que j’en aurai besoin. Pas trop souvent, j’espère : je trouve les Pixels plutôt fragiles.&lt;&#x2F;p&gt;
&lt;p&gt;Il faudrait aussi que je teste plus sérieusement les applications bancaires en France. Consulter ses comptes fonctionne, mais qu’en est-il des virements, de l’activation de services comme Wero, etc. ? À tester.&lt;&#x2F;p&gt;
&lt;h2 id=&quot;conclusion&quot;&gt;Conclusion&lt;&#x2F;h2&gt;
&lt;p&gt;Après près de deux mois d’utilisation, je suis encore dans la période de lune de miel, certes. Tout n’est pas parfait, et certaines concessions sont réelles. Le paiement sans contact, Android Auto, les montres connectées : autant de rappels que l’écosystème Google est conçu pour enfermer, pas pour être quitté.&lt;&#x2F;p&gt;
&lt;p&gt;Mais une chose est sûre : je n’ai pas envie de revenir en arrière. GrapheneOS m’a rappelé quelque chose d’essentiel : les frustrations que l’on ressent avec Android ou iOS ne sont pas des bugs, ce sont des choix. Le manque de contrôle, la dépendance aux services centralisés, l’impossibilité de dire non sans perdre des fonctionnalités —tout cela fait partie du modèle.&lt;&#x2F;p&gt;
&lt;p&gt;Accepter de perdre un peu de confort pour reprendre la main sur un outil aussi central que le téléphone me semble aujourd’hui être un compromis sain. Android était l’un des derniers produits des GAFAM que j’utilisais de façon intensive. GrapheneOS me permet, pour l’instant, de m’en passer sans me couper du monde.&lt;&#x2F;p&gt;
&lt;p&gt;Reste un paradoxe difficile à avaler : en 2025, les seuls téléphones réellement compatibles sont ceux de Google. Pire, l’installation n’est pas simple. Tant que cela n’évoluera pas, GrapheneOS restera une alternative de niche, réservée aux utilisateurs motivés et aux dealers. J’espère qu’un constructeur proposera un jour des modèles avec l’OS préinstallé, mais cela semble mal engagé pour &lt;a rel=&quot;noopener external&quot; target=&quot;_blank&quot; href=&quot;https:&#x2F;&#x2F;www.fairphone.com&#x2F;&quot;&gt;Fairphone&lt;&#x2F;a&gt; en tout cas : les développeurs de GrapheneOS se sont prononcés contre.&lt;&#x2F;p&gt;
&lt;p&gt;GrapheneOS est aujourd’hui aux téléphones ce que Linux était aux ordinateurs au début des années 2000. Si je suis content de m’en servir et que je ne compte pas revenir en arrière, je ne suis pas aussi enthousiaste que je l’ai été avec Linux ou Firefox OS par le passé. &lt;del&gt;Étant un projet États-Unien, difficile de savoir comment l’OS évoluera à l’avenir et à quelles lois ses développeurs seront confrontés.&lt;&#x2F;del&gt;&lt;&#x2F;p&gt;
&lt;p&gt;&lt;strong&gt;Edit 2025-02-05&lt;&#x2F;strong&gt; : Suite aux retours de GrapheneOS et de quelques autres personnes sur Mastodon, je souhaite corriger une erreur de taille : GrapheneOS n’est pas états-unien. Le fondateur et développeur principal initial de GrapheneOS est canadien. Il est l’un des trois directeurs de l’organisation à but non lucratif. Le développeur principal actuel est ukrainien et fait également partie des directeurs. Le dernier directeur est kazakh. Suite à une augmentation de leur trésorerie, ils ont commencé à embaucher (en télétravail) un développeur basé aux États-Unis ; d’autres embauches similaires sont prévues.&lt;&#x2F;p&gt;
&lt;p&gt;Des utilisateurs ont confimés avoir Android Auto de fonctionnel, et la pixel watch devrait l’être également.&lt;&#x2F;p&gt;
</content>
</entry>
<entry>
<title>Typst : Un latex moderne – Faire une lettre avec en-tête SVG configurable</title>
<link href="https://ced-c.github.io/blog/typst-lettre-avec-entete-svg/"/>
<updated>2026-01-03T00:00:00+0000</updated>
<id>https://ced-c.github.io/blog/typst-lettre-avec-entete-svg/</id>
<content type="html">&lt;p&gt;Vous connaissez &lt;strong&gt;LaTeX&lt;&#x2F;strong&gt; ?&lt;br &#x2F;&gt;
&lt;em&gt;(non, ce n’est pas NSFW, et oui, ça se prononce « La-Tek »)&lt;&#x2F;em&gt;&lt;&#x2F;p&gt;
&lt;p&gt;Moi oui.&lt;br &#x2F;&gt;
Et j’en garde des séquelles.&lt;&#x2F;p&gt;
&lt;p&gt;J’ai &lt;strong&gt;une&lt;&#x2F;strong&gt; expérience sérieuse avec LaTeX : la rédaction de mon mémoire.&lt;br &#x2F;&gt;
Une aventure humaine. Une épreuve initiatique. Une erreur de jeunesse.&lt;&#x2F;p&gt;
&lt;p&gt;Déjà, mon tuteur était contre —j’aurais dû l’écouter.&lt;br &#x2F;&gt;
Ensuite, soyons honnêtes : ce n’était &lt;strong&gt;pas pratique&lt;&#x2F;strong&gt;.&lt;&#x2F;p&gt;
&lt;p&gt;Certes, &lt;em&gt;tout&lt;&#x2F;em&gt; est configurable…&lt;br &#x2F;&gt;
Mais à quel prix ?&lt;&#x2F;p&gt;
&lt;p&gt;Dès qu’on tente de personnaliser un peu le doc, la courbe d’apprentissage devient un mur d’escalade, sans prises.&lt;br &#x2F;&gt;
J’avais repris le modèle de l’université sans vraiment comprendre comment il fonctionnait (et je suspecte secrètement ceux qui arrivent à lire et comprendre ces templates de venir d’une autre planète).&lt;br &#x2F;&gt;
Et surtout, plus mon mémoire avançait, plus &lt;strong&gt;la compilation prenait une éternité&lt;&#x2F;strong&gt;.&lt;&#x2F;p&gt;
&lt;p&gt;Bref, à la fin, je me suis dit :&lt;&#x2F;p&gt;
&lt;blockquote&gt;
&lt;p&gt;« Plus jamais. »&lt;&#x2F;p&gt;
&lt;&#x2F;blockquote&gt;
&lt;p&gt;Et j’ai tourné la page…&lt;&#x2F;p&gt;
&lt;h2 id=&quot;le-format-texte&quot;&gt;Le format texte&lt;&#x2F;h2&gt;
&lt;p&gt;Il y avait &lt;em&gt;un truc&lt;&#x2F;em&gt; que j’aimais particulièrement dans LaTeX : &lt;strong&gt;le format texte&lt;&#x2F;strong&gt;.&lt;&#x2F;p&gt;
&lt;p&gt;Un document stocké en texte, ça veut dire :&lt;&#x2F;p&gt;
&lt;ul&gt;
&lt;li&gt;qu’on peut l’écrire dans &lt;strong&gt;l’éditeur de son choix&lt;&#x2F;strong&gt; ;&lt;&#x2F;li&gt;
&lt;li&gt;qu’on peut le &lt;strong&gt;versionner avec git&lt;&#x2F;strong&gt; ;&lt;&#x2F;li&gt;
&lt;li&gt;qu’on peut utiliser &lt;strong&gt;tout l’outillage du texte&lt;&#x2F;strong&gt; (regex, scripts, automatisation) ;&lt;&#x2F;li&gt;
&lt;li&gt;qu’on peut se concentrer (en grande partie) sur le &lt;strong&gt;fond&lt;&#x2F;strong&gt;, et gérer la forme à part.&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;p&gt;Sur le papier, c’est magnifique.&lt;br &#x2F;&gt;
En pratique… le jeu n’en valait pas la chandelle. À y repenser, je crois simplement que je n’étais pas la cible.&lt;&#x2F;p&gt;
&lt;p&gt;Je me suis retranché sur &lt;em&gt;markdown&lt;&#x2F;em&gt; dès que je l’ai rencontré.
Il avait presque toutes les propriétés que je cherchais :&lt;&#x2F;p&gt;
&lt;ul&gt;
&lt;li&gt;le texte brut,&lt;&#x2F;li&gt;
&lt;li&gt;la simplicité,&lt;&#x2F;li&gt;
&lt;li&gt;la portabilité,&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;p&gt;sans la lourdeur de latex et de tout son outillage. J’utilise du Markdown (avec les &lt;em&gt;vim motions&lt;&#x2F;em&gt;) pour tout ou presque :&lt;&#x2F;p&gt;
&lt;ul&gt;
&lt;li&gt;mes notes (dans &lt;a href=&quot;https:&#x2F;&#x2F;ced-c.github.io&#x2F;blog&#x2F;organiser-sa-vie-avec-md&#x2F;&quot;&gt;Obsidian&lt;&#x2F;a&gt;),&lt;&#x2F;li&gt;
&lt;li&gt;des mails un peu longs,&lt;&#x2F;li&gt;
&lt;li&gt;des brouillons de documents, quitte à finir plus tard dans une autre app, une fois envoyé aux hérétique ne sachant pas utilser un clavier, mais je m’égare ;&lt;&#x2F;li&gt;
&lt;li&gt;des articles de blog (oui, comme celui-ci).&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;h2 id=&quot;typst-le-latex-moderne-ecrit-en-rust&quot;&gt;Typst, le latex moderne, écrit en Rust&lt;&#x2F;h2&gt;
&lt;p&gt;Et puis un jour, j’ai vu passer &lt;a rel=&quot;noopener external&quot; target=&quot;_blank&quot; href=&quot;https:&#x2F;&#x2F;typst.app&#x2F;&quot;&gt;Typst&lt;&#x2F;a&gt;. J’ai regardé &lt;a rel=&quot;noopener external&quot; target=&quot;_blank&quot; href=&quot;https:&#x2F;&#x2F;videos.capitoledulibre.org&#x2F;w&#x2F;ckhaJabpYLZTcMGBnaQoHU&quot;&gt;la vidéo du camarade Patrick Massot&lt;&#x2F;a&gt;, et là je me suis dit :&lt;&#x2F;p&gt;
&lt;blockquote&gt;
&lt;p&gt;« …pourquoi pas ? »&lt;&#x2F;p&gt;
&lt;&#x2F;blockquote&gt;
&lt;p&gt;Typst se présente comme une sorte de &lt;strong&gt;LaTeX moderne&lt;&#x2F;strong&gt; :&lt;&#x2F;p&gt;
&lt;ul&gt;
&lt;li&gt;syntaxe plus simple, proche du markdown,&lt;&#x2F;li&gt;
&lt;li&gt;compilation &lt;em&gt;ultra rapide&lt;&#x2F;em&gt;,&lt;&#x2F;li&gt;
&lt;li&gt;un seul binaire, et un gestionaire de paquet intégré, bienvenu au XXIᵉ siècle,&lt;&#x2F;li&gt;
&lt;li&gt;pensé pour évoluer au-delà du PDF, notamment avec un effort pour supporté le format web.&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;p&gt;Je regardais de loin le travail du projet &lt;a rel=&quot;noopener external&quot; target=&quot;_blank&quot; href=&quot;https:&#x2F;&#x2F;www.pagedjs.org&#x2F;&quot;&gt;paged.js&lt;&#x2F;a&gt; pour son objectif de faire avancer les technologies web et les rendre compatibles avec l’impression ; et donc pouvoir avoir une source unique qui s’adapte au support : téléphone, tablette, écran, papier A4. Je suis ravis que Typst travail également activement sur la question !&lt;&#x2F;p&gt;
&lt;p&gt;Le langage est suffisamment proche de markdown pour qu’une simple note puisse devenir, progressivement, un vrai document structuré si besoin.
Pas besoin de savoir &lt;em&gt;a priori&lt;&#x2F;em&gt; quel sera le document final et d’y réfléchir. Pas besoin de choisir entre simplicité et puissance.&lt;&#x2F;p&gt;
&lt;blockquote&gt;
&lt;p&gt;Alors… on essaie ?&lt;&#x2F;p&gt;
&lt;&#x2F;blockquote&gt;
&lt;h3 id=&quot;faire-une-lettre-avec-en-tete-svg-parametrable&quot;&gt;Faire une lettre avec en-tête SVG paramétrable&lt;&#x2F;h3&gt;
&lt;p&gt;Je suis en pleine recherche d’emploi.&lt;&#x2F;p&gt;
&lt;p&gt;Mon CV est fait avec Inkscape (l’équivalent libre d’Illustrator), ce qui me donne un contrôle total sur la mise en forme.&lt;br &#x2F;&gt;
Mais…&lt;&#x2F;p&gt;
&lt;ul&gt;
&lt;li&gt;On me conseille souvent d’adapter le &lt;strong&gt;titre du CV&lt;&#x2F;strong&gt; selon le poste.&lt;&#x2F;li&gt;
&lt;li&gt;Je change parfois mon alias &lt;strong&gt;d’adresse email&lt;&#x2F;strong&gt; pour cloisoner mes usages&lt;&#x2F;li&gt;
&lt;li&gt;Il m’arrive même d’utiliser une &lt;strong&gt;adresse différente&lt;&#x2F;strong&gt;, (quand j’ai de la famille proche) selon la localisation pour augmenter mes chances de succès.&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;p&gt;Résultat :&lt;&#x2F;p&gt;
&lt;ol&gt;
&lt;li&gt;je modifie le SVG à la main (ou via des scripts) sur le CV,&lt;&#x2F;li&gt;
&lt;li&gt;j’exporte en PDF (inkscape &lt;em&gt;headless&lt;&#x2F;em&gt; ❣️),&lt;&#x2F;li&gt;
&lt;li&gt;j’ouvre inkscape pour copier l’en-tête dans libre office (et une fois sur deux, j’ai des marges blanches d’un pixel qui me dérangent),&lt;&#x2F;li&gt;
&lt;li&gt;je rédige ma lettre dans un logiciel avec la syntaxe vim,&lt;&#x2F;li&gt;
&lt;li&gt;je colle le tout dans libre office.&lt;&#x2F;li&gt;
&lt;&#x2F;ol&gt;
&lt;p&gt;Ce n’est pas (très) long. Mais c’est &lt;strong&gt;chiant&lt;&#x2F;strong&gt;, et il y a un peu de frixion quand même.&lt;&#x2F;p&gt;
&lt;p&gt;Je me suis demandé si Typst ne pouvait pas simplifier mon &lt;em&gt;workflow&lt;&#x2F;em&gt; notamment sur la lettre de motivation.&lt;&#x2F;p&gt;
&lt;p&gt;On va donc recréer mon en-tête avec Typst, en rendant les champs &lt;strong&gt;paramétrables&lt;&#x2F;strong&gt; et &lt;strong&gt;scriptables&lt;&#x2F;strong&gt;.&lt;&#x2F;p&gt;
&lt;p&gt;On part de cette en-tête :&lt;&#x2F;p&gt;
&lt;p&gt;&lt;img src=&quot;https:&#x2F;&#x2F;ced-c.github.io&#x2F;blog&#x2F;typst-lettre-avec-entete-svg&#x2F;entete.svg&quot; alt=&quot;En-tête de CV&quot; &#x2F;&gt;&lt;&#x2F;p&gt;
&lt;p&gt;Pour produire un &lt;strong&gt;PDF propre&lt;&#x2F;strong&gt;.&lt;&#x2F;p&gt;
&lt;h4 id=&quot;importer-des-paquets-et-ne-pas-pleurer&quot;&gt;Importer des paquets (et ne pas pleurer)&lt;&#x2F;h4&gt;
&lt;p&gt;À la grande différence de LaTeX, Typst utilise un gestionnaire de paquets &lt;em&gt;centralisé&lt;&#x2F;em&gt;.&lt;br &#x2F;&gt;
Et ça, c’est franchement agréable.&lt;&#x2F;p&gt;
&lt;p&gt;Ici, on a besoin de pouvoir injecter du texte dans une chaîne, un peu comme les &lt;em&gt;fstring&lt;&#x2F;em&gt; en python, ou la macro &lt;code&gt;format!()&lt;&#x2F;code&gt; en rust.&lt;&#x2F;p&gt;
&lt;p&gt;On utilise donc le paquet &lt;code&gt;oxifmt&lt;&#x2F;code&gt;.&lt;&#x2F;p&gt;
&lt;pre class=&quot;giallo&quot; style=&quot;color-scheme: light dark; color: light-dark(#24292E, #E1E4E8); background-color: light-dark(#FFFFFF, #24292E);&quot;&gt;&lt;code data-lang=&quot;typst&quot;&gt;&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#D73A49, #F97583);&quot;&gt;#&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#D73A49, #F97583);&quot;&gt;import&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032F62, #9ECBFF);&quot;&gt; &amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032F62, #9ECBFF);&quot;&gt;@preview&#x2F;oxifmt:1.0.0&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032F62, #9ECBFF);&quot;&gt;&amp;quot;&lt;&#x2F;span&gt;&lt;span&gt;:&lt;&#x2F;span&gt;&lt;span&gt; strfmt&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#6A737D, #6A737D);&quot;&gt;&#x2F;&#x2F;&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#6A737D, #6A737D);&quot;&gt; ==== Variables ====&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#D73A49, #F97583);&quot;&gt;#&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#D73A49, #F97583);&quot;&gt;let&lt;&#x2F;span&gt;&lt;span&gt; name&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#D73A49, #F97583);&quot;&gt; =&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032F62, #9ECBFF);&quot;&gt; &amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032F62, #9ECBFF);&quot;&gt;Et Cætera&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032F62, #9ECBFF);&quot;&gt;&amp;quot;&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#D73A49, #F97583);&quot;&gt;#&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#D73A49, #F97583);&quot;&gt;let&lt;&#x2F;span&gt;&lt;span&gt; address&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#D73A49, #F97583);&quot;&gt; =&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032F62, #9ECBFF);&quot;&gt; &amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032F62, #9ECBFF);&quot;&gt;123 Example Street, 00000, Utopie&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032F62, #9ECBFF);&quot;&gt;&amp;quot;&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#D73A49, #F97583);&quot;&gt;#&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#D73A49, #F97583);&quot;&gt;let&lt;&#x2F;span&gt;&lt;span&gt; phone&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#D73A49, #F97583);&quot;&gt; =&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032F62, #9ECBFF);&quot;&gt; &amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032F62, #9ECBFF);&quot;&gt;+0 123 456 789&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032F62, #9ECBFF);&quot;&gt;&amp;quot;&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#D73A49, #F97583);&quot;&gt;#&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#D73A49, #F97583);&quot;&gt;let&lt;&#x2F;span&gt;&lt;span&gt; email&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#D73A49, #F97583);&quot;&gt; =&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032F62, #9ECBFF);&quot;&gt; &amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032F62, #9ECBFF);&quot;&gt;hire.me@simplelogin.com&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032F62, #9ECBFF);&quot;&gt;&amp;quot;&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#D73A49, #F97583);&quot;&gt;#&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#D73A49, #F97583);&quot;&gt;let&lt;&#x2F;span&gt;&lt;span&gt; position_title&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#D73A49, #F97583);&quot;&gt; =&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032F62, #9ECBFF);&quot;&gt; &amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032F62, #9ECBFF);&quot;&gt;C3PO&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032F62, #9ECBFF);&quot;&gt;&amp;quot;&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#D73A49, #F97583);&quot;&gt;#&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#D73A49, #F97583);&quot;&gt;let&lt;&#x2F;span&gt;&lt;span&gt; reference_number&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#D73A49, #F97583);&quot;&gt; =&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032F62, #9ECBFF);&quot;&gt; &amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032F62, #9ECBFF);&quot;&gt;2026-newGalaxy&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032F62, #9ECBFF);&quot;&gt;&amp;quot;&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;&lt;&#x2F;code&gt;&lt;&#x2F;pre&gt;&lt;h4 id=&quot;modifier-dynamiquement-le-svg&quot;&gt;Modifier dynamiquement le SVG&lt;&#x2F;h4&gt;
&lt;p&gt;On importe ensuite le SVG et on remplace les champs à la volée :&lt;&#x2F;p&gt;
&lt;pre class=&quot;giallo&quot; style=&quot;color-scheme: light dark; color: light-dark(#24292E, #E1E4E8); background-color: light-dark(#FFFFFF, #24292E);&quot;&gt;&lt;code data-lang=&quot;typst&quot;&gt;&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#D73A49, #F97583);&quot;&gt;#&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#D73A49, #F97583);&quot;&gt;let&lt;&#x2F;span&gt;&lt;span&gt; svg_header&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#D73A49, #F97583);&quot;&gt; =&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#6F42C1, #B392F0);&quot;&gt; strfmt&lt;&#x2F;span&gt;&lt;span&gt;(&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#6F42C1, #B392F0);&quot;&gt; read&lt;&#x2F;span&gt;&lt;span&gt;(&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032F62, #9ECBFF);&quot;&gt;&amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032F62, #9ECBFF);&quot;&gt;entete.svg&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032F62, #9ECBFF);&quot;&gt;&amp;quot;&lt;&#x2F;span&gt;&lt;span&gt;)&lt;&#x2F;span&gt;&lt;span&gt;,&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#E36209, #FFAB70);&quot;&gt; name&lt;&#x2F;span&gt;&lt;span&gt;:&lt;&#x2F;span&gt;&lt;span&gt; name&lt;&#x2F;span&gt;&lt;span&gt;,&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#E36209, #FFAB70);&quot;&gt; address&lt;&#x2F;span&gt;&lt;span&gt;:&lt;&#x2F;span&gt;&lt;span&gt; address&lt;&#x2F;span&gt;&lt;span&gt;,&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#E36209, #FFAB70);&quot;&gt; phone&lt;&#x2F;span&gt;&lt;span&gt;:&lt;&#x2F;span&gt;&lt;span&gt; phone&lt;&#x2F;span&gt;&lt;span&gt;,&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#E36209, #FFAB70);&quot;&gt; position_title&lt;&#x2F;span&gt;&lt;span&gt;:&lt;&#x2F;span&gt;&lt;span&gt; position_title&lt;&#x2F;span&gt;&lt;span&gt;,&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#E36209, #FFAB70);&quot;&gt; email&lt;&#x2F;span&gt;&lt;span&gt;:&lt;&#x2F;span&gt;&lt;span&gt; email&lt;&#x2F;span&gt;&lt;span&gt;,&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;)&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;&lt;&#x2F;code&gt;&lt;&#x2F;pre&gt;&lt;h4 id=&quot;definir-le-document-et-l-en-tete&quot;&gt;Définir le document et l’en-tête&lt;&#x2F;h4&gt;
&lt;p&gt;On configure ensuite les métadonnées, la page, les marges et l’en-tête :&lt;&#x2F;p&gt;
&lt;pre class=&quot;giallo&quot; style=&quot;color-scheme: light dark; color: light-dark(#24292E, #E1E4E8); background-color: light-dark(#FFFFFF, #24292E);&quot;&gt;&lt;code data-lang=&quot;typst&quot;&gt;&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#D73A49, #F97583);&quot;&gt;#&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#D73A49, #F97583);&quot;&gt;set&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#6F42C1, #B392F0);&quot;&gt; document&lt;&#x2F;span&gt;&lt;span&gt;(&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#E36209, #FFAB70);&quot;&gt; title&lt;&#x2F;span&gt;&lt;span&gt;:&lt;&#x2F;span&gt;&lt;span&gt; name&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#D73A49, #F97583);&quot;&gt; +&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032F62, #9ECBFF);&quot;&gt; &amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032F62, #9ECBFF);&quot;&gt; — Lettre de Motivation&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032F62, #9ECBFF);&quot;&gt;&amp;quot;&lt;&#x2F;span&gt;&lt;span&gt;,&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#E36209, #FFAB70);&quot;&gt; author&lt;&#x2F;span&gt;&lt;span&gt;:&lt;&#x2F;span&gt;&lt;span&gt; name&lt;&#x2F;span&gt;&lt;span&gt;,&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;)&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#D73A49, #F97583);&quot;&gt;#&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#D73A49, #F97583);&quot;&gt;let&lt;&#x2F;span&gt;&lt;span&gt; page_width&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#D73A49, #F97583);&quot;&gt; =&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#005CC5, #79B8FF);&quot;&gt; 210mm&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#D73A49, #F97583);&quot;&gt;#&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#D73A49, #F97583);&quot;&gt;set&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#6F42C1, #B392F0);&quot;&gt; page&lt;&#x2F;span&gt;&lt;span&gt;(&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#E36209, #FFAB70);&quot;&gt; paper&lt;&#x2F;span&gt;&lt;span&gt;:&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032F62, #9ECBFF);&quot;&gt; &amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032F62, #9ECBFF);&quot;&gt;a4&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032F62, #9ECBFF);&quot;&gt;&amp;quot;&lt;&#x2F;span&gt;&lt;span&gt;,&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#E36209, #FFAB70);&quot;&gt; margin&lt;&#x2F;span&gt;&lt;span&gt;:&lt;&#x2F;span&gt;&lt;span&gt; (&lt;&#x2F;span&gt;&lt;span&gt;top&lt;&#x2F;span&gt;&lt;span&gt;:&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#005CC5, #79B8FF);&quot;&gt; 46mm&lt;&#x2F;span&gt;&lt;span&gt;,&lt;&#x2F;span&gt;&lt;span&gt; bottom&lt;&#x2F;span&gt;&lt;span&gt;:&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#005CC5, #79B8FF);&quot;&gt; 20mm&lt;&#x2F;span&gt;&lt;span&gt;,&lt;&#x2F;span&gt;&lt;span&gt; x&lt;&#x2F;span&gt;&lt;span&gt;:&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#005CC5, #79B8FF);&quot;&gt; 10mm&lt;&#x2F;span&gt;&lt;span&gt;)&lt;&#x2F;span&gt;&lt;span&gt;,&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#E36209, #FFAB70);&quot;&gt; header-ascent&lt;&#x2F;span&gt;&lt;span&gt;:&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#005CC5, #79B8FF);&quot;&gt; 0%&lt;&#x2F;span&gt;&lt;span&gt;,&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#E36209, #FFAB70);&quot;&gt; header&lt;&#x2F;span&gt;&lt;span&gt;:&lt;&#x2F;span&gt;&lt;span&gt; [&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#6F42C1, #B392F0);&quot;&gt; #&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#6F42C1, #B392F0);&quot;&gt;block&lt;&#x2F;span&gt;&lt;span&gt;(&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#E36209, #FFAB70);&quot;&gt; width&lt;&#x2F;span&gt;&lt;span&gt;:&lt;&#x2F;span&gt;&lt;span&gt; page_width&lt;&#x2F;span&gt;&lt;span&gt;,&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#E36209, #FFAB70);&quot;&gt; height&lt;&#x2F;span&gt;&lt;span&gt;:&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#005CC5, #79B8FF);&quot;&gt; 46mm&lt;&#x2F;span&gt;&lt;span&gt;,&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#E36209, #FFAB70);&quot;&gt; inset&lt;&#x2F;span&gt;&lt;span&gt;:&lt;&#x2F;span&gt;&lt;span&gt; (&lt;&#x2F;span&gt;&lt;span&gt;left&lt;&#x2F;span&gt;&lt;span&gt;:&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#D73A49, #F97583);&quot;&gt; -&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#005CC5, #79B8FF);&quot;&gt;1cm&lt;&#x2F;span&gt;&lt;span&gt;,&lt;&#x2F;span&gt;&lt;span&gt; right&lt;&#x2F;span&gt;&lt;span&gt;:&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#D73A49, #F97583);&quot;&gt; -&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#005CC5, #79B8FF);&quot;&gt;1cm&lt;&#x2F;span&gt;&lt;span&gt;)&lt;&#x2F;span&gt;&lt;span&gt;,&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt; {&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#6F42C1, #B392F0);&quot;&gt; image&lt;&#x2F;span&gt;&lt;span&gt;(&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#6F42C1, #B392F0);&quot;&gt;bytes&lt;&#x2F;span&gt;&lt;span&gt;(&lt;&#x2F;span&gt;&lt;span&gt;svg_header&lt;&#x2F;span&gt;&lt;span&gt;)&lt;&#x2F;span&gt;&lt;span&gt;)&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt; }&lt;&#x2F;span&gt;&lt;span&gt;,&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt; )&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt; ]&lt;&#x2F;span&gt;&lt;span&gt;,&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;)&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;&lt;&#x2F;code&gt;&lt;&#x2F;pre&gt;
&lt;p&gt;Afficher proprement l’en-tête, c’est la partie sur laquelle j’ai le plus tâtonné.
Idéalement, j’aimerais une fonction qui calcule automatiquement la hauteur de l’en-tête de façon dynamique, de sorte à ne
mettre aucune valeur fixe, mais je n’ai pas trouvé.
Si vous savez faire mieux : écrivez-moi &lt;a rel=&quot;noopener external&quot; target=&quot;_blank&quot; href=&quot;https:&#x2F;&#x2F;diaspodon.fr&#x2F;@CedC&quot;&gt;sur Mastodon&lt;&#x2F;a&gt;.&lt;&#x2F;p&gt;
&lt;h4 id=&quot;redaction&quot;&gt;Rédaction&lt;&#x2F;h4&gt;
&lt;pre class=&quot;giallo&quot; style=&quot;color-scheme: light dark; color: light-dark(#24292E, #E1E4E8); background-color: light-dark(#FFFFFF, #24292E);&quot;&gt;&lt;code data-lang=&quot;typst&quot;&gt;&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#D73A49, #F97583);&quot;&gt;#&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#D73A49, #F97583);&quot;&gt;set&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#6F42C1, #B392F0);&quot;&gt; text&lt;&#x2F;span&gt;&lt;span&gt;(&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#E36209, #FFAB70);&quot;&gt;font&lt;&#x2F;span&gt;&lt;span&gt;:&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032F62, #9ECBFF);&quot;&gt; &amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032F62, #9ECBFF);&quot;&gt;Arial&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032F62, #9ECBFF);&quot;&gt;&amp;quot;&lt;&#x2F;span&gt;&lt;span&gt;,&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#E36209, #FFAB70);&quot;&gt; size&lt;&#x2F;span&gt;&lt;span&gt;:&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#005CC5, #79B8FF);&quot;&gt; 12pt&lt;&#x2F;span&gt;&lt;span&gt;)&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#D73A49, #F97583);&quot;&gt;#&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#D73A49, #F97583);&quot;&gt;set&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#6F42C1, #B392F0);&quot;&gt; par&lt;&#x2F;span&gt;&lt;span&gt;(&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#E36209, #FFAB70);&quot;&gt;justify&lt;&#x2F;span&gt;&lt;span&gt;:&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#005CC5, #79B8FF);&quot;&gt; true&lt;&#x2F;span&gt;&lt;span&gt;)&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#6F42C1, #B392F0);&quot;&gt;#&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#6F42C1, #B392F0);&quot;&gt;text&lt;&#x2F;span&gt;&lt;span&gt;(&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#6F42C1, #B392F0);&quot;&gt;strong&lt;&#x2F;span&gt;&lt;span&gt;(&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032F62, #9ECBFF);&quot;&gt;&amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032F62, #9ECBFF);&quot;&gt;Objet&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032F62, #9ECBFF);&quot;&gt;&amp;quot;&lt;&#x2F;span&gt;&lt;span&gt;)&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#D73A49, #F97583);&quot;&gt; +&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032F62, #9ECBFF);&quot;&gt; &amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032F62, #9ECBFF);&quot;&gt; : Candidature au poste &lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032F62, #9ECBFF);&quot;&gt;&amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#D73A49, #F97583);&quot;&gt; +&lt;&#x2F;span&gt;&lt;span&gt; position_title&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#D73A49, #F97583);&quot;&gt; +&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032F62, #9ECBFF);&quot;&gt; &amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032F62, #9ECBFF);&quot;&gt; – Ref. &lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032F62, #9ECBFF);&quot;&gt;&amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#D73A49, #F97583);&quot;&gt; +&lt;&#x2F;span&gt;&lt;span&gt; reference_number&lt;&#x2F;span&gt;&lt;span&gt;)&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;Madame, Monsieur,&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#6F42C1, #B392F0);&quot;&gt;#&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#6F42C1, #B392F0);&quot;&gt;lorem&lt;&#x2F;span&gt;&lt;span&gt;(&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#005CC5, #79B8FF);&quot;&gt;120&lt;&#x2F;span&gt;&lt;span&gt;)&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#6F42C1, #B392F0);&quot;&gt;#&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#6F42C1, #B392F0);&quot;&gt;lorem&lt;&#x2F;span&gt;&lt;span&gt;(&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#005CC5, #79B8FF);&quot;&gt;130&lt;&#x2F;span&gt;&lt;span&gt;)&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#6F42C1, #B392F0);&quot;&gt;#&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#6F42C1, #B392F0);&quot;&gt;lorem&lt;&#x2F;span&gt;&lt;span&gt;(&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#005CC5, #79B8FF);&quot;&gt;100&lt;&#x2F;span&gt;&lt;span&gt;)&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;Bien cordialement,&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#6F42C1, #B392F0);&quot;&gt;#&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#6F42C1, #B392F0);&quot;&gt;text&lt;&#x2F;span&gt;&lt;span&gt;(&lt;&#x2F;span&gt;&lt;span&gt;name&lt;&#x2F;span&gt;&lt;span&gt;)&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;&lt;&#x2F;code&gt;&lt;&#x2F;pre&gt;
&lt;p&gt;J’ai mis trois paragraphes remplis par la fonction &lt;code&gt;lorem&lt;&#x2F;code&gt; ici pour comblé, mais c’est là qu’on rédige avec une syntaxe proche de markdown.&lt;&#x2F;p&gt;
&lt;h4 id=&quot;compilation&quot;&gt;Compilation&lt;&#x2F;h4&gt;
&lt;p&gt;Une fois la lettre rédigée, on génère le PDF en « compilant » &lt;a href=&quot;https:&#x2F;&#x2F;ced-c.github.io&#x2F;blog&#x2F;typst-lettre-avec-entete-svg&#x2F;test.typ&quot;&gt;notre fichier typst&lt;&#x2F;a&gt; (&lt;code&gt;.typ&lt;&#x2F;code&gt;).&lt;&#x2F;p&gt;
&lt;pre class=&quot;giallo&quot; style=&quot;color-scheme: light dark; color: light-dark(#24292E, #E1E4E8); background-color: light-dark(#FFFFFF, #24292E);&quot;&gt;&lt;code data-lang=&quot;shellscript&quot;&gt;&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#6F42C1, #B392F0);&quot;&gt;typst&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032F62, #9ECBFF);&quot;&gt; compile&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032F62, #9ECBFF);&quot;&gt; test.typ&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;&lt;&#x2F;code&gt;&lt;&#x2F;pre&gt;
&lt;p&gt;✨Et pouf✨ &lt;a href=&quot;https:&#x2F;&#x2F;ced-c.github.io&#x2F;blog&#x2F;typst-lettre-avec-entete-svg&#x2F;test.pdf&quot;&gt;un PDF propre&lt;&#x2F;a&gt;, cohérent, automatisable.&lt;&#x2F;p&gt;
&lt;p&gt;Je peux maintenant arrêter de procrastiner et écrire mes lettres de motivations, Typst ne fait pas (encore) ça.&lt;&#x2F;p&gt;
</content>
</entry>
<entry>
<title>Pourquoi se concentrer est devenu un acte militant</title>
<link href="https://ced-c.github.io/blog/pourquoi-se-concentrer-est-devenu-un-acte-militant/"/>
<updated>2025-12-23T00:00:00+0000</updated>
<id>https://ced-c.github.io/blog/pourquoi-se-concentrer-est-devenu-un-acte-militant/</id>
<content type="html">&lt;p&gt;Nous sommes au début des années 2000.&lt;br &#x2F;&gt;
Les GAFAM —Google, Amazon, Facebook (devenu Meta), Apple et Microsoft— se développent à grande vitesse. Leur promesse est simple : rendre le numérique plus pratique, plus accessible, connecter le monde pour se comprendre. En arrière-plan, un autre modèle s’installe, plus discret : capter notre attention pour la transformer en valeur économique.&lt;&#x2F;p&gt;
&lt;p&gt;Vingt ans plus tard, presque tout le monde s’y est mis.&lt;&#x2F;p&gt;
&lt;p&gt;Aux GAFAM se sont ajoutées les industries du divertissement : plateformes de streaming, jeux vidéo, réseaux sociaux, et ce que j’appelle désormais le &lt;em&gt;néscroll&lt;&#x2F;em&gt; —ce défilement sans fin qui ne vise ni l’information ni le plaisir, mais l’occupation permanente de l’esprit.&lt;br &#x2F;&gt;
Toutes se disputent la même ressource limitée : notre attention. Et toutes embauchent les meilleurs ingénieurs, designers et chercheurs pour l’exploiter.&lt;&#x2F;p&gt;
&lt;p&gt;Nous sommes entrés dans ce que Shoshana Zuboff appelle le &lt;em&gt;&lt;a rel=&quot;noopener external&quot; target=&quot;_blank&quot; href=&quot;https:&#x2F;&#x2F;fr.wikipedia.org&#x2F;wiki&#x2F;%C3%89conomie_de_la_surveillance&quot;&gt;capitalisme de surveillance&lt;&#x2F;a&gt;&lt;&#x2F;em&gt;. Le terme est politiquement utile, car engageant, mais je lui préfère ici celui &lt;strong&gt;d’économie de l’attention&lt;&#x2F;strong&gt;.&lt;br &#x2F;&gt;
Parce qu’au fond, c’est bien de cela qu’il s’agit : non pas seulement de données, mais du &lt;em&gt;vol silencieux de notre capacité à nous concentrer, réfléchir, prendre du recul&lt;&#x2F;em&gt;.&lt;&#x2F;p&gt;
&lt;h2 id=&quot;une-sollicitation-permanente-de-l-attention&quot;&gt;Une sollicitation permanente de l’attention&lt;&#x2F;h2&gt;
&lt;p&gt;L’économie de l’attention repose sur un principe simple : maximiser le temps d’engagement.&lt;br &#x2F;&gt;
Plus on reste longtemps sur une plateforme, plus elle génère de la valeur —publicité, données, influence.&lt;&#x2F;p&gt;
&lt;p&gt;Pour y parvenir, les contenus sont conçus pour être rapides, émotionnels et addictifs : notifications constantes, défilement infini, vidéos courtes, récompenses aléatoires. Tout est pensé pour court-circuiter notre attention volontaire et stimuler nos réflexes.&lt;&#x2F;p&gt;
&lt;p&gt;Gloria Mark (2023) aurait mesuré une diminution drastique du temps moyen de concentration soutenue au travail, directement corrélée à l’omniprésence des outils numériques ; si notre attention peut être entrainée, sans cesse interrompu, le cerveau s’adapte et devient performant pour le zapping, mais perd en capacité de concentration prolongée. On pert alors la capacité d’effort cognitif et de tolérance à l’ennui —des compétences pourtant centrales pour apprendre, réfléchir et créer.&lt;&#x2F;p&gt;
&lt;h2 id=&quot;glissement-personnel&quot;&gt;Glissement personnel&lt;&#x2F;h2&gt;
&lt;p&gt;J’ai été diagnostiqué enfant avec un trouble de l’attention, mais faute de personnel spécialisé là où je vivais, il n’a jamais été pris en charge.&lt;br &#x2F;&gt;
Comme beaucoup, j’ai fait sans. J’ai tenté de masquer ce trouble, d’en limiter les effets, de le contourner par différentes techniques, avec des succès variables selon les périodes.&lt;&#x2F;p&gt;
&lt;p&gt;Et pendant longtemps, j’ai cru que j’avais trouvé la solution.&lt;&#x2F;p&gt;
&lt;p&gt;Toujours doté d’une forte curiosité, j’ai commencé, vers 2019 à me documenter sur une multitude de sujets qui m’intéressaient. Très vite, c’est devenu une &lt;em&gt;drogue respectable&lt;&#x2F;em&gt;.&lt;br &#x2F;&gt;
Sous prétexte que j’avais besoin d’en savoir toujours plus, je réduisais au minimum les temps morts. Une vidéo ou un podcast m’accompagnait partout : en cuisinant —moment qui était pourtant pour moi un sas de décompression après le travail— dans la voiture, dans les transports, et parfois même sous la douche.&lt;&#x2F;p&gt;
&lt;p&gt;J’ai toujours été allergique à l’ennui.
Le numérique m’avait offert la solution parfaite : une infinité de sujets passionnants, toujours disponibles, et moins culpabilisant que la switch.&lt;&#x2F;p&gt;
&lt;p&gt;Puis, presque sans m’en rendre compte, quelque chose a changé.&lt;&#x2F;p&gt;
&lt;p&gt;Mes performances au travail ont diminué. Je m’investissais moins à la maison. Je préférais écouter plutôt que discuter.&lt;br &#x2F;&gt;
Inconsciemment, je fuyais même certaines conversations ! Je n’étais plus en train d’apprendre, je consommais du contenu.&lt;br &#x2F;&gt;
Et le trouble que je pensais maîtriser avait repris le dessus, amplifié par un environnement conçu pour l’exacerber.&lt;&#x2F;p&gt;
&lt;h2 id=&quot;de-l-experience-individuelle-a-la-conclusion-collective&quot;&gt;De l’expérience individuelle à la conclusion collective&lt;&#x2F;h2&gt;
&lt;p&gt;Ces dernières années, j’ai vu fleurir sur le web un nombre croissant de personnes se reconnaissant dans le TDAH, avec un certain scepticisme initial : ce nombre ne &lt;em&gt;pouvait pas&lt;&#x2F;em&gt; avoir autant augmenté. C’était forcément une nouvelle génération peu encline à l’effort (#vieuxcon). J’avais tort. Si les prédispositions existent, l’environnement joue un rôle tout aussi déterminant.&lt;&#x2F;p&gt;
&lt;p&gt;L’économie de l’attention crée précisément un &lt;strong&gt;environnement cognitif pathogène&lt;&#x2F;strong&gt;, qui reproduit et amplifie des comportements associés au TDAH : impulsivité, recherche de nouveauté, difficulté à soutenir l’effort, fuite de l’ennui.&lt;&#x2F;p&gt;
&lt;p&gt;Le problème n’était pas seulement individuel. Il est &lt;em&gt;systémique&lt;&#x2F;em&gt;. Et quand je vois les dégâts à l’âge adulte, je m’inquiète pour les générations à venir qui grandissent avec ce paradigme.&lt;br &#x2F;&gt;
Des travaux publiés dans &lt;em&gt;JAMA Pediatrics&lt;&#x2F;em&gt; (Christakis et al., 2018) établissent un lien clair entre exposition précoce aux écrans rapides et troubles de l’attention ultérieurs.&lt;&#x2F;p&gt;
&lt;p&gt;L’environnement numérique dominant est délétère pour notre attention.&lt;&#x2F;p&gt;
&lt;h2 id=&quot;reprendre-la-main&quot;&gt;Reprendre la main&lt;&#x2F;h2&gt;
&lt;p&gt;Cette prise de conscience mène à une conclusion simple : ce n’est pas une fatalité.&lt;&#x2F;p&gt;
&lt;p&gt;L’économie de l’attention agit comme un courant puissant. Il est difficile de lutter à contre-courant, mais il est encore possible de &lt;em&gt;sortir de l’eau&lt;&#x2F;em&gt;.&lt;&#x2F;p&gt;
&lt;p&gt;Reprendre le contrôle de son attention implique de renoncer à l’idée que l’esprit doit être occupé en permanence.&lt;br &#x2F;&gt;
Accepter les pauses, le silence, voire l’ennui —aussi inconfortable soit-il au début— devient un acte de résistance.&lt;&#x2F;p&gt;
&lt;p&gt;Et surtout, comprendre que pour gagner la bataille de l’attention, il ne faut pas combattre sur le terrain choisi par l’adversaire.&lt;&#x2F;p&gt;
&lt;p&gt;J’ai supprimé l’accès à YouTube sur mon téléphone, ainsi que mes abonnements aux podcasts.&lt;br &#x2F;&gt;
Désormais, je consulte les contenus quand je le décide, dans un temps dédié.
Les sujets ne viennent plus à moi : c’est moi qui vais vers eux, quand je le choisi, en maitrisant le temps que j’y passe.&lt;&#x2F;p&gt;
&lt;p&gt;J’ai découvert que c’est souvent quand on n’a pas de stimulation extérieur (sur mon vélo, &lt;em&gt;sans&lt;&#x2F;em&gt; écouteur par exemple), que surgissent les bonnes idées.&lt;br &#x2F;&gt;
C’est là qu’on prend du recul, qu’on anticipe, qu’on pense tout simplement.&lt;&#x2F;p&gt;
&lt;p&gt;Ayant connu l’internet des années 2000 —celui des blogs et des forums— et ayant fui le monde réel comme bon nombre d’adolescent, à cause de harcèlement, mais aussi d’un manque de personnes possédants mes passions de geeks, j’avais du mal à envisager une coupure totale avec le numérique. Mais enfait la réponse n’est peut-être pas aussi radicale et peut-être qu’elle était devant moi depuis des années : la déGAFAMisation.&lt;&#x2F;p&gt;
&lt;p&gt;On savait déjà que les GAFAM était mauvais. Pas par malveillance individuelle, mais par logique économique, et la meilleure façon de lutter collectivement, c’est de &lt;strong&gt;ne pas utiliser leurs services&lt;&#x2F;strong&gt;. Framasoft avait commencé le travail avec sa campagne &lt;a rel=&quot;noopener external&quot; target=&quot;_blank&quot; href=&quot;https:&#x2F;&#x2F;degooglisons-internet.org&#x2F;&quot;&gt;dégooglisons internet&lt;&#x2F;a&gt;.
J’avais commencé ma déGAFAMisation il y a longtemps, &lt;em&gt;remplaçant&lt;&#x2F;em&gt; certains services : MacOS&#x2F;Windows → Linux, Gmail → &lt;a rel=&quot;noopener external&quot; target=&quot;_blank&quot; href=&quot;https:&#x2F;&#x2F;proton.me&#x2F;mail&quot;&gt;Proton Mail&lt;&#x2F;a&gt;, Amazon → &lt;a rel=&quot;noopener external&quot; target=&quot;_blank&quot; href=&quot;https:&#x2F;&#x2F;www.fnac.com&#x2F;&quot;&gt;FNAC&lt;&#x2F;a&gt; ; j’allais devoir à présent aller plus loin. J’ai maintenant de bonnes raisons pour &lt;em&gt;me passer&lt;&#x2F;em&gt; de certains services. Perdre en facilité, gagner en liberté, en indépendance, en clarté mentale.&lt;&#x2F;p&gt;
&lt;h2 id=&quot;interoperabilite-ou-enfermement&quot;&gt;Interopérabilité ou enfermement&lt;&#x2F;h2&gt;
&lt;p&gt;Avec l’emmerdification croissante des plateformes, une chose devient évidente : l’interopérabilité n’a jamais été aussi importante. Des protocoles ouverts, standard, libres.&lt;&#x2F;p&gt;
&lt;p&gt;La décentralisation des serveurs, est une première étape importante, mais ce n’est peut-être que le premiers pas. Je rêve du jour où les protocoles et algorithmes seraient modulaire : être capable de choisir son algorithme de recommandation. Être capable de l’intégrer sur des plateformes comme Mastodon, ou Peertube. En choisir un différent pour le perso et pour le travail. Je ne sais pas si certains y travaillent aujourd’hui, j’espère.&lt;&#x2F;p&gt;
&lt;h2 id=&quot;conclusion&quot;&gt;Conclusion&lt;&#x2F;h2&gt;
&lt;p&gt;Aujourd’hui, j’ai retrouvé suffisamment d’attention pour enfin sortir ce billet de ma tête.&lt;br &#x2F;&gt;
Je ne prétends pas que mes solutions fonctionnent pour tout le monde, mais ça peut être des pistes intéressante dans le voyage personnel de chacun. De mon côté, je compte pousser l’expérience encore plus loin, en tentant de trouver des alternatives au smartphone, mais ce sera pour une prochaine fois, quand j’aurai pris davantage de recul.&lt;&#x2F;p&gt;
&lt;h3 id=&quot;a-retenir&quot;&gt;À retenir&lt;&#x2F;h3&gt;
&lt;ul&gt;
&lt;li&gt;Se séparer des plateformes qui se battent pour notre attention&lt;&#x2F;li&gt;
&lt;li&gt;Retrouver une temporalité numérique choisie, et non subie&lt;&#x2F;li&gt;
&lt;li&gt;Accepter de perdre en facilité pour gagner en liberté&lt;&#x2F;li&gt;
&lt;li&gt;Miser sur l’interopérabilité pour ne pas se retrouver piégé&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;p&gt;Et vous ?&lt;br &#x2F;&gt;
Quelles sont vos techniques pour ne pas vous laisser aspirer par l’économie de l’attention ?&lt;&#x2F;p&gt;
</content>
</entry>
<entry>
<title>FrameWork 13 : deux ans plus tard</title>
<link href="https://ced-c.github.io/blog/2-ans-framework13/"/>
<updated>2025-09-09T00:00:00+0000</updated>
<id>https://ced-c.github.io/blog/2-ans-framework13/</id>