Page 1 of 2

Omega, firmware NumWorks ultime pour les regrouper tous

Unread postPosted: 31 Oct 2019, 14:17
by Admin
La NumWorks est revendiquée comme une calculatrice ouverte. Tu as accès au code source, et es libre de le modifier et soumettre à l'équipe NumWorks, ou de le recompiler toi-même.

On peut citer nombre de réalisations communautaires; de façon non exhaustive :

Mais derrière cette façade la réalité est tout autre, et paradoxalement le développement communautaire rencontre bien plus de succès sur les modèles concurrents non ouverts. :#roll#:

En effet l'équipe NumWorks n'intègre généralement que peu de ces créations.

Cela peut peut certes se comprendre puisque nombre d'entre elles sont de simples 'amusements' sans intérêt justifié, surtout quand on sait que :
  • la NumWorks N0100 n'a que 1Mio de mémoire Flash
  • les NumWorks N0100 et NumWorks N0110 n'ont que 256Kio de mémoire RAM

D'autres ont pourtant un intérêt scolaire parfaitement pertinent et ne sont pas intégrées pour autant ou alors après plusieurs mois.
  • Celles concernant le calcul littéral/formel vont à l'encontre des intérêts commerciaux du constructeur, ces fonctionnalités étant interdites aux examens chez nos voisins européens (Italie, Pays-Bas, Portugal, Royaume-Uni...).
  • Mais nombre de refus ou mises de côté à ce jour ne rentrent pas dans ce cas. Peut-être parce que les ajouts en question correspondent à une future fonctionnalité déjà prévue par le constructeur, avec une interface différente, les interfaces NumWorks étant généralement fort bien pensées...

Et donc voilà le problème. Contrairement à la concurrence, la NumWorks ne dispose pas à ce jour d'une gestion d'applications (ou plus généralement extensions, add-in, addon, plug-in, bibliothèque, librairies, modules...).

Les auteurs d'améliorations non retenues par l'équipe NumWorks n'ont que le choix :
  • de les diffuser sous forme de code source, qu'il faudra intégrer au code officiel avec d'éventuelles modifications puisque ce dernier change chaque semaine - cela ne cible déjà plus l'utilisateur scolaire lambda
  • de les diffuser sous forme de firmware précompilé, facile à installer grâce à notre outil en ligne

Si la distribution sous forme de firmware est la plus pertinente à ce jour pour le grand public, elle est loin d'être sans inconvénient. En effet :
  • Chaque développeur compile donc dans son coin son firmware incluant ses propres ajouts, et il est donc impossible d'installer simultanément les ajouts de différents développeurs
  • De plus, le code du firmware NumWorks officiel change chaque semaine avec des mises à jour quasiment chaque mois. Passer sur un firmware tiers c'est donc se priver de toutes les améliorations officielles. A moins que le développeur concerné ne se donne la peine d'intégrer les ajouts officiels au fur et à mesure, avec corrections éventuelles du code pour compatibilité avec ses modifications. Et en pratique très peu s'en donnent la peine, laissant donc leurs firmwares devenir progressivement de plus en plus obsolètes dans leur coin. :'(

jean-baptiste boric avait certes tenté de faire quelque chose contre cet énorme problème l'été dernier, avec une compilation ponctuelle d'un firmware regroupant plusieurs de ses améliorations et de celles d'autres développeurs jusqu'à présent refusées ou délaissées par l'équipe NumWorks.

Il faudra compter cette année avec un nouveau projet de firmware par quentinguidee aidé de redgl0w, Omega.

Omega a pour but d'intégrer un maximum des ajouts non repris par l'équipe NumWorks, et de les maintenir fonctionnels au fur et à mesure des mises à jour officielles ! :bj:

A ce jour l'essentiel de ce qui a été énuméré plus haut et non encore intégré par l'équipe NumWorks en fait partie :

L'intégration du tableau périodique des éléments par M4x1m3 est également dans les tuyaux.

De plus avec Omega pas besoin de t'embêter à compiler ou chercher et récupérer le dernier fichier firmware, une interface d'installation en ligne est également disponible (pour NumWorks N0100 uniquement à ce jour) te proposant directement la dernière version Omega, à ce jour 1.8. :bj:
Cet outil nécessitera juste un navigateur utilisant le moteur Chromium (Google Chrome, Microsoft Edge, ...).

Nous allons donc voir si Omega permet de redonner un nouvel élan à la communauté des développeurs NumWorks. ;)


Liens :

Téléchargement : Omega 1.10.1 pour NumWorks N0110

Source : viewtopic.php?f=102&t=23093#p247402

Re: Omega, firmware NumWorks ultime pour les regrouper tous

Unread postPosted: 31 Oct 2019, 14:23
by Zocipal
Super travail ! Merci aux développeurs de ces améliorations ;-) !

Re: Omega, firmware NumWorks ultime pour les regrouper tous

Unread postPosted: 31 Oct 2019, 15:39
by redgl0w
Merci pour ce message
Cependant je n'ai pas encore finit entièrement l'installateur, comme par exemple pour les n0110, pour les quels il n'y a même pas de fichier .bin chargé automatiquement
Pour les possesseurs de n0110 voulant installer numworks, il vaudrait mieux passer par l'assistant en ligne de commande (https://github.com/Omega-Numworks/Omega-CLI-Installer)
Pour les possesseurs de n0100, il reste encore beaucoup des bugs appartements liés à webdfu numworks, mais qui sont entrain d'être corrigé à ce que je crois...

Re: Omega, firmware NumWorks ultime pour les regrouper tous

Unread postPosted: 31 Oct 2019, 21:03
by quentinguidee
Merci beaucoup pour ce post!! J'ai prévu de poster dans pas longtemps des screenshots sur le Wiki Github du projet

Re: Omega, firmware NumWorks ultime pour les regrouper tous

Unread postPosted: 31 Oct 2019, 22:35
by quentinguidee
Pour info, nous avons rajouté ce soir:
- Le tableau périodique
- Constantes physiques
- get_keys() !

Et bien sûr quelques bugfixes ^^

Tout est déjà installable! Notez que l'installateur web est doté d'une vieille version d'Omega, donc il est mieux de privilégier Omega-CLI pour l'installer

Re: Omega, firmware NumWorks ultime pour les regrouper tous

Unread postPosted: 01 Nov 2019, 07:46
by parisse
Je reviens sur les questions de licence, suite au choix de l'auteur du tableau periodique d'utiliser la meme licence qu'epsilon. Je distingue plusieurs types de contributions :
1/ celles concernant des fonctions de base de l'OS Epsilon, par exemple changer la couleur des LED en mode examen,
2/ des modifications dans les applications d'Epsilon: par exemple revalider le calcul litteral dans Calculs, rajouter les constantes physique dans le menu Toolbox de Calculs
3/ les applications tierces independantes: RPN, tableau periodique.

Il me semble que les deux premiers cas necessitent d'utiliser la licence d'Epsilon, mais que dans le 3eme cas, il est parfaitement possible d'utiliser d'autres licences, y compris la GPL, si on interfere uniquement avec les fonctions de base de Epsilon (par exemple le driver clavier, ou avec des fonctions de base d'affichage). Ainsi pour la GPL (https://www.gnu.org/licenses/quick-guide-gplv3.fr.html )
...
Cette nouvelle définition clarifie aussi le fait que vous pouvez combiner un logiciel sous GPL avec des bibliothèques système incompatibles avec la GPL, telles que la bibliothèque C d'OpenSolaris, et les distribuer de manière combinée. Ces modifications simplifieront la vie des distributeurs de logiciels libres qui souhaitent fournir ces combinaisons à leurs utilisateurs.
...

C'est ce que je compte faire avec delta, qui utilise giac et du code d'UI qui sont sous licence GPL et interagit uniquement avec des fonctions systemes de l'OS d'Epsilon (comparables a la libc de Solaris ci-dessus). Mais je ne peux pas faire interagir des contributions sous license incompatible avec la GPL avec le shell de Khicas, donc soit je les ignore, soit je suis oblige de les redevelopper.

Je suggere donc au projet Omega et a ses contributeurs de dual-licencier leur code. Ce serait d'ailleurs de mon point de vue une bonne chose de favoriser les contributions sous des licences vraiment libres.

Re: Omega, firmware NumWorks ultime pour les regrouper tous

Unread postPosted: 01 Nov 2019, 08:43
by Adriweb
parisse wrote:Je suggere donc au projet Omega et a ses contributeurs de dual-licencier leur code. Ce serait d'ailleurs de mon point de vue une bonne chose de favoriser les contributions sous des licences vraiment libres.


Leur propre code, probablement. Mais est-ce qu'il y en a ? Vu que ce qu'ils font c'est prendre les PR de contributeurs au repo officiel, je doute qu'ils en aient le droit (il faudrait avoir l'accord des auteurs respectifs).
Quant au fait de dual-licenser/sublicenser en GPL le code venant d'epsilon, ben non c'est pas faisable, puisque c'est interdit par la licence CC en question: "The Adapter's License You apply must be a Creative Commons license with the same License Elements, this version or later, or a BY-NC-SA Compatible License."

Re: Omega, firmware NumWorks ultime pour les regrouper tous

Unread postPosted: 01 Nov 2019, 08:51
by M4x1m3
Je pense qu'il parle du code tiers, qui ne viens pas des PR (comme celui de l'app RPN ou d'Atom). Personnellement je ne suis pas contre (j'avais Atom sous GPL v3 à la base) mais ce qui m'inquiète c'est justement le "Share Alike" de la licence d'epsilon, je ne sais pas si je peux mettre en GPL ou si je dois laisser sous CC. La partie du site de la fondation GNU que parisse cite me parais inapproprié dans ce cas, vu que justement le code de base est pas sous GPL.

Re: Omega, firmware NumWorks ultime pour les regrouper tous

Unread postPosted: 01 Nov 2019, 09:07
by parisse
Je n'ai pas ete assez clair, bien evidemment je ne parle pas des modifications d'epsilon mais des contributions tierces comme le tableau periodique. D'ailleurs les modifications que j'ai faites moi-meme a epsilon sont sous la meme licence qu'epsilon (mais c'est moi qui en detient les droits d'auteur et pas Numworks, et donc ils ne peuvent pas eux l'utiliser commercialement sans mon accord).

@M4x1m3: si vous regardez comment j'ai adapte votre code source (voir https://tiplanet.org/forum/viewtopic.php?f=102&t=23054&start=20), vous verrez qu'il ne subsiste rien de l'UI d'epsilon a part des appels systemes a des fonctions de trace de rectangle, affichage de texte, et appels aux divers drivers. Ca rentre parfaitement dans la definition de librairie systeme et c'est l'adaptation de votre code que je vous demande de pouvoir utiliser sous licence GPL.
Concernant l'internationalisation que vous avez rajoute recemment, je rajouterai une implementation basique de gettext (avec juste une matrice de chaines de caracteres triee et recherche par dichotomie), dont j'aurai de toutes facons besoin si j'ajoute l'internationalisation de giac (c'est beaucoup plus souple a l'usage, pas besoin d'attendre 5 minutes quand on recompile apres avoir ajoute un nom a traduire).

Re: Omega, firmware NumWorks ultime pour les regrouper tous

Unread postPosted: 01 Nov 2019, 09:14
by M4x1m3
Ah dans ce cas... Vu que je détiens quand même les droits sur mon code...

Je vous autorise à utiliser votre version modifiée d'Atom, en bypassant la clause SA de la licence creative common. Vous avez le droit de distribuer votre version modifiée sous licence GPL et d'intégrer les changements futurs sous licence GPL.

Vous pouvez inclure ce post dans un lien quelque-part comme autorisation expresse.