phyve a écrit 24 commentaires

  • [^] # Re: gsh_gettext.sh Aucun fichier ou dossier de ce type

    Posté par  . En réponse à la dépêche GameShell, le retour. Évalué à 2.

    Je n'arrive pas à reproduire ce bug, même à partir d'une installation vraiment minimale.

    Ton bug donne l'impression que les chemins d'accès ne sont pas définis correctement.

    Est-ce que tu peux me donner les résultats des commandes suivantes (lancées depuis GameShell) :

    [mission ] $ echo $GSH_ROOT
    ???
    [mission ] $ echo $PATH
    ???

  • [^] # Re: Nouvelle aventure

    Posté par  . En réponse à la dépêche GameShell, le retour. Évalué à 3. Dernière modification le 17 juillet 2021 à 23:21.

    Il n'y a pas vraiment d'ordre pour les "aventures". L'idée est que basic doit venir en premier pour apprendre à se déplacer dans le monde de GameShell et de manipuler les fichiers.

    Pour la suite, rien n'est imposé, mais les missions d'une aventure doivent a priori être faites dans l'ordre et suivre une progression, alors que les aventures sont indépendantes entre elles.

    L'aventure finding_files_maze par exemple, est découpée en 2 morceaux dans l'archive "officielle" : une première partie où on utilise simplement find (missions 19-21), et une seconde où on combine find avec d'autres trucs (missions 38-39).

    J'ai l'impression qu'il ne manque pas grand chose dans l'aventure basic (commandes et concepts de base).
    Les trucs à faire sont soit des missions "singletons", à mettre dans "misc" (pour des trucs divers, pas forcément standards : par exemple, la commande seq ou factor, ou watch) ou "intermediate" (pour des trucs standards compatibles POSIX : par exemple des motifs avancés avec *.??[!gG], la commande tee).
    Les missions des ces 2 aventures sont essentiellement indépendantes entre elles.

    D'autres concepts méritent une aventure spécifique avec plusieurs missions : liens symboliques, expressions régulières, etc.

    Globalement, GameShell vise plutôt à enseigner l'utilisation interactive du shell. J'aimerais bien ajouter une ou deux missions pour montrer les boucles simples sur les fichiers, mais je n'ai pas l'intention d'aller beaucoup plus loin sur l'écriture de scripts.

    Et même s'il n'y en a pas pour le moment, rien interdit d'avoir des mission qui introduisent des trucs spécifiques à bash ou zsh (les 2 shells supportés).

  • [^] # Re: Suppression de Python

    Posté par  . En réponse à la dépêche GameShell, le retour. Évalué à 3.

    Même si les dépendances ne me dérangeaient pas, je suis aussi content de les avoir supprimées.

    Et les supprimer m'a fait découvrir plein de trucs.

  • [^] # Re: Interface graphique nécessaire?

    Posté par  . En réponse à la dépêche GameShell, le retour. Évalué à 4.

    Sans problème. Il y a une seule mission qui nécessite X, et elle sera sautée si la variable DISPLAY n'est pas définie.

    Vérifie que tu as les dépendances des autres missions (gettext man-db psmisc nano tree et bsdmainutils), et

    $ wget https://github.com/phyver/GameShell/releases/download/latest/gameshell.sh
    $ bash gameshell.sh

    fonctionnera sans problème à distance.

  • [^] # Re: Bravo !

    Posté par  . En réponse à la dépêche GameShell, le retour. Évalué à 2.

    Content que tu ais aimé !
    Et n'hésite pas à créer de nouvelles missions. Tu verras, ce n'est pas très compliqué.

  • [^] # Re: Quelques remarques

    Posté par  . En réponse à la dépêche GameShell, le retour. Évalué à 2. Dernière modification le 03 juillet 2021 à 13:07.

    Merci, c'est corrigé.

    Pour le message, tu as effectivement raison, mais je voulais éviter un truc "négatif" pour le joueur. Je vais chercher une autre formulation. :)

  • [^] # Re: Super initiative

    Posté par  . En réponse à la dépêche GameShell, le retour. Évalué à 3.

    J'ai jamais eu ce problème avec mes étudiants, mais ça mérite une remarque. Je viens d'ajouter une phrase dans le fichier goal de la première mission.

  • [^] # Re: Suppression de Python

    Posté par  . En réponse à la dépêche GameShell, le retour. Évalué à 5.

    Tout est une question de point de vue.
    J'utilise Python, et mes étudiants aussi. Cette dépendance ne me choquait donc pas. (Mais je suis content de m'en être débarrassé.)

    Par contre, une dépendance sur Ruby (au hasart) m'aurait choqué, et une dépendance sur nodejs m'aurait carrément convaincu d'aller voir ailleurs !

  • [^] # Re: tree

    Posté par  . En réponse à la dépêche GameShell, le retour. Évalué à 4.

    Merci, je regarde ta pull-request bientôt.

    Pour tree, je crois que j'ai déjà changé d'avis plusieurs fois. Je trouve effectivement que cette commande est bien pour visualiser l'arborescence et est vraiment utile pour les débutants (mes étudiants).
    D'un autre coté, la mission sert aussi à préparer les missions suivantes, et ça serait dommage de la sauter.

    Pour le moment, je mets tree dans la liste des paquets à installer (dans le README), mais ne considère pas cette commande comme une dépendance stricte. (C'est pour ça que j'ai ajouté ls -R dans le fichier goal.)

    Ton commentaire va peut-être me faire changer d'avis, encore une fois. :)

  • [^] # Re: Mission 31

    Posté par  . En réponse à la dépêche GameShell, le retour. Évalué à 4.

    C'est normalement corrigé.

  • [^] # Re: Mission 28

    Posté par  . En réponse à la dépêche GameShell, le retour. Évalué à 4.

    C'est normalement corrigé !

  • [^] # Re: Mission 31

    Posté par  . En réponse à la dépêche GameShell, le retour. Évalué à 3.

    Ça, c'est clairement un bug. Il faut normalement répondre à 100 multiplications !
    Je regarde ça cette après-midi.

  • [^] # Re: Mission 28

    Posté par  . En réponse à la dépêche GameShell, le retour. Évalué à 3.

    Ah…
    Ces missions m'en font voir de toutes les couleurs.

    Je regarde ça.

  • [^] # Re: Super initiative

    Posté par  . En réponse à la dépêche GameShell, le retour. Évalué à 4.

    Super !
    N'hésite pas à faire un retour. Les utilisateurs complètement novices ne voient pas du tout les mêmes choses que les utilisateurs plus avancés.

  • # Merci à vous !

    Posté par  . En réponse au journal [Message de service] Gagnants des meilleures contributions de mars 2021. Évalué à 2.

    Quelle surprise !
    Je ne savais pas que linuxfr offrait des prix.

  • [^] # Re: Petits retours

    Posté par  . En réponse à la dépêche GameShell, apprendre les rudiments du shell en s'amusant. Évalué à 4.

    Merci pour ces retours.

    • pour le $HOME, c'est un choix que j'assume. C'est assez naturel dans ce contexte que le répertoire personnel, ou "point de départ" soit à la racine du jeux. Je n'en parle qu'à l'oral et qu'aux étudiants qui connaissent. Ajouter un message la dessus dans le gash show va plus perturber les débutants qu'aider les connaisseurs.

    • pour les missions 23, c'est vrai que c'est un peu artificiel. L'objectif explicite est surtout de faire une première redirection de commandes. (Je n'ai encore jamais eu d'étudiant qui connaissait awk !)

    • pareil pour nano. Même si tout le monde sait bien que vim est le meilleur éditeur de texte de l'univers, je ne voulais pas imposer ça aux étudiants. nano a le mérite d'avoir la liste des racourcis clavier affichée par défaut, ce qui me simplifie la tâche.

    • Je suis d'accord avec toi sur la mission de falsification du tableau. C'est très artificiel, et je n'ai jamais eu besoin de faire quelque chose comme ça en vrai. Elle va probablement disparaitre un jours.

    • Et pour le calcul mental, essaie de faire gash check pour voir ce qu'on te demande. (Ne réfléchis pas trop sur la première mission.)

  • [^] # Re: dépendances

    Posté par  . En réponse à la dépêche GameShell, apprendre les rudiments du shell en s'amusant. Évalué à 1.

    Oulala. Ça fait un peu compliqué comme dépendance pour GameShell ! :)

    Mes étudiants arrivent avec une machine virtuelle Ubuntu. Ils doivent juste installer quelques paquets qui ne nécessitent en outre aucune configuration.

    Ceci dit, ça m'a donné envie de regarder : je n'ai jamais utilisé vagrant et ansible.

  • [^] # Re: dépendances

    Posté par  . En réponse à la dépêche GameShell, apprendre les rudiments du shell en s'amusant. Évalué à 3.

    L'objectif est bien de manipuler un shell interactif, mais je soulevais la contrainte POSIX pour les sources de GameShell.

    Cependant, même dans un shell interactif, j'aime bien utiliser autant que possible utiliser des commandes POSIX. Je ne l'ai pas fait dans ce TP parce que l'objectif est de cacher le plus possible les parties "cracra" du shell. (Vous avez remarqué que je fais attention à ne surtout pas parler de guillemets ?)

    Et même une commande aussi simple que mv a une option non-POSIX : -t, pourtant bien pratique avec xargs.

  • [^] # Re: dépendances

    Posté par  . En réponse à la dépêche GameShell, apprendre les rudiments du shell en s'amusant. Évalué à 2.

    Ce qui m'avais enduit d'erreur, c'est que comme exemple de truc à installer sur leur VM, je donne idle3 aux étudiants lors du premier TP. Comme ils font du Python pour leurs cours de prog, ça me paraissait une bonne idée.

    Pour gcc, il est également installé lorsque je leur fais installer virtualbox-guest-additions-iso.

    Résultat, ils ont tous python3 et gcc au TP2, malgré une installation "standard" du Ubuntu.

    Et comme j'utilise moi même gcc et python3 (par exemple pour mes cours), je crois que je n'ai jamais eu de machine où ils n'étaient pas installés !

    En tout cas, on peut lancer GameShell sans eux, et dès que j'aurais testé un peu plus, on pourra gérer les dépendances de missions un peu plus facilement. (Lorsque les dépendances ne sont pas satisfaites, on aura un message, et la mission sera sautée.)

  • [^] # Re: dépendances

    Posté par  . En réponse à la dépêche GameShell, apprendre les rudiments du shell en s'amusant. Évalué à 2. Dernière modification le 28 mars 2021 à 11:57.

    C'est vrai, mais pour un truc comme GameShell, les parties non-POSIX de bash sont parfois bien pratiques.

    Je n'ai plus d'exemple en tête (probablement des substitutions sur les variables), mais je sais que j'avais commencé GameShell en essayant de rester compatible POSIX. J'avais abandonné parce que certains trucs devenaient assez lourds (et que j'étais un peu pressé).

  • [^] # Re: dépendances

    Posté par  . En réponse à la dépêche GameShell, apprendre les rudiments du shell en s'amusant. Évalué à 5.

    Pourquoi pas, mais comme je vais continuer à l'utiliser en TP (vu le temps que j'y ai passé, je ne suis pas prêt de le changer celui là !), je préfère laisser toutes les missions qui m'intéressent !

  • [^] # Re: Essai et premiers retours

    Posté par  . En réponse à la dépêche GameShell, apprendre les rudiments du shell en s'amusant. Évalué à 2.

    Merci !
    À part quelques trucs (je garde "chaine" plutôt que "chaîne", et autres accents circonflexes), tout le reste est très bien.

    Pour le tgz, j'ai pas mal hésité, mais je voulais pouvoir faire lancer une partie sans cloner le dépot. Pour mon TP, je mets l'archive sur ma page web, mais vu la taille, j'ai décidé de mettre le tgz dans le dépot. (J'ai un pre-commit qui le regénère.)

    J'utilise (un peu) shellcheck sur les sources de GameShell à travers un plugin vim.

    Et pour les dates, c'est un choix pragmatique : je ne voulais pas avoir à expliquer la différence à tous les étudiants ! Comme on est sur une utilisation interactive, ça ne me dérange pas. (Ça serait différent si je leur demandais d'écrire un script.)

  • [^] # Re: dépendances

    Posté par  . En réponse à la dépêche GameShell, apprendre les rudiments du shell en s'amusant. Évalué à 4.

    x11-apps, c'est pour avoir l'indispensable xeyes, qui est lancé dans la mission 17.
    Ce n'est pas stricto sensu une dépendance de GameShell.

    killall et fuser ne servent pas, mais on utilise pstree dans la mission 25.

    C'est pareil pour python3 et gcc : ils sont uniquement utilisés pour générer les missions 30 et 33. Si on veut, il est facile de faire une archive sans ces missions (avec la commande bin/archive.sh).

    Ceci dit, tu as raison. Je ne suis pas sûr que gcc et python3 soient présents sur une installation minimale. Je vais vérifier. (Pendant la première séance, les étudiants installent une VM Ubuntu, et ils sont probablement installés comme dépendances d'autres trucs…)

    python3 sert aussi à générer les boites autours des descriptions de missions, mais s'il n'est pas présent, on n'a pas les jolis parchemins !

    Ça pourrait être intéressant de tagger les missions qui sont compatibles POSIX, mais c'est un peu pervert, parce que bash n'est pas POSIX.
    Ça serait aussi bien d'avoir un truc plus formel pour gérer les dépendances de chaque mission. C'est dans un TODO…

  • [^] # Re: Dans le même genre

    Posté par  . En réponse à la dépêche GameShell, apprendre les rudiments du shell en s'amusant. Évalué à 9.

    C'est exactement ça !
    Je crois que j'étais tombé Terminus à l'époque, mais ça ne m'avait pas vraiment convaincu. Je cherchais effectivement un truc qui se rapproche le plus possible d'une utilisation "normale" d'un shell.

    Avec le recul, je pense que c'était une bonne idée : même avec GameShell, de nombreux étudiants ont du mal à réutiliser les commandes. Ils ont compris qu'ils pouvaient faire cd Chateau/Donjon, mais me demandent "Comment on fait pour changer de répertoire ?" (J'exagère à peine !)

    Je pense que ça aurait été encore pire avec un jeu qui se joue dans un navigateur.

    GameShell est aussi beaucoup plus minimaliste : pour lancer une partie, il faut un shell, et un fichier de 40kio. (C'était l'idée originale de Rodolphe Lepigre : une session bash avec un .bashrc spécial pour enrober.)
    C'est un peu pervert de devoir utiliser Nodejs pour apprendre à utiliser un shell ! Non ?

    Sans avoir vraiment regardé les sources de Terminus depuis, je pense que GameShell est aussi plus modulaire. Pour ajouter une mission, il suffit d'ajouter quelques fichiers textes / scripts dans un répertoire.

    Bref, GameShell correspond beaucoup plus à ce que je cherchais ! :)