π
<-
Chat plein-écran
[^]

News 2020

News 2019
Juin (1)
Mars (1)

News 2014

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

Nouveau messagede 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/
Lien vers le sujet sur le forum: Symbolibre 0.2 : sources, nouvelles applis, début de doc (Commentaires: 31)

-
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.
1546 utilisateurs:
>1513 invités
>29 membres
>4 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)