heftyAD

huge, elegant, fast and transparent Algorithm Demystifier

Le problème exposé dans ce sujet a été résolu.

Malheureusement, les CeCIll ont exactement les mêmes clauses que (respectivement) la GPL, la BSD et la LGPL, donc pas de protection contre l'utilisation commerciale. Les BiPu proposent quelques variantes avec clause non-commerciale, mais elles excluent explicitement le logiciel. Quant aux CC, même si le nom est trompeur, elles bloquent bien plus que les utilisations commerciales, et ne sont pas vraiment conçues pour le logiciel.

À ma connaissance, il n'y a pas de licence logicielle qui inclue une telle clause (c'est un peu tabou, le non commercial, dans le monde du logiciel libre). Il faudrait sans doute en créer, en prenant la CeCIll pour base. Mais si ça vous intéresse, faudrait ouvrir un nouveau sujet, dans « Autres savoirs ».

+0 -0

Hello !

Effectivement les CeCill sont une variantes des licences libres GPL mais elles s’appliquent uniquement en France apparemment. Sinon pour ce qui est du code, il est clair que je ne peux pas me prétendre pro. Mais je n’en suis pas pour autant un novice. Les grosses lourdeurs du code sont liés essentiellement à l’utilisation des vues Qt et des threads que je ne connaissais vraiment pas. Mais maintenant que je les ai découvert on peut dire que j’ai mieux compris. Sinon j’aurais mon cours sur le C++ en classe l’année prochaine. ;)

Pour l’instant la publication du code n’est pas un problème en soit : en 2, 3 clics c’est fait. Je contacterais les universités comme je l’avais annoncé dans mon premier. Je ferais aussi la vidéo. Et à partir de là je pourrais voir qui est intéressé, qui est prêt à travailler sur le projet, etc. Dans l’immédiat, voici quelques screens plutôt … je vous laisse juger.

avancée 1
avancée 1
avancée 2
avancée 2

Il y a bien d’autres nouveautés mais vous les découvrirez dès que j’aurais publié les exécutables. Vous l’avez peut-être remarqué aussi : la théorie des graphes et des automates appartenant à la famille de notions qui "font peurs" aux étudiants, j’essaye d’intégrer dans l’application une approche ludique. Enfin je suis en train de réaliser les différentes icônes, logo et autres images utilisées dans l’application.

Si vous avez une remarque, une suggestion, je suis tout ouie (oui toujours prêt à écouter :) ).

+0 -0

A force de se renseigner un peu partout sur internet, on finit bien par se perdre dans tout le lot d'informations que l'on "ingurgite". Effectivement donc j'ai dit une grosse bêtise tout à l'heure : honte à moi. ^^

Quant à ton article, c'est un vrai chef d'oeuvre : beau boulot. Et il apparaît encore plus clair que les licences CeCill sont bien équivalentes à leurs sœurs américaines GPL, BSD et LGPL, à la différence que celles établies en France (les CeCill donc) s'intègrent mieux au droit français. Par ailleurs pour ce qui est de l'usage commercial qui n'est pas exclu par ces principales licences du "monde libre", je me dis que ce n'est après tout peut-être pas un problème en soi. Car si on part de l'hypothèse

  • que le compte git du projet (celui qui est actuellement privé) existe depuis plusieurs mois
  • et que moi même qui en suis l'initiateur ne vendrai pas l'application
  • (ce ne sont là que des suppositions),

je ne vois pas ce qu'y gagnerait une quelconque personne (morale ou pas) à en copier le concept pour en faire en France un autre projet à usage commercial. Ce serait tellement ridicule, ne trouvez-vous pas ?

Par contre, vu que l'application est traduite dans plusieurs autres langues dont uniquement l'anglais pour l'instant, [la suite se trouve après les images]

cette fenêtre s'affiche au lancement de l'application, lorsqu'un travail préalablement en cours n'a pas été sauvegardé mais que l'exécution de l'application s'est qu'en même arrêtée, suite à un arrêt de celle-ci depuis le gestionnaire de tâches par exemple

il serait probablement plus sûr d'étudier le cas des pays autres que la France. Car à vrai dire je me dis que s'il est vrai que la raison qui m'a amené à développer heftyAD est la difficulté qu'éprouvent mes camarades-étudiants en matière d'algorithmie, de graphes et d'automates, il n'en demeure pas moins vrai qu'ils ne sont pas les seuls concernés et pas mal d'étudiants hors France sont certainement dans le même cas.

Oui je pense que faire profiter un produit créé en France à d'autres pays est bien mais cela nécessite peut-être de suivre des démarches bien définies que j'ignore complètement. Bon après on en est pas encore là. :) heftyAD est encore en cours d'écriture donc je fais juste une analyse en direction du futur.

Pour ce qui est des exécutables et du manuel utilisateur, ce sera pour au plus tard la fin de la semaine prochaine j'espère. Ensuite je m'occuperais de la vidéo de présentation. Si vous avez une réponse à une de mes interrogations, hé bien au plaisir de vous lire.

+0 -0

Hello, vous allez bien j'espère. Les premiers exécutables de heftyAD sont enfin prêts. C'est par ici.

capture d'écran

Je ne vais pas plus vous spoiler avec des captures d'écran. Je vous laisse découvrir par vous même. Si vous avez une remarque, une suggestion ou une question, surtout n'hésitez pas. Une vidéo sera plus tard diffusée sur YouTube.

Sur ce, bonne soirée et au plaisir de vous lire. ;)

+0 -0

Hello !

J'ai remarqué que très peu d'entre vous se sont connectés ces derniers jours. Mais pour ceux qui l'ont fait et qui m'ont d'ailleurs fait part de leurs précieux commentaires, avez-vous testé l'application ?

Si non, ce n'est pas bien grave, une nouvelle version de l'application (la 1.3) est disponible ici. Des étudiants dans mon établissement l'ont déjà testée, quelques professeurs m'ont aussi fait part de leurs commentaires positifs. J'aurais donc souhaité avoir vos différents avis aussi.

Enfin, heftyAD est déployée en tant que freeware. Voici une capture d'écran prise pendant son exécution sur mon PC.

page d'accueil de heftyAD

Je vous remercie.

Hello everybody !

heftyAD évolue ! J'ai complètement remis à jour mon premier post. N'hésitez pas à le lire : il vous réserve de bonnes surprises. De plus j'ai commencé à réécrire le code source de l'application. Celui-ci est d'ailleurs disponible sur github. Tout est indiqué dans mon premier post. Chacun peut ainsi

  • compiler le code source de l'application,
  • participer bientôt à sa traduction,
  • relever les éventuelles mauvaises pratiques de codage qu'il y a dans le code pour que je puisse ensuite les corriger,
  • ....

Si vous avez des suggestions, remarques, questions ou autres, je suis tout ouïe. ;)

Hello Zeste De Savoir !

heftyAD avance ! Je réaliserais au moins deux vidéos dans les prochaines semaines, afin de vous montrer les fonctionnalités intéressantes que j'ai pu rajouter. En attendant les vidéos, voici quelques informations utiles :

Info 1/3

heftyAD permet actuellement de créer seulement des tableaux et des graphes. Mais d'autres types de modèle seront intégrés à l'avenir, notamment les labyrinthes dont l’intégration est imminente. Voici un zoli graphe créé avec l'application :

Un exemple de graphe

Info 2/3

L'application permet aussi de créer des animations. Celles-ci sont sensées permettre une meilleure compréhension des algorithmes.

Les animations classiques

L'image est un peu floutée mais je n'y suis pour rien. Toutefois, ne vous en faites pas : je reviendrais dessus dans les prochaines vidéos. On peut voir par exemple que pour A on anime l'opacité, pour E et F on anime la position, …, pour B je vous laisse deviner en toute autonomie, comme des grands. ;)

Info 3/3

Les animations classiques mises à part , on peut réaliser aussi des animations furtives. Par exemple, on peut afficher un texte à l'écran et lui indiquer de disparaître après 2500 millisecondes. Je reviendrais sur tout ça dans les prochaines vidéos. A noter que les animations furtives peuvent s'exécuter soit en foreground, soit en background.

Les animations furtives

Hello ZDS !

Bonne et heureuse année 2017, 2018, 2019, … :)

J’ai commencé hier à préparer les vidéos (écrire les algorithmes ainsi que les explications associées, les montrer dans les vidéos, les présenter, etc.). Si tout se passe bien, mon prochain post devrait contenir un lien vers au moins une vidéo. Aussi, dans l’état actuel des choses, l’application propose une API permettant d’expliquer le fonctionnement de n’importe quel algorithme et ce, peu importe le modèle auquel celui-ci s’applique. Mais pour simplifier les choses, je me focaliserais dans les prochaines vidéos seulement sur

  • les algorithmes impliquant les tableaux (algorithmes de tri par exemple),
  • un algorithme pour tester qu’une fonction (d’un point de vue mathématiques) est partielle ou totale,
  • le problème du sac à dos (si pas trop compliqué à expliquer avec des animations),
  • peut-être un ou deux trucs sur les graphes,

Sur ce, très bonne soirée à tous et à toutes !

Hello !

heftyAD avance ! Pour information, la sauvegarde et le chargement du contenu d’un graphe est maintenant possible (cf. capture d’écran ci-après). Vous noterez aussi que l’application permet de customiser les items comme on le souhaite (peu importe la nature du modèle les contenant : graphe, tableau, automate, matrice, …).

exemple de graphe

Aussi, concernant les vidéos, je n’ai pas oublié : je fais plein de trucs en même temps donc c’est assez dur de bien avancer dans un seul domaine. Mais sinon ça avance. J’ai par exemple déjà écrit une simulation qui explique clairement (et ce grâce à heftyAD) une des méthodes utilisées par l’ordinateur pour trier des données. Note : La barre en haut à gauche (dans la capture d’écran ci-après) permet d’accéler ou de décélérer la simulation, la valeur actuelle étant 0.

exemple de simulation

Là je vais voir quel algorithme simple s’appliquant aux graphes je peux expliquer avec l’application. Si j’en trouve un et que j’y arrive, alors j’aurais un autre élément intéressant pour les prochaines vidéos. Dans tous les cas, je dispose actuellement déjà de suffisamment d’éléments pour faire des démonstrations. Mais quelques réajustements par ci par là ne peuvent apporter que du positif. ;)

Hello, ça avance !

Voici quelques captures d’écran : pas de textes kilométriques dans ce poste. ;)

[1/5] Un tableau plutôt élég—
Un exemple de tableau
Le même tableau (mais avec ses éléments dispersés)
[2/5] Un graphe vide

Ouvrir l’image dans un nouvel onglet (car trop large) et essayer de ne pas s’en dormir. :D

Veux-tu participer à qui s’endort perd ?
[3/5] Graphe et courbes de Bézier
Les arcs dans les graphes montrés sont des courbes de Bézier
[4/5] Une petite comparaison

Comparons ensemble le graphe ci-dessous et son homologue dessiné avec la précédente version de l’application : aucune régression comme vous pouvez le constater.

Un exemple de graphe
[5/5] La sympathie des graphes

Ouvrir l’image ci-dessous dans un nouvel onglet car trop large.

Le même graphe que précédemment (mais avec zoom sur la scène)

Un graphe sympa pour la route.

Le même graphe que précédemment (mais à mon avis le plus stylé)

Je m’approche progressivement du bout du tunnel. Mais il reste encore un petit bout de chemin à faire. En attendant, bonne soirée à tous/toutes et vive la musique : https://www.youtube.com/watch?v=HOGzXECwUvw. ;)

Hello ZDS, heftyAD avance, lentement mais sûrement.

A juste titre une fontionnalité d’Edition Complète permet maintenant d’éditer le modèle depuis l’interface graphique de l’application. Le formulaire d’édition permet à la fois d’éditer les attributs du modèle ainsi que ceux de son contenu (les items). On peut donc dire bye bye à l’édition manuelle de fichier xml. ;)

Edition Complete - 01

Modifions ensuite l’opacité, la brosse, la police, la forme et la dimension de l’item à l’indice n°2 (le 3ème élément) dans le précédent tableau. On en arrive alors à la capture d’écran ci-après.

Edition Complète - 02

Les fonctionnalités de chargement et de sauvegarde sont aussi entièrement opérationnelles.

Load Save

Enfin, notez que tous les formulaires apparaissant dans les précédentes captures d’écran sont génériques et peuvent être utilisés indépendamment de heftyAD. Ce ne sont d’ailleurs pas les seuls. En conséquence le développement prend du temps, beaucoup de temps. Le résultat est néanmoins satisfaisant. D’autres captures d’écran seront publiées plus tard. En attendant, bonne soirée à tous et à toutes !

Hello !

Les fonctionnalités relatives aux onglets Modèles et Simulations de l’application sont opérationnelles. Du moins elles sont suffisamment riches et stables pour que lon puisse tester. Voici un exemple de simulation en cours d’exécution.

Une simulation montrant le Tri par Sélection

Les algorithmes sont actuellement créés au moyen de C++ et Qt. L’intégration de JavaScript est en cours. Voici deux captures d’écran illustrant l’état d’avancement actuel. Une fois un algorithme compilé, les éventuelles erreurs sont affichées dans la console prévue à cet effet. Pour ensuite exécuter l’algorithme, il faudra passer par l’onglet "Simulations".

Algorithme JavaScript 1
Algorithme JavaScript 2

Bonne soirée à tous/toutes et merci de visualiser les images dans un nouvel onglet.

Hello !

heftyAD c’est terminé. :) A vrai dire il reste encore plusieurs points que je pourrais améliorer. Mais j’ai enfin une première version très proche de ce que je souhaitais. Je ferais des vidéos dans les prochains jours. En attendant voici quelques fonctionnalités phares de l’application.

1/4 Créer un modèle

On peut actuellement créer des tableaux ou des graphes (cf. précédentes captures d’écran). Et si le projet intéresse des gens, d’autres types de modèles pourraient être intégrés à l’avenir : automate, matrice, labyrinthe, etc. Toutefois, l’API Graph actuellement proposée ne me plaît pas vraiment. Elle sera probablement améliorée/changée plus tard.

2/4 Créer un algorithme

Les personnes initiées aux joies de la programmation peuvent créer des algorithmes auto-explicatifs et les soumettre aux non-initiés afin que ceux-ci, même en n’ayant jamais vu la moindre ligne de code, puissent assez facilement en comprendre le fonctionnement. Par algorithme auto-explicatif je désigne un algorithme qui explique son propre fonctionnement pendant son exécution.

Les algorithmes peuvent être créés en C++/Qt ou avec JavaScript. Dans le premier cas il faudra créer une Dynamic Link Library (.dll, .so, *.dylib) à partir d’une portion de code de heftyAD. Le fichier résultant de cette première opération poura ensuite être chargé depuis l’interface de l’application. Comme quoi, heftyAD est capable d’exécuter un algorithme dont il ne connaît même pas le code source. Les algorithmles JS peuvent quant à eux être créés directement depuis l’interface de l’application. Notons toutefois que seul l’essentiel est exposé à l’environnement JS. Autrement dit, l’API JS est suffisante mais minimale.

3/4 Les simulations

Une simulation implique un algorithme ainsi que l’éventuel modèle associé. heftyAD permet aussi de contrôler le flux d’exécution d’un algorithme, même s’il ne dispose pas de son code source. On peut en effet mettre en pause, arrêter ou recommencer une simulation, exactement comme le ferait un lecteur de musique pour un flux audio. On ne peut pour l’instant pas avancer/reculer vers une itération souhaitée. Mais on peut contrôler la vitesse d’exécution de l’algorithme grâce une barre d’accélération dont les valeurs vont de -100% à 100%.

4/4 Autres fonctionnalités

La fonctionnalité du Undo/Redo est complètement opérationnelle pour les Arrays. Pour les Graphs, n’étant pas très satisfait de l’API, cette fonctionnalité n’est pas implémentée. Mais d’ici là, je peaufinerais sans doute encore l’application. Et bien entendu, l’application est traductible dans autant de langues que l’on souhaite (seulement traduite en anglais pour l’instant).

Bonne fin de week-end à tous et à toutes.

Hello !

heftyAD c’est terminé ; je marque donc cette discussion Résolu. Ci-après un lien vers le wiki du projet, afin de télécharger puis tester l’application par exemple : https://github.com/misterFad/heftyAD/wiki.

J’ai développé la première version de heftyAD en environ trois mois, en parallèle d’un stage estival et donc en bossant uniquement les soirs et weekends. Bien entendu je prenais aussi des pauses, notamment quand je n’étais pas inspiré ou quand je n’avais vraiment pas envie de bosser sur le projet. La seconde et dernière version m’a pris beaucoup plus de temps, d’une part parce que je ne voulais pas faire de compromis (je voulais que les fonctionnalités se rapprochent au mieux de ce que je m’imaginais - c’est chose faite aujourd’hui), d’autre part parce que j’ai pris de très longues pauses cette fois-ci (que ce soit à cause de l’écriture du wiki, des cours à l’université, ou encore du dessin que je pratique assidûment depuis peu).

En toute circonstance, je suis très content d’avoir pu mener ce projet jusqu’au bout. Je remercie également toutes les personnes ayant suivi ce projet (de près ou de loin).

+0 -0

Félicitations pour ton travail.

C’est très difficile de faire aboutir un projet perso sur son temps libre. Tu as réussi à construire un soft entier, possédant les fonctionnalités que tu avais imaginées.

Le code est, et sera bien évidemment perfectible, tu l’as créé en tant que débutant. C’est tout à fait normal. Peut-être que ce projet t’accompagnera au cours de ta "vie de développeur" (on en a tous des comme ça, la bibliothèque perso, le snake, le jeu de d’échecs, etc.) et sans doute qu’un jour te reprendra l’envie d’aller mettre les mains dedans :)

Tu peux être fier du travail accompli !

+1 -0

Je te remercie pour ton commentaire. Effectivement le code est et sera toujours perfectible. Je rajouterais toutefois qu’aujourd’hui je ne me sens plus du tout débutant. De même il y a beaucoup d’autres projets personnels que j’ai réalisés en parallèle de heftyAD. Après tout le but c’était de sortir des limites du système scolaire où on nous donne des tas de projets chronophages mais en général rien de bien compliqué. ^^ D’ailleurs je me suis mis à apprendre à dessiner en juin 2017. Tu trouveras ci-après trois de mes dessins (dont les deux premiers sont réalisés dans la rue, directement et uniquement au stylo). Comme quoi rien n’est impossible quand on est armé de détermination et de persévérance.

Dessins de rue réalisés directement et uniquement au stylo
Dessins de rue réalisés directement et uniquement au stylo
Dessin perfectible mais réalisé entièrement d'imagination le 30/09/2018
Dessin perfectible mais réalisé entièrement d'imagination le 30/09/2018
+0 -0
Connectez-vous pour pouvoir poster un message.
Connexion

Pas encore membre ?

Créez un compte en une minute pour profiter pleinement de toutes les fonctionnalités de Zeste de Savoir. Ici, tout est gratuit et sans publicité.
Créer un compte