« GULLUM/Ateliers » : différence entre les versions

De Wiki de l'AÉDIROUM
(→‎Activités : Production graphique → Asymptote)
 
(20 versions intermédiaires par 2 utilisateurs non affichées)
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.
Les '''ateliers du [[GULLUM]]''' sont des présentations et des tutoriels destinés à favoriser l’adoption des logiciels libres.


= Session d’automne =
== Session d’automne: Outils fondamentaux ==


== Semaine 0 — Introduction ==
=== 25 septembre–1ᵉʳ octobre: [[GULLUM/Ateliers/Bases de la ligne de commande|Bases de la ligne de commande]] ===
<blockquote>{{:GULLUM/Ateliers/Bases de la ligne de commande}}</blockquote>
<br clear="both">


== Semaine 1 — Base de la ligne de commande ==
=== 2 octobre–8 octobre: [[GULLUM/Ateliers/Linux et ses distributions|Linux et ses distributions]] ===
<blockquote>{{:GULLUM/Ateliers/Linux et ses distributions}}</blockquote>
<br clear="both">


[[Fichier:GULLUM-Seminaire-Semaine1-Terminal.jpg|thumb|200px|Un terminal VT100]]
=== 9 octobre–15 octobre: [[GULLUM/Ateliers/De la source à la page: TeXniques de rédaction avec Markdown et LaTeX|De la source à la page: TeXniques de rédaction avec Markdown et LaTeX]] ===
<blockquote>{{:GULLUM/Ateliers/Préparation de documents}}</blockquote>
<br clear="both">


=== Objectifs pédagogiques ===
=== À venir: [[GULLUM/Ateliers/Gestion de versions|Gestion de versions]] ===
=== À venir: [[GULLUM/Ateliers/Ligne de commande avancée|Ligne de commande avancée]] ===
=== À venir: [[GULLUM/Ateliers/Éditeurs de texte|Éditeurs de texte]] ===
=== À venir: [[GULLUM/Ateliers/Licences de logiciel et droit d’auteur|Licences de logiciel et droit d’auteur]] ===
=== À venir: [[GULLUM/Ateliers/Web|Web]] ===


*Connaître la syntaxe générale d’une commande (nom, flags, arguments)
= Session d’hiver: Sujets avancés =
*Savoir obtenir de l’aide (<code>--help</code>, <code>man</code>, <code>whatis</code>, <code>apropos</code>)
*Se déplacer dans le système de fichiers avec la ligne de commande (<code>cd</code>, <code>pwd</code>, <code>ls</code>)
*Copier, déplacer, supprimer des fichiers (<code>cp</code>, <code>mv</code>, <code>rm</code>, <code>rmdir</code>)
*Lire et modifier des fichiers (<code>cat</code>, <code>tail</code>, <code>head</code>, <code>less</code>, <code>touch</code>, <code>&gt;</code>, <code>&gt;&gt;</code>)
*Faire des manipulations simples de données avec les ''pipes'' (<code>cowsay</code>, <code>lolcat</code>, <code>fortune</code>, <code>tr</code>, <code>sort</code>, <code>uniq</code>, <code>wc</code>)
*Voir et communiquer avec les autres utilisateurs du système (<code>last</code>, <code>who</code>, <code>write</code>, <code>wall</code>, <code>mesg</code>)
*Manipuler le terminal avec les séquences de contrôle (<code>Ctrl-C</code>, <code>Ctrl-D</code>, <code>Ctrl-Z</code>, <code>Ctrl-\</code>)
*Se familiariser avec les philosophies Unix (''Do One Thing and Do It Well'', ''Everything is a File'')


=== Activités ===
== Semaine 9: Réseau et sécurité ==
 
* 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
* Écouter [https://www.youtube.com/watch?v=tc4ROCJYbm0 ''“The UNIX Operating System”'' (Bell Labs)]
 
== Semaine 2 — Linux et ses distributions ==
 
[[Fichier:GULLUM-Seminaire-Semaine2-Distributions.png|thumb|200px|Arbre généalogique des principales distributions Linux]]
 
=== 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
**Différence entre les utilisateurs réguliers et les super utilisateurs - sudo
*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 ==
 
[[Fichier:GULLUM-Seminaire-Semaine3-Documents.jpg|thumb|200px|Page préparée avec des caractères en plomb]]
 
=== 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é, la portabilité et l’archivage des documents
*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, Asymptote)
**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) ==
 
=== Objectifs pédagogiques ===
 
*Survol de l'histoire de GIT avec mention d'autres gestionnaires de versions
*Apprendre l'intérêt d'utiliser un gestionnaire de versions
**Garder un historique des versions de ton code
**Faciliter la collaboration et le partage de fichiers textes
*Connaitre quelques commandes de base du programme GIT
**base - init, status, diff, add, commit
**historique - show, log
**intéraction avec le serveur - clone, pull, push
**branchement - branch, switch, merge
*Comprendre la théorie derrière GIT
*Survoler les hébergeurs de répertoires GIT - GitHub, GitLab
*Survoler les clients graphiques pour GIT - GitK, Git gui, gitg
*Savoir bien écrire un message de commit
 
=== Activités ===
 
*Présentation principale
*Atelier bisect
 
== Semaine 5 — Ligne de commande avancée ==
 
=== Objectifs pédagogiques ===
 
*Comprendre le fonctionnement des liens dans le système de fichiers (<code>ln</code>, soft links, inodes, hard links)
*Utiliser le système de permissions de base de Linux (permission bits, <code>chmod</code>, <code>chown</code>)
*Rechercher et éditer du texte (<code>find</code>, <code>grep</code>, <code>sed</code>, <code>awk</code>)
*Savoir ce qu'est un processus (code, mémoire, fichiers ouverts, environnement, <code>/proc</code>)
*Gérer les processus (<code>ps</code>, <code>pgrep</code>, <code>kill</code>, <code>top</code>/<code>htop</code>, <code>jobs</code>, <code>fg</code>/<code>bg</code>/<code>disown</code>)
*Comprendre la différence entre un programme interprété (hashbang) et un programme binaire (ELF)
*Comprendre comment le shell exécute des programmes (<code>$PATH</code>, built-ins)
*Se familiariser avec le linking et les librairies partagées (<code>ldd</code>)
*Multiplexer sa session de terminal (<code>tmux</code>, <code>screen</code>)
*Automatiser des tâches avec <code>make</code>
 
=== Activités ===
 
*Présentation principale
 
== Semaine 6 — Éditeurs de texte ==
 
=== Objectifs pédagogiques ===
 
*Connaître les philosophies de différents éditeurs
**Simple vs batteries-included (extensibilité, IDE)
**Interaction au clavier et/ou à la souris
**Graphique ou terminal
**Modal ou non-modal
*Choisir un éditeur de façon informée
*Se familiariser avec l'histoire des éditeurs libres (arbre généalogique)
 
=== 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
*Atelier Emacs
*Atelier Vim
 
== Semaine 7 — Licences de logiciel et droits d’auteur ==
 
[[Fichier:GULLUM-Seminaire-Semaine7-Licences.png|thumb|200px|Comparaison des licences Creative Commons]]
 
=== Objectifs pédagogiques ===
 
*Comprendre c'est quoi le droit d'auteur
**Comprendre que le droit d'auteur existe par défaut pour tout son code
**Différence entre brevets logiciels, droit d'auteur et marques de commerce
*Apprendre les différences entre les licences les plus communes
**Licences restrictive/permissives GPL, LiLiQ, MIT, Apache, MPL, OQL, WTFPL
*Apprendre l'histoire du mouvement du logiciel libre - GNU, FSF
*Creative commons - CC0
*Domaine public
*Copyleft
 
=== Activités ===
 
*Présentation principale
 
== Semaine 8 — Réseau et sécurité ==


=== Objectifs pédagogiques ===
=== Objectifs pédagogiques ===
Ligne 181 : Ligne 36 :
*Connection local sans-fil - bluetooth, wifi direct
*Connection local sans-fil - bluetooth, wifi direct
*[[Connexion au Wi-Fi de l'université sous Linux]]
*[[Connexion au Wi-Fi de l'université sous Linux]]
* Tor


=== Activités ===
=== Activités ===
Ligne 186 : Ligne 42 :
*Présentation principale
*Présentation principale


= Session d’hiver =
== Semaine 10: VMs et Conteneurs (Docker) ==
 
== Semaine 9 — Web ==
 
=== Objectifs pédagogiques ===
 
*Connaître les éléments de base du web (HTTP, HTML/CSS, JS)
*Se familiariser avec le navigateur (dev tools, extensions)
*Publier un site web minimaliste
*Comprendre les enjeux liés à l’accessibilité du web
*Suivre l'activité d'une page web avec RSS
*Récupérer et manipuler des données du web (API, scraping, web sémantique)
*Comprendre les modèles économiques dominants associés aux contenus du web
*Connaître les principales techniques de pistage sur le web et savoir s'en protéger
 
=== Activités ===
 
*Présentation principale
*Atelier Wikipedia & Wikidata
*Atelier OpenStreetMap
**Découverte de la carte et du modèle de données
**Extraction de données avec Overpass
**Contribution avec JOSM
 
== Semaine 10 VMs et Conteneurs (Docker) ==


== Semaine 11 Création médiatique ==
== Semaine 11: Création médiatique ==


*Présentation principale
*Présentation principale
**Blender, OpenSCAD, Inkscape, Krita, GIMP, Godot, Kdenlive, VLC, Audacity
**'''3D:''' Blender, OpenSCAD, Godot
**'''Image:''' Inkscape, Krita, GIMP
**'''Vidéo:''' ffmpeg, Kdenlive, VLC
**'''Audio:''' Audacity, sox


== Semaine 12 Productivité ==
== Semaine 12: 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 13 Open Hardware ==
== Semaine 13: 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 14 — Keyboard layouts ==
== Semaine 14: Claviers ==
 
*Dispositions de claviers
*Firmware de claviers


== Semaine 15 — Contributions aux projets open source ==
== Semaine 15: Contribution au libre ==


== Semaine 16 Recherche académique ==
== Semaine 16: Recherche académique ==


*OpenAlex, CORE
*OpenAlex, CORE

Version actuelle datée du 9 octobre 2023 à 13:43

Les ateliers du GULLUM sont des présentations et des tutoriels destinés à favoriser l’adoption des logiciels libres.

Session d’automne: Outils fondamentaux

25 septembre–1ᵉʳ octobre: Bases de la ligne de commande

Un terminal VT100

(description à ajouter)


2 octobre–8 octobre: Linux et ses distributions

Tux, la mascotte de Linux

Le noyau du système d’exploitation (OS) est le logiciel qui coordonne l’accès aux composants de l’ordinateur (processeur, mémoire, stockage, USB, …) pour que les autres programmes puissent les utiliser de façon efficace et sécuritaire. Dans cet atelier, nous vous familiariserons avec Linux, le noyau libre le plus répandu à ce jour. Vous apprendrez à choisir, installer, utiliser et tenir à jour une distribution Linux sur une machine.

L’utilisation d’un système libre comme Linux présente de nombreux avantages: code source ouvert et largement audité, excellente documentation, grande communauté de développeurs et d’entraide. L’atelier vous montrera notamment comment observer et contrôler les interactions des programmes avec Linux, comment diagnostiquer certaines erreurs communes et comment obtenir de l’aide avec votre nouvelle installation de Linux.


9 octobre–15 octobre: De la source à la page: TeXniques de rédaction avec Markdown et LaTeX

Page préparée avec des caractères en plomb

Nous utilisons des documents pour développer, transmettre et conserver nos idées. Cet atelier vous familiarisera avec les outils libres qui permettent de composer et diffuser des documents sur un ordinateur. Nous verrons la notion de balisage (Markdown, HTML, …) et comment elle permet d’écrire des documents accessibles à tous, pouvant être aisément convertis entre plusieurs formats de travail. Nous présenterons LaTeX, un langage de programmation qui facilite l’écriture de documents en automatisant entre autres le rendu de formules mathématiques, la numérotation de sections et de pages, et la génération de références. Ces avantages ont notamment permis au langage LaTeX de s’imposer face aux logiciels concurrents propriétaires pour la production de documents scientifiques.


À venir: Gestion de versions

À venir: Ligne de commande avancée

À venir: Éditeurs de texte

À venir: Licences de logiciel et droit d’auteur

À venir: Web

Session d’hiver: Sujets avancés

Semaine 9: Réseau et sécurité

Objectifs pédagogiques

  • Comprendre comment utiliser SSH
    • Gestion de clés SSH, mots de passe (gestionnaires de mot de passe ex: keypass)
    • Transfer et synchronisation des fichiers - scp, rsync, syncthing
  • Cryptographie de base - chiffrement symétrique, asymétrique, signatures, hachage, gpg
  • Introduction au protocoles à la base - http, ftp, sftp, telnet, curl
    • intro dhcp/dns - dig
  • Surveiller l'activité réseau - wireshark, netcat
  • Connection local sans-fil - bluetooth, wifi direct
  • Connexion au Wi-Fi de l'université sous Linux
  • Tor

Activités

  • Présentation principale

Semaine 10: VMs et Conteneurs (Docker)

Semaine 11: Création médiatique

  • Présentation principale
    • 3D: Blender, OpenSCAD, Godot
    • Image: Inkscape, Krita, GIMP
    • Vidéo: ffmpeg, Kdenlive, VLC
    • Audio: Audacity, sox

Semaine 12: Productivité

  • Présentation principale
    • Thunderbird => calendrier + rss + setupper courriel + config + installation du adblock

Semaine 13: Open Hardware

  • Présentation principale
    • Raspberry pi, arduino, system76, frame.work, pine64, tuxedo computers, RISC V, keybs

Semaine 14: Claviers

  • Dispositions de claviers
  • Firmware de claviers

Semaine 15: Contribution au libre

Semaine 16: Recherche académique

  • OpenAlex, CORE
  • HAL, arXiv, bioRxiv
  • JabRef, Zotero
  • Articles en accès libre/ouvert