π
<-
Chat plein-écran
[^]

Symbolibre 0.2 : sources, nouvelles applis, début de doc

Symbolibre 0.2 : sources, nouvelles applis, début de doc

Message non lude Lephe » 06 Déc 2020, 23:25

Je suis super excité d'annoncer aujourd'hui une update importante de Symbolibre, avec les sources sous licence libre GPLv3 (github.com/symbolibre), plein de nouveautés sur les applications, et un nouveau site web avec de la documentation (symbolibre.org). Ça reste une release alpha, mais les progrès sont considérables. :D

Image

Pour replacer rapidement le contexte : le but de Symbolibre est de concevoir une calculatrice graphique à assembler et installer à la main, tournant entièrement sur des logiciels libres et avec un système logiciel moderne. C'est un projet Do-It-Yourself qui veut vous inviter à découvrir quelques concepts d'électronique, de systèmes d'exploitation, ou d'informatique en général à travers un objet courant du lycée. ^^

On a déjà eu l'occasion de parler du projet (sur TI-Planet comme sur Planète Casio) quand on l'a commencé il y a deux ans comme projet de Master. Après la fin de l'année on n'en a plus discuté publiquement, parce qu'on n'a avancé que doucement (avec principalement deux contributeurs, Nicolas — qui n'a pas encore de compte ici mais ça finira bien par arriver — et moi). On a fini les demandes pour pouvoir publier les sources en Septembre cette année, et voici donc notre première release officielle du logiciel. :)

Pas mal de choses ont changé depuis, et on a plusieurs articles à publier sur notre site pour raconter le processus de conception, de la structure des applications en applets QML au système mathématique en passant par l'interface utilisateur. Je publierai sans doute d'autre choses ici... mais je ne veux pas inonder, donc avec modération.

Vous pouvez déjà lire l'article de publication sur notre site web. (Il y a même un flux Atom - lien direct.)


Interface utilisateur unifiée



Cette release comporte trois applications qu'on avait déjà pu présenter : l'interprète de calculs, un traceur de fonctions, et un petit IDE pour programmer (pour l'instant) en Python.

Le gros changement dans cette release, en plus de l'ajout de pas mal de fonctionnalités de base dans ces applications, c'est que les outils internes et les interfaces graphiques ont été unifiées (les applications étaient développées quasi-indépendamment pendant le projet de Master). ;)

Sur l'interface utilisateur, on a beaucoup remanié les applications pour intégrer une « barre de fonctions » en bas, dont on peut activer les fonctions avec 5 touches F1...F5. C'est clairement inspiré de Casio.

Image

À l'origine on espérait garder un clavier le plus direct possible avec des labels les plus clairs possibles, mais les actions disponibles dans chaque application étaient trop variées et aucun schéma de nommage des touches ne permettait de les décrire de façon convaincante — on terminait avec des menus un peu partout, et donc des pressions de touches en plus.

Les touches de fonctions F1...F5 sont essentiellement des touches « à label variable », ce qui donne de la liberté pour assigner les fonctions de chaque application. Mais ce n'est pas sans défaut, parce qu'on a vite fait de mélanger plein de choses dans ce concept très large, et il faut explicitement ajouter de la structure pour que ça reste intuitif.

On a pas mal d'idées pour rendre cette interface progressivement plus intuitive, et on compte bien implémenter tout ça dans les prochaines versions. ^^


Systèmes internes : gestion des applications, mathématiques



On a aussi tranché plusieurs questions architecturales délicates. Une d'entre elles concerne le format des applications, avec plusieurs options entre des exécutables indépendants et un seul programme monolithique. Nos applications sont écrites avec le langage QML du framework Qt et leur chargement n'est pas immédiat (ce qui avantage le monolithique en performance), mais on veut aussi supporter des applications externes (ce qui nécessite de pouvoir travailler avec des exécutables indépendants).

On a décidé d'implémenter nos applications comme des applets QML ; essentiellement elles sont installées séparément mais chargées dans le même processus. Des applications externes écrites comme des applets QML peuvent profiter de la bibliothèque Symbolibre, mais d'autres exécutables Qt, SDL ou autres seront aussi supportés (ce qui sera intégré dans l'image OS de base n'est pas encore décidé, mais c'est le plan). ;)

Une autre question délicate concerne le système mathématique. On avait assez vite décidé d'utiliser Giac, mais on n'était pas certains de vouloir l'exposer de façon brute, et on a envisagé d'avoir un langage intermédiaire. On a fini par trancher pour exposer Giac directement, parce que les deux options nécessitent d'utiliser Giac comme une boîte blanche, et l'étape intermédiaire avait trop de complexité ajoutée. Je pense qu'on aura l'occasion d'en reparler !


Traduction des applications



On a intégré le système de traduction au projet, et tout est traduit en français et en anglais.

Image

Voilà de ce côté-là c'est tout. :p


Catalogues de saisie mathématique et Python



On a commencé à intégrer des catalogues de fonctions pour faciliter la saisie. Je ne vous présente pas le concept (y'a rien de nouveau ici), mais on s'attache à le faire soigneusement parce qu'une fonction nommée de façon peu intuitive et sans description n'est jamais facile à utiliser.

Image

La classification des fonctions est arborescente même si idéalement on voudrait éviter d'imbriquer les niveaux là où ce n'est pas intuitif. Pour chaque entrée, on a une description traduite et quelques exemples ; l'équivalent de ce que donne l'add-in HELP sur Casio (soit plus que le catalogue intégré, qui ne donne que les noms, quasiment tous obscurs).

Il y a actuellement deux catalogues de ce type : un pour la saisie des expressions mathématiques, et un pour les fichiers Python dans l'éditeur de code.

Image


Tester sur PC



Vous pouvez tester les applications sur un PC en les compilant depuis le dépôt, il y a des instructions dans le README. On a récemment migré vers CMake au lieu de l'ancien QMake, ce qui a beaucoup simplifié le procédé. Il y a un clavier intégré (en plus des touches de votre clavier physique, qui marchent tout aussi bien).

Image

Pour que ce soit plus facile à tester pour vous, on souhaite compiler une version web du logiciel à la façon de l'émulateur Numworks. C'est loin d'être évident, notamment avec Giac et Qt Quick, mais je promets de tester !


Concernant le montage matériel de la calculatrice



Pour tout ce qui est matériel, on est restés avec le prototype qu'on a construit en Master (ci-dessous). Nicolas et moi n'étions pas les soudeurs de l'équipe, donc je reprends progressivement les informations (et le coup de main au fer à souder) pour concevoir un deuxième prototype.

Image

Le défaut majeur du premier prototype était dans le montage, avec pas mal de fils encore volants dans le boîtier, et des contacts pas assez francs au niveau de l'écran. L'objectif pour le second est de tout router sur le PCB en connectant les composants avec des pin headers, ce qui donne un seul « format » à souder (du THT normalement accessible au plus grand nombre), peut-être évitable avec des pin headers sans soudure, et un minimum de risque de mauvais contacts. :)

On a aussi commandé des écrans plus grands, puisqu'on nous avait fait remarquer (à juste titre) que l'écran original était vraiment petit. L'écran n'effleurera probablement jamais le boîtier d'une façon super design à cause de subtilités de montage, mais ça devrait être un peu plus stylé !


Nouveau site web et documentation



Enfin, on a refait notre site web symbolibre.org ; le nouveau système ressemble au Wordpress qui était avant, à ceci près que si vous étiez abonné·e au flux RSS vous avez certainement re-reçu vos notifications avec le changement.

Quelque chose de vraiment nouveau est la documentation qu'on a commencé à pousser ; rien de transcendant encore, mais des bonnes bases pour le futur du projet. :)

Il y a notamment des notes sur la façon dont on génère des images OS Raspbian pour le Pi Zero, ce qui permettra à terme de créer des images OS personnalisées avec les paquets de votre choix. (Comme le Pi Zero n'a pas de réseau, le plus direct est de générer les images sur le PC puis de les installer ensuite.)


Conclusion et liens



Même si tout s'est produit un peu dans l'arrière-boutique, cette publication contient de l'ordre de 400 commits sur 18 mois, avec une bonne dose d'expérimentations sur le matériel et beaucoup de questions de conception, qu'on est très enthousiastes à l'idée de vous partager. :D

  • Vous pouvez lire et tester nos applications sur le dépôt Github github.com/symbolibre.
  • Vous pouvez lire nos articles et la documentation sur notre site web symbolibre.org.
  • Vous pouvez être notifiés des prochains articles en vous abonnant au flux Atom (celui-ci est en français) avec votre client préféré.

Ce projet a été très bien accueilli par la communauté précédemment, et j'espère vous rendre une partie de cet intérêt avec cette release. Merci à tous ! o/
Avatar de l’utilisateur
LephePartenaire
Niveau 10: GR (Guide de Référence)
Niveau 10: GR (Guide de Référence)
Prochain niv.: 67.7%
 
Messages: 386
Inscription: 15 Juin 2018, 19:53
Genre: Homme
Calculatrice(s):
MyCalcs profile

Re: Symbolibre 0.2 : sources, nouvelles applis, début de doc

Message non lude Lionel Debroux » 06 Déc 2020, 23:39

C'est super d'avoir des nouvelles du projet, et de voir qu'il continue d'avancer :)
Bon travail.
Membre de la TI-Chess Team.
Co-mainteneur de GCC4TI (documentation en ligne de GCC4TI), TIEmu et TILP.
Avatar de l’utilisateur
Lionel DebrouxSuper Modo
Niveau 14: CI (Calculateur de l'Infini)
Niveau 14: CI (Calculateur de l'Infini)
Prochain niv.: 11.2%
 
Messages: 6859
Inscription: 23 Déc 2009, 00:00
Localisation: France
Genre: Homme
Calculatrice(s):
MyCalcs profile
Classe: -
GitHub: debrouxl

Re: Symbolibre 0.2 : sources, nouvelles applis, début de doc

Message non lude critor » 07 Déc 2020, 01:20

Superbe, merci pour toutes ces excellentes nouveautés et nouvelles ! :bj:
Image
Avatar de l’utilisateur
critorAdmin
Niveau 19: CU (Créateur Universel)
Niveau 19: CU (Créateur Universel)
Prochain niv.: 42.2%
 
Messages: 41493
Images: 14577
Inscription: 25 Oct 2008, 00:00
Localisation: Montpellier
Genre: Homme
Calculatrice(s):
MyCalcs profile
YouTube: critor3000
Twitter/X: critor2000
GitHub: critor

Re: Symbolibre 0.2 : sources, nouvelles applis, début de doc

Message non lude Hamza.S » 07 Déc 2020, 04:00

Content de voir que le projet n'est pas mort, à un moment je me suis demandé si le projet n'avais pas été avorté.
Image
Avatar de l’utilisateur
Hamza.SAdmin
Niveau 17: GM (Grand Maître des calculatrices)
Niveau 17: GM (Grand Maître des calculatrices)
Prochain niv.: 28.5%
 
Messages: 4463
Images: 18
Inscription: 07 Nov 2014, 00:43
Genre: Homme
Calculatrice(s):
MyCalcs profile

En ligne

Re: Symbolibre 0.2 : sources, nouvelles applis, début de doc

Message non lude parisse » 07 Déc 2020, 10:55

Concernant la compilation de giac pour le web, j'ai des versions fonctionnelles de giac en javascript ou en javascript+web-assembly. La version javascript seule est moins a jour et moins performante *mais* a l'avantage de fonctionner sans probleme en local. J'ai deux versions javascript+wasm selon l'emscripten utilise. La version compilee avec emscripten 2 ne marche pas en local, uniquement depuis un serveur.
Je parle ici de l'interface en js pur (fonction caseval qui prend une chaine et renvoie une chaine). On peut aussi compiler giac en une libgiac.a et linker le code C/C++ avec un autre code depuis emscripten.
Avatar de l’utilisateur
parisseVIP++
Niveau 12: CP (Calculatrice sur Pattes)
Niveau 12: CP (Calculatrice sur Pattes)
Prochain niv.: 77.8%
 
Messages: 3511
Inscription: 13 Déc 2013, 16:35
Genre: Non spécifié
Calculatrice(s):
MyCalcs profile

Re: Symbolibre 0.2 : sources, nouvelles applis, début de doc

Message non lude critor » 07 Déc 2020, 12:14

Sinon, des nouvelles d'un mode examen sur Symbolibre ?
Comme ça je pourrais l'inclure au classement QCC 2021. ;)
Image
Avatar de l’utilisateur
critorAdmin
Niveau 19: CU (Créateur Universel)
Niveau 19: CU (Créateur Universel)
Prochain niv.: 42.2%
 
Messages: 41493
Images: 14577
Inscription: 25 Oct 2008, 00:00
Localisation: Montpellier
Genre: Homme
Calculatrice(s):
MyCalcs profile
YouTube: critor3000
Twitter/X: critor2000
GitHub: critor

Re: Symbolibre 0.2 : sources, nouvelles applis, début de doc

Message non lude Lephe » 07 Déc 2020, 13:25

Merci beaucoup pour vos retours très sympa. :)

Hamza.S a écrit:Content de voir que le projet n'est pas mort, à un moment je me suis demandé si le projet n'avais pas été avorté.

Il est évident que ne rien publier n'est pas une approche très élégante à cet égard... on a prévu du matériel pour peut-être plusieurs mois à partir de maintenant, je voudrais éviter à tout prix de refaire pareil. ^^

parisse a écrit:Concernant la compilation de giac pour le web, j'ai des versions fonctionnelles de giac en javascript ou en javascript+web-assembly. La version javascript seule est moins a jour et moins performante *mais* a l'avantage de fonctionner sans probleme en local. J'ai deux versions javascript+wasm selon l'emscripten utilise. La version compilee avec emscripten 2 ne marche pas en local, uniquement depuis un serveur.
Je parle ici de l'interface en js pur (fonction caseval qui prend une chaine et renvoie une chaine). On peut aussi compiler giac en une libgiac.a et linker le code C/C++ avec un autre code depuis emscripten.

Ah, merci beaucoup ! Je viendrai certainement te voir pour demander des détails. Je pense commencer par m'occuper de compiler notre code avec Qt Quick mais sans Giac, pour m'assurer que la configuration du build vers WebAssembly est correcte.

Si ça ne fonctionne que depuis un serveur ce n'est pas trop grave, en local on pourra sans doute utiliser les binaires quand on en fournira (pour l'instant on n'a pas de binaires parce que ça reste une alpha, et je pense qu'il faut qu'on refasse un tour des licences pour vérifier sous quelles conditions on peut les partager).

critor a écrit:Sinon, des nouvelles d'un mode examen sur Symbolibre ?
Comme ça je pourrais l'inclure au classement QCC 2021. ;)

Ah, très bonne question. Une implémentation en logiciel pur serait facile mais pas forcément sécurisée. Ultimement je pense que la sécurité du mode examen reposera sur le fait que l'utilisateur sera connecté sur un compte non admin (sans sudo et sans avoir de mot passe configuré pour root, ce qui empêche du coup de se connecter en root). Je ne sais pas encore à quel point il faut obfusquer la chose pour que ce soit considéré « sécurisé », mais on peut construire un OS satisfaisant les conditions ci-dessus sans s'écarter de la philosophie libre.

Cela n'empêchera jamais quelqu'un de mettre la machine dans son PC, de chroot dedans ou de modifier le fichier de mots de passe en étant root sur son ordinateur portable, ou de générer un nouvel OS, mais dans la mesure où je peux exhiber des contournements encore plus faciles sur Casio (et je suppose qu'il doit y en avoir sur TI vu ce qui est arrivé récemment au bootcode), je pense qu'on n'a pas besoin d'avoir une sécurité foolproof pour annoncer avoir le mode examen.

Bon après je m'avance sur ce sujet, je n'en ai pas parlé avec Nicolas donc c'est juste mon opinion personnelle.
Avatar de l’utilisateur
LephePartenaire
Niveau 10: GR (Guide de Référence)
Niveau 10: GR (Guide de Référence)
Prochain niv.: 67.7%
 
Messages: 386
Inscription: 15 Juin 2018, 19:53
Genre: Homme
Calculatrice(s):
MyCalcs profile

En ligne

Re: Symbolibre 0.2 : sources, nouvelles applis, début de doc

Message non lude parisse » 07 Déc 2020, 17:19

Lephe a écrit:Si ça ne fonctionne que depuis un serveur ce n'est pas trop grave, en local on pourra sans doute utiliser les binaires quand on en fournira (pour l'instant on n'a pas de binaires parce que ça reste une alpha, et je pense qu'il faut qu'on refasse un tour des licences pour vérifier sous quelles conditions on peut les partager).

La version js+wasm compilee avec emscripten 2.09 ne fonctionne que depuis un serveur (qui peut etre local). J'en ai une version de test ici: https://www-fourier.univ-grenoble-alpes.fr/~parisse/tmp/giacwasm.js et https://www-fourier.univ-grenoble-alpes.fr/~parisse/tmp/giacwasm.wasm, avec une configuration ou les exceptions sont activees. Le source correspondant avec les librairies est ici https://www-fourier.univ-grenoble-alpes.fr/~parisse/giac/emgiac2.tgz
Par contre la version js+wasm compilee avec un emscripten 1 plus ancien fonctionne en local. C'est celle qui est fournie avec Xcas pour Firefox (https://www-fourier.univ-grenoble-alpes.fr/~parisse/xcasfr.html, https://www-fourier.univ-grenoble-alpes.fr/~parisse/giacwasm.js et https://www-fourier.univ-grenoble-alpes.fr/~parisse/giacwasm.wasm

Ceci etant dit rien n'est fige, on peut esperer qu'on aura un jour a nouveau des versions wasm utilisables en local.
Avatar de l’utilisateur
parisseVIP++
Niveau 12: CP (Calculatrice sur Pattes)
Niveau 12: CP (Calculatrice sur Pattes)
Prochain niv.: 77.8%
 
Messages: 3511
Inscription: 13 Déc 2013, 16:35
Genre: Non spécifié
Calculatrice(s):
MyCalcs profile

Re: Symbolibre 0.2 : sources, nouvelles applis, début de doc

Message non lude legmask » 07 Déc 2020, 19:08

Wow :bj: superbe projet, par contre j'ai le droit de dire que ca manque de border radius :troll: ?
Image
Avatar de l’utilisateur
legmaskVIP
Niveau 14: CI (Calculateur de l'Infini)
Niveau 14: CI (Calculateur de l'Infini)
Prochain niv.: 31.5%
 
Messages: 110
Images: 4
Inscription: 20 Déc 2019, 16:49
Genre: Homme
Calculatrice(s):
MyCalcs profile
Classe: BioMAD
GitHub: LeGmask

Re: Symbolibre 0.2 : sources, nouvelles applis, début de doc

Message non lude Nicolas Chappe » 07 Déc 2020, 22:18

Lephe a écrit:avec principalement deux contributeurs, Nicolas — qui n'a pas encore de compte ici mais ça finira bien par arriver — et moi

Voilà qui est fait. J'ai beaucoup lu TI-Planet (et pas que pour préparer mon bac quand j'étais lycéen : ma 84 Plus en est à plus de 400 RAM Clears :D), donc je suis content de pouvoir rendre quelque chose à la communauté avec Symbolibre :)

parisse a écrit:Par contre la version js+wasm compilee avec un emscripten 1 plus ancien fonctionne en local.

C'est une bonne nouvelle, la dernière version de Qt en date recommande emscripten 1.39 donc a priori on n'aura pas à nous soucier des limites de emscripten 2.

Lephe a écrit:Ah, très bonne question. Une implémentation en logiciel pur serait facile mais pas forcément sécurisée. Ultimement je pense que la sécurité du mode examen reposera sur le fait que l'utilisateur sera connecté sur un compte non admin (sans sudo et sans avoir de mot passe configuré pour root, ce qui empêche du coup de se connecter en root). Je ne sais pas encore à quel point il faut obfusquer la chose pour que ce soit considéré « sécurisé », mais on peut construire un OS satisfaisant les conditions ci-dessus sans s'écarter de la philosophie libre.

Cela n'empêchera jamais quelqu'un de mettre la machine dans son PC, de chroot dedans ou de modifier le fichier de mots de passe en étant root sur son ordinateur portable, ou de générer un nouvel OS, mais dans la mesure où je peux exhiber des contournements encore plus faciles sur Casio (et je suppose qu'il doit y en avoir sur TI vu ce qui est arrivé récemment au bootcode), je pense qu'on n'a pas besoin d'avoir une sécurité foolproof pour annoncer avoir le mode examen.

Bon après je m'avance sur ce sujet, je n'en ai pas parlé avec Nicolas donc c'est juste mon opinion personnelle.

Oui je ne vois pas non plus d'obstacle majeur à un mode examen logiciel basique. De toute façon un mode examen exploitant des restrictions matérielles n'est pas possible car ça ne respecterait pas la licence GPLv3 (et puis c'est pas vraiment dans l'esprit du projet). La seule chose que je vois que l'on pourrait faire de plus c'est un outil pour ordinateur qui vérifierait si le contenu d'une carte microSD correspond bien à un système Symbolibre officiel, à destination des surveillants d'épreuves. Mais ça reste très hypothétique.

LeGmask a écrit:Wow :bj: superbe projet, par contre j'ai le droit de dire que ca manque de border radius :troll: ?

Merci ! C'est vrai qu'on s'est pas vraiment attardés sur les couleurs ou les arrondis pour le moment, il faudra qu'on revoie tout ça un jour. On a un thème global maintenant, ça devrait nous simplifier la tâche.
Avatar de l’utilisateur
Nicolas Chappe
Niveau 0: MI (Membre Inactif)
Niveau 0: MI (Membre Inactif)
Prochain niv.: 0%
 
Messages: 2
Inscription: 07 Déc 2020, 19:41
Genre: Non spécifié
Calculatrice(s):
MyCalcs profile

Suivante

Retourner vers News Symbolibre / Librecalc

Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 4 invités

-
Rechercher
-
Social TI-Planet
-
Sujets à la une
Comparaisons des meilleurs prix pour acheter sa calculatrice !
Aidez la communauté à documenter les révisions matérielles en listant vos calculatrices graphiques !
Phi NumWorks jailbreak
123
-
Faire un don / Premium
Pour plus de concours, de lots, de tests, nous aider à payer le serveur et les domaines...
Faire un don
Découvrez les avantages d'un compte donateur !
JoinRejoignez the donors and/or premium!les donateurs et/ou premium !


Partenaires et pub
Notre partenaire Jarrety Calculatrices à acheter chez Calcuso
-
Stats.
1169 utilisateurs:
>1141 invités
>23 membres
>5 robots
Record simultané (sur 6 mois):
6892 utilisateurs (le 07/06/2017)
-
Autres sites intéressants
Texas Instruments Education
Global | France
 (English / Français)
Banque de programmes TI
ticalc.org
 (English)
La communauté TI-82
tout82.free.fr
 (Français)