Skip to topic | Skip to bottom
Home
Minfo
Minfo.SuiviPersonnel5r1.8 - 22 May 2008 - 21:57 - EnnabliMohamedtopic end

Start of topic | Skip to actions
-- RichterXavier - 14 Apr 2008

Sujet 6 : Faire la java au lycée:

Un environnement de programmation pédagogique pour MPI (Mesures Physiques Informatisées)

Cette page de wiki contient toutes les informations sur mes avancées personnelles dans le déroulement du TER lors cette deuxième phase de projet à savoir la phase de "production".
Me contacter :



Phase 2 : Travail à plein temps :



Semaine 1 (du 31/03/2008 au 06/04/2008):

Lundi, mardi, mercredi, jeudi :

  • Finalisation du cahier des charges
  • Ecriture des diapositives
  • Entraînement pour la présentation
  • Répartition des rôles

Vendredi :

  • Oral de pré-Soutenance où la technologie RCP a été évoqué par mr Huet
  • Le groupe se scinde en deux parties, la première essaye d'explorer et de réutiliser dr.Java dont le code source est très complexe mais dont le logiciel est très proche en terme de fonctionnalité du résultat final que nos encadrants souhaitent. Un second groupedont je fais partie, cherche des informations et des tutoriaux sur RCP
Quelques résultats de Recherche :

Week end :

  • Lecture de tutoriaux
  • Compréhension des structures de base d'une application rcp : action,editor,view,perspective
  • Début de prise en main de rcp.
  • Création d'une première application rcp avec des boutons, des actions mais impossible de mettre en place un éditeur


Semaine 2 (du 07/04/2008 au 13/04/2008):

Lundi :

  • Rencontre à Sophia avec notre encadrant Thierry Viéville concernant les choix d'implémentation. Après deux heures, il en ressort que RCP peut être une bonne solution. Il semble emballé par le coté 'tout plug-in'. Il défini le langage qui sera utilisé dans les fichiers de configuration et explique de nouvelles idées.
  • Rencontre avec Mr Huet et son équipe. Ils nous expliquent leur travaux et Jonathan Fradj nous donne des liens ainsi que des informations utiles sur la conception de plug-in eclipse.

Mardi :

  • Nouvelle Répartition des rôles au sein de l'équipe, je suis en charge de la création d'une console et de la traduction des erreurs.
  • Première implémentation basique qui consiste à un try-catch dans lequel s'effectue la traduction. Implémentation non rcp.
  • Recherche de documentation sur la console eclipse et du moyen pour la remplacer
  • Recherche peu concluante

Mercredi :

  • Téléchargement du projet pro-active via le svn, pour essayer de comprendre comment fonctionne leur console.
  • Continuation de la console peu de résultat
  • Ecriture d'un mail de demande d'information à Mr Fradj qui nous répond rapidement
  • Début de piste grâce au code qu'il nous fourni

Jeudi :

  • Continuation du plug-in console, l'orientation a changée suivant les conseils de mr fradj, il ne s'agira pas de remplacer ou d'étendre la console Eclipse mais de s'interfacer et de redéfinir les flots de sortie et d'erreurs.
  • Bonne approche mais résultat peu concluant à cause d'un bug. La console apparait mais l'écriture ne s'y effectue pas.

Vendredi :

  • Continuation du travail sur la console
  • Révélation : l'affichage ne s'effectue pas car le test consistait à un projet crée sous le workbench de l'eclipse test. Celui-ci en tant que projet java, envoyait ses informations à la console java d'eclipse sans passer par ma classe Console.
  • Création d'un client RCP avec la console

Week end

Semaine 3 (du 14/04/2008 au 20/04/2008):

Lundi :

  • Finition de la console au sein du rcp
  • Mise en place de l'éditeur dans le rcp, recherche du bug quant à l'impossibilité d'ouvrir un fichier jvs (extension de notre langage)
  • Résolution du bug néanmoins il manque encore des fonctionnalités comme sauvegarder, mise en avant des parenthèses, indentation, etc ...

Mardi :

  • Mise en place de toutes les fonctionnalités de base (sauvegarder,charger,undo,redo,revert etc ...)

Mercredi :

  • Mise en place de l'indentation automatique
  • Début de mise en place du bracket closer

Jeudi & Vendredi :

  • Mise en place du bracket closer automatique ainsi que de la mise en valeur des brackets
  • Fusion des autres parties au sein d'un même rcp afin de fonder un CVS


Semaine 4 (du 21/04/2008 au 27/04/2008):

Lundi :

  • Jour entier passé à essayer de remettre le curseur d'écriture en fin d'indentation après avoir inséré le bracket fermant
  • Aucun résultat probant tâche reportée à plus tard

Mardi :

  • Création du bouton new (1ere partie) pour que l'élève d'un simple clique puisse avoir une page vierge. La première version pensée, consistait à la création d'un fichier puis à son ouverture de manière automatique au démarrage via une implémentation de IStartup qui permet d'effectuer une tâche au moment du lancement de l'application. Cette première version n'a pas fonctionné malgré les recherches pour résoudre les conflits. De plus la création du fichier s'effectuer de manière physique et n'obligait pas l'élève à 'enregistrer sous' à la première sauvegarde. Recherche d'une meilleur solution, de nombreux tests d'implémentation mais aucun ne fonctionnait.

Mercredi :

  • Création du bouton new (2nd partie) Reherche avancée dans la mailing list eclipse pour trouver une solution viable. Un post contenait un début de réponse, il se basait sur la classe NonExistingFileEditorInput?. Cette classe est internal donc non accessible et non invoquable. Recopie de la classe et du code donné en exemple dans le post.
Après implémentation, cela ne fonctionnait pas. L'editeur souhaitait un document provider, or comme nous ouvrons des fichier en dehors de tout workspace, notre éditeur ne contenait plus aucun document provider. A son ajout, new marchait mais open file ne fonctionnait plus. Après recherche, il s'avère qu'éclipse différencie les fichiers contenus dans le workspace (IEditorInput?) des fichiers en dehors du workspace (FileStoreEditorInput?) et ne renvoie pas la même classe de fichier. NonExistingFileEditorInput? implémente IEditorInput? qui est compatible avec le document provider mais pas FileStoreEditorInput?. Impossible de caster l'une en l'autre ou de trouver une classe qui permette le passage de l'un à l'autre. J'ai eu l'idée de transformer la création du new NonExistingFileEditorInput? en new FileStoreEditorInput? et cela à fonctionné.

  • Mise en place de l'auto-ouverture de l'éditeur au démarrage de l'application.

Jeudi :

  • La console ne prenait pas en compte les appels de type system.in car elle étendait MessageConsole?. Or cette classe n'est pas fait pour avoir un flot d'entrée. Réécriture de la console pour qu'elle étende IOConsole.
  • Redéfinition du flot d'entrée. Après test, freeze de l'application. Il s'est avéré que l'appel à system.in se faisait dans le thread de l'UI, hors cela gèle l'application dans l'attente de la réponse de l'utilisateur. Après création d'un thread spécifique, cela fonctionnait mais System.in ne renvoie d'un byte.
  • Recherche sur internet d'une meilleur solution, il semblait ne pas existé de fonction qui permette à un lycéen de faire de la saisie facilement.
  • Création d'un premier scanf à la C : dans cette version je souhaitais avoir l'équivalent d'un scanf avec les %i,%s selon les types mais aussi avoir la possibilité de faire scanf("%i%s%d",i,j,k); en affectant bien entendu les valeurs saisies dans i,j,k. Cela s'avère impossible en Java à cause du passage par copie des types primaires. Impossibilité de forcer ce passage par référence.
  • Demande d'aide sur développez.com afin de savoir si il y a un moyen de faire cela.

Vendredi :

  • Une seule réponse à la question posée sur le forum indiquant d'utilisé la classe Scanner. Obligation d'écrire une fonction par type de donnée.
  • Solution finalement retenue : création d'une classe Singleton Input qui sous traite à scanner. La classe Input sert à faciliter la vie aux lycéens en évitant les erreurs de saisie par exemble :
Age ? a 23 2 z Renverra 23 si on utilise la méthode static Input.scanInt() Si on avait directement utilisé la fonction Scanner.nextInt(), une erreur serait retourné à cause du ' a ' en début de saisie.


Semaine 5 (du 28/04/2008 au 04/05/2008):

Lundi :

  • Mise en place des icônes pour le design de l'application
  • Configuration des icônes pour qu'elles soient placé au bonne endroit
  • Bug sur les icônes undo et redo : les icônes customs disparaissent quand l'éditeur apparaît pour reprendre leur apparence original
  • Bug non résolu
  • Réunion avec le groupe pour discuter des nouvelles tâches et de la présentation de vendredi avec laurent mongiat

Mardi :

  • Ecriture du guide utilisateur
  • Impossibilité de lancer l'application suite à des modifications lié à la partie compilation qui oblige à être en 1.6 en attendant d'être porté pour 1.5

Mercredi :

  • Suite de l'écriture du rapport avec toujours impossibilité de faire des screen shoots

Jeudi :

  • Férié

Vendredi :

  • Rendez vous avec nos encadrants au lycée de Valbonne. Lors de cette entretien je m'apperçois que certain élément que j'avais incorporé ont disparu de la base cvs p-e sous un mauvais commit.
  • Après vérification il s'avère que les ordinateurs ne sont pas sous java 1.5 comme il nous l'avait été indique mais en 1.6
  • Mise à jour de mon jdk mac pour passer en 1.6 (jdk sorti mardi) après cette mise à jour impossible de compiler le projet faute à une obscur erreur de jar swt-carbon non troué
  • Recherche d'une solution

Week end :

  • Obligé de passer sous windows pour avancer car aucune solution à l'erreur de compilation sous mac os X lié à apple
  • Remise en place des éléments qui ont disparu du cvs
  • Amélioration de l'ergonomie de l'interface (icone etc ..) et on a supprimé le open file classique pour ne laisser que l'ouverture par dossier préféré

Semaine 6 (du 05/05/2008 au 11/05/2008):

Lundi :

  • Création des pages html pour le guide utilisateur
  • Finalisation du guide et insertion
  • Recherche de solutions aux bugs (écriture dans la console, port déjà utilisé lors du rechargement de l'application)

Mardi & Mercredi :

  • Recherche de solutions aux bugs
  • Tentative de correction du traducteur JVs->java : refuse de fonctionner

Jeudi :

  • Aujourd'hui avec Chalmeton Sebastien nous avons cherchez à comprendre d'où venez le bug pour la compilation que nous avons eu lors du test avec Jean-Michel Guillaume au lycée de valbonne. Nous avons réussit à identifier ce bug, il s'agit en fait du fait que la methode utilise pour la compilation n'est pas dans le JRE mais dans le JDK. Donc pour que notre application soient utilisable il faut installer sur la machine hôte le JDK 1.6.
  • De plus la variable d'environnement doit être mise dans le classpath avant celle de windows, sinon il en résulte une erreur "ClassNotFound"

Vendredi :

  • Réécriture du traducteur avec Chalmeton Sebastien, Sébastien s'occupe de transformer les macros, par introspection je dois réécrire le fichier java en ayant identifié les méthodes de l'élèves et en ajoutant les mots public static etc .... Après de longue recherche et une demande d'aide sur le site développez.com pour savoir si l'introspection pouvait permettre la lecture du code d'une méthode, il s'est avéré que ce n'était pas possible. (voir : http://www.developpez.net/forums/showthread.php?t=545290). Néanmoins cette discussion aura permis de trouver une idée pour la traduction des macros que Jean-Michel aura eut en même temps (les grands esprits se rencontrent).

Week end :

  • Absence pour cause de concours jusqu'à mardi


Semaine 7 (du 12/05/2008 au 18/05/2008):

  • Mercredi, jeudi, vendredi : debug & fignolage du guide utilisateur

Semaine 8 (du 19/05/2008 au 25/05/2008):

  • Lundi : Ecriture du rapport

  • Mardi : Ecriture du rapport

  • Mercredi : Ecriture des transparents

  • Jeudi : Oral blanc avec le groupe

  • Vendredi : Voyage vers Valbonne pour tester l'application en conditions réelles


to top

You are here: Minfo > OrganisationDesTER > PagesDeSuivi > PageDeSuivi > SuiviPersonnel5

to top

Copyright © 1999-2017 by the contributing authors. All material on this collaboration platform is the property of the contributing authors.
Ideas, requests, problems regarding WIKIDeptinfo? Send feedback