GULLUM/Ateliers

De Wiki de l'AÉDIROUM

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
  • É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 (LaTeX)

  • Présentation principale
    • Markdown, pandoc, latex, formats de fichiers portables (ex. pdfs et aussi mentionner lecteurs de pdf), libreoffice, overleaf
  • Présentations avancées:
    • Tikz, jflap, beamer

Semaine 4 — Éditeurs de texte

  • Présentation principale
    • Survol des différents éditeurs de texte: emacs, vim/neovim, micro, nano, vscodium/vscode, IDE(y'existent), histoires des éditeurs de texte (ed, “Ed is the standard text editor.”)

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 — Version control (Git)

  • Présentation principale:
    • Explication de comment utiliser Git avec la ligne de commande, GitHub/GitLab, applications graphiques

Semaine 7 — Licences de logiciel et droits d’auteur

  • Une présentation:
    • GNU, GPL, licence permissive vs restrictive, LiLiQ, par défaut copyright appartient à l'auteur

Semaine 8 — Réseau

  • Présentation principale:
    • bluetooth, wifi direct, wireshark, ssh, intro dhcp/dns, netcat, ftp, sftp, scp, rsync

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

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
  • 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
  • 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