Le projet AbulEdu

Le projet AbulEdu ...

Traductions de cette page:
fr

Réunion de travail 19-20 novembre

Comme souhaité lors de la réunion de cet été, on essaye de se voir ou de faire un point mensuel… C'est un rythme qui finalement est tout a fait adéquat et qu'il faut qu'on arrive à conserver.

Il y a des fois où tout avance beaucoup plus vite … ça a été le cas de ce week-end.

Partie I: Présentation

Fichiers ".AbulÉdu"

Les logiciels que nous développons ont actuellement quelques défauts importants dont en particulier la difficulté de sauvegarder des exercices préparés par les enseignants pour leur classe, pour ensuite les faire réouvrir aux élèves au moment choisi.

Un exemple : si vous voulez ajouter des banques d'images / mots / sons dans le logiciel Associations, ça devient très vite compliqué.

Pour améliorer cela, nous devons avant tout définir le format de fichier utilisé. Tout comme les logiciels de bureautique qui utilisent des fichiers .doc ou .odt pour le texte, des .xls ou .ods pour les tableurs et ainsi de suite… nous devons nous mettre d'accord sur une organisation des fichiers produits et lisibles par tous les logiciels d'AbulÉdu.

C'est le chantier sur lequel nous avons travaillé vendredi soir et dimanche après-midi.

Exemple d'extension de fichier Utilisation
.mp3 .ogg Fichiers permettant de stocker de la musique
.doc .odt Fichiers permettant de stocker des données texte (bureautique)
.xls .ods Fichiers permettant de stocker des données de tableurs
??? ??? Fichiers pour les logiciels d'AbulÉdu

Mutualisation du travail

Ensuite, il faut savoir que les logiciels d'AbulÉdu “réagissent” tous d'une manière à peu près identique. Par exemple tous les logiciels (ou presque) ont une boite “à propos” et “aide” qui permet aux utilisateurs de connaître la version du logiciel utilisé et d'avoir une aide directe sur son utilisation.

À ce sujet lorsqu'un développeur souhaite ajouter un module “aide” et “à propos” il a grosso-modo trois possibilités :

  • tout refaire de A à Z, “réinventer la roue”;
  • copier/coller ce qui existe dans le logiciel d'un autre, (c'est le cas dans les anciens logiciels d'AbulÉdu) ;
  • utiliser le travail factorisé par un groupe de développeurs qui a prévu le coup ;

C'est cette 3° solution que nous développons depuis un peu plus d'un an. En voici la raison principale : toute amélioration portée au module commun doit être diffusée dans tous les autres logiciels le plus facilement possible.

C'est ce que nous avons fait samedi et dimanche, pour les modules suivants :

  • page d'accueil avec des zones sensibles ;
  • ajout d'un menu au-dessus de la page d'accueil (incrustation vidéo propre);
  • superposition des exercices avec une sorte de télécommande commune et une aire de travail générique.

Enfin, pour aider les autres développeurs à y voir plus clair nous avons mis à jour les documentations, schémas techniques et autres ressources pour leur expliquer tous nos “secrets” de fabrication et les partager de manière la plus ouverte, transparente et efficace possible.

Des résultats imprévus

Et comme à chaque fois il se produit des “trucs” imprévus. C'est aussi une des raisons pour lesquelles il est si important de se rencontrer régulièrement : chacun dans notre coin, isolé nous n'avons pas la même capacité d'innovation, d'invention, de réflexion que lorsqu'on se retrouve et qu'on lance des idées, qu'elles sont reprises par d'autres, triturées, jetées en pâture à l'appétit vorace des copains …

Cette fois-ci au détour d'un “ça serait bien qu'un jour on …” nous avons découvert un outil d'aide aux développeurs qui nous permet de monter encore d'un cran dans la qualité du développement. Dans la suite de cette page c'est la partie “valgrind”.


Partie II: Détails techniques

Il s'agit avant tout d'un week-end de développeurs qui assurent les évolutions, améliorations et le futur des logiciels suivants : leterrier Cette seconde partie est donc technique.

Vendredi soir

Présents : Rokia, Hayat, Sylvain, Jean-Louis, Éric

Sujet : formats de fichiers, stratégie du Terrier d'AbulÉdu

Samedi-Dimanche

Présents: Jean-Louis, Éric, Hayat (pause café et soutiens moral précieux) et Rokia dimanche après-midi

Le samedi matin a démarré en trombe: re-configuration du routeur wifi de jean-louis en simple point d'accès pour qu'il puisse l'utiliser dans son école, tout ceci grâce à une page cachée (mais documentée) de l'interface web de son routeur … ensuite une petite étape de tests de mon école à distance pour s'assurer que le bug présent sur son ordinateur est toujours là :)

Réflexion rapide sur la question “impression à distance or not ?” mon école à distance permet déjà de copier des fichiers sur et depuis le serveur de l'école, de se connecter sur le webmail, sur l'intranet … faut-il ou pas pouvoir imprimer depuis la maison sur l'imprimante de l'école !?!? Vous aussi vous pouvez dire ce que vous en pensez sur le forum: http://entraide.abuledu-fr.org/tags/abuledu-monecoleadistance

Documentation

Nous avons complètement revu le schéma d'organisation de la Machine à États, c'est un document agréable à regarder mais il faut l'imprimer au moins en A3 pour qu'il soit utilisable.

Adresse du document à la taille réelle: https://redmine.ryxeo.com/attachments/download/1290

Sujets abordés

  • Réflexion et début de développement du menu incrusté sur la page d'accueil des logiciels sous la forme d'un qwidget pour garder une grande modularité et une intégration graphique cohérente.
  • Modification de la classe AbulEduApplicationV1 pour qu'elle puisse stocker l'information concernant le facteur de mise à l'échelle des composants graphiques.
  • Une petite séance de découpage de feuilles de papier pour “comprendre” comment positionner les différents composants et … c'était partis pour la modification des objets de base d'AbulEduExerciceV1 …
  • Conséquence directe, découpage d'AbulÉduExerciceV1 en deux widgets pour améliorer l'efficacité visuelle. Documentation sur le site des développeurs … c'est un chantier qu'on voulait faire depuis quelques mois mais le qwidget ajouté sur la page d'accueil a été le déclic !
  • Découverte de Valgrind (cf ci dessous)
  • Utilisation de kcachegrind pour comprendre / exploiter différemment les retours de valgrind, même si l'intégration dans qt creator est la plus optimale, kcachegrind permet de faire des zolis dessins des appels de fonctions et ça pourrait nous permettre de mettre des images sur ce qu'on fait ?

Rencontre du 3° type: un viking venu du nord

Son nom est valgrind, si ça ne vous dit pas grand chose, ça n'est pas trop grave, nous n'avions pas non plus été présentés avant ce dimanche.

Et comme toujours dans les belles rencontres, ce fut totalement à l'improviste. Nous étions en train de développer lorsque tout a coup l'un d'entre nous est tombé sur une option qui a attisé notre curiosité : Déboger/Start Analyzer (oui oui, le start analyzer n'est pas traduit sur mon qt-creator) (dans la version 2.3.0 c'est traduit et en plus il y a le profileur de fonctions de valgrind !), résultat après un clic dessus et quelques heures passées je peux vous assurer que c'est une perle.

Tout développeur a entendu parler un jour de “débogueur”, d'analyseur de code, de fuite mémoire etc … mais de là à l'utiliser il y avait un pas que je n'ai pas franchi très souvent. Encore une fois Qt nous rends les choses bien plus simples, c'est directement intégré dans qt-creator.

En quelques mots, l'utilisation rapide de valgrind nous a convaincu de son utilité et nous nous sommes promis de l'utiliser systématiquement.

On s'est quittés en se promettant de creuser les différentes offres que ce gentil viking semble pouvoir nous proposer: memcheck, cachegrind, callgrind, helgrind, drd, massif, ptrcheck, bbv et lakey …

La suite

Dimanche après midi: rokia, jean-louis, eric: analyse et avancées fulgurantes de rokia sur le sujet qu'on lui a confié.


Partie III: La séance de découpages en détails

Alors que nous étions bien perdus dans nos dessins et tentatives de “conceptualisation” de notre problème d'interface je me suis lancé dans une séance découpage et compositing non virtuel … rien de mieux que de toucher le problème avec les doigts pour essayer de trouver des solutions.

Comme vous êtes plusieurs à m'avoir demandé à quoi ça pouvait bien ressembler, j'ai pris quelques photos.

  • L'interface de départ, c'est une fenêtre “vide” avec un menu classique “fichier / édition / aide …”

  • Sur l'écran d'un ordinateur ça ressemble à ceci:

  • La page d'accueil est en vérité un nouveau calque ou une feuille qui vient se coller dans la fenêtre de l'application, avec les outils que nous développons c'est la “fameuse” AbulEduAccueilV1

  • Encore une fois c'est plus jolis sur un écran d'ordinateur … c'est surtout en couleurs :)

  • Et une fois la page d'accueil affichée, que doit-il se passer lorsqu'on clique sur un élément du décors qui lance une activité ? C'est là que la séance de petits papiers a été la plus intéressante, nous avons pu simuler plein de solutions possibles avant de décider que le mieux serait que l'exercice vient se superposer sur le fond d'écran …

  • Très important, l'interface des exercices sera dorénavant découpée en deux éléments, la zone de travail que vous avez vu sur la photo ci-dessus et une “télécommande” qui est la partie droite visible ci-dessous:

Comme quoi il reste encore du chemin, par exemple le logiciel “imagéo” n'est pas conforme, il n'affiche pas le fond d'écran en transparence et surtout il est multi fenêtre … vous pouvez voir par exemple que la fenêtre d'exercice ne propose plus de menu fichier / exercices / options / aide …

Alors à quand la prochaine séance de bricolage ?