···254254255255* [Préparez et donnez votre première conférence (quand ce n’est pas votre métier)](https://votre-premiere-conference.fr/) : ce livre de Pascal Martin donne beaucoup de très bon conseils. L'envoi de la proposition à un CFP fait l'objet d'un chapitre complet.
256256* [Proposer une conférence – la réponse au CFP](https://devfesttoulouse.fr/2025/03/18/proposer-une-conference-le-cfp/) : un chouette billet de blog écrit par Sylvain Wallez ; on y retrouve des conseils similaires.
257257-* [Comment écrire un CFP que les conférences tech ne peuvent pas refuser !](https://youtu.be/bKuVZYQnnX4) : une vidéo intéressante avec des tips supplémentaires, et des conseils assez concrets
258258-* [Comment être refusé à coup sûr à un CFP ?](https://www.webofmars.com/blog/2025-10-29_comment-etre-refuser-a-un-cfp/) : une jolie liste de pièges à éviter.257257+* [Comment écrire un CFP que les conférences tech ne peuvent pas refuser !](https://youtu.be/bKuVZYQnnX4) : une vidéo intéressante avec des tips supplémentaires, et des conseils assez concrets
258258+* [Comment être refusé à coup sûr à un CFP ?](https://www.webofmars.com/blog/2025-10-29_comment-etre-refuser-a-un-cfp/) : une jolie liste de pièges à éviter.
+19-19
content/posts/2025/2025-07-11-md-to-docx/index.md
···19192020## _pandoc_ et _markdown_
21212222-_pandoc_ est un outil de conversion de documents. Il gère de nombreux formats en entrée et en sortie, dont le _markdown_ et le _docx_ !
2222+_pandoc_ est un outil de conversion de documents. Il gère de nombreux formats en entrée et en sortie, dont le _markdown_ et le _docx_ !
23232424-Après avoir installé l'outil, on peut convertir des documents. L'option `-o` permet de préciser le fichier de sortie, le format est détecté à partir de l'extension du fichier :
2424+Après avoir installé l'outil, on peut convertir des documents. L'option `-o` permet de préciser le fichier de sortie, le format est détecté à partir de l'extension du fichier :
25252626```shell
2727# générer un doc html
···33333434La génération par défaut en format _docx_ est tout à fait correcte et prend en compte les différents niveaux de titre, la gestion du gras et de l'italique, le code et les blocs de citation, ainsi que les listes, tableaux et images. Bref, tout ce qu'on peut basiquement faire en _markdown_.
35353636-Le markdown suivant :
3636+Le markdown suivant :
37373838~~~markdown
3939# Content
···82828383est transformé en _docx_ avec la commande `pandoc sample.md -o sample.docx`
84848585-Le résultat n'est pas des plus stylés, mais est déjà plutôt pas mal, on voit bien que markdown est bien supporté :
8585+Le résultat n'est pas des plus stylés, mais est déjà plutôt pas mal, on voit bien que markdown est bien supporté :
86868787
8888[sample.docx](sample.docx)
···9999100100À noter que le code source inline est représenté par le style de caractères _Verbatim Char_, et le code source en blocs prendra le style de paragraphe _Source Code_ (qui n'est pas créé par défaut dans le document de référence).
101101102102-Pour redimensionner les images, il est aussi possible de préciser leur taille en attribut :
102102+Pour redimensionner les images, il est aussi possible de préciser leur taille en attribut :
103103104104```markdown
105105{ width=50% }
106106```
107107108108-Une fois ce document personnalisé, on génére les fichiers _docx_ en utilisant l'option `--reference-doc=custom-reference.docx` :
108108+Une fois ce document personnalisé, on génére les fichiers _docx_ en utilisant l'option `--reference-doc=custom-reference.docx` :
109109110110```shell
111111pandoc sample.md -o sample-with-style.docx --reference-doc=custom-reference.docx
···116116117117## Pré-processing
118118119119-L'utilisation du format texte markdown étant donc possible, je souhaitais pouvoir pré-processer mes fichiers markdown pour :
119119+L'utilisation du format texte markdown étant donc possible, je souhaitais pouvoir pré-processer mes fichiers markdown pour :
120120121121* inclure du code source réel dans le document
122122* générer mes diagrammes au format drawio en png et les inclure dans le document généré
···127127128128Il est possible avec _pandoc_ d'exécuter des filtres pendant l'exécution de la transformation. L'utilisation des filtres n'est cependant pas très bien documentée, et s'appuie sur la manipulation d'un AST au format JSON. Cette approche, bien que plutôt propre, me semblait quand même compliquée pour simplement inclure du code dans mes fichiers.
129129130130-J'ai donc trouvé une autre solution plus simple : dans mes fichiers _markdown_, j'utilise une syntaxe de _Commentaires_ pour recréer une espèce de macro, que je fais pré-processer par un script shell.
130130+J'ai donc trouvé une autre solution plus simple : dans mes fichiers _markdown_, j'utilise une syntaxe de _Commentaires_ pour recréer une espèce de macro, que je fais pré-processer par un script shell.
131131132132-La macro d'inclusion de code que j'ai utilisée est celle-ci :
132132+La macro d'inclusion de code que j'ai utilisée est celle-ci :
133133134134```markdown
135135[//]: # (INCLUDECODE FICHIER_A_INCLURE)
···139139J'ai alors simplement utilisé un commentaire `INCLUDECODE` devant être suivi du nom du fichier à inclure.
140140141141Pour pré-processer ces _macros_, j'utilise la puissance du shell et le fait que _pandoc_ accepte le contenu du document à transformer sur `STDIN`.
142142-Les 2 commandes suivantes ont un comportement identique (au delta de l'exécution d'un `cat` en plus) :
142142+Les 2 commandes suivantes ont un comportement identique (au delta de l'exécution d'un `cat` en plus) :
143143144144```shell
145145# direct
···149149$ cat sample.md | pandoc -o sample.docx
150150```
151151152152-Avec ce fonctionnement, il est facile de glisser un script shell entre deux :
152152+Avec ce fonctionnement, il est facile de glisser un script shell entre deux :
153153154154```shell
155155$ cat sample.md |
···157157 pandoc -o sample.docx
158158```
159159160160-Le script shell intercepte les lignes correspondant à la macro et insère le contenu du fichier référencé :
160160+Le script shell intercepte les lignes correspondant à la macro et insère le contenu du fichier référencé :
161161162162```shell
163163#!/bin/bash
···191191192192### Générer des diagrammes _drawio_ et les inclure
193193194194-Pour gérer des diagrammes _drawio_ à la volée, j'ai simplement suivi le même principe : une syntaxe de type _macro_ et un script pour la traiter.
194194+Pour gérer des diagrammes _drawio_ à la volée, j'ai simplement suivi le même principe : une syntaxe de type _macro_ et un script pour la traiter.
195195196196-La macro pour extraire un diagramme est du même type :
196196+La macro pour extraire un diagramme est du même type :
197197198198```markdown
199199[//]: # (DIAGRAM FICHIER_A_INCLURE)
200200```
201201202202-Et le script est aussi similaire, il utilise le CLI de _drawio_ pour exporter le diagramme dans un `.webp`, qui est ensuite inclus dans le markdown :
202202+Et le script est aussi similaire, il utilise le CLI de _drawio_ pour exporter le diagramme dans un `.webp`, qui est ensuite inclus dans le markdown :
203203204204```shell
205205regex='\[\/\/\]: # \(DIAGRAM (.*)\)'
···227227exit 0
228228```
229229230230-J'aurais aussi pu utiliser directement une directive d'image de cette manière :
230230+J'aurais aussi pu utiliser directement une directive d'image de cette manière :
231231232232```markdown
233233
···239239240240### La commande définitive
241241242242-En cumulant tout ce qu'on a vu, la commande suivante fait l'inclusion du code, la génération des diagrammes à la volée, et la conversion en `.docx` avec un style fourni :
242242+En cumulant tout ce qu'on a vu, la commande suivante fait l'inclusion du code, la génération des diagrammes à la volée, et la conversion en `.docx` avec un style fourni :
243243244244```shell
245245$ cat sample.md |
···248248 pandoc -o sample-final.docx --reference-doc=custom-reference.docx
249249```
250250251251-Le document généré par cette commande est maintenant complet :
251251+Le document généré par cette commande est maintenant complet :
252252253253
254254[sample-final.docx](sample-final.docx)
···258258_pandoc_ permet de générer des documents Word assez propres de mon point de vue.
259259Avec un peu de travail sur la feuille de style, il est assez facile de personnaliser le rendu des documents.
260260261261-C'est d'ailleurs cette façon de générer les documents que j'ai utilisée pour écrire (et compiler) mon livre !
261261+C'est d'ailleurs cette façon de générer les documents que j'ai utilisée pour écrire (et compiler) mon livre !
262262263263En utilisant la puissance du shell, il est relativement facile de scripter l'inclusion d'éléments externes comme du code source, des diagrammes ou d'autres fichiers.
264264
+10-10
content/posts/2025/2025-07-25-split-kbd/index.md
···26262727Je vais devoir monter le clavier (les deux parties séparément), puis flasher le firmware de chaque contrôleur. Ensuite, ce sera le moment de paramétrer le mapping des touches, et aussi de (ré)apprendre à taper au clavier (ouch).
28282929-C'est parti !
2929+C'est parti !
30303131## Le kit
3232···3737Le kit contient donc les deux cartes du clavier, les switches (compatibles MX), un kit de touches, les plaques de protection du clavier avec pour chaque côté une mousse, une plaque décorative en aluminium et une base en plexi. On a aussi les câbles USB-C, les deux modules, et un peu de visserie.
38383939La carte de chaque partie du clavier contient le contrôleur déjà soudé, avec une puce RP2040 et deux ports USB-C.
4040-Ici la partie gauche du clavier :
4040+Ici la partie gauche du clavier :
41414242
4343···57575858
59596060-Cette première étape était plutôt facile, ça commence à prendre forme !
6060+Cette première étape était plutôt facile, ça commence à prendre forme !
61616262## Les switches
6363···81818282
83838484-L'étape suivante, c'est le petit module avec l'écran !
8484+L'étape suivante, c'est le petit module avec l'écran !
85858686## Le module
87878888Pour limiter les soudures, les modules sont déjà assemblés, et s'installent avec un petit cable de type _nappe_.
8989C'est un peu plus technique ici.
90909191-Un tout petit écran !
9191+Un tout petit écran !
92929393
9494
···163163164164## La suite
165165166166-Il faut maintenant que je m'habitue à deux choses : le QWERTY, qui semble quand même plus pratique pour ce type de clavier, et la disposition des touches en colonne. Mon cerveau va avoir du taf dans les prochains mois.
166166+Il faut maintenant que je m'habitue à deux choses : le QWERTY, qui semble quand même plus pratique pour ce type de clavier, et la disposition des touches en colonne. Mon cerveau va avoir du taf dans les prochains mois.
167167168168Je vais passer un peu de temps à m'entrainer sur https://www.keybr.com/.
169169170170J'ai aussi un peu galéré à trouver le bon mapping qui me permet d'avoir toutes les touches que je veux, en particulier le support des accents.
171171172172-J'en suis à une semaine d'utilisation et pour le moment, j'ai environ atteint 20% de mes capacités de frappe sur mon clavier précédent sur lequel je tape à 70 wpm avec 95% de précision. La marge de progression est énorme !
172172+J'en suis à une semaine d'utilisation et pour le moment, j'ai environ atteint 20% de mes capacités de frappe sur mon clavier précédent sur lequel je tape à 70 wpm avec 95% de précision. La marge de progression est énorme !
173173174174## Liens et références
175175176176-* https://splitkb.com/ : le site sur lequel j'ai acheté mon clavier
177177-* https://docs.splitkb.com/product-guides/halcyon-series/build-guide/introduction : la doc de montage de mon clavier
178178-* https://www.keybr.com/ : pour s'entraîner176176+* https://splitkb.com/ : le site sur lequel j'ai acheté mon clavier
177177+* https://docs.splitkb.com/product-guides/halcyon-series/build-guide/introduction : la doc de montage de mon clavier
178178+* https://www.keybr.com/ : pour s'entraîner
+35-35
content/posts/2025/2025-08-01-bilan/index.md
···27272828## Conférences et talks
29293030-Cette saison, j'ai eu le plaisir d'assister à pas mal de conférences :
3030+Cette saison, j'ai eu le plaisir d'assister à pas mal de conférences :
31313232-* Cloud Nord le 10 octobre 2024 (en tant qu'orga) ;
3333-* Clever Cloud Fest le 7 février (j'ai fait un passage express) ;
3434-* Devoxx France du 16 au 18 avril (en tant que speaker) ;
3535-* DevLille les 12 et 13 juin (en tant que speaker) ;
3232+* Cloud Nord le 10 octobre 2024 (en tant qu'orga) ;
3333+* Clever Cloud Fest le 7 février (j'ai fait un passage express) ;
3434+* Devoxx France du 16 au 18 avril (en tant que speaker) ;
3535+* DevLille les 12 et 13 juin (en tant que speaker) ;
3636* Sunny-Tech les 26 et 27 juin (en tant que speaker).
37373838Ça représente un total de neuf jours en conf, c'est pas mal du tout.
···42424343### Mes talks
44444545-Pour la saison, j'avais travaillé trois sujets de talk :
4545+Pour la saison, j'avais travaillé trois sujets de talk :
46464747-* "OpenTofu - 2 ans après" : pour dresser le bilan après le _drama_ et le _fork_ ;
4848-* ["Rebase d'image Docker/OCI avec crane"](talks/talk-rebase-crane) : une démo technique d'un concept qui me travaillait depuis près de deux ans ;
4949-* ["Let's play Factorio"](talks/talk-lets-play-factorio) : un talk de vulgarisation fun, dans un de mes jeux préférés.
4747+* "OpenTofu - 2 ans après" : pour dresser le bilan après le _drama_ et le _fork_ ;
4848+* ["Rebase d'image Docker/OCI avec crane"](talks/talk-rebase-crane) : une démo technique d'un concept qui me travaillait depuis près de deux ans ;
4949+* ["Let's play Factorio"](talks/talk-lets-play-factorio) : un talk de vulgarisation fun, dans un de mes jeux préférés.
50505151-J'ai soumis ces talks un peu partout, et j'ai eu la chance de pouvoir donner 3 sessions :
5151+J'ai soumis ces talks un peu partout, et j'ai eu la chance de pouvoir donner 3 sessions :
52525353-* "Rebase d'image Docker/OCI avec crane" à Devoxx France (30 minutes) ;
5454-* "Rebase d'image Docker/OCI avec crane" au DevLille (45 minutes) ;
5353+* "Rebase d'image Docker/OCI avec crane" à Devoxx France (30 minutes) ;
5454+* "Rebase d'image Docker/OCI avec crane" au DevLille (45 minutes) ;
5555* "Let's play Factorio" à SunnyTech (50 minutes).
56565757
···65656666Le sujet sur OpenTofu n'a été accepté à aucune conf, mais je le retravaillerai pour le reproposer l'année prochaine. J'ai aussi arrêté de le soumettre quand mes deux autres sujets ont été acceptés, pour ne pas (trop) me mettre en difficulté.
67676868-Du point de vue du temps de préparation de ces talks, j'ai une métrique qui semble correcte d'année en année : une heure de prépa par minute sur scène.
6868+Du point de vue du temps de préparation de ces talks, j'ai une métrique qui semble correcte d'année en année : une heure de prépa par minute sur scène.
69697070J'ai donc passé une trentaine d'heure à préparer la première session de "Rebase d'image Docker/OCI avec crane" et une dizaine d'heures pour l'adapter au format un peu plus long du DevLille.
7171"Let's play Factorio" m'a demandé pas loin de cent heures de préparation. C'est ce que j'imaginais, car ce talk a un format bien particulier. J'espère pouvoir le rejouer plusieurs fois l'année prochaine pour essayer de "l'amortir".
···114114115115Une des activités que j'apprécie également est l'enseignement.
116116117117-Cette année, j'ai donné :
117117+Cette année, j'ai donné :
118118119119-* 68 heures à l'Université de Lille sur les thèmes Java / Spring ;
119119+* 68 heures à l'Université de Lille sur les thèmes Java / Spring ;
120120* 88 heures dans des écoles privés sur le thème IaC / Terraform.
121121122122J'aurais au total enseigné mon art (ahaha) à près de 70 étudiants de diverses formations.
123123124124-Pour ces cours, j'ai la chance d'être soutenu par un sponsor qui finance une organisation dans laquelle mes étudiants déploient leurs TPs : Clever Cloud.
124124+Pour ces cours, j'ai la chance d'être soutenu par un sponsor qui finance une organisation dans laquelle mes étudiants déploient leurs TPs : Clever Cloud.
125125Pour la saison prochaine, Scaleway a également accepté de sponsoriser cette activité avec des crédits pour les TPs de mes étudiants.
126126127127J'estime le coût de ces sponsorings à environ 300 euros au total.
128128C'est clairement un coût que je pourrais prendre à ma charge, mais le sponsoring permet d'éviter de devoir surveiller en permanence le billing associé à ces comptes, donc c'est un véritable plus.
129129130130-Clever Cloud, Scaleway, si vous lisez ces lignes : un énorme merci à vous 💙
130130+Clever Cloud, Scaleway, si vous lisez ces lignes : un énorme merci à vous 💙
131131132132## Mon site
133133···159159160160## Mes réseaux sociaux
161161162162-J'ai réduit ma présence sur les réseaux sociaux à deux réseaux : [LinkedIn](https://www.linkedin.com/in/julien-wittouck/) et [Bluesky](https://bsky.app/profile/codeka.io).
162162+J'ai réduit ma présence sur les réseaux sociaux à deux réseaux : [LinkedIn](https://www.linkedin.com/in/julien-wittouck/) et [Bluesky](https://bsky.app/profile/codeka.io).
163163Je n'ai pas désactivé mon compte [Twitter](https://x.com/CodeKaio) (je n'arrive pas à dire "X"), mais je ne publie plus dessus, et je m'y connecte très rarement, trop de bots, de contenu p*rn et de racisme.
164164165165Je poste principalement le contenu de ma veille, ainsi que mes articles. Sur Bluesky, je poste aussi du contenu plus "perso", comme les jeux auxquels je joue ou les séries que je regarde. Mon LinkedIn ne contient pas ce type de contenu plus perso.
166166167167-J'ai extrait mes stats LinkedIn pour la rédaction de ce bilan, et je suis plutôt impressionné par le résultat : 275k vues sur la saison.
167167+J'ai extrait mes stats LinkedIn pour la rédaction de ce bilan, et je suis plutôt impressionné par le résultat : 275k vues sur la saison.
168168169169
170170···201201202202## Podcasts
203203204204-Au-delà de la promo de mon livre, j'ai pu participer avec Romain à l'enregistrement de quelques épisodes de ses podcasts. Certains des enregistrements ont plus d'un an, mais sont parus cette saison :
204204+Au-delà de la promo de mon livre, j'ai pu participer avec Romain à l'enregistrement de quelques épisodes de ses podcasts. Certains des enregistrements ont plus d'un an, mais sont parus cette saison :
205205206206* [Méfiez-vous de la hype](https://youtu.be/QFUwKoq9Rmc) avec William Leemans
207207* [Craftmanship](https://youtu.be/NJ-lLdRbS2k) avec Edouard Cattez
208208* [L'IA ça existe depuis des années](https://youtu.be/7RDcsUYK-1Q) avec Deniz Pekin
209209* [Ils sont organisateurs d'événements techs](https://youtu.be/Sp1o_nFMtvM) avec Emmanuel Demey
210210-* [Devoxx 25 : le débrief](https://youtu.be/XpEhtay8qXQ) avec Romain
210210+* [Devoxx 25 : le débrief](https://youtu.be/XpEhtay8qXQ) avec Romain
211211212212
213213214214## Jeux vidéos
215215216216-Pour finir ce bilan, les jeux vidéos auxquels j'ai joué cette saison, il y en a une paire :
216216+Pour finir ce bilan, les jeux vidéos auxquels j'ai joué cette saison, il y en a une paire :
217217218218-* Factorio (sans blague) ;
219219-* Death Stranding 2 : On the beach (mon jeu du moment) ;
220220-* Monster Hunter Wilds ;
221221-* Need For Speed Hot Pursuit ;
222222-* Gran Turismo 7 (toujours de temps en temps, au volant) ;
223223-* Balatro (quel enfer ce jeu) ;
224224-* Humanity (platiné) ;
225225-* The Stanley Parable ;
226226-* Robocop rogue city (platiné) ;
227227-* Dynasty Warriors 9 (ne me jugez pas) ;
228228-* Dave the Diver (platiné) ;
229229-* God of War Ragnarock (platiné) ;
218218+* Factorio (sans blague) ;
219219+* Death Stranding 2 : On the beach (mon jeu du moment) ;
220220+* Monster Hunter Wilds ;
221221+* Need For Speed Hot Pursuit ;
222222+* Gran Turismo 7 (toujours de temps en temps, au volant) ;
223223+* Balatro (quel enfer ce jeu) ;
224224+* Humanity (platiné) ;
225225+* The Stanley Parable ;
226226+* Robocop rogue city (platiné) ;
227227+* Dynasty Warriors 9 (ne me jugez pas) ;
228228+* Dave the Diver (platiné) ;
229229+* God of War Ragnarock (platiné) ;
230230* Star Wars Jedi Survivor.
231231232232
233233234234-J'ai une affection particulière pour Death Stranding, donc c'est sans aucun doute mon jeu préféré de cette année. J'avais même précommandé la manette, que je trouve très cool. Une fois terminé, je m'attaquerai à Clair Obscur : Expedition 33.
234234+J'ai une affection particulière pour Death Stranding, donc c'est sans aucun doute mon jeu préféré de cette année. J'avais même précommandé la manette, que je trouve très cool. Une fois terminé, je m'attaquerai à Clair Obscur : Expedition 33.
235235236236## Conclusion
237237
···4040
41414242Entre deux conférences, le hall est plein à craquer. J'ai été agréablement surpris, même s'il y a beaucoup de monde, le hall n'est pas si bruyant que ça, et on arrive à tenir une conversation à un niveau de voix raisonnable.
4343-Le lieu a l'air plutôt accessible (même si je ne suis pas directement concerné, ça me semble important), j'ai l'impression que plusieurs personnes circulaient en fauteuil de manière plutôt fluide, donc c'est aussi un très bon point pour le lieu !
4343+Le lieu a l'air plutôt accessible (même si je ne suis pas directement concerné, ça me semble important), j'ai l'impression que plusieurs personnes circulaient en fauteuil de manière plutôt fluide, donc c'est aussi un très bon point pour le lieu !
44444545## Une expérience parfaite en tant que speaker
46464747-Une chose est certaine, les orgas sont aux petits soins pour les speakers. L'accueil particulier réservé aux speakers est très confortable : salle au calme avec massages, café et petit-déjeuner, et petits cadeaux. On se sent réellement privilégiés.
4747+Une chose est certaine, les orgas sont aux petits soins pour les speakers. L'accueil particulier réservé aux speakers est très confortable : salle au calme avec massages, café et petit-déjeuner, et petits cadeaux. On se sent réellement privilégiés.
4848La salle speaker permet de passer un moment calme et relaxant, aussi bien pour se préparer à son talk, mais aussi pour faire une pause entre deux sessions et souffler un peu (ou écrire son article de blog).
4949Nous avions également une zone réservée pour nos repas, ce qui nous permet de ne pas avoir à faire la queue si on veut manger rapidement et retourner se concentrer ou s'isoler.
5050Les discussions entre speakers sont bienveillantes et toujours agréables, c'est toujours sympa de re-croiser des speakers avec qui on avait fait connaissance à d'autres confs, et de rencontrer de nouvelles personnes.
···59596060L'organisation dans les différentes salles est impeccable techniquement. Les branchements sont simples et efficaces, deux écrans sont disponibles en retour pour le speaker, pour y afficher un retour simple d'écran, et un compteur de temps pour pouvoir bien gérer le timing de sa présentation.
61616262-Pour ma part, je n'ai eu aucun problème technique, le flux vidéo et sonore a bien fonctionné. L'ingénieur son qui m'a équipé était très efficace, on a pu faire quelques tests de son (pour la musique du jeu) avant que le public rentre dans la salle, pour s'assurer que tout aller bien marcher, et c'était le cas. Bravo !
6262+Pour ma part, je n'ai eu aucun problème technique, le flux vidéo et sonore a bien fonctionné. L'ingénieur son qui m'a équipé était très efficace, on a pu faire quelques tests de son (pour la musique du jeu) avant que le public rentre dans la salle, pour s'assurer que tout aller bien marcher, et c'était le cas. Bravo !
63636464Ce côté pro aide beaucoup, on se sent rassuré, et on peut ainsi se concentrer sur son talk en toute sérénité.
6565···84848585On y a vu notamment certaines pratiques DIY, comme mettre son téléphone dans un sachet congélation pour pouvoir écouter de la musique sous la douche, ou utiliser du dentifrice pour réparer des micro-rayures sur les écrans (là je pense qu'on est clairement sur du Folklore Tech).
8686On a aussi vu l'interview d'une personne dont le téléphone s'éteint à chaque fois qu'il rentre dans son lieu de travail.
8787-Quelques phrases un peu marquantes, à propos de FaceID également : "Tout le monde l'utilise, donc ça doit aller", ou "Le côté pratique l'emporte beaucoup trop sur les questions de fond".
8787+Quelques phrases un peu marquantes, à propos de FaceID également : "Tout le monde l'utilise, donc ça doit aller", ou "Le côté pratique l'emporte beaucoup trop sur les questions de fond".
88888989De quoi se poser quelques questions sur la perte de connaissance par rapport à ces outils dont on dépend tant, et dont le fonctionnement pourra finir par être assimilé à de la magie.
9090···104104105105> Bravo à Kévin pour son sang-froid, puisqu'il a malheureusement subi des problèmes de clignotement d'écran lors de son talk. Il a particulièrement bien géré la situation, et a même réussi à nous expliquer certains concepts sans slides pendant quelques minutes.
106106107107-### Détectives de la prod : résoudre l'enquête avant le crash par Sébastien Ferrer
107107+### Détectives de la prod : résoudre l'enquête avant le crash par Sébastien Ferrer
108108109109-Sébastien nous présente les enjeux de son quotidien : faire tourner en production une cinquantaine d'applications.
109109+Sébastien nous présente les enjeux de son quotidien : faire tourner en production une cinquantaine d'applications.
110110111111
112112113113-Après avoir rappelé quelques principes et acronymes, comme le _TTA_ / _TTR_ (_Time To Ack_ et _Time To Restore_) et les différents niveaux de priorité, il a utilisé quelques cas d'exemple liés à ses expériences d'incidents survenus en production pour illustrer l'enjeu principal : restaurer le service avant tout. La résolution des problèmes (avec l'analyse de la cause racine _via_ une méthode des 5 Whys) pouvant être faite plus tard.
113113+Après avoir rappelé quelques principes et acronymes, comme le _TTA_ / _TTR_ (_Time To Ack_ et _Time To Restore_) et les différents niveaux de priorité, il a utilisé quelques cas d'exemple liés à ses expériences d'incidents survenus en production pour illustrer l'enjeu principal : restaurer le service avant tout. La résolution des problèmes (avec l'analyse de la cause racine _via_ une méthode des 5 Whys) pouvant être faite plus tard.
114114115115-Il a également partagé quelques astuces simples pour avoir des logs exploitables : utiliser des champs structurés pour avoir le plus de données de contexte.
115115+Il a également partagé quelques astuces simples pour avoir des logs exploitables : utiliser des champs structurés pour avoir le plus de données de contexte.
116116Il a aussi donné quelques bonnes pratiques de monitoring et des exemples de dashboards intéressants pour surveiller les services, ou avoir un résumé de l'état d'une application lors d'un changement d'équipe jour/nuit.
117117118118Un talk que tous les _Devs_ devraient avoir vu pour prendre conscience des enjeux du _Run_.
119119120120> Ce talk était plein d'humour, et d'humilité. J'ai beaucoup apprécié le ton employé par Sébastien. J'ai aussi eu le plaisir de pouvoir échanger quelques mots avec lui directement. Quelqu'un que je recroiserai avec plaisir à l'avenir.
121121122122-### État des lieux de la Souveraineté du Cloud : Des Clouds Publics aux Clouds Confidentiels par Seifeddin Mansri
122122+### État des lieux de la Souveraineté du Cloud : Des Clouds Publics aux Clouds Confidentiels par Seifeddin Mansri
123123124124-Seifeddin a d'abord commencé par présenté quelques enjeux autour de la souveraineté du Cloud : Juridique (adapté au territoire où sont stockées les données et à l'éventuelle extra-territorialité), Technique avec les outils utilisés et la sécurité associé, Opérationnel avec les entités de confiance pour la gestion, et ce qu'il a qualifié de Sémantique, regroupant surtout les notions d'auditabilité.
124124+Seifeddin a d'abord commencé par présenté quelques enjeux autour de la souveraineté du Cloud : Juridique (adapté au territoire où sont stockées les données et à l'éventuelle extra-territorialité), Technique avec les outils utilisés et la sécurité associé, Opérationnel avec les entités de confiance pour la gestion, et ce qu'il a qualifié de Sémantique, regroupant surtout les notions d'auditabilité.
125125126126Il a ensuite évoqué les usages de Cloud Privé, Public, Hybrides et Multi-Cloud, pour ensuite parler de manière un peu plus détaillée des implémentations de Cloud de confiance (S3NS et Bleu), et le SecNumCloud.
127127···138138139139
140140141141-C'était pour moi la deuxième édition de mon talk. Et quelle édition incroyable !
141141+C'était pour moi la deuxième édition de mon talk. Et quelle édition incroyable !
142142143143Technique parfaite. Salle comble (400 personnes pour venir me voir, des personnes ont été refusées à l'entrée car la salle était pleine). MC au top. Public accroché et conquis dès les premières minutes. J'ai adoré voir les sourires et les yeux des spectateurs briller à l'affichage du menu et des différents tableaux du jeu.
144144···151151152152J'ai même eu quelques questions.
153153154154-Bien qu'elles seront dans la vidéo, je les remets ici (de mémoire, ainsi que certains échanges informels que j'ai eu sur le côté) :
154154+Bien qu'elles seront dans la vidéo, je les remets ici (de mémoire, ainsi que certains échanges informels que j'ai eu sur le côté) :
155155156156-"Combien de temps as-tu passé sur la préparation ?"
156156+"Combien de temps as-tu passé sur la préparation ?"
157157> Une bonne centaine d'heures comptées. Pas forcément toutes in-game, beaucoup de temps passé à cogiter sur le talk (idée que j'avais depuis près de 2 ans), beaucoup de temps passé à manipuler le jeu pour essayer d'illustrer certains principes, et enfin au moins 80 heures dans le jeu pour préparer tous les tableaux présentés. J'ai passé pas loin de 2 heures dans le train aller vers Nantes pour améliorer la première transition en train et l'_habiller_ un peu mieux, afin d'embarquer les spectateurs dans le jeu.
158158159159-"As-tu pensé à représenter les notions de testing comme des TU ?"
159159+"As-tu pensé à représenter les notions de testing comme des TU ?"
160160> Tester c'est douter. Dans le jeu, on teste directement en production. Je pense que je vais y réfléchir un peu, mais ça me semble difficile représenter un test qui passe ou qui échoue dans le jeu.
161161162162-"Est-ce que tu as pensé à faire ce talk dans Satisfactory ?"
162162+"Est-ce que tu as pensé à faire ce talk dans Satisfactory ?"
163163> J'aime aussi beaucoup ce jeu, mais le côté 3D et vue à la première personne serait un peu compliqué à suivre pour les participants, je risquerai de me perdre dans l'usine, et ils serait impossible de pouvoir dézoomer et avoir cette représentation haut-niveau que je voulais montrer.
164164165165-"Combien d'heures as-tu dans le jeu ?"
165165+"Combien d'heures as-tu dans le jeu ?"
166166> J'ai 300 heures listées sur Steam, dont la petite centaine passées pour la préparation, les répétitions et les 2 sessions données. J'avais aussi acheté le jeu en early accès il y a très longtemps (en 2014 ou 2015 je crois), toutes ces heures je ne sais pas les dénombrer.
167167168168
···180180181181J'ai pu profiter d'un créneau libre pour me faire masser en salle speaker, et j'ai pris un peu de temps au calme pour commencer à rédiger ces lignes, et discuter avec d'autres speakers.
182182183183-### Karpenter + Keda : Le duo gagnant du FinOps par Guillaume Membré et Sébastien Fourreau
183183+### Karpenter + Keda : Le duo gagnant du FinOps par Guillaume Membré et Sébastien Fourreau
184184185185Je connaissais déjà Keda, mais pas spécialement Karpenter, donc c'était pour moi l'occasion de découvrir cet outil.
186186187187-Les deux speakers travaillent pour RCA qui édite l'outil "MEG : Mon Expert en Gestion", dont je suis utilisateur avec mon cabinet comptable, c'est un point de détail assez rigolo.
187187+Les deux speakers travaillent pour RCA qui édite l'outil "MEG : Mon Expert en Gestion", dont je suis utilisateur avec mon cabinet comptable, c'est un point de détail assez rigolo.
188188189189Ils ont commencé par expliquer les enjeux autour du coût d'une infrastructure Kubernetes (managée sur AWS dans leur cas), avec les différents éléments qui sont en partie non-prédictibles (load-balancing et coûts réseau).
190190···203203### Limits, Requests, QoS, PriorityClasses, on balaie ce que vous pensiez savoir sur le scheduling dans Kubernetes par Denis Germain et Quentin Joly
204204205205Denis et Quentin se sont livrés à l'exercice du talk en binôme, et ont utilisé leur relation de manager/managé avec beaucoup d'humour.
206206-Denis en a d'ailleurs profité pour mentionner son livre, _Kubernetes : 50 solutions pour les postes de développement et les clusters de production_ (que je vais lire dans les prochaines semaines), qui lui a aussi permis de découvrir des distributions Kubernetes qu'il a utilisé pour ce talk.
206206+Denis en a d'ailleurs profité pour mentionner son livre, _Kubernetes : 50 solutions pour les postes de développement et les clusters de production_ (que je vais lire dans les prochaines semaines), qui lui a aussi permis de découvrir des distributions Kubernetes qu'il a utilisé pour ce talk.
207207208208-Avec 6 ou 7 démos (je n'ai pas compté, et il semblerait qu'ils aient sauté une démo pendant la présentation ?), Denis et Quentin ont expliqué le fonctionnement des différents paramètres listés dans le titre de leur conférence et surtout l'impact qu'ils ont sur nos applications en particulier au niveau des performances et du scheduling.
208208+Avec 6 ou 7 démos (je n'ai pas compté, et il semblerait qu'ils aient sauté une démo pendant la présentation ?), Denis et Quentin ont expliqué le fonctionnement des différents paramètres listés dans le titre de leur conférence et surtout l'impact qu'ils ont sur nos applications en particulier au niveau des performances et du scheduling.
209209210210Ils ont commencé avec les _limits_ et _requests_ dans Kubernetes, mettre en avant les impacts de ces paramètres avec quelques schémas très clairs et plusieurs démos.
211211212212-
212212+
213213214214> Je ne connaissais pas l'implémentation du throttling de CPU dans les cgroups Linux, et je comprends donc maintenant mieux pourquoi mettre une limite de CPU sur un pod est une FBI (Fausse Bonne Idée). Je partageais cet avis mais pour d'autres raisons (en particulier la possibilité de Burst le CPU si besoin vu que des ressources sont peut-être disponibles sur la machine), donc ça fait une corde de plus à mon arc d'arguments.
215215···218218Enfin, ils ont présenté la notion de _PriorityClasses_, que je ne connaissais pas. Ces classes arbitraires (définies par l'utilisateur), permettent de prioriser le scheduling des pods (c'est bien nommé), et donc d'aller occuper des ressources qui pourraient être réclamées d'autres pods plus prioritaires.
219219Denis a d'ailleurs cité un cas d'usage d'un Jobs en tâche de fond, qui occupent des ressources et qui sont dé-schedulés si un autre workload en a besoin.
220220221221-> En discutant avec mon voisin Guillaume Moirod pendant cette partie, il m'a évoqué un cas d'usage que je qualifierait de génie, en couplant un Pod _placeholder_ à priorité très faible, qui vient forcer les cluster auto-scalers à créer des nodes, en prévision de jobs qui seraient poussés par un GitLab Runner. On "pré-chaufferai" ici des nodes, pour booster les temps de démarrage des jobs. Il faut que j'écrive un post sur ce sujet !
221221+> En discutant avec mon voisin Guillaume Moirod pendant cette partie, il m'a évoqué un cas d'usage que je qualifierait de génie, en couplant un Pod _placeholder_ à priorité très faible, qui vient forcer les cluster auto-scalers à créer des nodes, en prévision de jobs qui seraient poussés par un GitLab Runner. On "pré-chaufferai" ici des nodes, pour booster les temps de démarrage des jobs. Il faut que j'écrive un post sur ce sujet !
222222223223> Un de mes talks préférés de cette conférence, et la complicité des deux speakers et leur humour (dont on ne sait pas s'il est prévu ou improvisé) m'a beaucoup fait rire.
224224
+29-29
content/posts/2025/2025-10-25-cloud-nord/index.md
···8899Le 23 octobre dernier, c'était la 6ème édition de [Cloud Nord](https://cloudnord.fr).
10101111-Je suis un fidèle de cette conférence depuis longtemps. J'avais loupé la première édition qui avait eu lieu pendant le confinement en visio, mais j'y ai assisté dès la deuxième édition. J'ai été speaker lors de la 4ème édition, (avec mon talk ["Laissez tomber vos Dockerfile, adoptez un buildpack !"]({{<relref "talks/talk-laissez-tomber-vos-dockerfile-adoptez-un-buildpack">}})) puis depuis l'année dernière, j'en suis un des organisateurs.
1111+Je suis un fidèle de cette conférence depuis longtemps. J'avais loupé la première édition qui avait eu lieu pendant le confinement en visio, mais j'y ai assisté dès la deuxième édition. J'ai été speaker lors de la 4ème édition, (avec mon talk ["Laissez tomber vos Dockerfile, adoptez un buildpack !"]({{<relref "talks/talk-laissez-tomber-vos-dockerfile-adoptez-un-buildpack">}})) puis depuis l'année dernière, j'en suis un des organisateurs.
12121313Ce jeudi 23 octobre 2025, j'ai eu l'honneur de faire l'ouverture de la journée pour accueillir les participants (après une mini-game de Factorio en patientant, on ne se refait pas).
1414···18181919## Ce sont les bénévoles qui vont vivre la conférence
20202121-Je commence cet article par un point qui est souvent oublié ou méconnu : la plupart des conférences sont organisées par des bénévoles, et c'est aussi le cas de Cloud Nord.
2121+Je commence cet article par un point qui est souvent oublié ou méconnu : la plupart des conférences sont organisées par des bénévoles, et c'est aussi le cas de Cloud Nord.
22222323Nous (les orgas) ne nous rémunérons pas avec l'argent des sponsorings et de la billetterie. Tout le temps que nous passons à organiser la conférence se fait sur notre temps perso, ou sur notre temps pro si nos entreprises soutiennent la démarche.
2424Pour ma part, c'est mon statut de freelance qui me permet d'y investir beaucoup de temps.
···4848Nous nous sommes plusieurs fois posés la question si Cloud Nord aurait lieu cette année.
4949L'édition 2024 avait coûté pas loin de 60k€, trouver ces financements en six mois avec le contexte actuel semblait compromis.
50505151-### Est né : "Cloud Nord lite"
5151+### Est né : "Cloud Nord lite"
52525353-Après pas mal de discussions entre nous, et des échanges avec les autres conférences locales (l'AgiLille particulièrement) pour connaître leur budget, nous avons décidé de partir sur une édition de Cloud Nord "lite" : budget réduit (on a ciblé entre 15 et 20k€) et donc moins de partenaires sponsors à aller chercher.
5353+Après pas mal de discussions entre nous, et des échanges avec les autres conférences locales (l'AgiLille particulièrement) pour connaître leur budget, nous avons décidé de partir sur une édition de Cloud Nord "lite" : budget réduit (on a ciblé entre 15 et 20k€) et donc moins de partenaires sponsors à aller chercher.
54545555-Le budget 2024 de Cloud Nord était grosso-modo découpé comme ceci :
5555+Le budget 2024 de Cloud Nord était grosso-modo découpé comme ceci :
56565757-* 26k€ pour la location des salles et de l'atrium d'EuraTechnologies ;
5858-* 16k€ pour la captation vidéo dans les différentes salles ;
5959-* 15k€ pour la restauration (petit dèj, dèj, goûter et after) pour les 400 participants ;
6060-* 2k€ pour le dîner des speakers (pour une 40aine de personnes) ;
5757+* 26k€ pour la location des salles et de l'atrium d'EuraTechnologies ;
5858+* 16k€ pour la captation vidéo dans les différentes salles ;
5959+* 15k€ pour la restauration (petit dèj, dèj, goûter et after) pour les 400 participants ;
6060+* 2k€ pour le dîner des speakers (pour une 40aine de personnes) ;
6161* 1.5€ en prestations diverses (photos et sous-titrage).
62626363Pour faire une édition à budget réduit, pas le choix, il faut quitter EuraTechnologies, qui représente 1/3 du budget 2024.
64646565-Nous avons alors envisagé plusieurs options :
6565+Nous avons alors envisagé plusieurs options :
66666767* des cinémas comme le faisait le DevFest de Lille (au Kinépolis)
6868* une école ou université (comme le fait l'AgiLille)
···7070Nous avons pu rapidement visiter les locaux de l'Université Catholique de Lille, qui nous a proposé plusieurs options, dans leurs différents bâtiments. Nous cherchions un hall pour pouvoir accueillir 6 à 8 stands, et 250 à 300 personnes, et 1 ou 2 salles de type amphithéatre pour pouvoir y tenir les conférences.
71717272Nous sommes tombés sous le charme des locaux de la Faculté de Droit (bâtiment Robert Schuman), un hall suffisamment spacieux pour nos stands, et deux jolis amphithéâtres de cours, avec des sièges confortables.
7373-Et du point de vue du budget, les tarifs sont imbattables : moins de 4k€ pour la location du hall et des salles.
7373+Et du point de vue du budget, les tarifs sont imbattables : moins de 4k€ pour la location du hall et des salles.
74747575Cloud Nord 2025 pourrait avoir lieu.
7676···8181D'autres communications seront faites sur notre budget 2025 (je veux pousser une démarche de transparence, mais ça prend du temps d'écrire tout ça, pour rappel nous sommes bénévoles 😅).
8282Il me semblait néanmoins intéressant dans cet article de détailler un peu quelques points "pognon".
83838484-### Combien ça coûte Cloud Nord ?
8484+### Combien ça coûte Cloud Nord ?
85858686-Voici notre budget pour cette édition 2025 :
8686+Voici notre budget pour cette édition 2025 :
87878888-* 4k€ pour la location du hall et des 2 amphis de l'Université Catholique De Lille ;
8989-* 8k€ pour la restauration (petit dèj, dèj, goûter et after) pour les 250 participants ;
8888+* 4k€ pour la location du hall et des 2 amphis de l'Université Catholique De Lille ;
8989+* 8k€ pour la restauration (petit dèj, dèj, goûter et after) pour les 250 participants ;
9090* 1500€ pour le dîner des speakers.
91919292-Vous l'avez compris, environ 14k€ pour accueillir 250 personnes, en comparaison aux 60k€ pour accueillir 400 personnes l'année précédente, nous avons fait des économies !
9292+Vous l'avez compris, environ 14k€ pour accueillir 250 personnes, en comparaison aux 60k€ pour accueillir 400 personnes l'année précédente, nous avons fait des économies !
9393Donc dans le doute, nous sommes partis sur un budget très serré, en nous disant qu'au pire, on pourrait ajouter des dépenses supplémentaires.
9494Étant donné que le lieu nous a coûté réellement très peu cher, nous avons pu garder une restauration de qualité (c'est important pour les participants de bien manger, et la qualité des repas de notre nouveau prestataire a beaucoup plu).
95959696-Au fur et à mesure de l'arrivée des ventes de packs de sponsoring, avec le budget qui s'éclaircit, on a pu activer des dépenses supplémentaires :
9696+Au fur et à mesure de l'arrivée des ventes de packs de sponsoring, avec le budget qui s'éclaircit, on a pu activer des dépenses supplémentaires :
97979898-* 1000€ pour le photographe ;
9898+* 1000€ pour le photographe ;
9999* 1000€ de goodies.
100100101101Ce sont clairement des choses auxquelles nous avions renoncé au départ, et c'est une bonne surprise que nous ayons pu prendre un photographe, qui nous a également réalisé l'after-movie (qui arrivera bientôt sur notre chaine Youtube).
···106106107107Le poste "Captation Vidéo" a disparu de notre budget entre les éditions 24 et 25. Pour assurer cette édition avec le financement de seulement six sponsors physiques (le hall pouvant uniquement accueillir six stands tout juste), il semblait impossible de pouvoir financer une captation en gardant des tarifs de sponsoring corrects.
108108109109-### Comment on finance tout ça ?
109109+### Comment on finance tout ça ?
110110111111Pour assumer ces coûts, il nous faut le soutien financier de sponsors, sans qui la journée ne peut pas avoir lieu.
112112-La contrepartie est simple : les sponsors amène le financement de la conférence, on leur fait de la comm et ils peuvent discuter avec les participants le jour J (quel que soit leur objectif) et participer à la conf.
112112+La contrepartie est simple : les sponsors amène le financement de la conférence, on leur fait de la comm et ils peuvent discuter avec les participants le jour J (quel que soit leur objectif) et participer à la conf.
113113114114-Pour financer ces 16k€, nous avons découpé notre sponsoring comme suit :
114114+Pour financer ces 16k€, nous avons découpé notre sponsoring comme suit :
115115116116* 6 packs "physiques" à 1500€ pièce
117117* des packs "digital" à 750€ (en espérant en vendre 2 ou 3 au moins)
···126126Si vous êtes forts en calcul, vous aurez compris qu'on a donc eu environ 20k€ de recettes, et 16k€ de dépenses, il reste donc 4k€.
127127Cet argent n'ira bien entendu pas dans nos poches, mais servira de trésorerie de départ pour la prochaine édition. Cela nous permettra de pouvoir payer les premières dépenses de l'organisation avant de recevoir l'argent des sponsors, ce qui nous apportera de la sérénité (parce qu'on n'a pas envie de devoir jongler entre les factures, ou d'avancer des frais).
128128129129-Cette aisance budgétaire nous permettra plusieurs choses dont nous (orgas) discuterons pour la prochaine édition :
129129+Cette aisance budgétaire nous permettra plusieurs choses dont nous (orgas) discuterons pour la prochaine édition :
130130131131* revenir sur un format plus important (peu probable)
132132* payer un barista pour avoir des cafés haut de gamme (comme c'est fait à DevOxx)
···154154Pour regrouper toutes nos informations pratiques, nous avons aussi publié un nouveau site web vitrine, qui contient notre programme, les informations sur le lieu, les speakers, etc.
155155Nous avons forké le site web de Sunny Tech, adapté à nos couleurs (il reste un flammy 🦩 sur la page 404), et déployé tout sur une instance gratuite Firebase en utilisant un peu de Terraform et des GitHub Actions.
156156Je pense que j'ai dû passer au total une bonne semaine sur le site, entre la mise en place initiale, l'adaptation du thème et du contenu, et la mise en place du planning.
157157-Le site est d'ailleurs sur GitHub pour les curieux : https://github.com/cloud-nord/website-v2.
157157+Le site est d'ailleurs sur GitHub pour les curieux : https://github.com/cloud-nord/website-v2.
158158159159-Même après la conférence, le site doit être mis à jour : désactivation de la billetterie, publication des liens vers les feedbacks et les vidéos, etc.
159159+Même après la conférence, le site doit être mis à jour : désactivation de la billetterie, publication des liens vers les feedbacks et les vidéos, etc.
160160La prochaine mise à jour aura lieu lorsque nous aurons les photos officielles et l'after-movie.
161161162162Ensuite cette version du site sera archivé et cèdera sa place à la version 2026, probablement au mois d'avril/mai, lorsque nous aurons décidé des premiers points (date et lieu principalement).
···207207208208Toute l'équipe était d'accord pour que ce soit votre serviteur qui prenne la parole pour l'ouverture de la journée. C'est un exercice avec lequel je suis à l'aise, et que j'apprécie beaucoup. Donc j'avais passé un peu de temps à préparer les slides de présentation de l'ouverture de journée.
209209Notre keynote d'ouverture s'étant décommandé quelques jours avant (le vendredi juste avant), il nous fallait meubler le créneau d'ouverture, j'ai donc travaillé une présentation d'ouverture de journée qui tiendrait en 20 minutes.
210210-Les slides sont disponibles ici : [Ouverture de journée Cloud Nord 2025.pdf](ouverture-de-journee-cloud-nord-2025.pdf)
210210+Les slides sont disponibles ici : [Ouverture de journée Cloud Nord 2025.pdf](ouverture-de-journee-cloud-nord-2025.pdf)
211211212212Prendre la parole de bon matin devant ce public, c'était clairement mon kiff de la journée.
213213···215215216216En l'absence de captation professionnelle, et comme j'ai un peu de matos pour mon setup de télétravail (comprendre une webcam et un micro qui ne sont pas ceux de mon ordinateur portable), je me suis proposé d'improviser la captation d'une des salles. Maxime suivi avec son matos perso.
217217218218-Pour l'occasion, j'ai donc préparé un de mes NUC pour pouvoir y faire l'enregistrement : un linux tout propre, un OBS tout propre avec quelques scènes pré-paramétrées et suffisamment d'espace disque pour enregistrer la journée.
218218+Pour l'occasion, j'ai donc préparé un de mes NUC pour pouvoir y faire l'enregistrement : un linux tout propre, un OBS tout propre avec quelques scènes pré-paramétrées et suffisamment d'espace disque pour enregistrer la journée.
219219Le but étant de minimiser le temps de montage à la fin, et de faire le maximum en live sur OBS.
220220221221J'ai également acheté (sur le compte de ma société) une carte acquisition vidéo, des câbles HDMI et USB-C longs (10m), donc 250€ de matos environ.
···241241242242### Les vidéos
243243244244-Même si on a essayé de capter les vidéos avec pour objectif de minimiser le travail après-coup, il faut faire un peu de travail de montage : cut avant/après, ajustement du son, et intégration d'une intro et d'un outro.
244244+Même si on a essayé de capter les vidéos avec pour objectif de minimiser le travail après-coup, il faut faire un peu de travail de montage : cut avant/après, ajustement du son, et intégration d'une intro et d'un outro.
245245246246Pour l'outro, j'ai repris la vidéo que nous avions diffusé sur les écrans le jour J, à laquelle j'ai ajouté une musique de fond libre de droits. Pour les intros j'ai repris les petites vidéos Remotion qui sont générés dans OpenPlanner, et que nous avons utilisé pour la comm des talks sur nos résaux.
247247···254254255255J'ai passé environ une quinzaine d'heures (sur 2 jours) pour tout faire. Je voulais faire ça le plus rapidement possible pour être tranquille.
256256257257-Les vidéos sont disponibles sur Youtube : https://www.youtube.com/playlist?list=PLVQhat0Bx0WB-fhbbQ0bQkhfTLAZIU2IU
257257+Les vidéos sont disponibles sur Youtube : https://www.youtube.com/playlist?list=PLVQhat0Bx0WB-fhbbQ0bQkhfTLAZIU2IU
258258259259
260260···271271272272Car oui, dès février, nous allons reprendre le travail sur l'organisation de la prochaine édition, avec la troisième édition du Ch'ti Tremplin, qui cette année se fera avec le DevLille et l'AgiLille.
273273274274-Vu les feedbacks que nous avons eus de cette édition 2025, aussi bien des sponsors, des speakers, et des participants, il est vraisemblable que Cloud Nord 2026 soit de la même formule : une conf sur 2 tracks, toujours ciblée sur les sujets tech pointus, avec un public peut être un peu plus nombreux (300 personnes au lieu de 250).
274274+Vu les feedbacks que nous avons eus de cette édition 2025, aussi bien des sponsors, des speakers, et des participants, il est vraisemblable que Cloud Nord 2026 soit de la même formule : une conf sur 2 tracks, toujours ciblée sur les sujets tech pointus, avec un public peut être un peu plus nombreux (300 personnes au lieu de 250).
275275276276Mais tout ça, on en reparlera l'année prochaine 👋
···66 - kubernetes
77---
8899-Il y a quelques semaines, Denis Germain (aka [Zwindler](https://blog.zwindler.fr/) sur les internets), m'a fait parvenir un exemplaire de son livre fraîchement paru : [Kubernetes : 50 solutions pour les postes de développement et les clusters de production](https://www.editions-eyrolles.com/livre/kubernetes).
99+Il y a quelques semaines, Denis Germain (aka [Zwindler](https://blog.zwindler.fr/) sur les internets), m'a fait parvenir un exemplaire de son livre fraîchement paru : [Kubernetes : 50 solutions pour les postes de développement et les clusters de production](https://www.editions-eyrolles.com/livre/kubernetes).
10101111L'expertise de Denis sur Kubernetes n'est plus à prouver, c'est son sujet de prédilection, et j'assiste systématiquement à ses conférences quand j'en ai l'occasion (fanboy mode 😁).
1212Je suis content qu'il ait proposé de m'envoyer un exemplaire de son livre, si tu lis ces lignes Denis, merci 😊
···23232424C'est le cas.
25252626-Sans forcément chercher l'exhaustivité, la sélection de Denis couvre tous les usages qu'on pourrait imaginer : depuis le poste de travail, jusqu'à des usages de production, en passant par des solutions "alien" 👽 parfois originales.
2727-Pour nous guider dans la lecture, les 300 pages du livre sont structurées en 7 grandes parties (chapitres) :
2626+Sans forcément chercher l'exhaustivité, la sélection de Denis couvre tous les usages qu'on pourrait imaginer : depuis le poste de travail, jusqu'à des usages de production, en passant par des solutions "alien" 👽 parfois originales.
2727+Pour nous guider dans la lecture, les 300 pages du livre sont structurées en 7 grandes parties (chapitres) :
28282929* les solutions destinées aux développeurs, installables sur leur machine, que Denis a regroupé sur le nom "Outils de type Desktop"
3030* les solutions managées par des opérateurs Cloud
···36363737Dans chaque chapitre, on va donc retrouver une courte intro qui explique le but de ce regroupement de ces solutions, puis un sous-chapitre pour chacune d'entre elles, ainsi qu'une courte conclusion.
38383939-Chaque solution est présentée en suivant la même structure :
3939+Chaque solution est présentée en suivant la même structure :
40404141* un tableau récapitulatif de l'outil (systèmes supportés, licence, etc.)
4242-* une courte description ainsi que les pré-requis à l'installation ;
4343-* l'installation en elle-même à la manière d'un tutoriel ;
4444-* des pistes, liens et conseils pour aller plus loin ;
4242+* une courte description ainsi que les pré-requis à l'installation ;
4343+* l'installation en elle-même à la manière d'un tutoriel ;
4444+* des pistes, liens et conseils pour aller plus loin ;
4545* un tableau récapitulatif des avantages et inconvénients de l'outil.
46464747Cette structure permet de rapidement comprendre à quel usage convient chaque solution, et l'écriture sous forme de tutoriel détaillés (ligne de commande, consoles et autres screenshots) permet de rapidement mettre le pied à l'étrier.
···57575858Je me suis un peu moins concentré sur les autres chapitres, car ils couvrent des domaines sur lesquels je n'ai pas de besoin, ou en dehors de mon expertise. Mais si l'envie me prend de bidouiller, je sais que j'y trouverai la matière pour pouvoir tester et installer une solution.
59596060-## À qui s'est destiné ?
6060+## À qui s'est destiné ?
61616262Ce livre ne s'adresse clairement pas aux débutants sur Kubernetes.
6363Bien que Denis rappelle rapidement les concepts principaux de kube en intro, le but n'est pas d'apprendre Kubernetes, ses concepts et ses usages.
···72727373## Mes solutions prefs
74747575-Forcément, en parcourant les différentes solutions, je suis tombé sur des solutions que j'utilise régulièrement : Minikube (qui est certes un peu lourd, mais fait bien le job), k3s qui tourne sur certaines machines que j'ai chez moi, Docker Desktop et Rancher Desktop que j'utilise parfois chez mes clients, ainsi que les différentes offres managées, et l'incontournable OpenTofu.
7575+Forcément, en parcourant les différentes solutions, je suis tombé sur des solutions que j'utilise régulièrement : Minikube (qui est certes un peu lourd, mais fait bien le job), k3s qui tourne sur certaines machines que j'ai chez moi, Docker Desktop et Rancher Desktop que j'utilise parfois chez mes clients, ainsi que les différentes offres managées, et l'incontournable OpenTofu.
76767777-Mais j'ai aussi découvert (ou redécouvert) des implémentations auxquelles je n'avais jamais prêté attention et que je vais rapidement tester : _kind_ (Kubernetes IN Docker), que j'ai déjà installé sur mon poste de travail principal (il n'y a plus qu'à jouer avec pour mon prochain projet);
7777+Mais j'ai aussi découvert (ou redécouvert) des implémentations auxquelles je n'avais jamais prêté attention et que je vais rapidement tester : _kind_ (Kubernetes IN Docker), que j'ai déjà installé sur mon poste de travail principal (il n'y a plus qu'à jouer avec pour mon prochain projet);
78787979J'adore aussi le principe de KWOK (Kubernetes WithOut Kubelet) qui consiste à simuler le comportement d'un cluster.
8080Comme Denis, je pense que ça peut être très pratique pour tester le bon fonctionnement de topologies, contraintes de ressources, charts Helms, etc.
8181-Je testerai probablement mes charts Helms sur cette implémentation à l'avenir (peut-être même directement dans une CI, qui sait ? 🤫)
8181+Je testerai probablement mes charts Helms sur cette implémentation à l'avenir (peut-être même directement dans une CI, qui sait ? 🤫)
82828383Mention spéciale pour la dernière solution présentée, qui n'est autre que le contenu du talk de Denis "Démystifions Kubernetes, binaire par binaire".
8484Il ajoute également en référence la vidéo de cette conférence captée à Cloud Nord 2023 (j'étais dans la salle ce jour là 💙).
···96969797Je pense que j'aurai aimé avoir directement dans le livre un tableau sous forme d'index, qui reprend l'ensemble des solutions avec tous les tableaux récapitulatifs détaillés en en-tête de chapitre (type d'outil, compatibilité, production-ready, etc.).
9898Cela permettrait de pouvoir trouver rapidement une solution en fonction d'un besoin particulier.
9999-Denis a néanmoins publié ce genre de tableau dans un article de blog il y a quelques semaines : [93 façons de déployer Kubernetes : j'ai recensé (presque) toutes les méthodes existantes](https://blog.zwindler.fr/2025/11/02/93-facons-de-deployer-kubernetes/).
9999+Denis a néanmoins publié ce genre de tableau dans un article de blog il y a quelques semaines : [93 façons de déployer Kubernetes : j'ai recensé (presque) toutes les méthodes existantes](https://blog.zwindler.fr/2025/11/02/93-facons-de-deployer-kubernetes/).
100100101101Si vous restez sur votre faim par rapport à une solution particulière, Denis fournit les liens et pointeurs (souvent vers la documentation officielle des outils) pour pouvoir "Aller plus loin" (du nom de la section dans chaque sous-chapitre).
102102Cette section est parfois un peu légère, mais une fois la phase "tuto" passée, il est courant de se plonger dans la documentation officielle, donc rien de très surprenant en fait.
···114114115115Le travail qu'a fait Denis sur ce livre est impressionnant, bravo à lui.
116116117117-## Où l'acheter ?
117117+## Où l'acheter ?
118118119119-C'est dispo sur toutes les bonnes plateformes au prix de 37€, je vous remets ici les liens vers mes préférées :
119119+C'est dispo sur toutes les bonnes plateformes au prix de 37€, je vous remets ici les liens vers mes préférées :
120120121121* Sur le site de l'éditeur [Eyrolles](https://www.eyrolles.com/Informatique/Livre/kubernetes-9782416022647/), en version papier ou numérique
122122* [Fnac](https://www.fnac.com/a21789006/Denis-Germain-Kubernetes)
123123* [Furet du Nord](https://www.furet.com/livres/kubernetes-denis-germain-9782416022647.html)
124124* [Cultura](https://www.cultura.com/p-kubernetes-50-solutions-pour-les-postes-de-developpement-et-les-clusters-de-production-9782416022647.html)
125125126126-Bonne lecture !126126+Bonne lecture !
···18181919
20202121-C'est maintenant le cas, et quel DevFest !
2121+C'est maintenant le cas, et quel DevFest !
22222323Sold-out plus d'un mois à l'avance, 314 propositions reçues au CFP pour 16 créneaux de talk, on voit que le public Lyonnais était en attente de cet événement.
2424···26262727La traditionnelle soirée des speakers s'est déroulée au bar à vin "Les Canailles de Raphaël".
28282929-On a pu y rencontrer l'équipe des orgas au grand complet, ainsi que les bénévoles, la photographe et les 2 MC (maîtres de cérémonie) venus aider pour animer la journée : Estelle Landry et Mathieu Mure.
2929+On a pu y rencontrer l'équipe des orgas au grand complet, ainsi que les bénévoles, la photographe et les 2 MC (maîtres de cérémonie) venus aider pour animer la journée : Estelle Landry et Mathieu Mure.
3030Je pense que c'est une bonne idée d'inviter toute l'équipe ainsi que les bénévoles qui contribuent à la réussite de la journée. C'est une belle manière de récompenser les personnes pour leur investissement personnel. Nous avons eu la même approche cette année à Cloud Nord, nous y avions invité les bénévoles qui avaient contribués aux CFP, la démarche avait été aussi appréciée.
31313232La soirée des speakers est toujours un moment privilégié (et traditionnel). J'étais très content de croiser les autres speakers, dont certain que je connaissais déjà, et pouvoir en rencontrer d'autres que j'avais simplement aperçu lors d'autres confs 😊.
33333434Pour le jour J, une salle speakers nous a été mise à disposition, avec boissons, bonbons, brioche à la praline (miam).
3535-Nous avons également eu le droit à un shooting photo personnel (hâte de recevoir ma future photo de profil 💙) ainsi qu'à un petit cadeau pour nous tenir chaud dans les soirées d'hiver qui approchent : un joli plaid brandé "DevFest Lyon".
3535+Nous avons également eu le droit à un shooting photo personnel (hâte de recevoir ma future photo de profil 💙) ainsi qu'à un petit cadeau pour nous tenir chaud dans les soirées d'hiver qui approchent : un joli plaid brandé "DevFest Lyon".
36363737
3838···40404141## La barre est mise très haute
42424343-Concernant le jour J, un seul mot : Bravo.
4343+Concernant le jour J, un seul mot : Bravo.
44444545De mon point de vue, l'organisation est impeccable. L'équipe a pensé à tout.
4646···62626363Les MC animent parfaitement les transitions entre les talks, et sont aux petits soins pour aider à l'installation sur scène, apporter bouteille d'eau et vérifier que tout va bien. Un grand merci à Estelle qui a fait mon intro 💙. Ça aide vraiment à démarrer un talk dans les meilleures conditions, et à évacuer le stress en détendant l'atmosphère avec quelques blagues bien ciblées 😅.
64646565-La sélection des talks est solide (et je dis pas ça parce que j'en fait partie 😅), toutes les speakeuses et tous les speakers ont assuré. Je ne fais pas le récap des confs que j'ai vues hier, mais chacune d'entre elles était impeccable, bravo à toutes et à tous !
6565+La sélection des talks est solide (et je dis pas ça parce que j'en fait partie 😅), toutes les speakeuses et tous les speakers ont assuré. Je ne fais pas le récap des confs que j'ai vues hier, mais chacune d'entre elles était impeccable, bravo à toutes et à tous !
66666767Le public est souriant, bienveillant, et généreux en feedbacks et discussions. L'ambiance globale de ce DevFest est définitivement très (très) sympa.
68686969-
6969+
70707171Le traiteur local a proposé une nourriture très bonne et variée (mention spéciale aux ravioles 😋).
7272···81818282Bravo à toute l'équipe, aux MC et aux bénévoles, et aux sponsors pour leur soutien.
83838484-Bravo aux speakeuses et aux speakers pour vos talks, et merci pour les échanges que j'ai pu avoir avec certains d'entre vous, j'ai hâte de vous recroiser à d'autres événements !
8484+Bravo aux speakeuses et aux speakers pour vos talks, et merci pour les échanges que j'ai pu avoir avec certains d'entre vous, j'ai hâte de vous recroiser à d'autres événements !
85858686Merci pour l'accueil incroyable à Lyon, et à l'année prochaine 💙
8787
···1616Le code de ce projet est écrit en Spring Boot 3 et Java 25.
1717Avec la sortie récente de Spring Boot 4, je voulais faire la montée de version de ce projet rapidement.
18181919-Pour ça, j'ai donc deux possibilités : soit je fais la montée de version à la main, soit j'utilise un outil pour le faire automatiquement.
1919+Pour ça, j'ai donc deux possibilités : soit je fais la montée de version à la main, soit j'utilise un outil pour le faire automatiquement.
20202121J'en ai donc profité pour tester OpenRewrite.
2222···33333434Une [recette de migration Spring Boot 4](https://docs.openrewrite.org/recipes/java/spring/boot4/upgradespringboot_4_0-community-edition) est disponible pour la version communautaire.
35353636-En parcourant le code de la recette sur [Github](https://github.com/openrewrite/rewrite-spring/blob/main/src/main/resources/META-INF/rewrite/spring-boot-40.yml), il semble que la recette fait une grande partie de ce qui est indiqué dans le guide de migration de Spring :
3636+En parcourant le code de la recette sur [Github](https://github.com/openrewrite/rewrite-spring/blob/main/src/main/resources/META-INF/rewrite/spring-boot-40.yml), il semble que la recette fait une grande partie de ce qui est indiqué dans le guide de migration de Spring :
37373838* la montée de version du pom `spring-boot-starter-parent`
3939* les modifications liées aux changements de coordonnées de certains artifacts maven
···4141* la mise à jour des properties dépréciées
4242* la mise à jour vers testcontainers 2
43434444-La recette prend la forme d'un fichier YAML, et elle est accompagnée de code qui implémente les différentes transformations :
4444+La recette prend la forme d'un fichier YAML, et elle est accompagnée de code qui implémente les différentes transformations :
45454646> Je ne rentre pas dans les détails du fonctionnement d'OpenRewrite, allez voir le talk de Jérôme Tama indiqué plus haut pour plus d'informations.
4747
···1515Le code de ce projet est écrit en Spring Boot 3 et Java 25.
1616Avec la sortie récente de Spring Boot 4, je voulais faire la montée de version de ce projet rapidement.
17171818-Pour ça, j'ai donc deux possibilités : soit je fais la montée de version à la main, soit j'utilise un outil pour le faire automatiquement.
1818+Pour ça, j'ai donc deux possibilités : soit je fais la montée de version à la main, soit j'utilise un outil pour le faire automatiquement.
19192020J'en ai donc profité pour tester OpenRewrite.
2121···32323333Une [recette de migration Spring Boot 4](https://docs.openrewrite.org/recipes/java/spring/boot4/upgradespringboot_4_0-community-edition) est disponible pour la version communautaire.
34343535-En parcourant le code de la recette sur [Github](https://github.com/openrewrite/rewrite-spring/blob/main/src/main/resources/META-INF/rewrite/spring-boot-40.yml), il semble que la recette fait une grande partie de ce qui est indiqué dans le guide de migration de Spring :
3535+En parcourant le code de la recette sur [Github](https://github.com/openrewrite/rewrite-spring/blob/main/src/main/resources/META-INF/rewrite/spring-boot-40.yml), il semble que la recette fait une grande partie de ce qui est indiqué dans le guide de migration de Spring :
36363737* la montée de version du pom `spring-boot-starter-parent`
3838* les modifications liées aux changements de coordonnées de certains artifacts maven
···4444> [!INFO]
4545> La recette évolue régulièrement, donc peut-être qu'elle fait encore plus de choses au moment où vous lisez cet article.
46464747-La recette prend la forme d'un fichier YAML, et elle est accompagnée de code qui implémente les différentes transformations :
4747+La recette prend la forme d'un fichier YAML, et elle est accompagnée de code qui implémente les différentes transformations :
48484949> Je ne rentre pas dans les détails du fonctionnement d'OpenRewrite, allez voir le talk de Jérôme Tama indiqué plus haut pour plus d'informations.
5050···123123 newArtifactId: spring-boot-starter-aspectj
124124```
125125126126-La doc d'OpenRewrite indique qu'on peut utiliser une simple commande _Maven_ pour effectuer la migration :
126126+La doc d'OpenRewrite indique qu'on peut utiliser une simple commande _Maven_ pour effectuer la migration :
127127128128```shell
129129mvn -U org.openrewrite.maven:rewrite-maven-plugin:run \
···134134135135> Plutôt pratique, car je n'aurai pas à modifier mon `pom.xml`, ni ajouter de fichier de configuration dans mon projet pour pouvoir effectuer cette migration en one-shot.
136136137137-L'exécution de la commande prend quelques secondes et affiche les opérations effectuées (j'ai beaucoup nettoyé les logs pour que ce soit plus lisible) :
137137+L'exécution de la commande prend quelques secondes et affiche les opérations effectuées (j'ai beaucoup nettoyé les logs pour que ce soit plus lisible) :
138138139139```shell
140140[INFO] --- rewrite:6.25.0:run (default-cli) @ gitlab-classrooms ---
···174174[INFO] ------------------------------------------------------------------------
175175```
176176177177-OpenRewrite semble s'être correctement exécuté et indique que plusieurs fichiers ont été modifiés. Un `git status` permet de se rendre compte de ce qui a été impacté :
177177+OpenRewrite semble s'être correctement exécuté et indique que plusieurs fichiers ont été modifiés. Un `git status` permet de se rendre compte de ce qui a été impacté :
178178179179```shell
180180git status
···205205* les fichiers de configuration properties (certaines properties ont été renommées)
206206* les fichiers de test (surtout pour la dépréciation de `@MockBean` et `@SpyBean`)
207207208208-Un `git diff` permet de vérifier tout ça :
208208+Un `git diff` permet de vérifier tout ça :
209209210210```shell
211211git diff pom.xml
···286286287287La nouvelle architecture modulaire de Spring Boot 4 a bien été traitée.
288288289289-Le code de tests a aussi bien été nettoyé des anciens `@MockBean` dépréciés :
289289+Le code de tests a aussi bien été nettoyé des anciens `@MockBean` dépréciés :
290290291291```text
292292@@ -37,10 +37,10 @@ class ClassroomControllerMVCTest {
···324324import org.springframework.boot.actuate.autoconfigure.security.servlet.EndpointRequest;
325325```
326326327327-car cette classe a été déplacée dans un autre package :
327327+car cette classe a été déplacée dans un autre package :
328328329329```java
330330import org.springframework.boot.security.autoconfigure.actuate.web.servlet.EndpointRequest;
···332332333333Une fois ces petits ajustements faits, je lance mes tests unitaires.
334334335335-Cette fois-ci, j'obtiens un message d'erreur lié à Spring Security au démarrage :
335335+Cette fois-ci, j'obtiens un message d'erreur lié à Spring Security au démarrage :
336336337337```text
338338Caused by: java.lang.IllegalArgumentException: pattern must start with a /
···340340341341Je n'avais pas fait attention à cette modification dans les guides de migration, donc je suis peut-être passé à travers. Quoi qu'il en soit, ce n'est pas une modification très compliquée, je l'ai facilement appliquée.
342342343343-Une fois ces derniers ajustements faits, les tests passent correctement 🎉 :
343343+Une fois ces derniers ajustements faits, les tests passent correctement 🎉 :
344344345345-
345345+
346346347347## Conclusion
348348
···395395396396Le site que vous lisez est hébergé sur Clever Cloud. J'ai donc sur mon poste des variables d'environenment `CLEVER_TOKEN` et `CLEVER_SECRET` qui traînent, un fichier `.clever.json` avec les liens vers mes apps, ainsi qu'un runtime node avec le CLI `clever-tools`.
397397398398-Est-ce qu'il est facile de migrer tout ça vers `mise` ?
398398+Est-ce qu'il est facile de migrer tout ça vers `mise` ?
399399400400### L'installation du CLI `clever-tools`
401401402402-Installer le CLI de Clever Cloud avec `mise` se fait en une commande : `mise use npm:clever-tools`.
402402+Installer le CLI de Clever Cloud avec `mise` se fait en une commande : `mise use npm:clever-tools`.
403403Le préfixe `npm:` permet d'indiquer à `mise` où aller chercher le package, cela ouvre tout un tas de cas d'usages intéressants. Fini les `npm install -g` (ou pire `sudo npm install -g`) dans tous les sens, on installe juste l'outil au bon endroit, et la dépendance devient même explicite.
404404405405```shell
···407407mise ~/workspaces/codekaio/codeka.io/mise.toml tools: npm:clever-tools@4.4.1
408408```
409409410410-Une fois la commande exécutée, `clever-tools` apparaît dans le fichier `mise.toml`, dans le bloc `[tools]` :
410410+Une fois la commande exécutée, `clever-tools` apparaît dans le fichier `mise.toml`, dans le bloc `[tools]` :
411411412412```toml
413413[tools]
···417417### `CLEVER_TOKEN` et `CLEVER_SECRET`
418418419419420420-Pour s'authentifier aux API, le CLI `clever-tools` utilise 2 variables d'environnement `CLEVER_TOKEN` et `CLEVER_SECRET`, qu'on peut récupérer en exécutant la commande `clever login` :
420420+Pour s'authentifier aux API, le CLI `clever-tools` utilise 2 variables d'environnement `CLEVER_TOKEN` et `CLEVER_SECRET`, qu'on peut récupérer en exécutant la commande `clever login` :
421421422422```shell
423423$ clever login
···425425Login successful as Julien WITTOUCK <julien@codeka.io>
426426```
427427428428-Les variables sont alors récupérables depuis la fenêtre de navigateur qui sert à l'authentification, et sont déposées dans le fichier `.config/clever-tools/config.json` :
428428+Les variables sont alors récupérables depuis la fenêtre de navigateur qui sert à l'authentification, et sont déposées dans le fichier `.config/clever-tools/config.json` :
429429430430```json
431431{"token":"081e54b8-853b-4e8f-a000-8f314238c5c3","secret":"6834da77-9edb-4e4a-bde8-9a6109934311","expirationDate":"2026-12-21T11:35:15.291Z"}
···438438$ jq -r '.secret' ~/.config/clever-cloud/clever-tools.json | mise set --raw --age-encrypt --prompt CLEVER_SECRET
439439```
440440441441-Les deux variables apparaissent bien dans mon `mise.toml` :
441441+Les deux variables apparaissent bien dans mon `mise.toml` :
442442443443```toml
444444[env]
···446446CLEVER_SECRET = { age = "YYY" }
447447```
448448449449-J'ai fait la même chose avec mon `APP_ID` afin de pouvoir également le stocker sans souci sur git :
449449+J'ai fait la même chose avec mon `APP_ID` afin de pouvoir également le stocker sans souci sur git :
450450451451```shell
452452$ mise set --raw --age-encrypt --prompt PROD_APP_ID
···455455456456### La tasks
457457458458-Écrire les tasks pour `mise` est alors plutôt facile, il suffit d'enchaîner les deux commandes `clever link` et `clever deploy` dans un seul script :
458458+Écrire les tasks pour `mise` est alors plutôt facile, il suffit d'enchaîner les deux commandes `clever link` et `clever deploy` dans un seul script :
459459460460```toml
461461[tasks."clever:deploy"]
···466466'''
467467```
468468469469-Il suffit alors ensuite de lancer la commande `mise clever:deploy` et mon site est en production :
469469+Il suffit alors ensuite de lancer la commande `mise clever:deploy` et mon site est en production :
470470471471```shell
472472mise clever:deploy
+3-3
content/posts/2025/2025-12-31-mi-veille/index.md
···2323* [Split Keyboards Are Superior And The Reason I'm The Writer I Am Today](https://aftermath.site/best-split-keyboards-diy-qmk-zmk-corne/) _via_ [Molly White (@molly.wiki)](https://bsky.app/profile/molly.wiki) sur [Bluesky](https://bsky.app/profile/molly.wiki/post/3mb7v3fhcxc2b)
24242525> Un article complet sur les split keyboards. L'auteur y présente le concept, revient sur les keymaps, la gestion de layers, et l aspect DIY (Do It Yourself) avec le choix des switches et des keycaps.
2626-> J'ai d'ailleurs monté mon propre split keyboard, il y a quelques mois, l'article est ici : [Montage d'un clavier mécanique](/2025/07/25/montage-dun-clavier-mécanique)
2626+> J'ai d'ailleurs monté mon propre split keyboard, il y a quelques mois, l'article est ici : [Montage d'un clavier mécanique](/2025/07/25/montage-dun-clavier-mécanique)
27272828* [Firefox se dote d’une vue partagée pour afficher deux sites côte à côte - Next](https://next.ink/brief_article/firefox-se-dote-dune-vue-partagee-pour-afficher-deux-sites-cote-a-cote/?utm_source=dlvr.it&utm_medium=bluesky) _via_ [next.ink](https://next.ink)
2929···35353636* [Backing up Spotify](https://annas-archive.li/blog/backing-up-spotify.html) _via_ [Marme & lade (@marmelade.bsky.social)](https://bsky.app/profile/marmelade.bsky.social) sur [Bluesky](https://bsky.app/profile/marmelade.bsky.social/post/3mahhuoqp5223)
37373838-> J'ai vu passer cette info et je ne sais pas quoi en penser. Au-delà de l'acte "pirate" en lui-même et de l'usage qui pourrait être fait de ces données (faire apprendre une IA ?), il semble y avoir une réelle démarche de conservation.
3838+> J'ai vu passer cette info et je ne sais pas quoi en penser. Au-delà de l'acte "pirate" en lui-même et de l'usage qui pourrait être fait de ces données (faire apprendre une IA ?), il semble y avoir une réelle démarche de conservation.
3939Quoi qu'il en soit, l'article détaille des informations plutôt intéressantes et des graphes sur l'écoute des morceaux et l'algo supposé "aléatoire" de Spotify.
40404141## 🌱 Spring Boot
···7272> Un court article qui revient sur le démarrage du Kernel Linux et une partie de son fonctionnement. Il est intéressant de voir comment on peut très facilement démarrer un Kernel dans une VM QEMU, et lancer un simple programme.
7373> Ça permet aussi de réfléchir au concept de distribution Linux.
74747575-* [GNOME et KDE ont pris un coup de vieux : pourquoi tout le monde parle de COSMIC ?](https://goodtech.info/cosmic-desktop-rust-pop-os-system76-linux-revolution/) _via_ [Le journal du Hacker](https://www.journalduhacker.net/)
7575+* [GNOME et KDE ont pris un coup de vieux : pourquoi tout le monde parle de COSMIC ?](https://goodtech.info/cosmic-desktop-rust-pop-os-system76-linux-revolution/) _via_ [Le journal du Hacker](https://www.journalduhacker.net/)
76767777> Je teste COSMIC depuis quelques jours, et je suis déjà séduit. Ça marche bien, c'est frais, efficace (tiling auto💙), et c'est joli. À voir sur la durée, j'aurai un avis plus poussé d'ici à quelques semaines.
7878