Modification de l’interface

Les propositions de correctifs ou d'exercices pour Pyromaths.

Modérateur : Développeurs

jbreizh
Messages : 51
Inscription : 14 déc. 2012, 22:46

Modification de l’interface

Message par jbreizh » 16 mai 2015, 10:19

hello,
j'ai fais une petite proposition sur le github il y a quelque temps sur laquelle je n'ai pas eu de retour :cry:
Sinon plus sérieusement j'ai constaté depuis longtemps que le principal frein à l'utilisation de Pyromaths (et du coup d'actimaths) sur windows (90% des utilisateurs il faut être réaliste) est l'installation d'une distribution Latex. La plupart des personnes n'y connaisse rien, le fonctionnement par package est très linux spirit, il faut internet pour que ça installe les packages à la première utilisation (ce qui ne permet pas de faire une démonstration facile).... Bref c'est vraiment pas windows user friendly où le suivant suivant terminé est la loi et ce n'est pas une critique, car il faut que le logiciel soit sacrement alléchant pour que j'aille chercher plus loin au premier abord.
Du coup je suis en train d'intégrer une version de texlive configurée aux petits oignons au sein d'Actimaths. Je pars d'une netinstall portable minimale (plain+latex sans doc et sans source), j'installe paquet par paquet le nécessaire (après avoir utilisé https://www.ctan.org/pkg/mkjobtexmf) et enfin je supprime manuellement tout ce qui me parait lié aux outils texlive (perl, dviout....) pour ne garder que le compilateur. Je suis arrivé à un résultat satisfaisant et fonctionnel pour actimaths avec une texlive à 136Mo decompressée (à comparer aux 436Mo de Miktex) ce qui me donne un setup de 45Mo (9,2Mo avant) et surtout un Actimaths fonctionnel à 100% dès l'installation !!!!
Question : Est ce que Pyromaths est intéressé par un tel travail ? sachant que je ne me suis pas posé la question de la légalité d'une telle redistribution (mais bon GPL sur GPL ça devrait le faire) et que j'ai vu que la chaine de compilation de Pyromaths est maintenant plus compliquée (complication = plus de Mo)
Bonne journée
JB

Avatar de l’utilisateur
Jérôme
Administrateur - Site Admin
Messages : 1083
Inscription : 26 août 2006, 13:10
Localisation : Nantes
Contact :

Re: Pyromaths est sur GitHub

Message par Jérôme » 16 mai 2015, 10:44

Bonjour,
excellente initiative. Je suis d'accord avec toi sur le fait qu'une majorité des personnes utilisant Windows n'ont pas de connaissances informatiques. Par conséquent, plus c'est simple à installer, mieux c'est.
J'ai indiqué sur le site les paquets à installer avec TeXLive 2014 (qui sera bientôt remplacé par TeXLive 2015). J'arrive à 321 Mo décompressé. J'ai besoin de Pearl pour latexmk donc je ne sais pas ce qu'on peut enlever.
Par contre, je pense qu'il faut continuer à proposer les deux versions (avec ou sans LaTeX), pour les utilisateurs qui ont déjà une version LaTeX chez eux.

Concernant ta proposition sur GitHub, je ne l'ai pas encore regardée en détail. Je ferai cela fin juin, quand je n'aurai plus de cours à préparer ou de copies à corriger.

Bon week-end.
Jérôme
Pyromaths génère des fiches d'exercices et leur corrigé en toute simplicité.
Un programme multi-plateformes libre et gratuit sous licence GPL

jbreizh
Messages : 51
Inscription : 14 déc. 2012, 22:46

Re: Pyromaths est sur GitHub

Message par jbreizh » 16 mai 2015, 12:52

Je viens de regarder la page d'aide. C'est cool l'essentiel du travail est fait. Il n'y a qu'à activer les options de portabilité, supprimer les sources et les documentations (ce qui fait gagner beaucoup de place) et faire du ménage. Pour cette dernière partie, j'ai utilisé la méthode du supprime, puis test ... bref le pifomètre jusqu'à supprimer le maximum tout en restant fonctionnel. Là ou j'ai été surpris c'est la compression du setup par inno setup.
De mon côté j'ai fait une seule version avec une option pour passer du compilateur interne (texlive custom sur windows, texlive systeme sur linux, ????? sur mac) à un compilateur externe éventuel.
Image

Avatar de l’utilisateur
Yves
Messages : 456
Inscription : 21 janv. 2009, 20:40
Contact :

Re: Pyromaths est sur GitHub

Message par Yves » 16 mai 2015, 13:58

jbreizh a écrit :????? sur mac
Sur OS X, c'est la distribution MacTeX, basée également sur Tex Live, qui est la plus utilisée. Par contre, l'installation de MacTeX est très simple et ne devrait pas constituer pas un frein à l'adoption de Pyromaths ;)

jbreizh
Messages : 51
Inscription : 14 déc. 2012, 22:46

Re: Pyromaths est sur GitHub

Message par jbreizh » 16 mai 2015, 14:30

Je suis d'accord qu'installer une version complète de MacTex comme une version complète de Texlive n'est pas compliqué. Par contre pour une "petite" application comme Pyromaths (13Mo sur Mac OS) dépendre d'un énorme logiciel comme MacTex (2,4Go), je crois que ça calme pas mal de possesseur de PC avec un SSD ... Enfin je suis surtout sensible à ça car habitant dans le pacifique, télécharger un logiciel de plusieurs Go est une plaie sans nom !!!

jbreizh
Messages : 51
Inscription : 14 déc. 2012, 22:46

Re: Pyromaths est sur GitHub

Message par jbreizh » 20 mai 2015, 06:30

Hello,
je viens de faire quelques petits tests. Je me suis donc installé une texlive (portable ; sans doc et sans source)selon la documentation. Ça me donne 204 Mo avant nettoyage. Si je me base sur ce que j'ai fais sur Actimaths (si vous voulez tester version 1.24 http://mathecailloux.ile.nc/article142/ ... -actimaths), ça doit donner une install à 170Mo pour un setup à 45-50Mo. Si ça vous parait intéressant, je me lance dans le code (interface.py ; system.py et setup.py) . Par contre sous quelle forme : une autre version avec texlive intégré ou une seule version avec une option pour éventuellement choisir un autre compilateur (solution que j'ai retenue pour Actimaths)??
Je pense que le même travail peut-être fait sur MacOs à partir de Basictex. J'aurais bien testé mais je n'ai pas de Mac et j'ai un processeur Athlon qui m'interdit une machine virtuelle sous OSX ... la loose.
Bonne journée
JB

Avatar de l’utilisateur
Jérôme
Administrateur - Site Admin
Messages : 1083
Inscription : 26 août 2006, 13:10
Localisation : Nantes
Contact :

Re: Pyromaths est sur GitHub

Message par Jérôme » 20 mai 2015, 09:11

Salut,
j'envisagerais plutôt une version séparée, car les utilisateurs Linux n'en ont pas besoin je crois.
Bonne journée,
Pyromaths génère des fiches d'exercices et leur corrigé en toute simplicité.
Un programme multi-plateformes libre et gratuit sous licence GPL

jbreizh
Messages : 51
Inscription : 14 déc. 2012, 22:46

Re: Pyromaths est sur GitHub

Message par jbreizh » 20 mai 2015, 10:06

C'est vrai mais en même temps texlive n'est packager que pour windows. On retravaille uniquement le setup pour windows (pour actimaths) et oui il y a beaucoup de profondeur de dossier dans texlive :shock: :

Code : Tout sélectionner

setup(name = "Actimaths",
    version = VERSION,
    description = DESCRIPTION,
    license = LICENSE,
    author = COPYRIGHTS,
    author_email = MAIL,
    url = WEBSITE,
    packages=['actimaths',
              'actimaths.exercices_actimaths','actimaths.exercices_actimaths.outils',
              'actimaths.exercices_pyromaths','actimaths.exercices_pyromaths.outils'],
    data_files = find_data_files('data','data/',["*","*/*","*/*/*","*/*/*/*","*/*/*/*/*"]) +
                 find_data_files('texlive','data/texlive',["*","*/*","*/*/*","*/*/*/*","*/*/*/*/*","*/*/*/*/*/*","*/*/*/*/*/*/*","*/*/*/*/*/*/*/*","*/*/*/*/*/*/*/*/*","*/*/*/*/*/*/*/*/*/*","*/*/*/*/*/*/*/*/*/*/*","*/*/*/*/*/*/*/*/*/*/*/*","*/*/*/*/*/*/*/*/*/*/*/*/*"]) +
                 [('imageformats',['C:\\Python27/Lib/site-packages/PyQt4/plugins/imageformats/qjpeg4.dll'])],
    platforms = ['windows'],
    options =
    {
        'py2exe':
        {
            "compressed": 1, "optimize": 2, "bundle_files": 3,
            "includes":["sip", "gzip"]
        },
       'innosetup':
       {
           'inno_script': setup_iss,
           'compressed': True,
       }
    },
    zipfile = None,
    windows=[
      {'script': "actimaths-gui",
       'icon_resources': [(1, 'data/actimaths.ico')],
       }]
    )
on modifie le code de system.py dans cet esprit (pour actimaths) :

Code : Tout sélectionner

############## Créé les fichiers PDF
def creation_pdf(dossier, fichier, chemin_compilateur_externe, compilateur_externe):
    ## Import des packages locaux
    ligne = ""
    for package in listdir(join(DATADIR, "packages")):
        ligne += normpath(join(DATADIR, "packages", package))
        ligne += ";"
    environ["TEXINPUTS"]= ligne
    ## Chemin vers le compilateur
    if compilateur_externe:
        #on prend en compte parametres["chemin_compilateur_externe"]
        chemin_compilateur = chemin_compilateur_externe
    else:
        #on utilise le compilateur interne
        if name == "nt":
            chemin_compilateur = join(DATADIR, "texlive", "bin", "win32")
        else:
            chemin_compilateur = ""
    ## Changement de dossier
    chdir(dossier)
    ## Compilation latex(x2)+dvips+ps2pdf
    for i in range(2):
        call([unicode(join(chemin_compilateur, "latex")), "-interaction=batchmode", "%s.tex" % fichier])
    call([unicode(join(chemin_compilateur, "dvips")), "-q", "%s.dvi" % fichier, "-o%s.ps" % fichier])
    call([unicode(join(chemin_compilateur, "ps2pdf")), "-sPAPERSIZE#a4", "%s.ps" % fichier, "%s.pdf" % fichier])
On peut même se faire une version MacOs avec BasicTex ;)

jbreizh
Messages : 51
Inscription : 14 déc. 2012, 22:46

Re: Pyromaths est sur GitHub

Message par jbreizh » 22 mai 2015, 07:07

Hello,
J'ai commencé le boulot, je ne suis pas loin d'avoir un truc fonctionnel enfin ça marche, mais j'ai besoin de précision pour faire les choses bien. Voici la section de System.py qui me pose soucis:

Code : Tout sélectionner

        os.chdir(dir0)
        latexmkrc(f0noext)
        log = open('%s-pyromaths.log' % f0noext, 'w')
        if socket.gethostname() == "sd-27355.pyromaths.org":
            os.environ['PATH'] += os.pathsep + "/usr/local/texlive/2014/bin/x86_64-linux"
            call(["latexmk", "-shell-escape", "-silent", "-interaction=nonstopmode", "-output-directory=%s" % dir0, "-pdfps", "%s.tex" % f0noext], env=os.environ, stdout=log)
            call(["latexmk", "-c", "-silent", "-output-directory=%s" % dir0], env=os.environ, stdout=log)
        elif os.name == 'nt':
            call(["latexmk", "-pdfps", "-shell-escape", "-silent", "-interaction=nonstopmode", "%s.tex" % f0noext], env={"PATH": os.environ['PATH'], "WINDIR": os.environ['WINDIR'], 'USERPROFILE': os.environ['USERPROFILE']}, stdout=log)
            call(["latexmk", "-silent", "-c"], env={"PATH": os.environ['PATH'], "WINDIR": os.environ['WINDIR'], 'USERPROFILE': os.environ['USERPROFILE']}, stdout=log)
        else:
            call(["latexmk", "-pdfps", "-shell-escape", "-silent", "-interaction=nonstopmode", "%s.tex" % f0noext], stdout=log)
            call(["latexmk", "-silent", "-c", "-f"], stdout=log)
        log.close()
        nettoyage(f0noext)
        if not "openpdf" in parametres or parametres["openpdf"]:
            if os.name == "nt":  # Cas de Windows.
                os.startfile('%s.pdf' % f0noext)
            elif sys.platform == "darwin":  # Cas de Mac OS X.
                os.system('open %s.pdf' % f0noext)
            else:
                os.system('xdg-open %s.pdf' % f0noext)

        if parametres['corrige'] and not parametres['creer_unpdf']:
            os.chdir(dir1)
            latexmkrc(f1noext)
            log = open('%s-pyromaths.log' % f1noext, 'w')
            if socket.gethostname() == "sd-27355.pyromaths.org":
                os.environ['PATH'] += os.pathsep + "/usr/local/texlive/2014/bin/x86_64-linux"
                call(["latexmk", "-shell-escape", "-silent", "-interaction=nonstopmode", "-output-directory=%s" % dir1, "-pdfps", "%s.tex" % f1noext], env=os.environ, stdout=log)
                call(["latexmk", "-c", "-silent", "-output-directory=%s" % dir1], env=os.environ, stdout=log)
            elif os.name == 'nt':
                call(["latexmk", "%s.tex" % f1noext], env={"PATH": os.environ['PATH'], "WINDIR": os.environ['WINDIR'], 'USERPROFILE': os.environ['USERPROFILE']}, stdout=log)
                call(["latexmk", "-c"], env={"PATH": os.environ['PATH'], "WINDIR": os.environ['WINDIR'], 'USERPROFILE': os.environ['USERPROFILE']}, stdout=log)
            else:
                call(["latexmk", "%s.tex" % f1noext], stdout=log)
                call(["latexmk", "-c"], stdout=log)
            log.close()
            nettoyage(f1noext)
            if not "openpdf" in parametres or parametres["openpdf"]:
                if os.name == "nt":  # Cas de Windows.
                    os.startfile('%s.pdf' % f1noext)
                elif sys.platform == "darwin":  # Cas de Mac OS X.
                    os.system('open %s.pdf' % f1noext)
                else:
                    os.system('xdg-open %s.pdf' % f1noext)
        else:
            os.remove('%s-corrige.tex' % f0noext)
Je ne comprends pas :
- ce qu'est le cas socket.gethostname() == "sd-27355.pyromaths.org":. J'imagine que c'est pour la version en ligne, mais ça m'a l'air vachement tordu et spécifique. Le serveur est sur BSD je crois, texlive ne se met pas directement dans le path sur BSD ?
-pourquoi les options sont différentes selon que l'on compile le sujet ou le corrigé ?
- enfin c'est quoi toutes ces options bizarres pour windows env={"PATH": os.environ['PATH'], "WINDIR": os.environ['WINDIR'], 'USERPROFILE': os.environ['USERPROFILE']} je ne comprend pas leur but. D'ailleurs ça ne fonctionnait pas tant que je n'ai pas supprimé le cas windows. D'ailleurs dans les anciennes version, il n'y avait pas de cas pour windows ici et ça marchait très bien. Qu'est ce qui a changé entre temps ?

Aller une note plus légère pour finir, voici un screen de mon boulot:
Image
Et mon code sont sur un fork github https://github.com/jbreizh/pyromaths/tr ... ionTexlive
Dernière modification par jbreizh le 22 mai 2015, 09:26, modifié 1 fois.

jbreizh
Messages : 51
Inscription : 14 déc. 2012, 22:46

Re: Pyromaths est sur GitHub

Message par jbreizh » 22 mai 2015, 09:25

Bon j'avance voici un premier jet mais fonctionnel (environ 54Mo) https://www.dropbox.com/s/mm43i78fh3lmf ... 2.exe?dl=0
Par contre encore quelques problèmes:
-data/packages a disparu du coup on se fait jeter par inno setup, pas de soucis si on remet data/packages/tabvar.tex (pas suffisant si vide).
-Il y a des exercices qui sont buger genre Extrema et représentation graphique en seconde, mais c'est un autre problème.

Sur ce demain je pars en we surf et kitesurf donc déconnecté du numérique. Bon we

Avatar de l’utilisateur
Jérôme
Administrateur - Site Admin
Messages : 1083
Inscription : 26 août 2006, 13:10
Localisation : Nantes
Contact :

Re: Pyromaths est sur GitHub

Message par Jérôme » 27 mai 2015, 09:22

jbreizh a écrit :Hello,
Je ne comprends pas :
- ce qu'est le cas socket.gethostname() == "sd-27355.pyromaths.org":. J'imagine que c'est pour la version en ligne, mais ça m'a l'air vachement tordu et spécifique. Le serveur est sur BSD je crois, texlive ne se met pas directement dans le path sur BSD ?
-pourquoi les options sont différentes selon que l'on compile le sujet ou le corrigé ?
- enfin c'est quoi toutes ces options bizarres pour windows env={"PATH": os.environ['PATH'], "WINDIR": os.environ['WINDIR'], 'USERPROFILE': os.environ['USERPROFILE']} je ne comprend pas leur but. D'ailleurs ça ne fonctionnait pas tant que je n'ai pas supprimé le cas windows. D'ailleurs dans les anciennes version, il n'y avait pas de cas pour windows ici et ça marchait très bien. Qu'est ce qui a changé entre temps ?
Bonjour,
excuse mon manque de réactivité, mais la fin d'année est intense. J'aurai plus de temps dans 3 semaines.
  • gethostname est effectivement utilisé pour la version pyromaths en ligne.
  • Les options différentes pour le corrigé et le sujet sont un non sens. Sans doute une modification oubliée quelque part.
  • Pour la version Windows, c'est après avoir effectué des tests sous Windows 7. Sans toutes ces #@!# d'options, ça ne fonctionnait pas. Tu as raison, la majorité des utilisateurs utilisent probablement Windows. Mais perdre du temps pour contourner un bug de cet OS m'a franchement fatigué ! :)
Merci pour ton investissement. Je te promets de regarder cela de plus près dans 3 semaines.
Cordialement,
Pyromaths génère des fiches d'exercices et leur corrigé en toute simplicité.
Un programme multi-plateformes libre et gratuit sous licence GPL

jbreizh
Messages : 51
Inscription : 14 déc. 2012, 22:46

Re: Pyromaths est sur GitHub

Message par jbreizh » 25 juin 2015, 14:17

hello Jérôme,
pourrais-tu étudier mes modifications surtout celles du fichier System.py pour voir si elles te semblent cohérente. Il y a des choses que je ne maîtrise pas trop et que je ne peux pas tester moi même (la partie en ligne). J'aimerais avoir ton avis avant de faire un pull request https://github.com/jbreizh/pyromaths/bl ... /System.py.
Pour info, j'étais reparti d'une version "develop" avant l'intégration de mes modifs d'interface. Bon vu que j'ai rajouté une option dans l'interface, il faudra que je face le merge moi même (ça ira vite).
Bonne journée

Avatar de l’utilisateur
Jérôme
Administrateur - Site Admin
Messages : 1083
Inscription : 26 août 2006, 13:10
Localisation : Nantes
Contact :

Re: Pyromaths est sur GitHub

Message par Jérôme » 25 juin 2015, 18:08

Salut,
je vais regarder ça demain. Juste une remarque rapide : TeXLive est passée en version 2015.
À plus tard.
Pyromaths génère des fiches d'exercices et leur corrigé en toute simplicité.
Un programme multi-plateformes libre et gratuit sous licence GPL

jbreizh
Messages : 51
Inscription : 14 déc. 2012, 22:46

Re: Pyromaths est sur GitHub

Message par jbreizh » 01 juil. 2015, 05:54

Hello,
en réintégrant les modifications de l'interface dans ma version avec Texlive intégrée, j'ai avancé un peu les modifications de l'interface. Pas grand chose, les lignes de couleur qui alternent et l'icone "?" avec un fond blanc. J'aime bien le résultat :
Image
Image

Avatar de l’utilisateur
Jérôme
Administrateur - Site Admin
Messages : 1083
Inscription : 26 août 2006, 13:10
Localisation : Nantes
Contact :

Re: Pyromaths est sur GitHub

Message par Jérôme » 01 juil. 2015, 19:23

C'est vrai que c'est joli, mais ça prend plus de place et ça va être moins pratique, non ? Il va falloir utiliser les ascenseurs plus souvent pour utiliser l'ensemble des exercices. On ne peut pas gagner un peu de place?
Pyromaths génère des fiches d'exercices et leur corrigé en toute simplicité.
Un programme multi-plateformes libre et gratuit sous licence GPL

Répondre