Modification de l’interface

Les propositions de correctifs ou d'exercices pour Pyromaths.

Modérateur: Développeurs

Modification de l’interface

Messagede jbreizh » Sam 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
jbreizh
 
Messages: 51
Inscription: Ven 14 Déc 2012, 23:46

Re: Pyromaths est sur GitHub

Messagede Jérôme » Sam 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
Avatar de l’utilisateur
Jérôme
Administrateur - Site Admin
 
Messages: 1073
Inscription: Sam 26 Aoû 2006, 13:10
Localisation: Nantes

Re: Pyromaths est sur GitHub

Messagede jbreizh » Sam 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
jbreizh
 
Messages: 51
Inscription: Ven 14 Déc 2012, 23:46

Re: Pyromaths est sur GitHub

Messagede Yves » Sam 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 ;)
Avatar de l’utilisateur
Yves
 
Messages: 454
Inscription: Mer 21 Jan 2009, 21:40

Re: Pyromaths est sur GitHub

Messagede jbreizh » Sam 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: Ven 14 Déc 2012, 23:46

Re: Pyromaths est sur GitHub

Messagede jbreizh » Mer 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/telecharger-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
jbreizh
 
Messages: 51
Inscription: Ven 14 Déc 2012, 23:46

Re: Pyromaths est sur GitHub

Messagede Jérôme » Mer 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
Avatar de l’utilisateur
Jérôme
Administrateur - Site Admin
 
Messages: 1073
Inscription: Sam 26 Aoû 2006, 13:10
Localisation: Nantes

Re: Pyromaths est sur GitHub

Messagede jbreizh » Mer 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: Ven 14 Déc 2012, 23:46

Re: Pyromaths est sur GitHub

Messagede jbreizh » Ven 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/tree/integrationTexlive
Dernière édition par jbreizh le Ven 22 Mai 2015, 09:26, édité 1 fois.
jbreizh
 
Messages: 51
Inscription: Ven 14 Déc 2012, 23:46

Re: Pyromaths est sur GitHub

Messagede jbreizh » Ven 22 Mai 2015, 09:25

Bon j'avance voici un premier jet mais fonctionnel (environ 54Mo) https://www.dropbox.com/s/mm43i78fh3lmfhg/pyromaths-15.02-win32.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
jbreizh
 
Messages: 51
Inscription: Ven 14 Déc 2012, 23:46

Re: Pyromaths est sur GitHub

Messagede Jérôme » Mer 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
Avatar de l’utilisateur
Jérôme
Administrateur - Site Admin
 
Messages: 1073
Inscription: Sam 26 Aoû 2006, 13:10
Localisation: Nantes

Re: Pyromaths est sur GitHub

Messagede jbreizh » Jeu 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/blob/integrationTexlive/src/pyromaths/outils/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
jbreizh
 
Messages: 51
Inscription: Ven 14 Déc 2012, 23:46

Re: Pyromaths est sur GitHub

Messagede Jérôme » Jeu 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
Avatar de l’utilisateur
Jérôme
Administrateur - Site Admin
 
Messages: 1073
Inscription: Sam 26 Aoû 2006, 13:10
Localisation: Nantes

Re: Pyromaths est sur GitHub

Messagede jbreizh » Mer 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
jbreizh
 
Messages: 51
Inscription: Ven 14 Déc 2012, 23:46

Re: Pyromaths est sur GitHub

Messagede Jérôme » Mer 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
Avatar de l’utilisateur
Jérôme
Administrateur - Site Admin
 
Messages: 1073
Inscription: Sam 26 Aoû 2006, 13:10
Localisation: Nantes

Suivante

Retourner vers Propositions

Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 1 invité