« GULLUM/Ateliers » : différence entre les versions
< GULLUM
(recherche: accès libre) |
(Formatage) |
||
Ligne 1 : | Ligne 1 : | ||
Le séminaire du [[GULLUM]] est une série hebdomadaire de présentations et tutoriels destinés à favoriser l’adoption des logiciels libres. | Le séminaire du [[GULLUM]] est une série hebdomadaire de présentations et tutoriels destinés à favoriser l’adoption des logiciels libres. | ||
= Session d’automne = | |||
== Semaine 0 — Introduction == | |||
== Semaine 1 — Base de la ligne de commande == | |||
=== Objectifs pédagogiques === | |||
*Connaître la syntaxe générale d’une commande (nom, flags, arguments) | *Connaître la syntaxe générale d’une commande (nom, flags, arguments) | ||
*Savoir obtenir de l’aide (<code>--help</code>, <code>man</code>, <code>whatis</code>, <code>apropos</code>) | *Savoir obtenir de l’aide (<code>--help</code>, <code>man</code>, <code>whatis</code>, <code>apropos</code>) | ||
Ligne 16 : | Ligne 17 : | ||
*Se familiariser avec les philosophies Unix (''Do One Thing and Do It Well'', ''Everything is a File'') | *Se familiariser avec les philosophies Unix (''Do One Thing and Do It Well'', ''Everything is a File'') | ||
Activités | === Activités === | ||
* Une présentation | * Une présentation | ||
* Défis dans un conteneur Linux préparé à l’avance pour démontrer le potentiel de la ligne de commande | * Défis dans un conteneur Linux préparé à l’avance pour démontrer le potentiel de la ligne de commande | ||
Ligne 30 : | Ligne 32 : | ||
* Écouter [https://www.youtube.com/watch?v=tc4ROCJYbm0 ''“The UNIX Operating System”'' (Bell Labs)] | * Écouter [https://www.youtube.com/watch?v=tc4ROCJYbm0 ''“The UNIX Operating System”'' (Bell Labs)] | ||
== Semaine 2 — Linux et ses distributions == | |||
=== Objectifs pédagogiques === | |||
*Comprendre le rôle des éléments principaux d’un système Linux (chargeur d’amorçage, noyau Linux, processus d’initialisation, programmes GNU, environnement de bureau, distribution) | *Comprendre le rôle des éléments principaux d’un système Linux (chargeur d’amorçage, noyau Linux, processus d’initialisation, programmes GNU, environnement de bureau, distribution) | ||
*Connaître les caractéristiques principales des distributions (minimaliste vs batteries included, rolling release vs point release, stable vs le plus à jour) | *Connaître les caractéristiques principales des distributions (minimaliste vs batteries included, rolling release vs point release, stable vs le plus à jour) | ||
Ligne 40 : | Ligne 43 : | ||
*Se familiariser avec l’histoire de Linux et de ses distributions (arbre généalogique) | *Se familiariser avec l’histoire de Linux et de ses distributions (arbre généalogique) | ||
Activités | === Activités === | ||
*Présentation principale | *Présentation principale | ||
*Premier ''installfest''! | *Premier ''installfest''! | ||
Ligne 46 : | Ligne 50 : | ||
*Présentations secondaires avancées de distributions en particulier | *Présentations secondaires avancées de distributions en particulier | ||
== Semaine 3 — Préparation de documents == | |||
=== Objectifs pédagogiques === | |||
*Savoir distinguer formats de travail et formats de sortie | *Savoir distinguer formats de travail et formats de sortie | ||
*Comprendre l’intérêt des langages de balisage (représentation de la structure des documents) | *Comprendre l’intérêt des langages de balisage (représentation de la structure des documents) | ||
Ligne 58 : | Ligne 63 : | ||
*Développer une familiarité avec l’éditeur collaboratif Overleaf | *Développer une familiarité avec l’éditeur collaboratif Overleaf | ||
Activités | === Activités === | ||
*Présentation principale | *Présentation principale | ||
*Présentations secondaires | *Présentations secondaires | ||
Ligne 68 : | Ligne 74 : | ||
**Génération de documents dans un format de sortie (ODF, PDF, ePUB) | **Génération de documents dans un format de sortie (ODF, PDF, ePUB) | ||
== Semaine 4 — Gestion de versions (Git) == | |||
*Présentation principale | *Présentation principale | ||
**Explication de comment utiliser Git avec la ligne de commande, GitHub/GitLab, applications graphiques | **Explication de comment utiliser Git avec la ligne de commande, GitHub/GitLab, applications graphiques | ||
== Semaine 5 — Suite ligne de commande == | |||
*Présentation principale | *Présentation principale | ||
Ligne 79 : | Ligne 85 : | ||
**Multiplexage (tmux, screen) | **Multiplexage (tmux, screen) | ||
== Semaine 6 — Éditeurs de texte == | |||
=== Objectifs pédagogiques === | |||
*Connaître les philosophies des différents éditeurs de texte | *Connaître les philosophies des différents éditeurs de texte | ||
**Simple vs batteries-included (extensibilité, IDE) | **Simple vs batteries-included (extensibilité, IDE) | ||
Ligne 89 : | Ligne 96 : | ||
*Être capable de faire un choix informé de l’éditeur de texte utilisé | *Être capable de faire un choix informé de l’éditeur de texte utilisé | ||
Activités | === Activités === | ||
*Présentation principale | *Présentation principale | ||
**État des lieux et généalogie des éditeurs de texte | **État des lieux et généalogie des éditeurs de texte | ||
Ligne 100 : | Ligne 108 : | ||
*Atelier Vim | *Atelier Vim | ||
== Semaine 7 — Licences de logiciel et droits d’auteur == | |||
* | *Présentation principale | ||
**GNU, GPL, licence permissive vs restrictive, LiLiQ, par défaut copyright appartient à l'auteur | **GNU, GPL, licence permissive vs restrictive, LiLiQ, par défaut copyright appartient à l'auteur | ||
== Semaine 8 — Réseau et sécurité == | |||
*Présentation principale | *Présentation principale | ||
**bluetooth, wifi direct, wireshark, ssh, intro dhcp/dns, netcat, ftp, sftp, scp, rsync | **bluetooth, wifi direct, wireshark, ssh, intro dhcp/dns, netcat, ftp, sftp, scp, rsync | ||
*Sécurité: gestion de clés SSH, mots de passe | *Sécurité: gestion de clés SSH, mots de passe | ||
*Cryptographie: chiffrement symétrique, asymétrique | *Cryptographie: chiffrement symétrique, asymétrique | ||
= Session d’hiver = | |||
== Semaine 9 — VMs et Conteneurs (Docker) == | |||
== Semaine 10 — Création médiatique == | |||
*Présentation principale | *Présentation principale | ||
**Blender, OpenSCAD, Inkscape, Krita, GIMP, Godot, Kdenlive, VLC, Audacity | **Blender, OpenSCAD, Inkscape, Krita, GIMP, Godot, Kdenlive, VLC, Audacity | ||
== Semaine 11 — Productivité == | |||
*Présentation principale | *Présentation principale | ||
**Thunderbird => calendrier + rss + setupper courriel + config + installation du adblock | **Thunderbird => calendrier + rss + setupper courriel + config + installation du adblock | ||
== Semaine 12 — Open Hardware == | |||
*Présentation principale | *Présentation principale | ||
**Raspberry pi, arduino, system76, frame.work, pine64, tuxedo computers, RISC V, keybs | **Raspberry pi, arduino, system76, frame.work, pine64, tuxedo computers, RISC V, keybs | ||
== Semaine 13 — Keyboard layouts == | |||
== Semaine 14 — Contributions aux projets open source == | |||
== Semaine 15 — Recherche académique == | |||
*OpenAlex, CORE | *OpenAlex, CORE | ||
Ligne 142 : | Ligne 150 : | ||
*Articles en accès libre/ouvert | *Articles en accès libre/ouvert | ||
== Semaine 16 — Bases de données ouvertes == | |||
* Wikidata | * Wikidata | ||
* OpenStreetMap, Overpass, JOSM | * OpenStreetMap, Overpass, JOSM | ||
= Autres sujets = | |||
Différence entre terminal, command prompt et shell | Différence entre terminal, command prompt et shell |
Version du 3 juin 2023 à 08:46
Le séminaire du GULLUM est une série hebdomadaire de présentations et tutoriels destinés à favoriser l’adoption des logiciels libres.
Session d’automne
Semaine 0 — Introduction
Semaine 1 — Base de la ligne de commande
Objectifs pédagogiques
- Connaître la syntaxe générale d’une commande (nom, flags, arguments)
- Savoir obtenir de l’aide (
--help
,man
,whatis
,apropos
) - Se déplacer dans le système de fichiers avec la ligne de commande (
cd
,pwd
,ls
) - Copier, déplacer, supprimer des fichiers (
cp
,mv
,rm
,rmdir
) - Lire et modifier des fichiers (
cat
,tail
,head
,less
,touch
,>
,>>
) - Faire des manipulations simples de données avec les pipes (
cowsay
,lolcat
,fortune
,tr
,sort
,uniq
,wc
) - Se familiariser avec les philosophies Unix (Do One Thing and Do It Well, Everything is a File)
Activités
- Une présentation
- Défis dans un conteneur Linux préparé à l’avance pour démontrer le potentiel de la ligne de commande
- Système de fichiers
- Trouver et afficher un fichier situé quelque part dans le système de fichiers
- Identifier les fichiers doublon (qui ont le même contenu) dans un répertoire
- Renommer tous les fichiers d’un répertoire selon un motif spécifique
- Pipes
- Lister les utilisateurs les plus souvent connectés sur la machine
- Compter le nombre de mots uniques dans un texte
- Everything is a File
- Lister les fichiers ouverts dans un processus
- Système de fichiers
- Écouter “The UNIX Operating System” (Bell Labs)
Semaine 2 — Linux et ses distributions
Objectifs pédagogiques
- Comprendre le rôle des éléments principaux d’un système Linux (chargeur d’amorçage, noyau Linux, processus d’initialisation, programmes GNU, environnement de bureau, distribution)
- Connaître les caractéristiques principales des distributions (minimaliste vs batteries included, rolling release vs point release, stable vs le plus à jour)
- Installer une distribution Linux sur une machine
- Rechercher et installer des nouveaux logiciels avec le gestionnaire de paquets ou avec Snap/Flatpak
- Effectuer la maintenance routinière d’une installation (mettre à jour les paquets, diagnostiquer les erreurs communes, sauvegarder ses données)
- Se familiariser avec l’histoire de Linux et de ses distributions (arbre généalogique)
Activités
- Présentation principale
- Premier installfest!
- Atelier de ricing
- Présentations secondaires avancées de distributions en particulier
Semaine 3 — Préparation de documents
Objectifs pédagogiques
- Savoir distinguer formats de travail et formats de sortie
- Comprendre l’intérêt des langages de balisage (représentation de la structure des documents)
- Comprendre les enjeux liés à l’accessibilité des documents
- Comprendre les enjeux liés à la portabilité des fichiers
- Connaître la différence entre WYSIWYG et non-WYSIWYG
- Être capable de composer un document de base avec Markdown
- Être capable de composer un document de base avec LaTeX
- Développer une familiarité avec l’éditeur collaboratif Overleaf
Activités
- Présentation principale
- Présentations secondaires
- Présentation sur la production graphique (SVG, TikZ)
- Présentation sur les présentations (meta) (Beamer, LibreOffice)
- Atelier LaTeX sur Overleaf
- Atelier avec Pandoc
- Conversion de documents entre langages de balisage (Markdown, HTML, LaTeX)
- Génération de documents dans un format de sortie (ODF, PDF, ePUB)
Semaine 4 — Gestion de versions (Git)
- Présentation principale
- Explication de comment utiliser Git avec la ligne de commande, GitHub/GitLab, applications graphiques
Semaine 5 — Suite ligne de commande
- Présentation principale
- Commandes plus complexes - ln, grep, permission bits, chmod, chown, sudo, kill, ps, awk, sed, environment variables, shebang, compilateurs+linking+interpretes, find, make
- Multiplexage (tmux, screen)
Semaine 6 — Éditeurs de texte
Objectifs pédagogiques
- Connaître les philosophies des différents éditeurs de texte
- Simple vs batteries-included (extensibilité, IDE)
- Interaction au clavier et/ou à la souris
- Graphique ou terminal
- Modal ou non-modal
- Être capable de faire un choix informé de l’éditeur de texte utilisé
Activités
- Présentation principale
- État des lieux et généalogie des éditeurs de texte
- Emacs
- Ed/Vi/Vim/NeoVim
- Nano/Micro
- VSCodium/VSCode
- Acme
- État des lieux et généalogie des éditeurs de texte
- Atelier Emacs
- Atelier Vim
Semaine 7 — Licences de logiciel et droits d’auteur
- Présentation principale
- GNU, GPL, licence permissive vs restrictive, LiLiQ, par défaut copyright appartient à l'auteur
Semaine 8 — Réseau et sécurité
- Présentation principale
- bluetooth, wifi direct, wireshark, ssh, intro dhcp/dns, netcat, ftp, sftp, scp, rsync
- Sécurité: gestion de clés SSH, mots de passe
- Cryptographie: chiffrement symétrique, asymétrique
Session d’hiver
Semaine 9 — VMs et Conteneurs (Docker)
Semaine 10 — Création médiatique
- Présentation principale
- Blender, OpenSCAD, Inkscape, Krita, GIMP, Godot, Kdenlive, VLC, Audacity
Semaine 11 — Productivité
- Présentation principale
- Thunderbird => calendrier + rss + setupper courriel + config + installation du adblock
Semaine 12 — Open Hardware
- Présentation principale
- Raspberry pi, arduino, system76, frame.work, pine64, tuxedo computers, RISC V, keybs
Semaine 13 — Keyboard layouts
Semaine 14 — Contributions aux projets open source
Semaine 15 — Recherche académique
- OpenAlex, CORE
- HAL, arXiv, bioRxiv
- JabRef, Zotero
- Articles en accès libre/ouvert
Semaine 16 — Bases de données ouvertes
- Wikidata
- OpenStreetMap, Overpass, JOSM
Autres sujets
Différence entre terminal, command prompt et shell
- Intro à linux
- Distribution
- Gnu
- Installation + Concepts de base
- Package manager
- Distribution
- Shell
- Syntaxe de base & coreutils
- Variables d'environment
- Man pages
- =--help=
- Shell II
- shebang & permission bits
- Scripts python exécutables
- =grep=, =find=, =|=
Pipes et redirection.
- Éditeur de texte, compilateur et make
- Editeurs
- Nano
- vscode
- Compilateurs
- Editeurs
- Git
- ssh
- sftp
- scp
- rsync
- grep, awk, sed
- Sed
- Awk
- Grep
- Histoire & Unix
- Programmes
- ajouter latex à la liste plus haut, avec overleaf - installfests - éditeurs de texte: vim, emacs, nano, vscode, micro - scripting avancé, daemons, etc