Module Galilée avec Pandas!

J’ai l’honneur de vous annoncer la publication du module Galilée réalisé par mes soins !

Ne voulant rien faire comme tout le monde, j’ai réalisé le module sans LibreOffice, mais entièrement en code Python. Grâce à la bibliothèque Pandas (comme les ours qui ressemblent à des vaches normandes) qui permet de traiter des données comme un tableur et d’afficher des graphiques, le résultat est analogue à LibreOffice.

Pour chaque graphique, le code Python est fourni.

Le tout a été réalisé entièrement dans Firefox, grâce à JupyterLab !

Bonne lecture…

http://vit.free.fr/website/monnaie/modules/galilee/module_galilée.html

PS:

Si vous voulez bidouiller vous-même le code avec Jupyter,
vous pouvez télécharger le fichier Jupyter Notebook :

http://vit.free.fr/website/monnaie/TRM.html#module-galilee

16 « J'aime »

Bravo pour la cohabitation Python - Pandas ! :slight_smile:

3 « J'aime »

Salut Vincent,

J’ai juste commencé à lire, après avoir survolé l’ensemble. C’est beauuuu ! Sacré boulot !
Premières questions (en attendant de pousser plus loin) :

  • get_du a la forme max(last_DU, last_DU + (math.pow(c, 2) * (M / N)))
    Pourquoi ce max ?
  • l’initialisation DU = [get_du(c, M[0], N, DU0)] ne pourrait-elle pas être plus simplement DU = [DU0]

Bon, je pense que les deux questions sont liées.

1 « J'aime »

Merci ! Entre l’apprentissage de Pandas et de mathplotlib et comprendre l’énoncé… cela a été un sacré chantier. Mais je suis satisfait du résultat. Pouvoir résoudre les questions de la TRM en quelques lignes de code me ravi !

Pour faire comme Duniter. J’ai pas trop réfléchi là-dessus. Mais on peut l’enlever et regarder ce que cela change.

Oui au début je faisais cela. Mais les comptes démarraient à zéro. Quand j’ai décidé de commencer avec des valeurs réparties de part et d’autre de la moyenne, j’ai été obligé de faire ça. Cela permet de changer facilement les valeurs de départ des comptes sans toucher au code.

1 « J'aime »

Bravo ! Super travail ! Ca fait 6 mois que j’ai envie de faire la même chose… et pour l’instant à part avoir installer Jupyterlab je n’ai pas progressé d’un iota !

Ca va me donner des idées ! Merci !

1 « J'aime »

Le truc est très bien dans l’ensemble mais j’ai vu deux ou trois trucs qui me paraissent curieux à première vue.

Certains graphes ne paraissent pas lisses alors qu’ils devraient l’être, il donc y avoir une erreur d’indice, de formule quelque part…

Je n’ai pas vu d’évolution des prix relativement à une valeur de référence pertinente (par exemple le prix du pain a été choisi sur 1 module Galilée par je sais plus qui…), reprendre des données déjà utilisées dans des modules déjà réalisés n’est pas pertinent.

Excellent, voila l’animal qui manquait dans l’Arche :wink:
Depuis un moment, il me prend l’envie d’implémenter une ML basée sur cette convergence
http://vit.free.fr/website/monnaie/modules/galilee/module_galilée.html#graphique-en-relatif

On pourrait alors imaginer les « joueurs » entrer avec une masse aléatoire ou corrélée à un truc (à choisir), ou directement à la moyenne. Puis l’algo ML agit…
Une config sympa à introduire dans un simulateur de monde minetest par exemple :wink:

Je vais voir si j’arrive à dérouler ce python enroulé en panda…

Comme Stéphane, je pense que tu as des décalages dans des indices quelque part, je te fais un retour dès que je trouve du temps pour creuser cette affaire.

Hum… Tu veux dire dans le code de Duniter ?

Hormis si c est un imaginaire, son carré ne peut être négatif ; et M/N négatif, ce serait étrange aussi. Donc max(last_DU, last_DU + (math.pow(c, 2) * (M / N))) retournera toujours last_DU + (math.pow(c, 2) * (M / N)), non ?

Je crois que l’on en a parlé à Toulouse : as-tu étudié la possibilité de créer un notebook Jupyter. Je n’en ai encore jamais utilisé, mais j’ai l’impression que le résultat serait sensiblement le même, hormis que le code python serait éditable et exécutable par les visiteurs, permettant ainsi de tester d’autres choses. D’ailleurs, je pense que quand tes tests sont concluants, tu peux sauvegarder sous un nouveau nom le notebook que tu viens de modifier et le publier.

1 « J'aime »

@Galuel
Pour les graphiques qui ne sont pas lisses, ok je vais regardé ça. Je me plante toujours sur les index. C’est ma marque de fabrique… :wink:

Pour la valeur ben j’ai pris une de celles proposées par le module. Je vais voir si je trouve une nouvelle valeur qui m’intéresse.

JupyterLab, n’est que l’interface web améliorée de Jupyter. Je travaille sur un notebook Jupyter classique au final. Il faut juste que je le mette à dispo oui.

Ah ben oui tu as raison… Bon ben je vais le virer. Merci !

Le fichier Jupyter Notebook est à disposition en téléchargement :

http://vit.free.fr/website/monnaie/TRM.html#module-galilee

Merci !
Plus de rouge pour I1, maintenant, c’est du mangenta et ça change tout !

2 « J'aime »

Ca y est, j’ai travaillé sur le notebook, si ça t’interesse, il est ici (je n’ai pas changé que des couleurs !) :
http://cuckooland.free.fr/SharedFiles/module_galilée.ipynb

Parmi les changements, il y en a trois qui aident bien à détecter les problèmes d’indice :

  • la fonction « get_du » a été modifiée pour pouvoir changer facilement la formule du DU utilisée ;
  • une variable « account0 » a été ajoutée pour pouvoir passer facilement de « monnaie pleine » à « monnaie non pleine » ;
  • une colonne « Moyenne Pleine » a été ajoutée correspondant à DU/c.

L’idée est de se placer en monnaie pleine pour vérifier qu’en passant d’une formule à une autre, les valeurs obtenues restent inchangées (et on peut reconnaitre des séquences classiques du genre [10, 11, 12.1, etc.]). De plus, en monnaie pleine, « Moyenne » et « Moyenne Pleine » doivent être identiques.

Autre chose, n’étant pas à l’aise avec Python et Pandas, c’est le prochain DU, et non pas le précédent, qui est utilisé pour le relatif. Du coup, la convergence se fait vers 10 (soit 1/c) au lieu de 11 (soit (1+c)/c).

2 « J'aime »

Même si le fait de prendre le prochain DU me gêne un peu car N est inconnu et on fait donc là une supposition, tes apports sont salutaires !

Si tu m’y autorise, puis-je publier ta version modifiée en te citant, en lieu et place de la mienne, sur mon site ?

Merci Vincent. Je suis d’accord, c’est une pratique courante, mais je ne la trouve pas naturelle du tout.
Je te propose une autre version où c’est le DU précédent qui est utilisé pour le relatif :

http://cuckooland.free.fr/SharedFiles/module_galilée_11DU.ipynb

J’aurais bien essayé de fusionner les deux pour pouvoir passer facilement d’un mode à l’autre, mais j’ai peur que cela complexifie trop le code.

Il y a encore un truc que je veux étudier : quand N varie, la moyenne varie mais je n’arrive pas à voir si la forme est juste (surtout dans le cas des référentiels à somme nulle). N’hésite pas à y jeter un oeil, cela doit être une erreur à la c…

Oui, bien sûr.

2 « J'aime »

est ce possible de l’intégrer comme moyen de paiement pour la communauté G1 sur mon site de petites annonces?

si oui est ce possible de m’aider à le programmer?

merci

Si le backend de ton site peux exécuter du Python, alors oui.

Si tu développes avec DuniterPy, je peux répondre à tes questions sur le forum technique forum.duniter.org.

ok

merci

je reviens vers toi si c’est positif

l’agence utilise PHP

est ce possible?

Si le backend avait été en Python, il n’y aurait pas eu de problème.

Mais lancer du python à partir du PHP n’est pas souhaitable. Autant implémenter un support de l’api BMA en PHP, c’est plus efficace et propre.

@paidge a développé la barre de financement en PHP, et doit donc avoir un client PHP pour l’api BMA.

Je t’invite donc à te rapprocher de lui pour avoir de l’aide.

pour la création gnie.fr de oumi

je souhaite trouver une solution d’affiliation avec lui ou bien l’autre solution pour le bien de la sécurité de l’ensemble de la communauté une solution adapté et sur