La première calculatrice graphique française fut la LibreCalc en 2014. Il s'agissait d'un projet de calculatrice graphique visant à avoir un matériel ouvert et un code source libre, développé par deux ingénieurs Rennais.
Le projet fut abandonné brutalement contre l'avis de la communauté début 2015, dès les premières rumeurs d'introduction du mode examen, évoquant un manque d'intérêt de la part des enseignants, ainsi qu'une soi-disante impossibilité de rester sur un projet ouvert dans le contexte du mode examen. Deux arguments que la NumWorks a largement infirmés depuis.
A notre avis ce qui plombait réellement fin 2014 encore toute chance de succès de la LibreCalc, c'est qu'au-delà de son matériel et de son système d'exploitation Linux, elle n'avait rien à offrir, n'apportant strictement rien à l'enseignement. Les vidéos de démo mettaient tristement en avant ce qui était présenté comme un "simulateur de TI-82 Stats", mais qui bizarrement reproduisait au pixel près l'interface très inférieure de la TI-81, son ainée de 14 ans... C'était bien la pleine de se donner le mal de passer sur du matériel ouvert et du code libre, pour reproduire en moins bien ce que faisait déjà Texas Instruments. Sans compter que dans le contexte d'une commercialisation, le constructeur historique n'aurait certainement jamais laissé passer ça.
Le projet fut abandonné brutalement contre l'avis de la communauté début 2015, dès les premières rumeurs d'introduction du mode examen, évoquant un manque d'intérêt de la part des enseignants, ainsi qu'une soi-disante impossibilité de rester sur un projet ouvert dans le contexte du mode examen. Deux arguments que la NumWorks a largement infirmés depuis.
A notre avis ce qui plombait réellement fin 2014 encore toute chance de succès de la LibreCalc, c'est qu'au-delà de son matériel et de son système d'exploitation Linux, elle n'avait rien à offrir, n'apportant strictement rien à l'enseignement. Les vidéos de démo mettaient tristement en avant ce qui était présenté comme un "simulateur de TI-82 Stats", mais qui bizarrement reproduisait au pixel près l'interface très inférieure de la TI-81, son ainée de 14 ans... C'était bien la pleine de se donner le mal de passer sur du matériel ouvert et du code libre, pour reproduire en moins bien ce que faisait déjà Texas Instruments. Sans compter que dans le contexte d'une commercialisation, le constructeur historique n'aurait certainement jamais laissé passer ça.
Mais des échecs naissent parfois les grandes victoires. Sébastien "Lephénixnoir" Michelland, administrateur de Planète Casio, et Nicolas Chappe, ancien membre Omnimaga, tous deux très affectés à l'époque par cet abandon, ont décidé de lancer un projet similaire, le projet Symbolibre. Notons qu'il ne reprend pas le code de la LibreCalc, et que par rapport aux prix actuels chez la concurrence la Symbolibre vise le créneau du milieu de gamme (~80€).
Symbolibre est donc le projet d'étude de l'équipe de pas moins de 29 personnes qu'ils ont formée avec leurs camarades étudiants et pilotée, en première année de Master Informatique fondamentale à l'ENS (Ecole Normale Supérieure) de Lyon.
Symbolibre est donc le projet d'étude de l'équipe de pas moins de 29 personnes qu'ils ont formée avec leurs camarades étudiants et pilotée, en première année de Master Informatique fondamentale à l'ENS (Ecole Normale Supérieure) de Lyon.
Nous voici donc enfin à l'ENS de Lyon afin de découvrir la nouvelle calculatrice graphique française Symbolibre que nous t'avions déjà présentée.
Nous en profitons pour remercier l'équipe Symbolibre d'avoir bien voulu s'adapter à nos disponibilités en nous permettant de découvrir la calculatrice Symbolibre en avant-première, soit avant la présentation publique du projet.
Une fois dans le bâtiment de l'ENS, nous croisons une vitrine exposant une sélection d'innovations technologiques du XXè siècle, entre autres des calculatrices justement :
De quoi nous mettre en bonne condition pour ce qui va suivre.
Même jusque dans l'ascenseur nous trouvons de quoi nous mettre l'eau à la bouche.
Quelle émotion, mon coeur bat la chamade. Cela me rappelle quand j'enseignais encore en collège jusqu'en 2011, avec les petits Sixièmes qui après leurs recherches Internet racontaient que j'avais inventé une calculatrice. C'était mignon... Mais là pour le coup c'est une véritable invention, et nous sommes tout excités à l'idée d'assister pour la première fois à une telle naissance.
Et nous voici maintenant enfin arrivés auprès de la bête, nous allons donc pouvoir voir quels enseignements l'équipe a tirés de l'échec du projet LibreCalc, et ce qu'elle a à nous proposer avec Symbolibre.
Nous en profitons pour remercier l'équipe Symbolibre d'avoir bien voulu s'adapter à nos disponibilités en nous permettant de découvrir la calculatrice Symbolibre en avant-première, soit avant la présentation publique du projet.
Une fois dans le bâtiment de l'ENS, nous croisons une vitrine exposant une sélection d'innovations technologiques du XXè siècle, entre autres des calculatrices justement :
- une calculatrice électronique Pocket Computer PC-1430 de 1985 par le constructeur Sharp, plus précisément une calculatrice scientifique programmable en Basic
- une calculatrice mécanique manuelle Curta par le constructeur liechtensteinois Continenta AG Mauren, plus précisément la Curta type II de 1954 puisque l'on y note la possibilité d'entrer des nombres ayant jusqu'à 11 chiffres significatifs au lieu de 8 sur la Curta type I
- une calculatrice mécanique électrique C116/2 de 1957 par le constructeur allemand Olympia Werke AG
De quoi nous mettre en bonne condition pour ce qui va suivre.
Même jusque dans l'ascenseur nous trouvons de quoi nous mettre l'eau à la bouche.
Quelle émotion, mon coeur bat la chamade. Cela me rappelle quand j'enseignais encore en collège jusqu'en 2011, avec les petits Sixièmes qui après leurs recherches Internet racontaient que j'avais inventé une calculatrice. C'était mignon... Mais là pour le coup c'est une véritable invention, et nous sommes tout excités à l'idée d'assister pour la première fois à une telle naissance.
Et nous voici maintenant enfin arrivés auprès de la bête, nous allons donc pouvoir voir quels enseignements l'équipe a tirés de l'échec du projet LibreCalc, et ce qu'elle a à nous proposer avec Symbolibre.
Sommaire :Go to top
1) Tour du propriétaire :
Go to topCommençons par le clavier. Le prototype accédé ici en avant-première n'était pas encore muni de ses 45 touches clavier, puisqu'elles venaient tout juste d'être reçues.
Mais il reste parfaitement fonctionnel, et en cas de besoin tu pourras revenir te référer aux images d'illustration ci-dessous :
Notons juste que l'on commence très fort niveau adéquation à l'enseignement scolaire français, puisque le clavier dispose enfin de touches dédiées aux instructions de programmation les plus courantes. Plus besoin de s'embêter à aller les chercher dans des sous-menus !
Le boîtier non définitif à ce jour est un petit peu encombrant par rapport aux calculatrices de poche auxquelles tu es habitué(e), et les larges bordures entourant l'écran qui apparaît alors tout petit ne sont pas du meilleur effet.
Le boîtier est aussi assez épais.
Nous n'avons pas emporté notre balance, mais l'ensemble nous paraît relativement léger, donc il doit y avoir belle une marge d'amélioration possible. Il faudra juste doser le tout correctement afin de conserver aussi bas que possible le risque de casse dans le contexte scolaire hostile. Une autre possibilité serait aussi d'opter pour un écran plus grand.
Nous notons sur la tranche supérieure un interrupteur d'alimentation, ainsi qu'un port micro-USB.
Mais il reste parfaitement fonctionnel, et en cas de besoin tu pourras revenir te référer aux images d'illustration ci-dessous :
Notons juste que l'on commence très fort niveau adéquation à l'enseignement scolaire français, puisque le clavier dispose enfin de touches dédiées aux instructions de programmation les plus courantes. Plus besoin de s'embêter à aller les chercher dans des sous-menus !
Le boîtier non définitif à ce jour est un petit peu encombrant par rapport aux calculatrices de poche auxquelles tu es habitué(e), et les larges bordures entourant l'écran qui apparaît alors tout petit ne sont pas du meilleur effet.
Le boîtier est aussi assez épais.
Nous n'avons pas emporté notre balance, mais l'ensemble nous paraît relativement léger, donc il doit y avoir belle une marge d'amélioration possible. Il faudra juste doser le tout correctement afin de conserver aussi bas que possible le risque de casse dans le contexte scolaire hostile. Une autre possibilité serait aussi d'opter pour un écran plus grand.
Nous notons sur la tranche supérieure un interrupteur d'alimentation, ainsi qu'un port micro-USB.
2) Démarrage et Linux :
Go to topDès l'actionnement de l'interrupteur d'alimentation, la calculatrice commence à démarrer son système Linux embarqué. Cela lui demande un certain temps, une 40aine de secondes. C'est déjà un peu moins que ce qu'exigent les TI-Nspire CX. Notons l'écran de démarrage graphique de Plymooth qui, de façon fort bienvenue, nous fait patienter pendant le chargement en animant le symbole mathématique de l'infini.
On peut aussi si tu préfères maintenir une touche pendant le démarrage pour réobtenir l'écran texte et voir un petit peu mieux ce qui se passe lors du démarrage de cette distribution Linux Gentoo choisie sous la direction de Nicolas :
Ce n'est pas du tout son mode de fonctionnement normal, mais une fois la machine démarrée on peut utiliser la combinaison permettant de basculer sur le terminal texte (à condition de trouver les bons équivalents des touches) et faire joujou directement avec Linux. Comme tu peux le voir ci-contre, la commande
Matériellement, on peut donc conjecturer 512 Mio de capacité RAM (mémoire vive).
On peut aussi si tu préfères maintenir une touche pendant le démarrage pour réobtenir l'écran texte et voir un petit peu mieux ce qui se passe lors du démarrage de cette distribution Linux Gentoo choisie sous la direction de Nicolas :
Ce n'est pas du tout son mode de fonctionnement normal, mais une fois la machine démarrée on peut utiliser la combinaison permettant de basculer sur le terminal texte (à condition de trouver les bons équivalents des touches) et faire joujou directement avec Linux. Comme tu peux le voir ci-contre, la commande
free
nous précise que la calculatrice ne manque pas de mémoire de travail, avec pas moins de 430,36 Mio libres pour une capacité de 479,54 Mio. Matériellement, on peut donc conjecturer 512 Mio de capacité RAM (mémoire vive).
3) Affichage et applications intégrées :
Go to topRepassons en fonctionnement normal sur le terminal graphique. Nous voici donc à l'écran d'acccueil. Tu as peut-être eu l'impression en fin de démarrage sur la vidéo ci-dessus, plus précisément au lancement de l'environnement graphique sway, que la zone d'affichage se rétrécissait verticalement. Effectivement nous disposons d'un écran 320×240 pixels, mais l'écran d'accueil et les applications Symbolibre n'utilisent que 320×220 pixels. Les 20 premières lignes de l'écran sont en fait réservées pour l'affichage futur d'une barre d'état.
On apprécie la finesse du pixel. Niveau qualité de l'écran on regrettera par contre qu'il ne soit pas anti-reflets contrairement à certains excellents écrans de la concurrence.
L'écran d'accueil nous présente donc 5 applications que nous allons explorer ensemble :
Un bon début, même si manqueront encore à ce jour pour la France quelques essentiels, comme statistiques, probabilités et suites numériques.
On apprécie la finesse du pixel. Niveau qualité de l'écran on regrettera par contre qu'il ne soit pas anti-reflets contrairement à certains excellents écrans de la concurrence.
L'écran d'accueil nous présente donc 5 applications que nous allons explorer ensemble :
- Calcul
- Graphique
- IDE
- Paramètres
- Éteindre
Un bon début, même si manqueront encore à ce jour pour la France quelques essentiels, comme statistiques, probabilités et suites numériques.
4) Application Calcul :
Go to topPremière application d'importance pour une calculatrice, Calcul est déjà très évoluée. Développée sous la supervision d'Aymeric Walch, elle interface GIAC, le moteur de calcul formel du logiciel libre Xcas par Bernard Parisse. Tu peux donc déjà faire du calcul exact, littéral et même formel comme tu le confirmeras ci-contre!
Mais cela ne veut pas dire pour autant qu'il n'y a pas eu du travail conséquent. Notons en effet que nous y disposons déjà d'un historique des calculs, que les expressions et leur simplification sont affichées en écriture naturelle ce qui n'est pas un problème simple, et même la saisie des expressions à évaluer s'effectue déjà en écriture naturelle ce qui est encore moins simple !
Mais cela ne veut pas dire pour autant qu'il n'y a pas eu du travail conséquent. Notons en effet que nous y disposons déjà d'un historique des calculs, que les expressions et leur simplification sont affichées en écriture naturelle ce qui n'est pas un problème simple, et même la saisie des expressions à évaluer s'effectue déjà en écriture naturelle ce qui est encore moins simple !
Bref, une très belle interface pour GIAC !
5) Application Graphique :
Go to topAutre application d'importance pour une calculatrice graphique, Graphique, là encore développée en Qt sous la supervision d'Aymeric, adopte une interface par onglets très intuitive comparable à la NumWorks.
On peut toutefois regretter que l'onglet actif ne soit pas toujours visuellement évident avec les couleurs choisies.
Les différents onglets nous permettent donc de définir jusqu'à 3 fonctions, de configurer la fenêtre graphique puis de l'afficher.
Ce dernier onglet affichant la fenêtre graphique est codé autour du widget Qt QCustomPlot, avec plusieurs qualités remarquables par rapport à la concurrence.
Par exemple nous avons des étiquettes numériques venant expliciter les graduations tout le long de chaque axe.
Notons aussi que les graduations restent affichées en bordure si jamais l'origine tombe hors fenêtre, ce qui évite à l'utilisateur de se retrouver perdu comme sur d'autres modèles.
Mais ce n'est pas tout, il ne faut pas croire que tout ce qu'il y a de bon a déjà été inventé pour les calculatrices graphiques. Tu te souviens de l'aberration d'autres modèles où lorsque tu as le curseur sur un graphe, tu dois taper
Et puisque nous y sommes, le curseur de graphe nous permet de constater la formidable puissance de la machine, le défilement de la fenêtre graphique étant parfaitement fluide, sans le moindre indice visible de retraçage des graphes lorsque le curseur sort de la fenêtre !
De même, la fenêtre graphique peut être défilée horizontalement ou verticalement et même zoomée en toute fluidité !
On peut toutefois regretter que l'onglet actif ne soit pas toujours visuellement évident avec les couleurs choisies.
Les différents onglets nous permettent donc de définir jusqu'à 3 fonctions, de configurer la fenêtre graphique puis de l'afficher.
Ce dernier onglet affichant la fenêtre graphique est codé autour du widget Qt QCustomPlot, avec plusieurs qualités remarquables par rapport à la concurrence.
Par exemple nous avons des étiquettes numériques venant expliciter les graduations tout le long de chaque axe.
Notons aussi que les graduations restent affichées en bordure si jamais l'origine tombe hors fenêtre, ce qui évite à l'utilisateur de se retrouver perdu comme sur d'autres modèles.
Mais ce n'est pas tout, il ne faut pas croire que tout ce qu'il y a de bon a déjà été inventé pour les calculatrices graphiques. Tu te souviens de l'aberration d'autres modèles où lorsque tu as le curseur sur un graphe, tu dois taper
↓pour passer au graphe suivant, et ce même si le graphe suivant est au-dessus ? De façon ici beaucoup plus intuitive, les touches
↑et
↓te permettront de basculer le curseur non pas vers le graphe précédent ou suivant, mais vers le graphe qui se situe au-dessus ou en-dessous du graphe courant !
Et puisque nous y sommes, le curseur de graphe nous permet de constater la formidable puissance de la machine, le défilement de la fenêtre graphique étant parfaitement fluide, sans le moindre indice visible de retraçage des graphes lorsque le curseur sort de la fenêtre !
De même, la fenêtre graphique peut être défilée horizontalement ou verticalement et même zoomée en toute fluidité !
Une application Graphique qui arrive encore à innover après plus de 30 ans de calculatrices graphiques, bravo !
6) Application IDE :
Go to topVoici donc maintenant IDE, l'application de programmation, thème transversal au lycée français, conçue par le groupe de Maxime Darrin.
Créons un nouveau fichier, l'application nous propose alors d'en choisir le type :
Le Python va fait l'objet d'un point séparé. A part cela, notons que l'éditeur dispose bien évidemment de tout ce qu'il faut, numérotation des lignes, coloration syntaxique et aide à la saisie des instructions !
Créons un nouveau fichier, l'application nous propose alors d'en choisir le type :
- Texte
- Python
- OCaml
- TI Basic
- Casio Basic
Le Python va fait l'objet d'un point séparé. A part cela, notons que l'éditeur dispose bien évidemment de tout ce qu'il faut, numérotation des lignes, coloration syntaxique et aide à la saisie des instructions !
7) Application Paramètres :
Go to topEt enfin nous avons l'habituelle application Paramètres, permettant de choisir la langue, régler la luminosité de l'écran, le délai d'extinction, ainsi que de configurer le comportement du moteur de calcul (résultats exacts ou décimal, notation scientifique, écriture naturelle...).
8) Python :
Go to topPour tester plus en profondeur le Python 3.6.6 de Symbolibre, nous allons repasser sur la console Linux.
Selon la commande
On pourra par contre regretter de ne trouver aucun module graphique, ce qui aurait été bien utile pour le nouveau programme de Physique-Chimie Seconde rentrée 2019.
Nous notons entre autres la présence essentielle du module cmath apportant les fonctions complexes, et donc la gestion des nombres complexes pour les actuelles Terminales S / STI2D / STL (SPCL) d'une part, futures option Maths expertes en série générale et spécialité Physique-Chimie-Maths en série STI2D.
Regardons maintenant plus précisément le contenu de ces différents modules, à l'aide du script suivant :
Si l'on explore par exemple le module math avec
Si par contre on explore maintenant le module builtins avec
Pour en apprendre davantage sur l'implémentation, explorons le module sys avec
En allégeant un petit peu le script, on arrive à estimer 85 éléments, ce qui est déjà bien plus que ce qu'offre la concurrence.
Tant que nous avons le module sys sous la main, remarquons que
Intéressons-nous maintenant à la mémoire de travail à l'aide du script suivant :
Malheureusement, le processus Python se voit assassiné à peine terminée l'allocation de son premier bloc mémoire. Cela nous permet toutefois une estimation, nous disposons donc au moins de 268,435 Mo pour l'exécution de nos scripts, quantité astronomique par rapport à la concurrence !
Enfin, terminons en voyant les performances. Commençons dans le cadre des nombres entiers avec le script suivant :
De façon absolument extraordinaire, la commande
Passons maintenant aux nombres flottants avec le script suivant :
La ligne d'appel
L'équipe prévoit de rajouter le module giacpy afin de pouvoir faire également du calcul exact / littéral / formel en Python. Mais les conséquences vont bien au-delà de ça. En effet sur la concurrence actuelle, l'application Python est toujours cloisonnée dans son coin, incapable d'échanger la moindre information avec le reste des applications, et ne pouvant donc pas jouer pleinement sont rôle dans la résolution d'un problème. Cet ajout permettra donc au Python de sortir de sa bulle, faisant ainsi appel au moteur de calcul de l'application Calcul directement depuis l'application IDE !
Selon la commande
help("modules")
, nous avons droit à un Python exhaustif. Avec pléthore de modules ici illustrés seulement jusqu'à la la lettre G, il distance toute la concurrence avec au mieux sa petite 10aine de modules ! On pourra par contre regretter de ne trouver aucun module graphique, ce qui aurait été bien utile pour le nouveau programme de Physique-Chimie Seconde rentrée 2019.
- 147+ modules : Symbolibre
- 13 modules : module externe TI-Python pour TI-83 Premium CE (firmware tiers)
- 8 modules : TI-83 Premium CE Edition Python + NumWorks + Casio Graph 35+E II / 35+E/USB / 75/85/95 / fx-9750GII / fx-9860G/GII + TI-Nspire (application MicroPython) + module externe TI-Python pour TI-83 Premium CE
- 3 modules : Casio Graph 35+E II / 90+E / fx-CG50
Nous notons entre autres la présence essentielle du module cmath apportant les fonctions complexes, et donc la gestion des nombres complexes pour les actuelles Terminales S / STI2D / STL (SPCL) d'une part, futures option Maths expertes en série générale et spécialité Physique-Chimie-Maths en série STI2D.
- Symbolibre + NumWorks + Casio Graph 35+E II / 35+E/USB / 75/85/95 / fx-9750GII / fx-9860G/GII (application CasioPython) + TI-Nspire (application MicroPython) + module externe TI-Python pour TI-83 Premium CE (firmware tiers) avec nombres et fonctions complexes
- Casio Graph 35+E II / 90+E / fx-CG50 avec nombres complexes
- TI-83 Premium CE Edition Python + module externe TI-Python pour TI-83 Premium CE
Regardons maintenant plus précisément le contenu de ces différents modules, à l'aide du script suivant :
- Code: Select all
def sstr(obj):
try:
s=obj.__name__
except:
s=str(obj)
a=s.find("'")
b=s.rfind("'")
if a>=0 and b!=a:
s=s[a+1:b]
return s
def isExplorable(obj):
s=str(obj)
return s.startswith("<module '") or s.startswith("<class '")
def explmod(pitm,pitmsl=[],reset=True):
global curline
if(reset):
curline=0
pitmsl=[sstr(pitm)]
hd="."*(len(pitmsl)-1)
spath=".".join(pitmsl)
c=0
for itms in sorted(dir(pitm)):
c=c+1
try:
itm=eval(spath+"."+itms)
print(hd+itms+"="+str(itm))
if isExplorable(itm):
pitmsl2=pitmsl.copy()
pitmsl2.append(itms)
c=c+explmod(itm,pitmsl2,False)
except:
print(hd+itms)
if c>0:
print(hd+"Total: "+str(c)+" item(s)")
return c
Si l'on explore par exemple le module math avec
explmod(math)
, on obtient pas moins de 55 élements, soit nettement plus que les au mieux 41 de la concurrence ! - 55 éléments : Symbolibre
- 41 éléments : NumWorks + Casio Graph 35+E II / 35+E/USB / 75/85/95 / fx-9750GII / fx-9860G/GII (application CasioPython) + TI-Nspire (application MicroPython) + module externe TI-Python pour TI-83 Premium CE (firmware tiers)
- 28 éléments : TI-83 Premium CE Edition Python + module externe TI-Python pour TI-83 Premium CE
- 25 éléments : Casio Graph 35+E II / 90+E / fx-CG50
Si par contre on explore maintenant le module builtins avec
explmod(builtins)
, on ne trouve bizarrement que 152 éléments, soit nettement moins que la concurrence. Nous avons toutefois omis de prendre note de ce qui pouvait bien manquer.- 218 éléments : TI-Nspire (application MicroPython)
- 204 éléments : Casio Graph 35+E II / 35+E/USB / 75/85/95 / fx-9750GII / fx-9860G/GII (application CasioPython) + TI-Nspire (application MicroPython)
- 192 éléments : TI-83 Premium CE Edition Python
- 191 éléments : module externe TI-Python pour TI-83 Premium CE (firmware tiers)
- 190 éléments : module externe TI-Python pour TI-83 Premium CE
- 188 éléments : NumWorks
- 175 éléments : Casio Graph 35+E II / 90+E / fx-CG50
- 152 éléments : Symbolibre
Pour en apprendre davantage sur l'implémentation, explorons le module sys avec
explmod(sys)
. Malheureusement la commande finit par partir en récursion infinie.En allégeant un petit peu le script, on arrive à estimer 85 éléments, ce qui est déjà bien plus que ce qu'offre la concurrence.
- 85 éléments : Symbolibre
- 15 éléments : TI-83 Premium CE Edition Python + TI-Nspire (application MicroPython) + module externe TI-Python pour TI-83 Premium CE
- 12 éléments : Casio Graph 35+E II / 35+E/USB / 75/85/95 / fx-9750GII / fx-9860G/GII (application CasioPython) + TI-Nspire (application MicroPython)
- 0 élément : NumWorks + Casio Graph 35+E II / 90+E / fx-CG50
Tant que nous avons le module sys sous la main, remarquons que
sys.maxsize==2**31-1
, les nombres entiers sont donc codés nativement sur 32 bits (1 bit de signe). Et que comme sys.maxsize+1
ne retourne pas d'erreur, le support des entiers longs est donc actif.Intéressons-nous maintenant à la mémoire de travail à l'aide du script suivant :
- Code: Select all
def sizeenv():
s=0
import __main__
for o in dir(__main__):
try:s+=size(eval(o))
except:pass
return s
def size(o):
s,t=0,type(o)
if t==str:s=49+len(o)
if str(t)=="<class 'function'>":s=136
if t==int:
s=24
while o:
s+=4
o>>=30
if t==list:
s+=64
for so in o:s+=8+size(so)
return s
def mem(v=1,r=1):
try:
l=[]
try:
l+=[r and 793+sizeenv()]
if v*r:print(" ",l[0])
l+=[0]
l+=[""]
l[2]+="x"
while 1:
try:l[2]+=l[2][l[1]:]
except:
if l[1]<len(l[2])-1:l[1]=len(l[2])-1
else:raise(Exception)
except:
if v:print("+",size(l))
try:l[0]+=size(l)
except:pass
try:l[0]+=mem(v,0)
except:pass
return l[0]
except:return 0
Malheureusement, le processus Python se voit assassiné à peine terminée l'allocation de son premier bloc mémoire. Cela nous permet toutefois une estimation, nous disposons donc au moins de 268,435 Mo pour l'exécution de nos scripts, quantité astronomique par rapport à la concurrence !
- 268,435+ Mo : Symbolibre
- 2,049 Mo : TI-Nspire (application MicroPython)
- 1,033 Mo : Casio Graph 90+E / fx-CG50
- 257,63 Ko : Casio Graph 35+E / 35+USB/75/95 SH4 / fx-9750/9860GII SH4 (application CasioPython)
- 100,554 Ko : Casio Graph 35+E II
- 31,893 Ko : Casio Graph 35+E II / 35+USB/75/85/95 SH3 / fx-9750GII SH3 / fx-9860G/GII SH3 (application CasioPython)
- 22,914 Ko : module externe TI-Python pour TI-83 Premium CE (firmware tiers)
- 19,918 Ko : module externe TI-Python pour TI-83 Premium CE
- 19,550 Ko : TI-83 Premium CE Edition Python
- 16,233 Ko : calculatrice NumWorks
Enfin, terminons en voyant les performances. Commençons dans le cadre des nombres entiers avec le script suivant :
- Code: Select all
try:
from time import *
except:
pass
def hastime():
try:
monotonic()
return True
except:
return False
def genseed(ndigits):
nmax,s,k=5*10**(ndigits-1),0,1
while s<nmax:
s+=k
k*=2
return s
def genarr(ndigits):
sd,arr=genseed(ndigits),[]
for k in range(1,ndigits):
for j in range(ndigits):
t=sd%10**k
arr.extend([t,-t,10**k-t,t-10**k])
sd=sd//10+(sd%10)*10**(ndigits-1)
arr.extend([sd,-sd])
return arr
def sortarr(arr,sdiff):
segs=[0,len(arr)-1]
while len(segs):
iref=segs[0]
for k in range(segs[0],segs[1]+1):
if sdiff*(arr[k]-arr[iref])>0:
t=arr[iref]
arr[iref]=arr[k]
arr[k]=arr[iref+1]
arr[iref+1]=t
iref+=1
if iref>=segs[0]+2:
segs.extend([segs[0],iref-1])
if iref<=segs[1]-2:
segs.extend([iref+1,segs[1]])
segs.pop(0)
segs.pop(0)
return arr
def test(l,n):
timed=hastime()
start,stop,sdiff,arr=0 or timed and monotonic(),1,-1,[]
arr.extend(genarr(l))
for k in range(n):
arr.extend(sortarr(arr,sdiff))
sdiff=-sdiff
stop=timed and monotonic() or 1
return stop-start,len(arr),arr[0],arr[len(arr)//2-1],arr[len(arr)//2],arr[len(arr)-1]
De façon absolument extraordinaire, la commande
test(9,2)
se termine en 2,04s et explose presque toute concurrence ! - 1,41s : TI-Nspire (application MicroPython) (32 bits : ARM9/ARMv5 @120MHz)
- 1,56s : TI-Nspire CM / CX révisions A-V (application MicroPython) (32 bits : ARM9/ARMv5 @132MHz)
- 2,04s : Symbolibre (?)
- 2,40s : TI-Nspire CX révisions W+/CR4+ (application MicroPython) (32 bits : ARM9/ARMv5 @156MHz)
- 3,74s : NumWorks (32 bits : Cortex/ARMv7 @100MHz)
- 4,75s : Casio Graph 90+E / fx-CG50 (32 bits : SH4 @118MHz)
- 8,81s : HP Prime G2 (32 bits : Cortex/ARMv7 @528MHz)
- 9,56s : Casio Graph 35+E/75+E / 35+USB/75/95 SH4 / fx-9750/9860GII SH4 (application CasioPython) (32 bits : SH4 @29,5MHz)
- 10,19s : Casio Graph 35+E II (application CasioPython) (32 bits : SH4 @59MHz)
- 12,99s : Casio Graph 35+USB/75/85/95 SH3 / fx-9750GII SH3 / fx-9860G/GII SH3 (application CasioPython) (32 bits : SH3 @29,5MHz)
- 14,93s : Casio Graph 35+E II (32 bits : SH4 @59MHz)
- 20,73s : HP Prime G1 (32 bits : ARM9/ARMv5 @400MHz)
- 23,20s : module externe TI-Python pour TI-83 Premium CE (32 bits : Cortex/ARMv7 @48MHz)
- 26,60s : TI-83 Premium CE Edition Python (?)
- 33,48s : module externe TI-Python pour TI-83 Premium CE (firmware tiers) (32 bits : Cortex/ARMv7 @48MHz)
- 60,71s : application KhiCAS sur Casio Graph 90+E / fx-CG50 (32 bits : SH4 @118MHz)
- 116,93s : application KhiCAS sur Casio fx-CG10/20 (32 bits : SH4 @59MHz)
Passons maintenant aux nombres flottants avec le script suivant :
- Code: Select all
try:
from time import *
except:
pass
def hastime():
try:
monotonic()
return True
except:
return False
def seuil(d):
timed=hastime()
start,stop,n,u,l,d=0 or timed and monotonic(),1,0,2.,1,d**2
while (u-l)**2>=d: u,n=1+(1/((1-u)*(n+1))),n+1
stop=timed and monotonic() or 1
return [stop-start,n,u]
La ligne d'appel
seuil(0.005)
se termine en seulement 0,815s, atomisant cette fois-ci toute concurrence ! D'où le classement suivant dans le contexte des calculs en virgule flottante :
- 0,815s : Symbolibre (?)
- 0,962s : HP Prime G2 (32 bits : Cortex/ARMv7 @528MHz)
- 1,08s : TI-Nspire CM / CX CR3- (application MicroPython) (32 bits : ARM9/ARMv5 @132MHz)
- 1,29s : TI-Nspire (application MicroPython) (32 bits : ARM9/ARMv5 @120MHz)
- 1,61s : TI-Nspire CX CR4+ (application MicroPython) (32 bits : ARM9/ARMv5 @156MHz)
- 2,036s : NumWorks (32 bits : Cortex/ARMv7 @100MHz)
- 3,068s : HP Prime G1 (32 bits : ARM9/ARMv5 @400MHz)
- 8,94s : Casio Graph 90+E / fx-CG50 (32 bits : SH4 @118MHz)
- 9,68s : module externe TI-Python pour TI-83 Premium CE (32 bits : Cortex/ARMv7 @48MHz)
- 10,38s : TI-83 Premium CE Edition Python (?)
- 10,68s : Casio Graph 35+E II (application CasioPython) (32 bits : SH4 @59MHz)
- 11,26s : Casio 35+E/75+E / 35+USB/75/95 SH4 / fx-9750/9860GII SH4 (application CasioPython) (32 bits : SH4 @29,5MHz)
- 11,46s : module externe TI-Python pour TI-83 Premium CE (firmware tiers) (32 bits : Cortex/ARMv7 @48MHz)
- 13,87s : Casio Graph 35+USB/75/85/95 SH3 / fx-9750GII SH3 / fx-9860G/GII SH3 (application CasioPython) (32 bits : SH3 @29,5MHz)
- 19,98s : application KhiCAS sur Casio Graph 90+E / fx-CG50 (32 bits : SH4 @118MHz)
- 25,19s : Casio Graph 35+E II (32 bits : SH4 @59MHz)
- 35,55s : application KhiCAS sur Casio fx-CG10/20 (32 bits : SH4 @59MHz)
L'équipe prévoit de rajouter le module giacpy afin de pouvoir faire également du calcul exact / littéral / formel en Python. Mais les conséquences vont bien au-delà de ça. En effet sur la concurrence actuelle, l'application Python est toujours cloisonnée dans son coin, incapable d'échanger la moindre information avec le reste des applications, et ne pouvant donc pas jouer pleinement sont rôle dans la résolution d'un problème. Cet ajout permettra donc au Python de sortir de sa bulle, faisant ainsi appel au moteur de calcul de l'application Calcul directement depuis l'application IDE !
9) Application Éteindre :
Go to topVoici bientôt l'heure de notre train. Il est donc grand temps de voir ce que la calculatrice Symbolibre a dans le ventre. Mais en attendant petit interlude, commençons donc par l'éteindre complètement, ce qui prend une 15aine de secondes :
10) Matériel :
Go to topNous voici donc maintenant parés pour la grande dissection et donc la découverte de l'oeuvre du groupe de Némo Fournier !
Plusieurs éléments nous apparaissent :
Au coeur de la Symbolibre, nous avons donc la carte du nano-ordinateur Raspberry Pi Zero. Un choix fort bien calculé dans notre contexte, puisque c'est l'un des rares modèles Raspberry Pi à ne pas intégrer de capacités sans-fil interdites aux examens !
Nous disposons donc :
Les ports GPIO de l'ordinateur Raspberry Pi Zero permettent d'une part de le relier à la carte clavier, ici conçue sur mesures.
Ils permettent d'autre part de connecter la carte de l'écran, un 320×240 pixels comme déjà dit, plus précisément un 2,4 pouces de chez EastRising.
Le port micro-USB d'alimentation est quant à lui relié non pas à la batterie mais à une autre carte, une Adafruit PowerBoost 500C, carte qui expose alors son propre connecteur micro-USB sur la tranche supérieure de la calculatrice.
Cette carte est elle-même reliée à une batterie AdaFruit 3,7 Volts de 2000 mAh de capacité.
Le rôle de cette carte interface Adafruit PowerBoost 500C est en fait de gérer la recharge de la batterie.
Plusieurs éléments nous apparaissent :
- une carte Raspberry
- une carte clavier
- une carte écran
- une carte Adafruit
- une batterie
Au coeur de la Symbolibre, nous avons donc la carte du nano-ordinateur Raspberry Pi Zero. Un choix fort bien calculé dans notre contexte, puisque c'est l'un des rares modèles Raspberry Pi à ne pas intégrer de capacités sans-fil interdites aux examens !
Nous disposons donc :
- d'un processeur ARM1176JZF-S cadencé à 1 GHz, un 32-bits de la famille ARM11/ARMv6, soit de génération supérieure aux ARM9/ARMv5 équipant encore de nos jours les TI-Nspire CX II !
- d'une mémoire RAM très confortable de 512 Mio, ce qui valide notre conjecture faite plus haut !
- d'un lecteur de carte mémoire microSD, permettant ici d'amorcer sur la carte de 8 Gio contenant le système d'exploitation Symbolibre
- de deux ports au format micro-USB, l'un des deux étant dédié à l'alimentation et l'autre étant un port OTG
- d'un port mini-HDMI
Les ports GPIO de l'ordinateur Raspberry Pi Zero permettent d'une part de le relier à la carte clavier, ici conçue sur mesures.
Ils permettent d'autre part de connecter la carte de l'écran, un 320×240 pixels comme déjà dit, plus précisément un 2,4 pouces de chez EastRising.
Le port micro-USB d'alimentation est quant à lui relié non pas à la batterie mais à une autre carte, une Adafruit PowerBoost 500C, carte qui expose alors son propre connecteur micro-USB sur la tranche supérieure de la calculatrice.
Cette carte est elle-même reliée à une batterie AdaFruit 3,7 Volts de 2000 mAh de capacité.
Le rôle de cette carte interface Adafruit PowerBoost 500C est en fait de gérer la recharge de la batterie.
11) Connectivité et périphériques :
Go to topLes calculatrices graphiques contemporaires ont perdu la quasi totalité de la riche connectivité dont disposaient leurs ancêtres des années 80, les "ordinateurs de poche". On ne peut y connecter qu'un nombre très restreint de périphériques, une rareté qui se paye cher.
Mais comme nous venons de le voir, la Symbolibre dispose d'un port micro-USB OTG standard. De quoi par exemple connecter un clavier USB une fois sorti le bon adaptateur.
Le clavier ainsi rajouté permet parfaitement de naviguer à travers les différentes interfaces de la calculatrice Symbolibre.
Il permet également de contrôler la console Linux ainsi que l'éditeur de l'application IDE tout en profitant de toutes les touches supplémentaires qu'il apporte, notamment la possibilité de sélectionner du texte !
Un superbe confort de saisie !
Mais ce n'est pas tout puisque la Symbolibre dispose également d'un port mini-HDMI. De façon encore plus exceptionnelle, avec utilisation de l'adaptateur adéquat, on peut donc connecter la calculatrice Symbolibre à un écran ou un vidéoprojecteur !
De quoi vidéoprojeter facilement la calculatrice en classe !
Même si avant ça, il faudra toutefois commencer par régler le problème de la résolution qui comme tu peux voir ne s'adapte pas au périphérique de sortie vidéo.
Mais comme nous venons de le voir, la Symbolibre dispose d'un port micro-USB OTG standard. De quoi par exemple connecter un clavier USB une fois sorti le bon adaptateur.
Le clavier ainsi rajouté permet parfaitement de naviguer à travers les différentes interfaces de la calculatrice Symbolibre.
Il permet également de contrôler la console Linux ainsi que l'éditeur de l'application IDE tout en profitant de toutes les touches supplémentaires qu'il apporte, notamment la possibilité de sélectionner du texte !
Un superbe confort de saisie !
Mais ce n'est pas tout puisque la Symbolibre dispose également d'un port mini-HDMI. De façon encore plus exceptionnelle, avec utilisation de l'adaptateur adéquat, on peut donc connecter la calculatrice Symbolibre à un écran ou un vidéoprojecteur !
De quoi vidéoprojeter facilement la calculatrice en classe !
Même si avant ça, il faudra toutefois commencer par régler le problème de la résolution qui comme tu peux voir ne s'adapte pas au périphérique de sortie vidéo.
Toutefois, précisons que ces deux possibilités extraordinaires ne sont pas encore d'actualité. En effet, pour le moment, les connecteurs micro-USB OTG et mini-HDMI sont internes, et donc inaccessibles sans démonter la calculatrice.
Pour pouvoir les exploiter il faudra :
Pour pouvoir les exploiter il faudra :
- soit revoir l'ensemble de la conception et déplacer la carte Raspberry Pi pour acoller ces connecteurs à l'une des tranches du boîtier
- soit exporter ces connecteurs vers les tranches du boîtier à l'aide de câbles prolongateurs, ce qui aura un coût
Conclusion :
Go to topMême si divers points restent à améliorer, la calculatrice Symbolibre est un formidable projet très prometteur avec des points forts monumentaux :
La connectivité standard de la Symbolibre pourrait enfin permettre d'utiliser librement les périphériques de son choix peu importe leur marque, au moins déjà pour tout ce qui standard !
Mais avec la Symbolibre, nous obtenons au prix du milieu de gamme du matériel aux capacités haut de gamme, qui devrait bien être capable à la différence de survivre à bien des révolutions scolaires pendant nombre d'années !
Toutes nos félicitations à l'équipe Symbolibre, en espérant que le projet pourra continuer maintenant qu'il n'est plus contraint par l'ENS. Nous souhaitons à l'équipe force et courage pour maintenant corriger divers détails évoqués et viser les phases de production et commercialisation. A très bientôt donc, on espère...
- un système d'exploitation non seulement libre mais aussi répandu (Linux)
- de remarquables innovations niveau intuitivité et facilité de lecture, particulièrement dans le cadre des graphes de fonctions
- une application Calcul qui n'a absolument rien à envier à la concurrence, bien au contraire
- et qui en prime donne accès des fonctionnalités que la concurrence réserve habituellement au haut de gamme (calcul formel)
Niveau connectivité, les constructeurs historiques nous ont habitués à des périphériques propriétaires, conçus ou sélectionnés par le constructeur en partenariat avec d'autres entreprises, sans véritable concurrence qui puisse donc jouer dans l'intérêt de l'utilisateur, et donc forcément à des périphériques en pratique très rares et très chers.
La connectivité standard de la Symbolibre pourrait enfin permettre d'utiliser librement les périphériques de son choix peu importe leur marque, au moins déjà pour tout ce qui standard !
Niveau capacités matérielles maintenant, mis à part pour le haut de gamme, la concurrence nous a régulièrement fourni jusqu'à présent le strict minimum nécessaire. Avec comme conséquence des modèles d'entrée et de milieu de gamme qui, à chaque changement significatif des textes réglementaires (mode examen à diode depuis la rentrée 2015, Python depuis la rentrée 2017, ...), doivent être remplacés et sont donc bons pour la poubelle. Quel gaspillage tous les deux ans pour les enseignants ou fratries !
Mais avec la Symbolibre, nous obtenons au prix du milieu de gamme du matériel aux capacités haut de gamme, qui devrait bien être capable à la différence de survivre à bien des révolutions scolaires pendant nombre d'années !
Toutes nos félicitations à l'équipe Symbolibre, en espérant que le projet pourra continuer maintenant qu'il n'est plus contraint par l'ENS. Nous souhaitons à l'équipe force et courage pour maintenant corriger divers détails évoqués et viser les phases de production et commercialisation. A très bientôt donc, on espère...
Merci à tous ceux qui ont aidé à notre déplacement pour cette naissance !
Une pensée envers, entre autres :
Une pensée envers, entre autres :
- nos donateurs VIP++ : Adriweb, Persalteas, noelnadal, grosged, darthvader, TheMachine02, parisse, Paneth, MateoConLechuga, Dubs, jacobly, telpe51, nbenm, hdi93600, STaa, NumWorks
- nos donateurs VIP+ : rtomczak, mathys057, Inspire5960, Barrere, majestyofgaia
- nos donateurs VIP : blanchette831, arthuralbertini279, gersonvmartinez, Klego, Natou844, quentho
Référence : https://symbolibre.org/