[gcompris-devel] Re: [abuledu beta] Re: [abuledu support] [LONG] l'API qui fait tout ;o)

Bruno Coudoin bcoudoin at anfora.fr
Mon Dec 3 02:03:01 UTC 2001


Je suis toujours 'hanté' par ce projet qui me semble indispensable. Je
n'ai malheureusement pas de temps à y consacrer préferrant continuer à 
focaliser mon temps libre sur gcompris, surtout depuis que j'ai la
chance d'y avoir des contributeurs.

La ou j'ai arrété ma reflexion c'est qu'il faut un définir un bus de
communication entre un:
- serveur (base de données autentification et scores)
- des clients (logiciel educatif et application manager)
  Pour moi, l'application manager est un pseudo soft educatif dont la 
  fonction et de lister les soft dispo sur un systeme et de les lancer 
  a la demande de la concole d'administration.
- des outils d'administration (abuledu, fonctions dédié au suivi des
  score élèves, console d'administration pour lancer des soft et 
  selectionner des tableaux a distance)

Ainsi, du coté gcompris, j'aimerai 'exporter' les fonctions suivantes:
getListOfBoard()
startBoard()
stopBoard()
pauseBoard()
getCurrentBoard()
getCurrentLevel()
setLevel()
getMaxLevel()
hideBoard() -- Enleve un tableau de la liste des tableaux.
showBoard()
getBoardDescription()
getBoardScreenshot() -- pour affichage dans l'outil de d'admin
getDescription() -- description generale du jeux


Pour le mode de communication entre les differents logiciels, je suis
assez partisant d'un systéme basé sur xml comme xmlrpc. Je ne connais
pas vraiment mais sur papier c'est simple, multiplateforme et
multilangage (C, PHP, Python, ..).

J'ai eu l'idée d'appeler ce systeme le 'school bus' ;)

Hope it helps.

Bruno.


le sam 01-12-2001 à 01:33, Pierre-François Gomez a écrit :
> Bonjour,
> 
> tout d'abord, je bascule cette discussion sur la liste beta,
> puisqu'elle me parait plus adaptée à ça (j'ai bon eric ?).
> J'ai envoyé une réponse plus courte sur la liste support.
> 
> Second point : l'api ne fait pas tout (pas encore) :))
> Pour tout dire, pour l'instant elle ne fait rien à part me dire "bonjour"
> et "ca marche", histoire de me faire plaisir en programmant :)
> Mais ça va venir...
> 
> Dernier point : un court résumé pour ceux qui ne sont pas sur la liste
> support, uniquement sur la liste beta :
> Au cours d'une discussion, j'ai demandé à Stéphane Bersillon sur quoi il
> travaillait et il s'est subitement mis à décrire ce que j'étais en train
> de faire.
> Après avoir retourné mon appart à la recherche de micros ou de caméras
> cachées, je me suis décidé à lui répondre, et je bascule donc la
> discussion ici.
> 
> En ce jour de ven, nov 30, 2001 at 04:03:50 CET, j'eu l'honneur de reçevoir une missive de . ECOLE DABIDOS :
> >      Heuuu ! il est ou le petit article qui le dis que je vais me faire avoir
> >      ;o).
> eh eh :) trop tard : tu as signé ! :)
> 
> >      Franchement, Tu as en projet ce qui me manque pour pouvoir me recentrer
> >      sur le travail de création d'exercices nombreux et variés. Si tu veux un
> >      coup de main ou un liaison plus étroite entre nous pour pouvoir faire
> >      avancer ton projet je suis ton homme ;o)
> Plus on est de fous, moins ya de riz(1) ! :)
> Bien sûr que tu peux contribuer : en fait, ça dépends, que sais-tu faire ?
> Je dis ça parce que toute contribution est accueillie à bras ouverts ! :)
> Ca peut aller de la simple (et encore) fourniture d'idées à la (dure) tâche
> de conception *réellement* éducative des programmes (Hervé) en passant par la
> programmation en elle-même (moi).
> 
> >      SI cela peut t'intéresser, on peut fusionner nos projets, car en gros
> >      mon projet a besoin de jeux/exercices afin d'alimenter les enfants en
> >      activité.
> >      Seul petit Hic, je développe afin d'avoir une interface web (comme
> >      AbulEdu) pour pouvoir assurrer par la suite une maintenance aisée, un
> >      visuel simple et abordable par tout le monde, et eventuellement une
> >      diffusion directe depuis le web...
> A mon sens, ce n'est pas un problème en soi, voir plus bas ma réponse à
> ta question sur l'accès depuis une page web. Voir aussi une explication
> de ma vision des choses (tout en bas).
> J'ai ma petite idée sur une intégration possible, je crois t'en avoir
> parlé dans mon mail précédent (cgi...).
> 
> >      > - quand le jeu deviendra sérieusement utilisable, je m'attaquerai à la
> >      >   lib pour implémenter toutes ces fonctions d'enregistrement /
> >      consultation
> >      >   des paramètres.
> >
> >      J'y est déja réflechit si cela t'intéresse. Mon, projet en était la,
> >      quand je l'ai mis en Stanf By. J'ai déja commencé à implementer sous
> >      Mysql certaines des fonctions que tu décris plus haut.
> Effectivement, ça m'intéresse :) Disons que pour l'instant, au niveau
> analyse, la seule brique qui restait floue était justement le contenu
> exact de cette lib. Il me manque toujours toujours cette fameuse
> expérience, celle qui va me dire : "il manque ça et ça. Ca, c'est en
> trop, etc..." Tu sembles en avoir une idée plus précise que moi.
> Pour la structure générale de ce à quoi je veux arriver, par contre,
> c'est plus clair (et plus bas...) :)
> 
> >      Je trouverai sympa qu'on bosse ensemble car nos projets sont à mon avis
> >      similaire.
> Ouais, effectivement :) *mais il les a caché où, ses mouchards ?* :))
> Et bien écoute, où puis-je voir le travail que tu as déjà effectué ?
> En retour je peux t'écrire une explication exacte d'une part de
> ma première analyse, d'autre part de ce que j'ai fait pour l'instant.
> Après ça, et suivant nos compétences respectives, on sera plus à même de
> décider qui fait quoi, et certainement aussi établir de nouveaux
> objectifs.
> Reste aussi à établir si tu préfères qu'on bosse ensemble ou bien
> fusionner les projets (la nuance est importante, et le malentendu
> dangereux...)
> 
> >      S'est quoi ce jeu Sokobul ?
> La réponse d'Hervé te le décrit déjà, mais j'ajouterai que c'est un jeu
> de sokoban adapté aux *classes maternelles*, où j'entends :
> - 'adapté aux classes' comme un jeu *éducatif*
> - 'adapté aux maternelles' qui ne savent pas lire et encore moins
>   farfouiller dans des menus
> 
> >      Dès que j'ai AbulEdu chez moi, je m'y mets sérieusement.
> >
> >      > >Cela risque de prendre du temps car j'en manque cruellement et
> >      > >je n'ai malheureusement pas encore AbulEdu chez moi ...
> Je dois avouer quelque chose : je ne l'ai pas non plus :)
> En fait, je n'ai aucun lien direct avec une école et je travaille donc
> sur ma machine perso, et elle est toute seule (pas de réseau).
> Je ne peux pas encore y installer abuledu, même en dual-boot parce que
> ma carte graphique n'est pas gérée (et que je n'ai pas encore pris le
> temps de faire ce qu'il faut pour ça).
> Je me débrouille donc pour reproduire l'environnement d'abuledu sur mon
> GNU, en fonction de mes besoins de programmation (version de GTK, etc.)
> Un jour, il faudra bien que je me force la main pour en installer un mais
> pour l'instant, je peux très bien programmer sans.
> 
> >      Ton jeu ne peut pas plutot être implémenté accéssible depuis un
> >      navigateur web ?
> J'y avais pensé mais c'est une solution que j'ai finalement rejeté pour
> plusieurs raisons :
> - écrire des jeux éducatifs est en soi une tâche complexe. Le faire sous
>   forme de pages web complique encore plus, selon moi. D'après mon
>   expérience, plus un programme est simple à utiliser, plus sa
>   conception est complexe :)
> - Un serveur Abuledu peux supporter des clients sous Windows, si je ne
>   me trompe, et donc son navigateur. Or tout le monde connait les
>   problèmes inhérents aux différences de navigateurs...
> - Pour faire une page web un minimum interactive, je ne vois que
>   javascript (et consors). Et quitte à programmer, autant que j'utilise
>   les outils qui me donnent le plus de souplesse.
> - Il me sera plus facile de faire un programme qui va chercher ses
>   données dans un fichier qu'un non-développeur peut facilement créer
>   (ex: fichier texte) plutôt que de trouver une méthode pour qu'un
>   non-développeur puisse facilement développer...
> - il ne faut pas perdre de vue qu'abuledu est un 'tout', et que donc il
>   ne se compose pas uniquement d'interfaces web. On peux donc y intégrer
>   des applications à part entière, plus souples que des pages web.
> 
> Ma proposition pour intégrer les deux projets est la suivante, en
> admettant, d'après ce que j'ai compris, que ce que tu as fait est :
> - des exercices sous forme de pages web
> - une base de données pour stocker les résultats
> - dans les pages web, des fonctions qui permettent d'attaquer la base.
> 
> On pourrait imaginer la modification de ces fonctions pour que, au
> lieur d'attaquer directement la base, elles attaquent l'api, qui elle se
> chargera toute seule d'attaquer la base (ce qui permettra plus tard de
> changer de système de stockage sans changer les programmes).
> Seulement je ne sais pas comment attaquer une librairie dynamique ".so"
> depuis une page web. Par contre je sais qu'un cgi peut être compilé et
> placé sur le serveur web, et je sais aussi comment faire pour que le
> cgi utilise cette api.
> Conclusion, on pourrait modifier les fonctions de tes pages pour que, au
> lieu d'attaquer la base mysql, elles attaquent le cgi qui attaquera
> l'api qui attaquera le support de stockage.
> 
> Je ne suis pas sûr du tout d'être clair, alors n'hésites pas à poser des
> questions :)
> 
> Finalement, un rapide point sur ma manière de voir les choses et sur ce
> que je fais.
> 
> En fait, le projet qui prends forme ce compose de 2 aspects principaux :
> - les applicatifs, c'est à dire les jeux, programmes, exercices, ...
> - une infrastructure logicielle pour :
> 	- stocker/interroger les résultats des utilisateurs
> 	- stocker/interroger les paramètres des applications qui
> 	  utilisent cette infrastructure
> 
> Les applicatifs, c'est assez simple, mais c'est aussi le plus long et le
> plus varié à faire. Pour l'instant, pour moi, c'est sokobul.
> Mais on peut facilement les imaginer sous d'autres formes qu'une
> application à part entière. Par exemple, pour toi, ça peut très bien
> être des pages web.
> 
> L'infrastructure se compose elle-même de plusieurs choses :
> - un support de stockage (base de donnée postgres pour l'instant prévue)
> - une lib qui permet à des programmes de stocker/extraires simplement
>   les données de cette base.
> - une interface web type "console admin" pour gérer les données, les
>   utilisateurs (déjà fait dans abuledu-conf), l'accès aux applications.
>   Cette interface devra utiliser la lib et je pense utiliser la solution
>   à base de cgi, dont je te parlais.
> 
> Le but est de pouvoir gérer de manière centralisée l'utilisation des
> programmes par les utilisateurs, et savoir ce qu'ils ont fait avec.
> Le problème est qu'il n'existe pas de telle infrastructure, et qu'il
> n'existe donc pas non plus de programmes qui l'utilise, il faut donc le
> faire.
> 
> Voilà pour l'explication rapide (hem...). N'hésite surtout pas à me
> poser des questions si tu ne comprends pas ce que je veux dire :)
> Parce que selon l'adage, si je l'ai mal expliqué, c'est que je le
> comprends mal et donc qu'il reste des points flous. Ca ferait beaucoup de
> bien d'en discuter, je crois.
> 
> >      *connais pas du tout ce jeu*
> eh eh :) Normal, j'en ai l'exclusivité pour l'instant :))
> 
> Bon ben voilà. C'était long mais je pense que ça te donnera matière à
> confronter avec ton projet :)
> Sinon je peux recommencer j'aime bien écrire :)
> 
> Sur ce, je reste à l'écoute...
> 
> références:
> (1) dixit Coluche
> 
> -- 
> Pierre-Francois Gomez
> 	pf.gomez at free.fr
> 
> Abuledu, solution logicielle libre pour l'éducation :
> 	www.abuledu.org
> 
> "At the age of fifteen, he had already learned silence."
>                         -- Frank Herbert
-- 
Bruno Coudoin
ANFORA - http://www.anfora.fr
Tel: (33)5 61 00 34 67





More information about the Gcompris-devel mailing list