WotWizard : un logiciel de prédiction des entrées dans la toile

J’ai développé ces dernières semaines un petit logiciel qui permet d’annoncer les dates d’entrée possibles des futurs membres dans la toile de confiance, avec leurs probabilités, dans la mesure où de nouvelles certifications ne surviennent pas entretemps. C’est un travail assez fastidieux à faire de tête, d’où l’idée de départ de ce développement. Je suis en train de le peaufiner, mais il fonctionne déjà correctement. Il sera publié dès que le code source sera présentable. Il est écrit en Component Pascal, dans le système Blackbox (Blackbox Framework Center) et tourne sous Windows, ou Linux avec Wine.

Il utilise la base de données de Duniter et ne peut donc fonctionner que sur un ordinateur qui est aussi un noeud du réseau. Ses résultats dépendent du fonctionnement de Duniter. Dans la version 1.3.x actuelle de Duniter, les probabilités calculées sont assez approximatives, mais devraient être correctes dans les prochaines versions 1.4.x.

Voici un petit aperçu de ce que l’on obtient :

Pour chaque prétendant en lice, les dates possibles avec leurs probabilités (les heures sont au format UTC, soit 2 heures avant l’heure d’été française) :

10/08/2017 21:02:30 (la date actuelle)

Barbichette (12/08/2017 08:21:51): Proba = 50%
ColineMachin (12/08/2017 08:21:51): Proba = 50%
Krugor (12/08/2017 13:58:06): Proba = 100%
BastienF (13/08/2017 19:14:37): Proba = 100%
Barbichette (17/08/2017 08:21:51): Proba = 50%
ColineMachin (17/08/2017 08:21:51): Proba = 50%
Bcabon (18/08/2017 20:42:39): Proba = 50%
Olib (18/08/2017 20:42:39): Proba = 50%
Bcabon (23/08/2017 20:42:39): Proba = 50%
Olib (23/08/2017 20:42:39): Proba = 50%

et aussi les ordres possibles d’arrivée avec leurs probabilités :

10/08/2017 21:02:30

Proba = 25.00%
Barbichette (12/08/2017 08:21:51)
Krugor (12/08/2017 13:58:06)
BastienF (13/08/2017 19:14:37)
ColineMachin (17/08/2017 08:21:51)
Bcabon (18/08/2017 20:42:39)
Olib (23/08/2017 20:42:39)

Proba = 25.00%
Barbichette (12/08/2017 08:21:51)
Krugor (12/08/2017 13:58:06)
BastienF (13/08/2017 19:14:37)
ColineMachin (17/08/2017 08:21:51)
Olib (18/08/2017 20:42:39)
Bcabon (23/08/2017 20:42:39)

Proba = 25.00%
ColineMachin (12/08/2017 08:21:51)
Krugor (12/08/2017 13:58:06)
BastienF (13/08/2017 19:14:37)
Barbichette (17/08/2017 08:21:51)
Bcabon (18/08/2017 20:42:39)
Olib (23/08/2017 20:42:39)

Proba = 25.00%
ColineMachin (12/08/2017 08:21:51)
Krugor (12/08/2017 13:58:06)
BastienF (13/08/2017 19:14:37)
Barbichette (17/08/2017 08:21:51)
Olib (18/08/2017 20:42:39)
Bcabon (23/08/2017 20:42:39)

J’espère que cela pourra être utile.

8 J'aimes

Chouette !!
ce qui serait encore plus sympa (pour moi), c’est que ces résultats soit accessible via une API web, par exemple clé publique. Dans Cesium, nous pourrions ainsi indiquer à une personne en attente quand elle rentrera, à partir du moment où elle a ses 5 certifs…

2 J'aimes

Pour l’instant, je ne sais pas faire (mais je ne désespère pas). Je peux aussi t’expliquer l’algorithme pour que tu l’intègres à Cesium.

1 J'aime

Depuis que je regarde wotwizard, une question me taquine.

Je comprends le fait de dire “en l’état actuel des certifications distribuées et sous réserve que d’autres certifications ne soient pas distribuées”

Mais je me demande si ça ne serait pas intéressant d’inclure la distance à la date d’entrée dans le calcul. Ainsi, un dossier à 100% de proba d’entrée pour aujourd’hui a plus de chance d’entrer de façon effective qu’un à 100% pour dans 2 jours car ça laisse plus de temps à l’un des certifieurs pour recertifier quelqu’un entre temps.

Une dégradation artificielle permettrait de rendre compte de ça. Après ce serait plus complexe, donc je ne suis pas sur de moi !

1 J'aime

C’est vrai qu’à l’allure où les certifications arrivent, ces prévisions n’ont parfois pas grand sens. Sans parler des dossiers qui passent tellement vite que je n’ai même pas le temps de les recenser. Et puis il y a des petits malins qui voient vite que leur poulain va se faire doubler et qui ajoutent une certication en catastrophe :grinning:. C’est assez amusant à regarder, et ça me laisse penser que WotWizard aide à provoquer ce genre de comportements. Il n’est peut-être donc pas très fiable, mais est peut-être utile quand même.

4 J'aimes

Alors absolument, loin de moi l’idée de dire que ce n’est pas utile !

Comme tout, il faut connaître le fonctionnement et les limites un minimum pour l’utiliser à bon escient.
Et l’étourdi surpris n’aura qu’à poser des questions.

L’observation aurait-elle donc une influence sur la mesure ?

7 J'aimes

Absolument. Une des grandes découvertes de la physique du 20e siècle :wink:

3 J'aimes

Bonsoir @elois. J’ai un problème à propos du dossier d’inscription de Maeve. Sur g1-monit, tu signales que ce futur membre n’a pas encore demandé son adhésion, ce qui est sans-doute vrai puisque son dossier ne passe pas. Mais j’ai beau regarder les données dans duniter.db, je ne vois rien qui le différencie des autres. Peux-tu me dire où tu vois qu’il n’a pas fait de demande d’adhésion ? Je donne ma langue au chat :stuck_out_tongue:.

Oui c’est normal car cette donnée n’est pas relative a l’identité ni a la certification, tu ne verra donc rien dans les tables qui contiennent ses objets.
Les notions de “demande d’adhésion” et “demande de renouvellement” sont portées par les objets de type membership et se trouvent dans les tables sandbox_memberships et m_index.

Si une identité i en piscine a bien effectuée une demande d’adhésion, alors tu doit trouver au moins un enregistrement m dans la table sandbox_memberships pour lequel m.idtyHash == i.hash :wink:

Merci beaucoup. Je vais corriger le problème.

J’ai signalé ce soucis à Maeve.

1 J'aime

Merci. Je corrigerai ce soir. Les prévisions reprendront après. Désolé pour la déconvenue.

J’ai enfin une version publiable de WotWizard. Cela se présente sous la forme d’un fichier WotWizard.exe qui contient l’exécutable pour un cadre d’applications qui permet d’ouvrir en son sein une fenêtre WotWizard affichant les prévisions et qui est mise à jour toutes les cinq minutes. Ce cadre permet aussi d’afficher le mode d’emploi, les documentations et sources des principaux logiciels utilisés.
WotWizard peut fonctionner sur Windows ou sur Linux avec Wine. Il doit être copié pour cela dans un répertoire vide, sur un noeud du réseau Duniter car il doit pouvoir accéder à la base de données duniter.db. Il produit aussi les prévisions sous forme de deux fichiers textes dans son répertoire (l’un trié par dates, l’autre par noms), eux aussi mis à jour toutes les cinq minutes, ce qui devrait permettre au noeud de les afficher sur une page Web.
Je suppose que le mieux serait de le publier sur Github et j’aimerais avoir quelques directives pour cela. Je peux aussi ajouter les sources et les docs au format texte en dehors du .exe.

2 J'aimes

Je t’ai invité dans l’organisation Duniter.
Tu devrais pouvoir créer un nouveau dépôt et publier ton boulot dedans.

1 J'aime

Insufficient permission:confused:

1 J'aime

Je ne trompe pas ? Je dois bien prendre Duniter comme propriétaire de mon nouveau répertoire WotWizard, de façon qu’il soit dans Duniter ? Mais je n’ai apparemment pas les droits pour ça.

J’ai créé un dépôt vide https://github.com/duniter/WotWizard ainsi que la team GitHub du même nom. Tu as les accès administrateur sur ce dépôt.

Il te suffit donc de le cloner avec Git et d’y pousser tes modifications.

1 J'aime

Merci, ça ne va pas tarder.

Tu devrais pas mettre de binaire dans un dépôt git.
Ça allourdis le dépôt sur toute ça durée de vie car git n’arrive pas à faire de diff avec.
Cependant, tu peux mettre les binaires dans les releases GitHub.

1 J'aime