Skip to content
View ponsfrilus's full-sized avatar
🤖
Ideas are easy. Execution is everything.
🤖
Ideas are easy. Execution is everything.

Organizations

@donax @fixme-lausanne @epfl-sdf @epfl-dojo @epfl-enacit2 @epfl-si @epfl-fsd @r-engineeringresumes

Block or report ponsfrilus

Block user

Prevent this user from interacting with your repositories and sending you notifications. Learn more about blocking users.

You must be logged in to block users.

Content in all repositories owned by your account will be closed.
Maximum 250 characters. Please don’t include any personal information such as legal names or email addresses. Markdown is supported. This note will only be visible to you.
Report abuse

Contact GitHub support about this user’s behavior. Learn more about reporting abuse.

Report abuse
ponsfrilus/README.md

Hello World 👋

Nicolas Borboën aka ‟ponsfrilus„

Hello world! I'm a full stack engineer working @epfl-si in Lausanne, Switzerland.
Apparently, I'm hanging around on GitHub since 16 years and 8 months.
You can reach me on mastodon @mastodon.social@ponsfrilus or LinkedIn.
I'm also a teacher, a bots breeder, a happy husband and father of 2.

#EPFL | #EPFL-SI | #EPFL-FSD | #EPFL-Dojo | #EPFL-Dojo-kata 🔥 | #1TBS

GitHub followers Twitter Follow



My last starred repos

My last commits

[doc] Signaler que le dépôt a été vibe-codé

Ajoute un encadré en tête du README indiquant que l'intégralité du dépôt — contenu des trois parties, chaîne de génération, scripts, thème et documentation — a été produite par un agent conversationnel à partir d'une consigne en langage naturel.

La mention précise ce qui a réellement été vérifié : faits historiques et techniques recoupés, commandes exécutées, PDF contrôlés. Elle rappelle néanmoins que la relecture pédagogique incombe à l'humain qui enseignera ce cours.

Cette transparence est attendue de la part des étudiant·e·s dans les consignes de la partie 2, où l'usage d'une IA générative doit être déclaré et chaque fait vérifié auprès d'une source officielle. Le dépôt s'applique donc à lui-même la règle qu'il impose.

[doc] Ajouter le README et le CHANGELOG

  • README.md : présentation des trois parties du cours, prérequis et ligne d'installation pour Debian ou Ubuntu, démarrage rapide, utilisation du Makefile, raccourcis utiles pendant une présentation, syntaxe d'écriture des diapositives et détails techniques ;
  • CHANGELOG.md : version 1.0.0, au format Keep a Changelog.

La section « Détails techniques » consigne les trois contournements mis en place, afin qu'ils ne soient pas défaits par inadvertance : le correctif de requestAnimationFrame pour la vue d'impression de reveal.js, la neutralisation de l'indentation suspendue appliquée par pandoc aux blocs de code, et le choix de DejaVu Sans Mono pour les supports A4.

[feature] Ajouter le Makefile d'orchestration

Assemble les scripts de génération et les sources des trois parties du cours en une interface unique.

Cibles disponibles : deps, slides, pdf, handouts, check, watch, up, down, test, clean et distclean. L'aide auto-documentée est la cible par défaut, de sorte qu'un « make » sans argument ne construit rien.

Toutes les variables sont surchargeables depuis la ligne de commande, par exemple « make pdf THEME=black OUTDIR=/tmp/cours » ou « make up PORT=9000 ». La cible test vérifie la présence de pandoc, d'un navigateur Chromium, de XeLaTeX et de reveal.js, et liste la valeur effective de chaque variable ; elle sert de premier diagnostic quand une construction échoue.

La cible check enchaîne le contrôle de débordement sur les trois présentations et refuse de réussir tant qu'une diapositive déborde.

[feature] Ajouter les exercices et le corrigé de la partie 3

  • exercices.md : huit séries progressives et un défi final, tous fondés sur le bac à sable créé par preparer-atelier.sh, ce qui rend les énoncés et les réponses reproductibles d'une classe à l'autre ;
  • corriges.md : commandes attendues et sorties réelles, vérifiées sur le bac à sable, suivies des erreurs fréquemment observées.

La deuxième série est consacrée à la lecture de ls -l et reprend les points traités dans la présentation, dont le piège classique : le droit w sur un fichier n'autorise pas sa suppression, qui dépend des droits du répertoire qui le contient.

Le corrigé accepte explicitement toute variante correcte que l'apprenti·e sait expliquer, et signale les points à valoriser lors de la correction du défi final.

[feature] Ajouter la partie 3 : atelier ligne de commande

Présentation de 57 diapositives, accompagnée d'un aide-mémoire imprimable et du script qui prépare l'environnement d'exercice.

Le cœur de la séance est la lecture complète de la sortie de ls -l : les sept colonnes, le caractère de type, les neuf caractères de permissions, le sens différent de r, w et x sur un fichier et sur un répertoire, la notation octale, les bits setuid, setgid et sticky, le onzième caractère signalant une ACL ou un contexte SELinux, le compteur de liens physiques, la taille, la règle des six mois qui remplace l'heure par l'année, et la signification de la ligne « total ».

Le reste de la présentation couvre le terminal et l'invite, la navigation et le FHS, la manipulation de fichiers, la recherche, la lecture du manuel, les tubes et redirections, les droits et les processus, puis les pièges classiques.

preparer-atelier.sh crée le bac à sable ~/atelier-linux sur lequel reposent les exercices : droits variés dont un fichier en lecture seule, liens symboliques valide et cassé, fichiers cachés, dates antérieures à six mois pour illustrer l'affichage de l'année, et un nom de fichier contenant une espace. Le script ne demande aucun droit d'administrateur et sait se défaire avec --supprimer.

[feature] Ajouter la partie 2 : présenter une distribution

Exercice dans lequel les étudiant·e·s choisissent une distribution, l'installent, l'essaient, puis la présentent en dix minutes.

  • consignes.md : objectifs, organisation, liste de distributions proposées par famille, contenu attendu, obligation de citer trois sources datées, mode d'emploi de la chaîne de génération et barème sur 20 points ;
  • modele-presentation.md : modèle de 27 diapositives à compléter, dont le mode d'emploi est rédigé en commentaires HTML au début du fichier et n'apparaît donc pas dans le résultat produit ;
  • rendus/ : répertoire de dépôt des travaux.

La preuve d'un essai réel — capture d'écran personnelle et sortie de commandes exécutées sur la distribution — est notée séparément, afin d'écarter les présentations recopiées du site officiel.

Le modèle sert aussi d'exemple d'utilisation des encadrés, des notes du présentateur et de la disposition en deux colonnes.

[feature] Ajouter la partie 1 : introduction à Linux

Présentation magistrale de 57 diapositives, prévue pour 90 minutes :

  • histoire : Unix en 1969, le projet GNU en 1983, le message de Linus Torvalds du 25 août 1991 sur comp.os.minix, le passage sous GPL en 1992, puis les jalons jusqu'au noyau actuel ;
  • où l'on trouve Linux : TOP500, cloud, Android, embarqué, poste de travail, et pourquoi sa part y reste faible ;
  • comparaison avec Windows, macOS et les BSD, ainsi que le cas d'Android, fondé sur le noyau mais sans espace utilisateur GNU ;
  • avantages, limites, et réponses concrètes à ces limites ;
  • anatomie du système en couches : noyau (espace noyau et espace utilisateur, appels système, modules), shell, serveur d'affichage X11 ou Wayland, gestionnaire de fenêtres, environnement de bureau, système d'initialisation et gestionnaire de paquets ;
  • distributions : grandes familles, rythmes de publication, critères de choix ;
  • licences libres, quiz de révision et annonce des parties 2 et 3.

La distinction entre serveur d'affichage, gestionnaire de fenêtres et environnement de bureau fait l'objet d'une diapositive dédiée : c'est la confusion la plus fréquente chez les débutants.

Les notes du présentateur sont incluses dans les sources et restent invisibles à l'écran comme dans le PDF.

[feature] Ajouter la génération des supports A4

scripts/handout.sh convertit les documents de travail — consignes, exercices, corrigé et aide-mémoire — en PDF A4 au moyen de pandoc et de XeLaTeX, avec table des matières et sections numérotées.

La police à chasse fixe utilisée par défaut en LaTeX, Latin Modern Mono, ne contient pas les caractères de dessin de tableaux U+2500 et suivants employés par les schémas de permissions du cours ; XeLaTeX émet alors un avertissement « Missing character » et les schémas sont tronqués. Le script impose donc DejaVu Sans Mono, surchargeable par la variable MONOFONT.

En l'absence de XeLaTeX, le script produit un HTML autonome plutôt que d'échouer.

[feature] Ajouter le contrôle de débordement des diapositives

Une diapositive trop chargée n'est pas tronquée par reveal.js : son contenu est réparti sur plusieurs pages du PDF. Le défaut passe inaperçu tant que l'on ne compare pas le nombre de pages obtenu au nombre de diapositives écrites.

  • assets/overflow-audit.html : à la fin de la mise en page d'impression (événement pdf-ready), compare la hauteur de chaque élément .pdf-page à celle d'une page et consigne le résultat dans un attribut du ;
  • scripts/check-overflow.sh : construit la présentation avec cet ajout, relit l'attribut au moyen de --dump-dom et liste les diapositives fautives avec leur titre et leur taux de dépassement.

Le script sort en erreur dès qu'une diapositive déborde : il est donc utilisable en intégration continue.

[feature] Ajouter l'habillage EPFL des présentations

assets/css/epfl.css se superpose au thème « white » de reveal.js :

  • couleurs de la charte EPFL déclarées en propriétés personnalisées, avec des combinaisons conformes au contraste WCAG 2.1 AA — le Groseille est préféré au rouge vif pour les titres sur fond blanc ;
  • titres en casse normale, soulignés d'un filet rouge ;
  • taille de base ramenée de 42 à 30 px, afin de tenir davantage de contenu sur une diapositive de 1280x720 sans déborder ;
  • encadrés .note, .tip, .warning et .danger, tableaux et disposition en deux colonnes ;
  • blocs « console » sur fond sombre, visuellement distincts des blocs de code colorés.

Le bloc @media print neutralise l'indentation suspendue que pandoc applique aux lignes de code colorées (text-indent de -5em compensé par un padding-left de 5em) : à l'export PDF, elle décalait tous les blocs de code d'environ cinq cadratins vers la droite.

⏰ Updated on Fri, 11 Sep 2026 17:10:40 GMT

Pinned Loading

  1. Awesome-TPI Awesome-TPI Public

    Dépôt regroupant des ressources utiles aux apprentis, chefs de projet et experts pour les taravaux pratiques individuels (TPI) de fin d'apprentissage des informaticien·ne·s CFC.

    HTML 22 1

  2. octave-x11-novnc-docker octave-x11-novnc-docker Public

    A docker that runs Octave (and a little bit more)

    JavaScript 52 12

  3. ponsfrilus.tdesktop-theme ponsfrilus.tdesktop-theme Public

    A low-poly Telegram theme

    Makefile 12

  4. dockerGUI dockerGUI Public

    Testing GUI apps with Docker

    7

  5. arch-novnc arch-novnc Public

    Docker container running ArchLinux accessible through novnc in a browser

    Dockerfile 16 7

  6. EPFLArrival EPFLArrival Public

    A vue application for EPFL's newcomers (but not only...)

    JavaScript 12 6