π
<-

TI-z80 Test-découverte TI-82 Advanced Edition Python - rentrée 2021

New postby critor » 27 Jun 2021, 06:20

Image

La réforme du lycée n'a pas que des avantages, loin de là. Elle a notamment un effet très pervers qui ne semble pas avoir été bien anticipé. Les élèves rentrant en Seconde ne sont plus sûrs de poursuivre l'étude de matières scientifiques en Première avec les 3 spécialités désormais à la carte, et la même incertitude se retrouve lors du passage en Terminale avec l'abandon d'une des 3 spécialités.

Or, les calculatrices graphiques couleur programmables en Python coûtaient jusqu'à présent au minimum dans les 80€, cette combinaison de capacités ne concernant que les modèles de milieu de gamme et haut de gamme. Acheter une calculatrice graphique dans les 80€ pour peut-être l'utiliser juste une année dans le pire des cas, les familles se montrent de plus en plus frileuses et préfèrent bien souvent remettre cet investissement à plus tard.

Résultat au lieu d'avoir pu bénéficier comme avant d'une prise en main progressive tout le long de l'année de Seconde, l'élève obtient sa calculatrice en Première ou en Terminale soit à la veille des épreuves écrites du BAC et se voit ainsi réduit à devoir la prendre en main rapidement au dernier moment (rappelons que les épreuves scientifiques du BAC c'est désormais très tôt dans l'année scolaire, de janvier à mars et ce aussi bien en Première qu'en Terminale). Ce sont parfois des enseignants qui n'osent même plus demander l'achat d'une calculatrice graphique en Seconde à cause des prix pratiqués. Bien évidemment tout ceci impacte négativement la maîtrise de la calculatrice graphique, seul outil numérique autorisé aux épreuves scientifiques du BAC, et donc forcément d'une façon ou d'une autre les résultats.

Mais heureusement le constructeur Texas Instruments se propose de fournir une réponse à cette problématique pour cette rentrée 2021 avec son nouveau modèle TI-82 Advanced Edition Python.

Un modèle trouvable à des prix absolument formidablement bas : moins de 60€ chez les bonnes boutiques (voir les prix ici, sans oublier les prix en achats groupés encore plus bas chez Calcuso par exemple, ou Jarrety ou TSP).

Maintenant bien sûr, le prix ne fait pas tout. Nous avons la chance de disposer aujourd'hui d'un échantillon dans le cadre de l'offre de test lancée le mois dernier par le constructeur.

Nous allons donc le tester devant toi. Nous nous attendions a priori à ce que la TI-82 Advanced Edition Python de rentrée 2021 soit une version allégée de la TI-83 Premium CE Edition Python de rentrée 2019, mais reste à savoir jusqu'à quel point. Car pour permettre et justifier une telle baisse de prix, il doit y avoir des différences matérielles et même logicielles. Donc pour faire simple, nous déroulerons ce test en comparant ces deux modèles.

En conclusion, nous évoquerons le positionnement de ce modèle par rapport à la concurrence.

Pour référence, dans ce test nous évoquerons d'autres modèles Texas Instruments :
  • TI-82 Advanced (rentrée 2015)
  • TI-83 Premium CE (rentrée 2015)
  • TI-83 Premium CE Edition Python (rentrée 2019)




Sommaire :




A) Emballage, ouverture et contenu

Go to top

1399412762Il n'y a pas que Casio qui passe aux emballages carton écologiques pour cette rentrée 2021, Texas Instruments également avec la TI-82 Advanced Edition Python.

On pourrait certes se demander si ce ne serait pas juste un emballage exceptionnel réalisé pour expédition aux enseignants inscrits à l'offre de test.

Mais la finition de l'emballage nous permet ici d'exclure toute réalisation à la va-vite. Notons en effet les visuels colorés et soignés même si chacun est libre de son appréciation, mais surtout de façon indiscutable le code barre qui est bel et bien présent pour un passage en caisse :
139961399713995

Enfin fini donc les emballages historiques à coque blister rigide très difficiles à ouvrir proprement, quasiment impossibles à réutiliser une fois ouverts, pénibles et encombrants à ranger, et n'ayant donc dans la plupart des cas que la poubelle comme seule destination possible après ouverture ! :)

Les TI-Collège Plus et TI-83 Premium CE Edition Python devraient elles aussi bénéficier de nouveaux emballages similaires pour la rentrée 2021. La TI-82 Advanced également, cet ancien modèle restant en effet produit et commercialisé. La TI-82 Advanced Edition Python n'est donc pas son successeur, mais bel et bien une toute nouvelle référence.

140001399913998Mais la disparition de la coque blister avec le passage au carton intégral ne constitue pas le seul avantage écologique du nouvel emballage. Il est aussi de dimensions bien plus restreintes, ce qui permet d'optimiser également le transport ainsi que le stockage. En effet l'emballage blister de la TI-82 Advanced d'apparence similaire sortie pour la rentrée 2015 occupait en surface 27,2 × 19,2 cm². Selon notre pied à coulisse numérique, le nouvel emballage ne fait plus ici que 20,2 × 11,2 cm², soit une réduction absolument fantastique de plus de 55% ! :bj:

Tu te rends compte ? Formidable, l'emballage de la TI-82 Advanced Edition Python prend moins de place qu'une TI-92 ! :D

Quant à l'épaisseur, elle est maintenant de 4,92 cm.

14001Ne te faisons pas languir plus longtemps ; ouvrons la boîte. Le contenu de l'emballage comprend :
  • la calculatrice, très soigneusement protégée dans une pochette de papier bulle
  • le guide de prise en main en Français
  • 4 piles AAA maxell
  • le câble USB mini-B ↔ USB A pour connexion à un ordinateur
  • le câble USB mini-B ↔ USB mini-A pour connexion à une autre calculatrice Texas Instruments
  • un numéro de licence pour une utilisation de 3 ans du logiciel d'émulation TI-SmartView CE dans sa déclinaison TI-83 Premium CE Edition Python, suffisant donc pour une scolarité au lycée

Ce numéro de licence inclus à ne surtout pas jeter/égarer donc, est une autre formidable nouveauté Texas Instruments de cette rentrée 2021, réservé jusqu'à présent aux seuls achats de modèles enseignants. Désormais tous les élèves pourront donc également en profiter, et notons qu'il concernera également les TI-83 Premium CE Edition Python vendues sous le nouvel emballage carton.

Sont également incluses ici 2 feuilles volantes à destination des enseignants bénéficiaires dans le cadre de cet offre de test :
  • L'une d'elles présente les caractéristiques de la TI-82 Advanced Edition Python, indique une disponibilité d'ici la rentrée 2021 et annonce très fièrement "La calculatrice pour initier tous les élèves de Seconde à la programmation Python en couleur" ; nous allons voir cela.
  • L'autre réexplique les conditions de l'offre : il ne s'agit pas d'un don/cadeau, mais d'un prêt à durée indéterminée. L'échantillon reste la propriété de Texas Instruments et doit être retourné sur demande du constructeur.
49504948En effet nous avons régulièrement constaté non sans amertume ces dernières années, qu'à chaque fois que Texas Instruments lançait une offre de test de ce genre, ou bien proposait des calculatrices à tarif spécial enseignants, nombre d'entre elles se retrouvaient systématiquement à la revente en ligne dans les jours et semaines suivant, et bien évidemment à plein tarif à la différence. :mj:

La dernière offre de test a concerné le lancement de la TI-83 Premium CE pour la rentrée 2015, et fut hélas concernée par ces écarts. À l'époque les échantillons venaient avec une étiquette les identifiant en tant que tels, mais il suffisait bêtement de la décoller.

Des comportements très regrettables et surtout nuisant à l'ensemble du corps enseignant, remettant en effet les offres en question, conduisant à la raréfaction dans le cas des offres de test (la précédente remontant donc à 6 ans...), ainsi qu'à des tarifs enseignants de moins en moins intéressants.




B) Boîtier et mesures

Go to top

14009Restons un tout petit moment sur la problématique des enseignants qui se dépêchent de revendre leurs échantillons. Cette fois-ci Texas Instruments s'est montré beaucoup plus malin. ;)

En effet les échantillons de TI-82 Advanced Edition Python distribués ici sont clairement identifiées sur leur tranche latérale gauche par une inscription "TI PROPERTY-NOT FOR SALE". Une inscription qui ici est littéralement gravée dans le boîtier de la calculatrice ; elle est donc là pour toujours, félicitations TI ! :D

Dans sa forme, la gravure nous fait penser à la façon de faire de Calcuso, le distributeur proposant à l'achat la personnalisation de ta calculatrice graphique par gravure laser d'un message au choix, pour un supplément de 3,95€. Mais en réalité non, la gravure a directement été effectuée en aval de la chaîne d'assemblage en usine.

La TI-82 Advanced de rentrée 2015 utilisait un boîtier dérivé de celui de la TI-84 Plus, modèle lancé en 2004.

La TI-82 Advanced Edition Python utilise toujours un boîtier de type TI-84 Plus, mais avec des différences au niveau du cadre de l'écran, ce dernier étant en effet maintenant couleur. Plus précisément pour sa face avant, la TI-82 Advanced Edition Python réutilise et modifie très légèrement le boîtier de la TI-84 Plus C Silver Edition, modèle couleur lancé pour la rentrée 2013.
1404146231401414040


14008Bien évidemment parmi les quelques modifications apportées au boîtier original, on retrouve celles déjà effectuées sur la tranche supérieure pour la TI-82 Advanced de 2015, le port série historique étant en effet remplacé par une diode examen.

1403914036Bref, il faut donc s'attendre aux mêmes dimensions. De façon générale nous préférons faire les mesures nous-mêmes plutôt que de recopier bêtement celles des constructeurs comme d'autres sites. Surtout que les constructeurs ne communiquent pas leurs protocoles de mesures, que ces derniers peuvent varier d'un constructeur à un autre (surtout que chacun a tendance à choisir le protocole qui arrange la mesure dans le sens souhaité), ce qui rend alors toute comparaison non pertinente.

Nous écartons donc notre pied à coulisse numérique jusqu'à ce que la calculatrice puisse le traverser sans accrochage selon chacune de ses 3 dimensions. Sans surprise c'est donc pareil que tous les autres modèles à boîtier de type TI-84 Plus :
  • avec couvercle : 19,26 × 8,93 × 2,70 cm³
  • sans couvercle : 19,04 × 8,51 × 2,36 cm³

1403414035Pour le poids de la TI-82 Advanced Edition Python, nous réalisons également 2 mesures :
  • avec piles et couvercle : 272 g (contre 275 g pour la TI-82 Advanced)
  • avec piles mais sans couvercle : 232 g (contre 236 g pour la TI-82 Advanced)

Quelques grammes de moins de façon systématique dans les deux cas, il semble que TI ait enlevé quelque chose...

140124617Comme nous l'avons vu la TI-82 Advanced Edition Python n'utilise pas de batterie rechargeable mais des piles AAA (ce qui n'est absolument pas une mauvaise nouvelle, nos tests montrant que l'autonomie offerte par des piles AAA de marque est nettement supérieure à celle permise par les batteries rechargeables flambant neuves, autonomie qui de plus se dégrade avec le temps).

Pour la face arrière de façon évidente, ce n'est pas le boîtier TI-84 Plus C Silver Editition de 2013 qui est utilisé (modèle à batterie), mais le bon vieux boîtier TI-84 Plus de 2004 comme pour la TI-82 Advanced.

Nous notons au passage gravé au dos à droite du numéro de série le timbre à date L-0521, indiquant un assemblage :
  • dans l'usine de code L (Kinpo Electronics aux Philippines)
  • en Mai 2021

140251402214023Nous te disions donc plus haut que Texas Instruments avait retiré quelque chose, et nous trouvons de suite de quoi il s'agit en ouvrant le compartiment d'alimentation.

Comme la TI-84 Plus de 2004, la TI-82 Advanced de 2015 continuait à utiliser une pile bouton dite de sauvegarde, destinée à préserver le contenu de la mémoire RAM lors d'une rupture de l'alimentation (pendant un changement de piles, en cas de piles à plat, etc.).

Sur la TI-82 Advanced Edition Python l'emplacement de la pile de sauvegarde est toujours présent mais dépourvu de son cache et la pile en question est manquante. Inutile d'en rajouter une, car même les contacts sont absents au fond de l'emplacement.

Est-ce à des fins d'économie afin de nous proposer le prix le plus bas possible ? Et dans ce cas comment les données mémoire sont-elles préservées ?... Nous verrons cela plus loin.

En tous cas avoir réutilisé la coque TI-84 Plus arrière à l'identique et donc conservé un emplacement vide qui ne sert à rien ne nous fait pas bonne impression. Cela nous rappelle les habitudes de certaines contrefaçons chinoises de calculatrices de marque, cela donne l'impression d'une conception à la va-vite, du moins pour la coque arrière...




C) 1er allumage : écran et versions

Go to top

14006Assez tourné autour du pot, il est grand temps de donner vie à la TI-82 Advanced Edition Python et de faire connaissance.

Au 1er allumage la machine affiche comme nom de modèle TI-82 Adv Edition Python et indique qu'elle fait actuellement tourner un système d'exploitation en version 5.6.3.0017.

Le fichier .8yu permettant l'installation du système 5.6.3.0017 sur TI-82 Advanced Edition Python vient d'ailleurs tout juste d'être publié aujourd'hui sur le site de Texas Instruments, et nous pouvons noter que ce système a été compilé le 29 Avril 2021.

Nous reconnaissons la même interface que sur TI-83 Premium CE Edition Python, ce qui confirme la parenté technique entre ces deux modèles, cette dernière étant pour sa part à ce jour en version 5.6.1.

14033Nous avons donc affaire à un écran 320 × 240 pixels 16 bits, c'est-à-dire pouvant afficher jusqu'à 216 = 65536 couleurs différentes (codage RGB-565).

14016Pour plus d'informations allons à l'écran à propos via
2nde
+
1
.

Nous y découvrons ici le code/identifiant produit de la TI-82 Advanced Edition Python, soit 15 en hexadécimal (contre 13 pour les TI-83 Premium CE et 0B pour la TI-82 Advanced).

En effet les différentes calculatrices Texas Instruments et leurs périphériques associés lorsque munis de la technologie Flash (mémoire persistante réinscriptible permettant la mise à jour du système d'exploitation), s'identifient avec un code/identifiant produit hexadécimal. C'est une des protections empêchant d'installer du code sur un modèle auquel il ne convient pas.

Voici donc en conséquence mise à jour notre liste des valeurs connues :
  • 01 : TI-92 Plus + TI-CBL
  • 02 : TI-73
  • 03 : TI-89
  • 04 : TI-83 Plus / TI-83 Plus.fr / TI-82 Plus
  • 05 : TI-CBL2
  • 06 : Vernier LabPro
  • 07 : TI-Presenter
  • 08 : TI-Voyage 200
  • 09 : TI-89 Titanium
  • 0A : TI-83 Plus.fr USB / TI-84 Plus / TI-84 Plus Silver Edition / TI-84 Pocket.fr / TI-84 Plus Pocket SE + TI-CBR
  • 0B : TI-82 Advanced + TI-CBR2
  • 0C : TI-Nspire CAS / TI-Nspire CAS TouchPad / TI-Nspire CAS+ / TI-Nspire+ / TI-Phoenix 1
  • 0D : TI-Nspire Lab Cradle / TI-Nspire DataTracker + TI-Nspire ViewScreen
  • 0E : TI-Nspire / TI-Nspire TouchPad
  • 0F : TI-Nspire CX CAS / TI-Nspire CX-C CAS / TI-Nspire CX CAS Chinese Edition / TI-84 Plus C Silver Edition
  • 10 : TI-Nspire CX / TI-Nspire CX-C / TI-Nspire CX Chinese Edition
  • 11 : TI-Nspire CM-C CAS / TI-Nspire CM CAS Chinese Edition
  • 12 : TI-Nspire CM-C / TI-Nspire CM Chinese Edition
  • 13 : TI-83 Premium CE / TI-83 Premium CE Edition Python / TI-84 Plus CE / TI-84 Plus CE Python / TI-84 Plus CE-T / TI-84 Plus CE-T Python Edition
  • 15 : TI-82 Advanced Edition Python
  • 1B : TI-84 Plus T
  • 1C : TI-Nspire CX II CAS / TI-Nspire CX II-T CAS / TI-Nspire CX II-C CAS
  • 1D : TI-Nspire CX II
  • 1E : TI-Nspire CX II-T

Bizarre en passant que la valeur 14 ait apparemment été sautée. Aurions-nous raté un autre nouveau modèle en préparation ?...

14013Accédons maintenant au mode d'auto-diagnostic de la machine en tapant
mode
alpha
ln
.

Un premier écran nous confirme l'utilisation d'un système d'exploitation système en version 5.6.3.0017, mais nous précise également que ce dernier s'amorce sur un Boot en version 5.6.3.0010.

14007L'écran suivant nous indique en prime la version du firmware Python utilisé, 3.20, contre 3.10 à ce jour sur TI-83 Premium CE Edition Python.




D) Mémoires et persistance données

Go to top

Historiquement les calculatrices Texas Instruments utilisaient deux types de mémoire :
  • la RAM, mémoire de travail volatile (c'est-à-dire devant être alimentée pour conserver son contenu)
  • la ROM, mémoire persistante mais non modifiable, contenant notamment le système d'exploitation
.

Introduite par Texas Instruments en 1998 avec les TI-73 et TI-89 puis 1999 avec les TI-83 Plus et TI-92 Plus, la mémoire Flash remplaçait la ROM.

Tout en étant persistante sans alimentation comme de la ROM, la mémoire Flash a le gros avantage d'être réinscriptible. Cela permet la mise à jour du système d'exploitation, mais également la mise à disposition d'une partie de l'espace inutilisé pour l'utilisateur en tant que mémoire de stockage (appelée mémoire d'archive chez Texas Instruments), permettant le stockage sécurisé de données mais également l'installation d'applications.

Après, ces deux mémoires ne sont pas symétriques :
  • depuis la mise à jour 5.3.0 pour TI-83 Premium CE les programmes TI-Basic peuvent être exécutés indifféremment qu'ils soient en RAM ou en Flash, mais ils ne peuvent être modifiés que si ils sont stockés en RAM
  • certains types de variables comme les applications, ainsi que sur TI-83 Premium CE les images, ne peuvent être stockées qu'en mémoire Flash
  • les scripts Python sur TI-83 Premium CE si stockés en Flash n'étaient non seulement pas modifiables, mais de plus ne pouvaient même pas être lancés, ce qui incitait fortement à les laisser en permanence en mémoire RAM

Consultons donc les capacités disponibles sur TI-82 Advanced Edition Python grâce au gestionnaire de mémoire, accessible via
2nde
+
2
.

Nous avons donc dans les 152K de mémoire RAM libre pour l'utilisateur, et 1835K disponibles en Flash en tant que mémoire de stockage.

Notons qu'une réinitialisation de la mémoire de la calculatrice ne libère pas davantage d'espace en Flash, comme si il n'y avait pas d'applications à effacer ; nous approfondirons ce point plus loin.

Traitons maintenant comme promis du cas de la persistance des données, puisque la disparition de la pile de sauvegarde plus haut nous a inquiétés.

Les TI-83 Premium CE sont elles aussi dépourvues d'une pile de sauvegarde, mais la différence c'est qu'elles utilisent une batterie. Or, comme avec des piles, tu n'attends normalement pas que la calculatrice ne s'allume plus avant de réagir (la charge de batterie étant en permanence indiquée à l'écran, et des messages d'alerte apparaissant de plus lorsqu'elle tombe sous un niveau critique). Et avec une batterie aucun besoin de la déconnecter, il suffit de brancher la calculatrice en USB pour la recharger.

Ici avec la TI-82 Advanced Edition Python, en cas d'alimentation faible il te faudra donc remplacer les piles. Calculatrice éteinte, avec des variables à la fois présentes en mémoire RAM et Flash, tentons de déconnecter et reconnecter très rapidement une seule pile de la TI-82 Advanced Edition Python, de l'ordre d'une demi-seconde. Soit une rupture d'alimentation franchement très raisonnable (tout-le-monde ne remplaçant pas les 4 piles une par une avec les neuves sous la main). Effectuons ce test plusieurs fois de suite. Et bien malgré ces conditions de tests extrêmement favorables, les résultats sont très inquiétants :
  • dans tous les cas (à moins d'une rupture d'alimentation beaucoup plus courte), la calculatrice redémarre (reset), puisque montrant l'écran de revalidation du système d'exploitation
  • dans presque une moitié des cas (à la suite), le contenu Flash était conservé, mais le contenu RAM était intégralement perdu :mj:
  • dans presque une moitié des cas (à la suite), le contenu Flash était conservé, et le contenu RAM également
  • dans quelques cas, le contenu RAM était perdu, mais le contenu Flash également, du jamais vu ! :mj:
  • dans quelques cas, la calculatrice était inutilisable (ne voulant pas se rallumer, ou bien étant bloquée à l'allumage sur un message d'erreur de mémoire sans que la moindre touche ne permette de le fermer) et nous avons donc dû à nouveau retirer une pile, plus longuement

Comme nous le craignions plus haut, nous notons malheureusement un problème bien préoccupant de persistance des données sur TI-82 Advanced Edition Python, mais l'absence de la pile de sauvegarde n'explique pas tout.

En effet Texas Instruments a donc retiré la pile de sauvegarde ainsi que son circuit, peut-être pour économiser sur les coûts de production. Mais les résultats des tests étant divers, il semble que le constructeur l'ait remplacée par un autre système, logiciel, permettant la conservation ou récupération des données en cas de rupture d'alimentation.

Nous ne pouvons hélas que constater que ce nouveau système n'est de toute évidence absolument pas fiable à ce jour. Le jour où tu changeras les piles de ta TI-82 Advanced Edition Python, il te faudra absolument penser à déplacer l'intégralité de tes variables en mémoire Flash, et encore sans garantie comme nous avons vu. Sans cela, tu as de gros risques de perdre l'intégralité du contenu RAM (voir pire), et donc entre autres l'intégralité de tes scripts Python si comme sur TI-83 Premium ils doivent être stockés en RAM pour être utilisables, ce que nous verrons plus loin ! :mj:

C'est très embêtant, et clairement selon nous un gros défaut. Espérons que ce sera corrigé par une mise à jour logicielle d'ici à ce que les premiers utilisateurs aient besoin de remplacer leurs piles...




E) Fonctionnalités hors applications

Go to top

14031Alors, quelles fonctionnalités la TI-82 Advanced Edition Python offre-t-elle ?

Dans un premier temps concentrons-nous sur les fonctionnalités directement intégrées au système d'exploitation, c'est-à-dire ne nécessitant pas le lancement d'une application via
2nde
résol
.

Et bien c'est extrêmement simple et formidable à la fois. La quasi-totalité des fonctionnalités hors applications donc de la TI-83 Premium Edition Python sont disponibles sur TI-82 Advanced Edition Python ! :D

Nous disposons donc de presque toutes les améliorations apportées sur TI-83 Premium CE depuis la rentrée 2015 et pas sur le modèle inférieur TI-82 Advanced.

On peut citer le calcul exact QPiRac, mais également les suites récurrentes directement définissables aux rangs n+1 et n+2, la définition de fonctions par morceaux en écriture naturelle, ou encore le calcul par défaut des quartiles à la française.

Pour faire court, qu'est-ce que la TI-82 Advanced Edition Python ne fait pas ?

C'est très simple, elle ne permet pas de contrôler des périphériques dans le cadre de projets STEM (TI-Innovator, BBC micro:bit, ...).

Les fonctions nécessaires Send() et Get() ne sont pas au catalogue et ne peuvent donc pas être saisies au clavier.

Si l'on tente de les utiliser malgré tout, par exemple en transférant un programme comportant déjà ces appels dans son code TI-Basic, elles ne fonctionnent pas et renvoient une erreur Invalide.

Même erreur en passant si l'on tente de même avec la fonction Asm(), la gestion des programmes en langage machine déjà supprimée à compter de la version 5.5.1 de la TI-83 Premium CE Edition Python ne revient pas davantage sur TI-82 Advanced Edition Python.




F) Applications intégrées

Go to top

Passons donc maintenant aux fonctionnalités dont l'accès nécessite de lancer une application.

Comme dit plus haut, Texas Instruments introduisait donc en 1998 un véritable gestionnaire d'applications. Initialement, tu pouvais librement à tout moment installer en Flash des applications à télécharger sur le site de Texas Instruments, les mettre à jour ou les supprimer, et c'est toujours le cas aujourd'hui sur TI-83 Premium CE.

Toutefois les TI-82 Advanced et TI-84 Plus T des rentrées 2015 et 2016 bridaient lourdement le fonctionnement du gestionnaire d'applications. Tu n'avais plus la possibilité de rajouter ou mettre à jour librement des applications, ces dernières étant désormais intégrées au système d'exploitation. La seule façon de rajouter ou mettre à jour des applications était donc de mettre à jour le système d'exploitation de la calculatrice, à condition que des mises à jour existent. Or Texas Instruments n'a jamais publié de mise à jour pour ces modèles depuis leur sortie.

Nous nous rendons vite compte que c'est ce dernier fonctionnement bridé que Texas Instruments a retenu pour sa TI-82 Advanced Edition Python, les menus de la calculatrice ne listant de même plus le type Application, TI-Connect CE ne les listant pas davantage et refusant même d'en installer.

Découvrons donc la sélection ainsi définitive d'applications que Texas Instruments t'a faite pour ta TI-82 Advanced Edition Python.

Les applications sont en fait à aller chercher sous 2 menus différents :
  • 2nde
    résol
    pour les applications lançables
  • mode
    pour les applications de langues

Pour les applications de langues et bien cela va être rapide, la TI-82 Advanced Edition Python ne gère que 2 langues : le Français et l'Anglais.

Pour les applications lançables, nous avons une très petite sélection des applications couleur déjà disponibles pour TI-83 Premium CE Edition Python :
  • Fonct financ…
  • CelSheet 5.0.0.0017 (tableur / feuille de calculs)
  • Inequalz 5.1.0.0110 (représentation graphique d'inéquations)
  • PlySmlt2 5.5.0.0038 (résolution de systèmes d'équations linéaires et équations polynomiales)
  • Prob Sim 5.1.0.0110 (simulateur d'expériences aléatoires)
  • Python82 5.6.3.0017 (éditeur et interpréteur Python)
  • Transfrm 5.3.1.0034 (représentation graphique de fonctions à paramètres)

Pour mieux te rendre compte de ce que cela implique, voici une comparaison des applications disponibles selon les modèles :
Description
TI-82 Advanced
(5.0.0.0028)
TI-82 Advanced
Edition Python

(5.6.3.0017)
TI-83 Premium CE
Edition Python

(5.6.1.0012)
fonctions financières
Finance
Fonct financ…
Fonct financ…
feuille de calculs / tableur
CSheetFr (1.10)
CelSheet (5.1.1.0017)
CelSheet (5.1.0.0110)
résolution systèmes/polynômes
PlySmlt2 (2.00)
PlySmlt2 (5.5.0.0038)
PlySmlt2 (5.5.0.0038)
simulation expériences aléatoires
Prob Sim (1.1)
Prob Sim (5.1.0.0110)
Prob Sim (5.1.0.0110)
graphes inégalités
Inequalz (2.40)
Inequalz (5.1.0.0110)
Inequalz (5.1.0.0110)
fonctions à paramètres
Transfrm (5.3.1.0034)
Transfrm (5.3.1.0034)
Python
Python82 (5.6.3.0017)
Python (5.5.2.0044)
géométrie dynamique
CabriJr (5.0.0.0089)
courbes coniques
Conics (5.1.0.0110)
classification périodique éléments
Period (1.0)
Periodic (5.5.0.0038)
unités + constantes + vecteurs 2D
SciTools (5.5.0.0038)
acquisition mesures physiques
EasyData (5.3.6.0018)
connectivité projets STEM
Hub (5.4.0.0034)
télécommande pour émulateur
SmartPad (5.3.0.0042)
langue française
Français (2.40)
Français (5.6.3.0017)
Français (5.6.0.0020)
langue allemande
Deutsch (5.6.0.0020)
langue espagnole
Español (5.6.0.0020)
langue néerlandaise
Nederlan (5.6.0.0020)
langue portugaise
Portug (5.6.0.0020)
langue suédoise
Svenska (5.6.0.0020)
Total
7
8
20


La TI-82 Advanced Edition Python intègre donc 8 applications, contre seulement 7 sur l'ancien modèle TI-82 Advanced :
  • on perd l'application Period de tableau périodique des éléments
  • pour gagner à la place l'application Transfrm traitant des fonctions à paramètres, et l'application Python82 sur laquelle nous allons revenir

Précisons en passant qu'il n'y a pas ici l'application CabriJr, et donc à ce jour aucune possibilité d'installer arTIfiCE pour rajouter la gestion des programmes en langage machine dits "assembleur" (ASM).

Il semble y avoir eu une volonté d'exclure toute fonctionnalité relative aux sciences expérimentations (Physique-Chimie, projets STEM) alors qu'il s'agit pourtant encore d'enseignements obligatoires en Seconde, c'est assez surprenant a priori mais nous reviendrons là-dessus en conclusion.

Concernant l'absence des applications de connectivité STEM, selon nos tests la TI-82 Advanced Edition Python semble de toutes façons incapable d'alimenter le moindre périphérique USB.

Nous notons que les applications sont en version 5, c'est-à-dire que contrairement à la TI-82 Advanced, l'on bénéficie de toutes les nouveautés et améliorations qui leur ont été apportées dans le cadre du développement de la TI-83 Premium CE Edition Python.
140291403014032


On peut noter toutefois quelques différences de versions :
  • Français est en version 5.6.3.0017 sur TI-82 Advanced Edition Python, alors qu'en version 5.6.0.0020 sur TI-83 Premium CE Edition Python - mais c'est ici normal puisque certains menus du système d'exploitation sont différents comme nous avons vu
  • CelSheet qui est en version 5.1.1.0017 alors que la dernière version disponible pour TI-83 Premium CE Edition Python est la 5.1.0.0110

En fait, après analyse du fichier de mise à jour du système d'exploitation .8yu, nous nous rendons compte que même lorsqu'il y a le même numéro de version, le code machine des applications intégrées à la TI-82 Advanced Edition Python n'est pas identique à celui des applications équivalentes sur TI-83 Premium CE Edition Python. Nous ignorons a priori ce qui peut bien justifier ça, alors que nous avons jusqu'ici supposé les deux modèles comme similaires et compatibles...




G1) Python82 : Implémentation, entiers et performances - import sys

Go to top

Si l'application dédiée à la programmation en Python s'appelle donc ici Python82 et non Python comme sur TI-83 Premium CE Edition Python. C'est donc qu'il doit y avoir des différences... Nous allons nous montrer particulièrement attentifs ici.

Un module Python très intéressant à explorer pour commencer à faire connaissance, c'est le module standard sys.

Il n'est pas au menu mais bel et bien disponible, et on peut obtenir la liste intégrale des différents éléments qu'il permet d'appeler via un simple dir(sys).

sys.platform == 'TI-Python' sera par exemple une astuce de test bien utile pour tes scripts en ayant besoin d'identifier la plateforme sur laquelle ils tournent, notamment pour tenir compte des dimensions de l'écran ou du comportement de la console Python, même si ici cela ne permettra pas de distinguer les TI-82 Advanced Edition Python et TI-83 Premium CE Edition Python.

Comme on pouvait s'en douter sys.implementation nous indique que nous sommes sur un interpréteur TI-Python (un dérivé de CircuitPython, qui est lui-même un MicroPython allégé), en précisant qu'il s'agit d'une version 3.2.0.71, et implémentant lui-même le Python 3.4.0 comme l'indique sys.version.

Bref, cela semble être a priori la même solution Python que sur TI-83 Premium CE Edition Python, à une différence de version près (TI-Python 3.2.0.71, au lieu de TI-Python 3.1.0.58).
  • Micropython 1.12.0 : NumWorks
  • Micropython 1.11.0 : TI-Nspire CX II
  • Micropython 1.9.4 : HP Prime
    Casio Graph 90+E / 35+E II
  • TI-Python 3.2.0.71 : TI-82 Advanced Edition Python
  • TI-Python 3.1.0.58 : TI-83 Premium CE Edition Python
  • Micropython 1.12.0 : TI-Nspire CX (Ndless + KhiCAS)
  • Micropython 1.12.0 : NumWorks
  • Micropython 1.12.0 : NumWorks N0110 (Delta / Omega + KhiCAS)
  • Micropython 1.11.0 : TI-Nspire CX II
  • Micropython 1.9.4 : HP Prime
    Casio Graph 90+E / 35+E II
  • TI-Python 3.2.0.71 : TI-82 Advanced Edition Python
  • TI-Python 3.1.0.58 : TI-83 Premium CE Edition Python
  • Micropython 1.12.0 : NumWorks
  • Micropython 1.11.0 : TI-Nspire CX II
  • Micropython 1.9.4 : HP Prime
    Casio Graph 90+E / 35+E II / fx-CG50 / fx-9750/9860GIII
  • TI-Python 3.2.0.71 : TI-82 Advanced Edition Python
  • TI-Python 3.1.0.58 : TI-83 Premium CE Edition Python / TI-84 Plus CE Python Edition
  • CircuitPython 3.0.0 : TI-83 Premium CE + TI-Python
  • Micropython 1.12.0 : TI-Nspire CX / CX II (Ndless + KhiCAS CX / KhiCAS CX II)
  • Micropython 1.12.0 : NumWorks
  • Micropython 1.12.0 : NumWorks N0110 (Delta / Omega + KhiCAS)
  • Micropython 1.11.0 : TI-Nspire CX II
  • Micropython 1.9.4 : HP Prime
    Casio Graph 90+E / 35+E II / fx-CG50 / fx-9750/9860GIII
    Casio Graph 35/75+E / 35+E II / fx-9750GII/GIII / fx-9860G/GII/GIII (appli CasioPython)
  • Micropython 1.4.6 : TI-Nspire (Ndless + micropython)
  • TI-Python 3.2.0.71 : TI-82 Advanced Edition Python
  • TI-Python 3.1.0.58 : TI-83 Premium CE Edition Python / TI-84 Plus CE Python Edition
  • CircuitPython 4.0.0 : TI-83 Premium CE + TI-Python (firmware tiers)
  • CircuitPython 3.0.0 : TI-83 Premium CE + TI-Python

Malgré le numéro de version supérieur, nous doutons toutefois fortement que ce soit des améliorations que l'appli Python82 de la TI-82 Advanced Edition Python apporte par rapport à l'appli Python de la TI-83 Premium CE Edition Python. Poursuivons les tests, nous allons bien finir par réussir à avoir le fin mot de l'histoire...



sys.maxsize pour sa part indique le plus grand entier pouvant être codé nativement sur la plateforme utilisée, avec ici une organisation little endian comme l'indique sys.byteorder. En pratique sys.maxsize détermine la taille maximale de nombre de structures telles les listes. Les variables peuvent quand même prendre des valeurs entières absolues supérieures qui sont alors gérées logiciellement en tant qu'entiers longs.

Comme la quasi totalité de la concurrence jusqu'à présent, nous avons sys.maxsize == 2147483647, soit sys.maxsize == 2**31 -1, valeur habituelle pour les plateformes 32 bits, 1 bit étant réservé pour le signe.

Les seules exceptions sont les TI-Nspire CX II qui pour on ne sait quelle raison ont sys.maxsize == 32767 soit sys.maxsize == 2**15 -1, caractéristique des plateformes 16 bits...

Quant à sys.byteorder, ici aussi la quasi totalité de la concurrence travaille en little endian.

À une exception près ici encore mais pas la même, les Casio travaillent en big endian.

Voyons donc les performances du Python dans le contexte des nombres entiers, afin de voir si les performances de la TI-82 Advanced Edition Python égalent celles de la TI-83 Premium CE Edition Python ou pas. Voici donc un script réalisant un test de primalité :
Code: Select all
try:from time import monotonic
except:pass

def hastime():
  try:
    monotonic()
    return True
  except:return False

def nodivisorin(n,l):
  for k in l:
    if n//k*k==n:
      return False
  return True

def isprimep(n):
  t=hastime()
  s,l,k=0 or t and monotonic(),[3],7
  if n==2 or n==5:return True
  if int(n)!=n or n//2*2==n or n//5*5==5:
    return False
  if n<k:return n in l
  while k*k<n:
    if nodivisorin(k,l):l.append(k)
    k+=2+2*((k+2)//5*5==k+2)
  r=nodivisorin(n,l)
  return (t and monotonic() or 1)-s,r


Sur le calcul entier en Python, elle semble être très légèrement moins performante que la TI-83 Premium CE Edition Python.
En effet pour un appel de isprimep(10000019), la TI-82 Advanced Edition Python met dans les 9,22s, là où la TI-83 Premium CE Edition Python mettait dans les 8,91s.
  1. 0,171s : HP Prime G2 (32 bits : Cortex-A7/ARMv7 @528MHz Python)
  2. 0,449s : HP Prime G1 (32 bits : ARM9/ARMv5 @400MHz Python)
  3. 0,451s : TI-Nspire CX II (32 bits : ARM9/ARMv5 @396MHz)
  4. 0,581s : NumWorks N0110 (32 bits : Cortex-M7/ARMv7 @216MHz)
  5. 1,17s : NumWorks N0100 (32 bits : Cortex-M4/ARMv7 @100MHz)
  6. 1,58s : Casio Graph 90+E (32 bits : SH4 @117,96MHz)
  7. 4,39s : Casio Graph 35+E II (32 bits : SH4 @58,98MHz)
  8. 4,42s : HP Prime G2 (32 bits : Cortex-A7/ARMv7 @528MHz CAS)
  9. 8,91s : TI-83 Premium CE Edition Python (8 + 32 bits : eZ80 @48MHz + Cortex-M0+/ARMv6 @48MHz)
  10. 9,22s : TI-82 Advanced Edition Python
  11. 16,05s : HP Prime G1 (32 bits : ARM9/ARMv5 @400MHz CAS)
  1. 0,171s : HP Prime G2 (32 bits : Cortex-A7/ARMv7 @528MHz Python)
  2. 0,449s : HP Prime G1 (32 bits : ARM9/ARMv5 @400MHz Python)
  3. 0,451s : TI-Nspire CX II (32 bits : ARM9/ARMv5 @396MHz)
  4. 0,794s : TI-Nspire CX (révisions A-V) (32 bits : ARM9/ARMv5 @132MHz - Ndless + KhiCAS Micropython)
  5. 0,581s : NumWorks N0110 (32 bits : Cortex-M7/ARMv7 @216MHz)
  6. 0,715s : NumWorks N0110 (Delta / Omega + KhiCAS Micropython)
  7. 1,17s : NumWorks N0100 (32 bits : Cortex-M4/ARMv7 @100MHz)
  8. 1,18s : TI-Nspire CX CR4+ (révisions W+) (32 bits : ARM9/ARMv5 @156MHz - Ndless + KhiCAS Micropython)
  9. 1,58s : Casio Graph 90+E (32 bits : SH4 @117,96MHz)
  10. 4,39s : Casio Graph 35+E II (32 bits : SH4 @58,98MHz)
  11. 4,42s : HP Prime G2 (32 bits : Cortex-A7/ARMv7 @528MHz CAS)
  12. 8,91s : TI-83 Premium CE Edition Python (8 + 32 bits : eZ80 @48MHz + Cortex-M0+/ARMv6 @48MHz)
  13. 9,22s : TI-82 Advanced Edition Python
  14. 16,05s : HP Prime G1 (32 bits : ARM9/ARMv5 @400MHz CAS)
  15. 36,26s : TI-Nspire CX (révisions A-V) (32 bits : ARM9/ARMv5 @132MHz - Ndless + KhiCAS compatibilité Python)
  16. 42,75s : NumWorks N0110 (Delta / Omega + KhiCAS compatibilité Python)
  17. 53,24s : TI-Nspire CX CR4+ (révisions W+) (32 bits : ARM9/ARMv5 @156MHz - Ndless + KhiCAS compatibilité Python
  1. 0,171s : HP Prime G2 (32 bits : Cortex-A7/ARMv7 @528MHz Python)
  2. 0,449s : HP Prime G1 (32 bits : ARM9/ARMv5 @400MHz Python)
  3. 0,451s : TI-Nspire CX II (32 bits : ARM9/ARMv5 @396MHz)
  4. 0,511s : TI-Nspire CX (révisions A-V) (32 bits : ARM9/ARMv5 @132MHz overclocké @222MHz Nover - Ndless + KhiCAS Micropython)
  5. 0,581s : NumWorks N0110 (32 bits : Cortex-M7/ARMv7 @216MHz)
  6. 0,715s : NumWorks N0110 (Delta / Omega + KhiCAS Micropython)
  7. 0,821s : TI-Nspire CX CR4+ (révisions W+) (32 bits : ARM9/ARMv5 @156MHz overclocké @216MHz Nover - Ndless + KhiCAS Micropython)
  8. 1,17s : NumWorks N0100 (32 bits : Cortex-M4/ARMv7 @100MHz)
  9. 1,58s : Casio Graph 90+E (32 bits : SH4 @117,96MHz)
  10. 4,39s : Casio Graph 35+E II (32 bits : SH4 @58,98MHz)
  11. 4,42s : HP Prime G2 (32 bits : Cortex-A7/ARMv7 @528MHz CAS)
  12. 8,91s : TI-83 Premium CE Edition Python (8 + 32 bits : eZ80 @48MHz + Cortex-M0+/ARMv6 @48MHz)
  13. 9,22s : TI-82 Advanced Edition Python
  14. 16,05s : HP Prime G1 (32 bits : ARM9/ARMv5 @400MHz CAS)
  15. 29,20s : TI-Nspire CX (révisions A-V) (32 bits : ARM9/ARMv5 @132MHz overclocké @222MHz Nover - Ndless + KhiCAS compatibilité Python)
  16. 42,75s : NumWorks N0110 (Delta / Omega + KhiCAS compatibilité Python)
  17. 45,34s : TI-Nspire CX CR4+ (révisions W+) (32 bits : ARM9/ARMv5 @156MHz overclocké @216MHz Nover - Ndless + KhiCAS compatibilité Python)
  1. 0,171s : HP Prime G2 (32 bits : Cortex-A7/ARMv7 @528MHz Python)
  2. 0,449s : HP Prime G1 (32 bits : ARM9/ARMv5 @400MHz Python)
  3. 0,451s : TI-Nspire CX II (32 bits : ARM9/ARMv5 @396MHz)
  4. 0,581s : NumWorks N0110 (32 bits : Cortex-M7/ARMv7 @216MHz)
  5. 1,17s : NumWorks N0100 (32 bits : Cortex-M4/ARMv7 @100MHz)
  6. 1,58s : Casio Graph 90+E / fx-CG50 (32 bits : SH4 @117,96MHz)
  7. 4,39s : Casio Graph 35+E II / fx-9750/9860GIII (32 bits : SH4 @58,98MHz)
  8. 4,42s : HP Prime G2 (32 bits : Cortex-A7/ARMv7 @528MHz CAS)
  9. 8,1s : TI-83 Premium CE + TI-Python (8 + 32 bits : eZ80 @48MHz + Cortex-M0+/ARMv6 @48MHz)
  10. 8,91s : TI-83 Premium CE Edition Python / TI-84 Plus CE Python Edition (8 + 32 bits : eZ80 @48MHz + Cortex-M0+/ARMv6 @48MHz)
  11. 9,22s : TI-82 Advanced Edition Python
  12. 16,05s : HP Prime G1 (32 bits : ARM9/ARMv5 @400MHz CAS)
  1. 0,171s : HP Prime G2 (32 bits : Cortex-A7/ARMv7 @528MHz Python)
  2. 0,307s : TI-Nspire CX II (32 bits : ARM9/ARMv5 @396MHz - Ndless + MicroPython)
  3. 0,323s : TI-Nspire CX II (32 bits : ARM9/ARMv5 @396MHz - Ndless + KhiCAS Micropython)
  4. 0,449s : HP Prime G1 (32 bits : ARM9/ARMv5 @400MHz Python)
  5. 0,451s : TI-Nspire CX II (32 bits : ARM9/ARMv5 @396MHz)
  6. 0,581s : NumWorks N0110 (32 bits : Cortex-M7/ARMv7 @216MHz)
  7. 0,62s : TI-Nspire CX (révisions A-V) (32 bits : ARM9/ARMv5 @132MHz - Ndless + MicroPython)
  8. 0,67s : TI-Nspire (32 bits : ARM9/ARMv5 @120MHz - Ndless + MicroPython)
  9. 0,715s : NumWorks N0110 (Delta / Omega + KhiCAS Micropython)
  10. 0,794s : TI-Nspire CX (révisions A-V) (32 bits : ARM9/ARMv5 @132MHz - Ndless + KhiCAS Micropython)
  11. 0,99s : TI-Nspire CX CR4+ (révisions W+) (32 bits : ARM9/ARMv5 @156MHz - Ndless + MicroPython)
  12. 1,17s : NumWorks N0100 (32 bits : Cortex-M4/ARMv7 @100MHz)
  13. 1,18s : TI-Nspire CX CR4+ (révisions W+) (32 bits : ARM9/ARMv5 @156MHz - Ndless + KhiCAS Micropython)
  14. 1,58s : Casio Graph 90+E / fx-CG50 (32 bits : SH4 @117,96MHz)
  15. 3,04s : Casio Graph 35+E II / fx-9750/9860GIII (32 bits : SH4 @58,98 - CasioPython)
  16. 4,39s : Casio Graph 35+E II / fx-9750/9860GIII (32 bits : SH4 @58,98MHz)
  17. 4,42s : HP Prime G2 (32 bits : Cortex-A7/ARMv7 @528MHz CAS)
  18. 4,89s : Casio Graph 35/75+E / 35/75/95 / fx-9750/9860GII (32 bits : SH4 @29,49MHz - CasioPython)
  19. 5,24s : Casio Graph 35/75/85/95 / fx-9750/9860GII / fx-9860G (32 bits : SH3 @29,49MHz - CasioPython)
  20. 8,1s : TI-83 Premium CE + TI-Python (8 + 32 bits : eZ80 @48MHz + Cortex-M0+/ARMv6 @48MHz)
  21. 8,91s : TI-83 Premium CE Edition Python / TI-84 Plus CE Python Edition (8 + 32 bits : eZ80 @48MHz + Cortex-M0+/ARMv6 @48MHz)
  22. 9,22s : TI-82 Advanced Edition Python
  23. 11,26s : TI-83 Premium CE + TI-Python (8 + 32 bits : eZ80 @48MHz + Cortex-M0+/ARMv6 @48MHz CircuitPython)
  24. 11,62s : TI-Nspire CX II (32 bits : ARM9/ARMv5 @396MHz - Ndless + KhiCAS compatibilité Python)
  25. 16,05s : HP Prime G1 (32 bits : ARM9/ARMv5 @400MHz CAS)
  26. 32,76s : Casio Graph 90+E / fx-CG50 (32 bits : SH4 @117,96MHz - KhiCAS)
  27. 36,26s : TI-Nspire CX (révisions A-V) (32 bits : ARM9/ARMv5 @132MHz - Ndless + KhiCAS compatibilité Python)
  28. 42,75s : NumWorks N0110 (Delta / Omega + KhiCAS compatibilité Python)
  29. 53,24s : TI-Nspire CX CR4+ (révisions W+) (32 bits : ARM9/ARMv5 @156MHz - Ndless + KhiCAS compatibilité Python)
  30. 91,71s : Casio Graph 35+E II / fx-9750/9860GIII (32 bits : SH4 @58,98MHz - KhiCAS)
  31. 102,04s : Casio fx-CG10/20 (32 bits : SH4 @58,98MHz - KhiCAS)
  1. 0,171s : HP Prime G2 (32 bits : Cortex-A7/ARMv7 @528MHz Python)
  2. 0,206s : TI-Nspire CX II (32 bits : ARM9/ARMv5 @396MHz overclocké @468MHz NoverII - Ndless + MicroPython)
  3. 0,263s : TI-Nspire CX II (32 bits : ARM9/ARMv5 @396MHz overclocké @468MHz NoverII - Ndless + KhiCAS Micropython)
  4. 0,382 : TI-Nspire CX II (32 bits : ARM9/ARMv5 @396MHz overclocké @468MHz NoverII)
  5. 0,42s : TI-Nspire CX (révisions A-V) (32 bits : ARM9/ARMv5 @132MHz overclocké @222MHz Nover - Ndless + MicroPython)
  6. 0,449s : HP Prime G1 (32 bits : ARM9/ARMv5 @400MHz Python)
  7. 0,511s : TI-Nspire CX (révisions A-V) (32 bits : ARM9/ARMv5 @132MHz overclocké @222MHz Nover - Ndless + KhiCAS Micropython)
  8. 0,57s : TI-Nspire (32 bits : ARM9/ARMv5 overclocké @120MHz @150MHz Nover - Ndless + MicroPython)
  9. 0,58s : Casio Graph 35/75+E / 35/75/95 / fx-9750/9860GII (32 bits : SH4 @29,49MHz overclocké @267,78MHz Ftune2 - CasioPython)
  10. 0,581s : NumWorks N0110 (32 bits : Cortex-M7/ARMv7 @216MHz)
  11. 0,59s : Casio Graph 35+E II / fx-9750/9860GIII (32 bits : SH4 @58,98MHz overclocké @274,91MHz Ftune3 - CasioPython)
  12. 0,63s : TI-Nspire CX CR4+ (révisions W+) (32 bits : ARM9/ARMv5 @156MHz overclocké @216MHz Nover - Ndless + MicroPython)
  13. 0,715s : NumWorks N0110 (Delta / Omega + KhiCAS Micropython)
  14. 0,821s : TI-Nspire CX CR4+ (révisions W+) (32 bits : ARM9/ARMv5 @156MHz overclocké @216MHz Nover - Ndless + KhiCAS Micropython)
  15. 0,86s : Casio Graph 35+E II / fx-9750/9860GIII (32 bits : SH4 @58,98MHz overclocké @274,91MHz Ftune3)
  16. 1,08s : Casio Graph 90+E / fx-CG50 (32 bits : SH4 @117,96MHz overclocké @270,77MHz Ptune3)
  17. 1,17s : NumWorks N0100 (32 bits : Cortex-M4/ARMv7 @100MHz)
  18. 1,688s : Casio Graph 35/75/85/95 / fx-9750/9860GII / fx-9860G (32 bits : SH3 @29,49MHz overclocké @117,96MHz Ftune - CasioPython)
  19. 4,42s : HP Prime G2 (32 bits : Cortex-A7/ARMv7 @528MHz CAS)
  20. 8,1s : TI-83 Premium CE + TI-Python (8 + 32 bits : eZ80 @48MHz + Cortex-M0+/ARMv6 @48MHz)
  21. 8,91s : TI-83 Premium CE Edition Python / TI-84 Plus CE Python Edition (8 + 32 bits : eZ80 @48MHz + Cortex-M0+/ARMv6 @48MHz)
  22. 9,22s : TI-82 Advanced Edition Python
  23. 9.964s : TI-Nspire CX II (32 bits : ARM9/ARMv5 @396MHz overclocké @468MHz NoverII - Ndless + KhiCAS compatibilité Python)
  24. 11,26s : TI-83 Premium CE + TI-Python (8 + 32 bits : eZ80 @48MHz + Cortex-M0+/ARMv6 @48MHz CircuitPython)
  25. 16,05s : HP Prime G1 (32 bits : ARM9/ARMv5 @400MHz CAS)
  26. 19,06s : Casio Graph 35+E II / fx-9750/9860GIII (32 bits : SH4 @58,98MHz overclocké @274,91MHz Ftune3 - KhiCAS)
  27. 22,77s : Casio Graph 90+E / fx-CG50 (32 bits : SH4 @117,96MHz overclocké @270,77MHz Ptune3 - KhiCAS)
  28. 29,20s : TI-Nspire CX (révisions A-V) (32 bits : ARM9/ARMv5 @132MHz overclocké @222MHz Nover - Ndless + KhiCAS compatibilité Python)
  29. 30,85s : Casio fx-CG10/20 (32 bits : SH4 @58,98MHz overclocké @267,78MHz Ptune2 - KhiCAS)
  30. 42,75s : NumWorks N0110 (Delta / Omega + KhiCAS compatibilité Python)
  31. 53,24s : TI-Nspire CX CR4+ (révisions W+) (32 bits : ARM9/ARMv5 @156MHz overclocké @216MHz Nover - Ndless + KhiCAS compatibilité Python)




G2) Python82 : Nombres flottants et performances

Go to top

Poursuivons l'étude du moteur de calcul numérique du Micropython en question, avec cette fois-ci les nombres en virgule flottante dits flottants.

Ce type de donnée représente les nombres non entiers sous la forme
$mathjax$M\times 2^{E-E_{min}}$mathjax$
, avec :
  • M, un nombre entier relatif dit mantisse
  • Emin, nombre entier négatif indique l'exposant minimal pouvant être codé
  • E, nombre entier naturel codant l'exposant

Explorons donc ce codage à l'aide des fonctions suivantes :
Code: Select all
def precm(b):
  k,b=0,float(b)
  while 1+b**-k-1>0:
    k+=1
  return k

def prece():
  a=-1
  while 2.**a>0:
    a*=2
  while 2.**a==0:
    a+=1
  b=1
  while str(2.**b)[0:3]!='inf':
    b*=2
  while str(2.**b)[0:3]=='inf':
    b-=1
  return [a,b]


Pas de surprise ici, l'appel precm(2) nous répond que le moteur travaille en virgule flottante avec des mantisses dont la précision est codée sur 53 bits, permettant environ 16 chiffres significatifs en écriture décimale (precm(10)), et auxquels il faut bien évidemment rajouter 1 bit de signe.
L'appel prece() nous indique quant à lui que les valeurs codables pour les exposants dans la formule vont de -1075 à +1023.
Il s'agit du standard double précision du Python (64 bits), un bon choix pour le contexte scientifique du lycée.

Égalité donc là-dessus, voyons donc plutôt les performances du Python dans le contexte des calculs flottants, et vérifions si elles confirment ou pas la très légère baisse en performances notée plus haut.

Nous utiliserons pour cela le script suivant, petit algorithme de seuil dans le contexte d'une suite récurrente, niveau Première :
Code: Select all
try:
  from time import *
except:
  pass

def hastime():
  try:
    monotonic()
    return True
  except:
    return False

def seuil(d):
  timed,n=hastime(),0
  start,u=0 or timed and monotonic(),2.
  d=d**2
  while (u-1)**2>=d:
    u=1+1/((1-u)*(n+1))
    n=n+1
  return [(timed and monotonic() or 1)-start,n,u]


Donc pour un appel de seuil(0.008) la TI-82 Advanced Edition Python met en moyenne dans les 4,01s, contre 3,99s pour la TI-83 Premium CE Edition Python.

Cela semble donc confirmer un recul général des performances en Python, bien que très léger et apparemment encore plus dans le cadre du calcul flottant.
  1. 0,087s : HP Prime G2 (32 bits : Cortex-A7/ARMv7 @528MHz Python)
  2. 0,258s : HP Prime G1 (32 bits : ARM9/ARMv5 @400MHz Python)
  3. 0,297s : TI-Nspire CX II (32 bits : ARM9/ARMv5 @396MHz)
  4. 0,376s : HP Prime G2 (32 bits : Cortex-A7/ARMv7 @528MHz CAS)
  5. 0,498s : NumWorks N0110 (32 bits : Cortex-M7/ARMv7 @216MHz)
  6. 0,785s : NumWorks N0100 (32 bits : Cortex-M4/ARMv7 @100MHz)
  7. 1,61s : HP Prime G1 (32 bits : ARM9/ARMv5 @400MHz CAS)
  8. 3,27s : Casio Graph 90+E (32 bits : SH4 @117,96MHz)
  9. 3,99s : TI-83 Premium CE Edition Python (8 + 32 bits : eZ80 @48MHz + Cortex-M0+/ARMv6 @48MHz)
  10. 4,01s : TI-82 Advanced Edition Python
  11. 9,21s : Casio Graph 35+E II (32 bits : SH4 @58,98MHz)
  1. 0,087s : HP Prime G2 (32 bits : Cortex-A7/ARMv7 @528MHz Python)
  2. 0,258s : HP Prime G1 (32 bits : ARM9/ARMv5 @400MHz Python)
  3. 0,297s : TI-Nspire CX II (32 bits : ARM9/ARMv5 @396MHz)
  4. 0,376s : HP Prime G2 (32 bits : Cortex-A7/ARMv7 @528MHz CAS)
  5. 0,609s : TI-Nspire CX (révisions A-V) (32 bits : ARM9/ARMv5 @132MHz - Ndless + KhiCAS Micropython)
  6. 0,498s : NumWorks N0110 (32 bits : Cortex-M7/ARMv7 @216MHz)
  7. 0,544s : NumWorks N0110 (Delta / Omega + KhiCAS Micropython)
  8. 0,785s : NumWorks N0100 (32 bits : Cortex-M4/ARMv7 @100MHz)
  9. 0,868s : TI-Nspire CX CR4+ (révisions W+) (32 bits : ARM9/ARMv5 @156MHz - Ndless + KhiCAS Micropython)
  10. 1,61s : HP Prime G1 (32 bits : ARM9/ARMv5 @400MHz CAS)
  11. 3,27s : Casio Graph 90+E (32 bits : SH4 @117,96MHz)
  12. 3,99s : TI-83 Premium CE Edition Python (8 + 32 bits : eZ80 @48MHz + Cortex-M0+/ARMv6 @48MHz)
  13. 4,01s : TI-82 Advanced Edition Python
  14. 5,45s : TI-Nspire CX (révisions A-V) (32 bits : ARM9/ARMv5 @132MHz - Ndless + KhiCAS compatibilité Python)
  15. 6,69s : NumWorks N0110 (Delta / Omega + KhiCAS compatibilité Python)
  16. 7,63s : TI-Nspire CX CR4+ (révisions W+) (32 bits : ARM9/ARMv5 @156MHz - Ndless + KhiCAS compatibilité Python
  17. 9,21s : Casio Graph 35+E II (32 bits : SH4 @58,98MHz)
  1. 0,087s : HP Prime G2 (32 bits : Cortex-A7/ARMv7 @528MHz Python)
  2. 0,258s : HP Prime G1 (32 bits : ARM9/ARMv5 @400MHz Python)
  3. 0,297s : TI-Nspire CX II (32 bits : ARM9/ARMv5 @396MHz)
  4. 0,376s : HP Prime G2 (32 bits : Cortex-A7/ARMv7 @528MHz CAS)
  5. 0,396s : TI-Nspire CX (révisions A-V) (32 bits : ARM9/ARMv5 @132MHz overclocké @222MHz Nover - Ndless + KhiCAS Micropython)
  6. 0,498s : NumWorks N0110 (32 bits : Cortex-M7/ARMv7 @216MHz)
  7. 0,544s : NumWorks N0110 (Delta / Omega + KhiCAS Micropython)
  8. 0,65s : TI-Nspire CX CR4+ (révisions W+) (32 bits : ARM9/ARMv5 @156MHz overclocké @216MHz Nover - Ndless + KhiCAS Micropython)
  9. 0,785s : NumWorks N0100 (32 bits : Cortex-M4/ARMv7 @100MHz)
  10. 1,61s : HP Prime G1 (32 bits : ARM9/ARMv5 @400MHz CAS)
  11. 3,27s : Casio Graph 90+E (32 bits : SH4 @117,96MHz)
  12. 3,99s : TI-83 Premium CE Edition Python (8 + 32 bits : eZ80 @48MHz + Cortex-M0+/ARMv6 @48MHz)
  13. 4,01s : TI-82 Advanced Edition Python
  14. 4,13s : TI-Nspire CX (révisions A-V) (32 bits : ARM9/ARMv5 @132MHz overclocké @222MHz Nover - Ndless + KhiCAS compatibilité Python)
  15. 6,69s : NumWorks N0110 (Delta / Omega + KhiCAS compatibilité Python)
  16. 7,19s : TI-Nspire CX CR4+ (révisions W+) (32 bits : ARM9/ARMv5 @156MHz overclocké @216MHz Nover - Ndless + KhiCAS compatibilité Python)
  17. 9,21s : Casio Graph 35+E II (32 bits : SH4 @58,98MHz)
  1. 0,087s : HP Prime G2 (32 bits : Cortex-A7/ARMv7 @528MHz Python)
  2. 0,258s : HP Prime G1 (32 bits : ARM9/ARMv5 @400MHz Python)
  3. 0,297s : TI-Nspire CX II (32 bits : ARM9/ARMv5 @396MHz)
  4. 0,376s : HP Prime G2 (32 bits : Cortex-A7/ARMv7 @528MHz CAS)
  5. 0,498s : NumWorks N0110 (32 bits : Cortex-M7/ARMv7 @216MHz)
  6. 0,785s : NumWorks N0100 (32 bits : Cortex-M4/ARMv7 @100MHz)
  7. 1,61s : HP Prime G1 (32 bits : ARM9/ARMv5 @400MHz CAS)
  8. 3,27s : Casio Graph 90+E / fx-CG50 (32 bits : SH4 @117,96MHz)
  9. 3,73s : TI-83 Premium CE + TI-Python (8 + 32 bits : eZ80 @48MHz + Cortex-M0+/ARMv6 @48MHz)
  10. 3,99s : TI-83 Premium CE Edition Python / TI-84 Plus CE Python Edition (8 + 32 bits : eZ80 @48MHz + Cortex-M0+/ARMv6 @48MHz)
  11. 4,01s : TI-82 Advanced Edition Python
  12. 9,21s : Casio Graph 35+E II / fx-9750/9860GIII (32 bits : SH4 @58,98MHz)
  1. 0,025s : TI-Nspire CX II (32 bits : ARM9/ARMv5 @396MHz - Ndless + KhiCAS Micropython)
  2. 0,087s : HP Prime G2 (32 bits : Cortex-A7/ARMv7 @528MHz Python)
  3. 0,232s : TI-Nspire CX II (32 bits : ARM9/ARMv5 @396MHz - Ndless + MicroPython)
  4. 0,258s : HP Prime G1 (32 bits : ARM9/ARMv5 @400MHz Python)
  5. 0,297s : TI-Nspire CX II (32 bits : ARM9/ARMv5 @396MHz)
  6. 0,376s : HP Prime G2 (32 bits : Cortex-A7/ARMv7 @528MHz CAS)
  7. 0,47s : TI-Nspire (32 bits : ARM9/ARMv5 @120MHz - Ndless + MicroPython)
  8. 0,48s : TI-Nspire CX (révisions A-V) (32 bits : ARM9/ARMv5 @132MHz - Ndless + MicroPython)
  9. 0,498s : NumWorks N0110 (32 bits : Cortex-M7/ARMv7 @216MHz)
  10. 0,544s : NumWorks N0110 (Delta / Omega + KhiCAS Micropython)
  11. 0,609s : TI-Nspire CX (révisions A-V) (32 bits : ARM9/ARMv5 @132MHz - Ndless + KhiCAS Micropython)
  12. 0,68s : TI-Nspire CX CR4+ (révisions W+) (32 bits : ARM9/ARMv5 @156MHz - Ndless + MicroPython)
  13. 0,785s : NumWorks N0100 (32 bits : Cortex-M4/ARMv7 @100MHz)
  14. 0,868s : TI-Nspire CX CR4+ (révisions W+) (32 bits : ARM9/ARMv5 @156MHz - Ndless + KhiCAS Micropython)
  15. 1,61s : HP Prime G1 (32 bits : ARM9/ARMv5 @400MHz CAS)
  16. 1,909s : TI-Nspire CX II (32 bits : ARM9/ARMv5 @396MHz - Ndless + KhiCAS compatibilité Python)
  17. 3,27s : Casio Graph 90+E / fx-CG50 (32 bits : SH4 @117,96MHz)
  18. 3,73s : TI-83 Premium CE + TI-Python (8 + 32 bits : eZ80 @48MHz + Cortex-M0+/ARMv6 @48MHz)
  19. 3,9s : Casio Graph 35+E II / fx-9750/9860GIII (32 bits : SH4 @58,98 - CasioPython)
  20. 3,99s : TI-83 Premium CE Edition Python / TI-84 Plus CE Python Edition (8 + 32 bits : eZ80 @48MHz + Cortex-M0+/ARMv6 @48MHz)
  21. 4s : Casio Graph 35/75+E / 35/75/95 / fx-9750/9860GII (32 bits : SH4 @29,49MHz - CasioPython)
  22. 4,01s : TI-82 Advanced Edition Python
  23. 4,4s : TI-83 Premium CE + TI-Python (8 + 32 bits : eZ80 @48MHz + Cortex-M0+/ARMv6 @48MHz CircuitPython)
  24. 5,29s : Casio Graph 35/75/85/95 / fx-9750/9860GII / fx-9860G (32 bits : SH3 @29,49MHz - CasioPython)
  25. 5,45s : TI-Nspire CX (révisions A-V) (32 bits : ARM9/ARMv5 @132MHz - Ndless + KhiCAS compatibilité Python)
  26. 5,48s : Casio Graph 90+E / fx-CG50 (32 bits : SH4 @117,96MHz - KhiCAS)
  27. 6,69s : NumWorks N0110 (Delta / Omega + KhiCAS compatibilité Python)
  28. 9,21s : Casio Graph 35+E II / fx-9750/9860GIII (32 bits : SH4 @58,98MHz)
  29. 13,93s : Casio Graph 35+E II / fx-9750/9860GIII (32 bits : SH4 @58,98MHz - KhiCAS)
  30. 7,63s : TI-Nspire CX CR4+ (révisions W+) (32 bits : ARM9/ARMv5 @156MHz - Ndless + KhiCAS compatibilité Python)
  31. 15,05s : Casio fx-CG10/20 (32 bits : SH4 @58,98MHz - KhiCAS)
  1. 0,022s : TI-Nspire CX II (32 bits : ARM9/ARMv5 @396MHz overclocké @468MHz NoverII - Ndless + KhiCAS Micropython)
  2. 0,087s : HP Prime G2 (32 bits : Cortex-A7/ARMv7 @528MHz Python)
  3. 0,142s : TI-Nspire CX II (32 bits : ARM9/ARMv5 @396MHz overclocké @468MHz NoverII - Ndless + MicroPython)
  4. 0,257s : TI-Nspire CX II (32 bits : ARM9/ARMv5 @396MHz overclocké @468MHz NoverII)
  5. 0,258s : HP Prime G1 (32 bits : ARM9/ARMv5 @400MHz Python)
  6. 0,27s : TI-Nspire CX (révisions A-V) (32 bits : ARM9/ARMv5 @132MHz overclocké @222MHz Nover - Ndless + MicroPython)
  7. 0,376s : HP Prime G2 (32 bits : Cortex-A7/ARMv7 @528MHz CAS)
  8. 0,38s : TI-Nspire (32 bits : ARM9/ARMv5 overclocké @120MHz @150MHz Nover - Ndless + MicroPython)
  9. 0,396s : TI-Nspire CX (révisions A-V) (32 bits : ARM9/ARMv5 @132MHz overclocké @222MHz Nover - Ndless + KhiCAS Micropython)
  10. 0,498s : NumWorks N0110 (32 bits : Cortex-M7/ARMv7 @216MHz)
  11. 0,53s : TI-Nspire CX CR4+ (révisions W+) (32 bits : ARM9/ARMv5 @156MHz overclocké @216MHz Nover - Ndless + MicroPython)
  12. 0,544s : NumWorks N0110 (Delta / Omega + KhiCAS Micropython)
  13. 0,59s : Casio Graph 35/75+E / 35/75/95 / fx-9750/9860GII (32 bits : SH4 @29,49MHz overclocké @267,78MHz Ftune2 - CasioPython)
  14. 0,65s : TI-Nspire CX CR4+ (révisions W+) (32 bits : ARM9/ARMv5 @156MHz overclocké @216MHz Nover - Ndless + KhiCAS Micropython)
  15. 0,785s : NumWorks N0100 (32 bits : Cortex-M4/ARMv7 @100MHz)
  16. 0,79s : Casio Graph 35+E II / fx-9750/9860GIII (32 bits : SH4 @58,98MHz overclocké @274,91MHz Ftune3 - CasioPython)
  17. 1,589s : TI-Nspire CX II (32 bits : ARM9/ARMv5 @396MHz overclocké @468MHz NoverII - Ndless + KhiCAS compatibilité Python)
  18. 1,61s : HP Prime G1 (32 bits : ARM9/ARMv5 @400MHz CAS)
  19. 1,86s : Casio Graph 35+E II / fx-9750/9860GIII (32 bits : SH4 @58,98MHz overclocké @274,91MHz Ftune3)
  20. 1,876s : Casio Graph 35/75/85/95 / fx-9750/9860GII / fx-9860G (32 bits : SH3 @29,49MHz overclocké @117,96MHz Ftune - CasioPython)
  21. 2,15s : Casio Graph 90+E / fx-CG50 (32 bits : SH4 @117,96MHz overclocké @270,77MHz Ptune3)
  22. 2,96s : Casio Graph 35+E II / fx-9750/9860GIII (32 bits : SH4 @58,98MHz overclocké @274,91MHz Ftune3 - KhiCAS)
  23. 3,65s : Casio Graph 90+E / fx-CG50 (32 bits : SH4 @117,96MHz overclocké @270,77MHz Ptune3 - KhiCAS)
  24. 3,718s : Casio fx-CG10/20 (32 bits : SH4 @58,98MHz overclocké @267,78MHz Ptune2 - KhiCAS)
  25. 3,73s : TI-83 Premium CE + TI-Python (8 + 32 bits : eZ80 @48MHz + Cortex-M0+/ARMv6 @48MHz)
  26. 3,99s : TI-83 Premium CE Edition Python / TI-84 Plus CE Python Edition (8 + 32 bits : eZ80 @48MHz + Cortex-M0+/ARMv6 @48MHz)
  27. 4,01s : TI-82 Advanced Edition Python
  28. 4,13s : TI-Nspire CX (révisions A-V) (32 bits : ARM9/ARMv5 @132MHz overclocké @222MHz Nover - Ndless + KhiCAS compatibilité Python)
  29. 4,4s : TI-83 Premium CE + TI-Python (8 + 32 bits : eZ80 @48MHz + Cortex-M0+/ARMv6 @48MHz CircuitPython)
  30. 6,69s : NumWorks N0110 (Delta / Omega + KhiCAS compatibilité Python)
  31. 7,19s : TI-Nspire CX CR4+ (révisions W+) (32 bits : ARM9/ARMv5 @156MHz overclocké @216MHz Nover - Ndless + KhiCAS compatibilité Python)




G3) Python82 : Mémoire tas/heap - import gc

Go to top

Les interpréteurs MicroPython ou similaires qui tournent sur calculatrices font appel à différents types de mémoires :
  • La mémoire de stockage comme son nom l'indique stocke physiquement tes scripts Python. Nous confirmons en passant comme évoqué plus haut que comme sur TI-83 Premium CE Edition Python, tes scripts Python doivent être mis dans la mémoire RAM pour être utilisables, ce qui confirme hélas le problème de perte de données vu plus haut.
  • Le tas (heap) stocke, à l'exécution, le contenu des objets Python créés. Il limite donc la taille globale utilisée pour les données de ces différents objets.
  • La pile (stack) référence, à l'exécution, les objets Python créés. Sa capacité limite donc le nombre d'objets Python pouvant coexister simultanément en mémoire.

Sur calculatrices, c'est très souvent le heap qui est le facteur limitant lors de la conception de projets.

Nous avons justement la chance ici de disposer du module gc (garbage collector - ramasse miettes), avec plusieurs fonctions bien utiles :
  • gc.collect() pour nettoyer le heap en supprimant les valeurs d'objets Python qui ne sont plus référencées
  • gc.mem_alloc() pour connaître la consommation du heap en octets
  • gc.mem_free() pour connaître l'espace heap disponible en octets
Exécutons donc le petit script suivant afin de découvrir la taille de heap Python de la TI-82 Advanced Edition Python, et comparons au passage avec la TI-83 Premium CE Edition Python :
Code: Select all
import gc
a, f = gc.mem_alloc(), gc.mem_free()
(a, f, a + f)

Nous avons donc la même capacité heap de 19,968 Ko aussi bien sur TI-82 Advanced Edition Python que sur TI-83 Premium CE Edition Python, ces machines utilisant probablement le même matériel comme nous verrons plus loin.

Par contre, un avantage apparemment d'avoir moins de modules Python intégrés, c'est qu'à vide nous avons ici 19,328 Ko de heap effectivement disponibles, alors que c'est à peine plus de 17 Ko sur TI-83 Premium CE Edition Python.

Toutefois, toutes les calculatrices Python ne disposent pas du module gc. Afin de pouvoir faire des comparaisons équitables, construisons notre propre script de test d'estimation de la capacité heap à partir des informations suivantes sur les tailles des objets Python, du moins sur les plateformes 32 bits que sont à ce jour nos calculatrices :
  • pour un entier nul : 24 octets déjà...
  • pour un entier court non nul (codable sur 31 bits + 1 bit de signe) : 28 octets
  • pour un entier long :
    • 28 octets
    • + 4 octets pour chaque groupe de 30 bits utilisé par son écriture binaire au-delà des 31 bits précédents
  • pour une chaîne :
    • 49 octets
    • + 1 octet par caractère
  • pour une liste :
    • 64 octets
    • + 8 octets par élément
    • + les tailles de chaque élément
Nous allons donc tenter de remplir le heap avec plusieurs objets que nous allons faire grandir chacun son tour jusqu'à déclenchement d'une erreur, et retourner la capacité maximale que nous avons réussi à consommer.
Nous récupérerons de plus la plus grand taille d'objet que nous avons réussi à utiliser lors de ce test, on t'explique de suite.

Voici donc un script en ce sens :
Code: Select all
def size(o):
  t = type(o)
  s = t == str and 49 + len(o)
  if t == int:
    s = 24
    while o:
      s += 4
      o >>= 30
  elif t == list:
    s = 64 + 8*len(o)
    for so in o:
      s += size(so)
  return s

def mem(v=1):
  try:
    l=[]
    try:
      l.append(0)
      l.append(0)
      l.append("")
      l[2] += "x"
      l.append(0)
      l.append(0)
      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[3], l[4] = mem(v)
      except:
        pass
      return l[0] + l[3], max(l[0], l[4])
  except:
    return 0, 0

def testmem():
  m1, m2 = 0, 0
  while 1:
    t1, t2 = mem(0)
    if t1 > m1 or t2 > m2:
      m1 = max(t1, m1)
      m2 = max(t2, m2)
      input(str((m1,m2)))

On trouve maintenant sur TI-82 Advanced Edition Python une capacité heap utilisable de 19,705 Ko un peu supérieure à la mesure précédente, à laquelle bien sûr il faut rajouter la consommation du script... donc en gros c'est quasiment la totalité de la capacité heap qui est utilisable ici.
Nous avons ici en prime une autre valeur de 8,444 Ko, correspondant à la taille du plus gros objet qui a pu être créé au cours du test et donc au plus grand espace libre disponible de façon contiguë dans le heap.
  1. 252,1 Mo : HP Prime G2
  2. 15,6 Mo : HP Prime G1
  3. 2,068 Mo : TI-Nspire CX II
  4. 1,033 Mo : Casio Graph 90+E
  5. 101,262 Ko : Casio Graph 35+E II
  6. 33,582 Ko : NumWorks
  7. 19,968 Ko : TI-82 Advanced Edition Python
  8. 18,354 Ko : TI-83 Premium CE Edition Python
  1. 252,1 Mo : HP Prime G2
  2. 15,6 Mo : HP Prime G1
  3. 4,100 Mo : TI-Nspire CX (Ndless + KhiCAS)
  4. 2,068 Mo : TI-Nspire CX II
  5. 1,033 Mo : Casio Graph 90+E
  6. 101,262 Ko : Casio Graph 35+E II
  7. 98,928 Ko : NumWorks (firmware Omega)
  8. 64,954 Ko : NumWorks N0110 (firmware Delta / Omega + appli KhiCAS)
  9. 33,582 Ko : NumWorks
  10. 25,235 Ko : NumWorks N0110 (firmware Delta)
  11. 19,968 Ko : TI-82 Advanced Edition Python
  12. 18,354 Ko : TI-83 Premium CE Edition Python
  1. 252,1 Mo : HP Prime G2
  2. 15,6 Mo : HP Prime G1
  3. 2,068 Mo : TI-Nspire CX II
  4. 1,033 Mo : Casio Graph 90+E / fx-CG50
  5. 101,262 Ko : Casio Graph 35+E II / fx-9750/9860GIII
  6. 33,582 Ko : NumWorks
  7. 20,839 Ko : TI-83 Premium CE + TI-Python
  8. 19,968 Ko : TI-82 Advanced Edition Python
  9. 18,354 Ko : TI-83 Premium CE Edition Python / TI-84 Plus CE Python Edition
  1. 252,1 Mo : HP Prime G2
  2. 15,6 Mo : HP Prime G1
  3. 4,100 Mo : TI-Nspire CX / CX II (Ndless + KhiCAS CX / KhiCAS CX II)
  4. 2,068 Mo : TI-Nspire CX II
  5. 2,050 Mo : TI-Nspire (Ndless + MicroPython)
  6. 1,033 Mo : Casio Graph 90+E / fx-CG50
  7. 258,766 Ko : Casio Graph 35/75+E / 35/75/95 / fx-9750/9860GII (SH4 - appli CasioPython)
  8. 101,262 Ko : Casio Graph 35+E II / fx-9750/9860GIII
  9. 98,928 Ko : NumWorks (firmware Omega)
  10. 64,954 Ko : NumWorks N0110 (firmware Omega + appli KhiCAS)
  11. 33,582 Ko : NumWorks
  12. 32,648 Ko : Casio Graph 35+E II / 35/75/85/95(SH3) / fx-9750/9860GIII / fx-9750/9860GII(SH3) / fx-9860G (appli CasioPython)
  13. 25,235 Ko : NumWorks N0110 (firmware Delta)
  14. 23,685 Ko : TI-83 Premium CE + TI-Python (firmware tiers)
  15. 20,839 Ko : TI-83 Premium CE + TI-Python
  16. 19,968 Ko : TI-82 Advanced Edition Python
  17. 18,354 Ko : TI-83 Premium CE Edition Python / TI-84 Plus CE Python Edition




G4) Python82 : Mémoire pile/stack

Go to top

Passons donc maintenant à la pile (stack).

Tentons donc de déclencher une consommation massive de stack, afin de pouvoir comparer ici encore TI-82 Advanced Edition Python et TI-83 Premium CE Edition Python. Une situation très simple qui peut être grande consommatrice de stack c'est la récursivité, soit les fonctions qui se rappellent elles-mêmes. En ce sens, prenons le script suivant :
Code: Select all
def compte_r(n):
  return n>0 and 1 + compte_r(n-1)

def test(f):
  n = 0
  try:
    while 1:
      n = f(n) + 1
  except Exception as e:
    print(e)
  return n

L'appel test(compte_r) atteint donc 28 niveaux de récursion avant erreur, aussi bien sur TI-82 Advanced Edition Python que TI-83 Premium CE Edition Python.

  1. 202 : TI-Nspire CX II
  2. 129 : NumWorks
  3. 99 : HP Prime G2
  4. 82 : Casio Graph 90+E / 35+E II
  5. 82 : HP Prime G1
  6. 28 : TI-82 Advanced Edition Python / TI-83 Premium CE Edition Python
  1. 202 : TI-Nspire CX II
  2. 155 : TI-Nspire CX (Ndless + KhiCAS)
  3. 129 : NumWorks
  4. 126 : NumWorks (firmware Delta / Omega + appli KhiCAS)
  5. 99 : HP Prime G2
  6. 82 : Casio Graph 90+E / 35+E II
  7. 82 : HP Prime G1
  8. 28 : TI-82 Advanced Edition Python / TI-83 Premium CE Edition Python
  1. 202 : TI-Nspire CX II
  2. 129 : NumWorks
  3. 99 : HP Prime G2
  4. 82 : Casio Graph 90+E / 35+E II / fx-CG50 / fx-9750/9860GIII
  5. 82 : HP Prime G1
  6. 28 : TI-82 Advanced Edition Python / TI-83 Premium CE Edition Python / TI-84 Plus CE Python Edition
  7. 20 : TI-83 Premium CE + TI-Python
  1. 5362 : Casio Graph 35/75+E / 35/75/95 / fx-9750/9860GII (SH4 - appli CasioPython)
  2. 655 : Casio Graph 35+E II / 35/75/85/95(SH3) / fx-9750/9860GIII / fx-9750/9860GII(SH3) / fx-9860G (appli CasioPython)
  3. 202 : TI-Nspire CX II
  4. 155 : TI-Nspire CX / CX II (Ndless + KhiCAS CX / KhiCAS CX II)
  5. 130 : TI-Nspire (Ndless + MicroPython)
  6. 129 : NumWorks
  7. 126 : NumWorks (firmware Delta / Omega + appli KhiCAS)
  8. 99 : HP Prime G2
  9. 82 : Casio Graph 90+E / 35+E II / fx-CG50 / fx-9750/9860GIII
  10. 82 : HP Prime G1
  11. 28 : TI-82 Advanced Edition Python / TI-83 Premium CE Edition Python / TI-84 Plus CE Python Edition
  12. 20 : TI-83 Premium CE + TI-Python
  13. 15 : TI-83 Premium CE + TI-Python




G5) Python82 : Modules intégrés

Go to top

Passons maintenant enfin aux modules Python disponibles sur TI-82 Advanced Edition Python. Au menu nous ne trouvons que des modules standard :
  • math
  • random
  • time

Histoire d'être sûr de ne rien rater on peut également appeler help("modules"). Ce qui nous permet de rajouter quelques autres modules mais toujours standard :
  • builtins
  • array
  • collections
  • gc
  • sys

Par rapport à la TI-83 Premium CE Edition Python on dirait que tous les modules propriétaires de Texas Instruments ont été supprimés, notamment :
  • ti_graphics, module de tracé par pixels
  • ti_plotlib, module de tracé dans un repère
  • ti_hub, module de connectivité pour les projets STEM
  • ti_system, module qui permettait à la fois de :
    • afficher du texte à la ligne de son choix
    • attendre l'appui sur la touche
      annul
    • tester les appuis sur les touches clavier
    • exporter des listes Python en tant que variables accessibles par les autres applications de la calculatrice
    • importer des listes créées par les autres applications de la calculatrice en tant que listes Python

Toutes ces possibilités seraient donc exclues sur TI-82 Advanced Edition Python.


TI
82A
Python
TI
83PCE
+
Python
TI
83PCE
Python
TI
84+CE
Python
TI
Nspire
CX II
Casio
Graph
90+E
35+EII
Num
Works
HP
Prime
TI
83PCE
+
Python

tiers
TI-
Nspire
CX

Ndless
χCAS
Casio
Graph
35/75+E
35+EII

CasioPython
Num
Works

Ω Δ
Num
Works

Ω Δ
χCAS
builtins
array
(u)binascii
board
cmath
(u)collections
(u)ctypes
(u)errno
gc
(u)hashlib
(u)heapq
(u)io
(u)json
linalg
math
matplotlib
.pyplot
micropython
numpy
os
(u)random
(u)re
storage
(u)struct
sys
time
(u)timeq
turtle
(u)zlib
TOTAL


.
.
.

.
.

.
.
.
.
.

.
.
.
.
.

.
.
.


.
.
.
8


.
.
.

.
.

.
.
.
.
.

.
.
.
.
.

.
.
.


.
.
.
8


.
.
.

.
.

.
.
.
.
.

.
+
.
.
.

.
.
.


.
+
.
8+2


.
.
.

.
.

.
.
.
.
.

.
+
.
.
.

.
.
.


.
+
.
10



.







.
.
.

.
+

.
.


.
.


.
.
.
16+1

.
.
.
.
.
.
.
.
.
.
.
.
.



.
.
.

.
.
.
.
.
.

.
6

.
.
.

.
.
.
.
.
.
.
.
.




.
.

.
.
.
.

.

.
9


.
.


.



.

.
+

.
+

.
.


.


.

.
.
17


.



.
.

.
.
.
.
.

.
.

.


.

.


.
.
.
13


.
.

.
.
.

.
.
.
.
.

.
.

.
.
.
.
.
.

.
.
.
.
7

.

.









+

.






.


.
.


23


.
.

.
.
.

.
.
.
.
.

.
.

.
.

.
.
.

.
.
.
.
8

.
.
.

.
.
.
.
.
.
.
.
.




.


.
.
.
.

.

.
10

.

.



.





+

.






.


.



23

Légende :
  • module intégré + disponible en mode examen
  • module intégré + interdit en mode examen
  • + module propriétaire équivalent + disponible en mode examen
  • + module propriétaire équivalent + interdit en mode examen
  • . module absent et sans équivalent


  1. 17 modules standard : HP Prime
  2. 16 modules standard : TI-Nspire CX II
  3. 9 modules standard : NumWorks
  4. 8 modules standard : TI-82 Advanced Edition Python / TI-83 Premium CE Edition Python
  5. 6 modules standard : Casio Graph 90+E / 35+E II
  1. 23 modules standard : TI-Nspire CX (Ndless + KhiCAS)
    NumWorks N0110 (Delta / Omega + KhiCAS)
  2. 17 modules standard : HP Prime
  3. 16 modules standard : TI-Nspire CX II
  4. 10 modules standard : NumWorks (Delta / Omega)
  5. 9 modules standard : NumWorks
  6. 8 modules standard : TI-82 Advanced Edition Python / TI-83 Premium CE Edition Python
  7. 6 modules standard : Casio Graph 90+E / 35+E II
  1. 17 modules standard : HP Prime
    TI-Nspire CX II
  2. 10 modules standard : TI-83 Premium CE Edition Python / TI-84 Plus CE Python Edition
  3. 9 modules standard : NumWorks
  4. 8 modules standard : TI-82 Advanced Edition Python / TI-83 Premium CE + TI-Python
  5. 6 modules standard : Casio Graph 90+E / 35+E II / fx-CG50 / fx-9750/9860GIII
  1. 23 modules standard : TI-Nspire CX / CX II (Ndless + KhiCAS CX / KhiCAS CX II)
    NumWorks N0110 (Delta / Omega + KhiCAS)
  2. 17 modules standard : HP Prime
    TI-Nspire CX II
  3. 13 modules standard : TI-83 Premium CE + TI-Python (firmware tiers)
  4. 10 modules standard : NumWorks (Delta / Omega)
    TI-83 Premium CE Edition Python / TI-84 Plus CE Python Edition
  5. 9 modules standard : NumWorks
  6. 8 modules standard : Casio Graph 35/75+E / 35+E II / fx-9750GII/GIII / fx-9860G/GII/GIII (appli CasioPython)
    TI-82 Advanced Edition Python / TI-83 Premium CE + TI-Python
  7. 7 modules standard : TI-Nspire (Ndless + micropython)
  8. 6 modules standard : Casio Graph 90+E / 35+E II / fx-CG50 / fx-9750/9860GIII





G6) Python82 : Modules additionnels PYMP

Go to top

Notons que la TI-83 Premium CE Edition Python supportait l'installation de modules additionnels, format propriétaire PYMP non documenté à ce jour. Sont disponibles :
  • des modules de tracé faisant appel à ti_graphics (ce_turtl, ce_box, ce_chart, ce_quivr)
  • des modules de connectivité faisant appel à ti_hub (microbit, ...)

Ces modules ont l'avantage de pouvoir être installés en mémoire d'archive, mais contrairement aux modules intégrés sont inacessibles en mode examen.

Donc nous avons testé, bonne nouvelle, les modules additionnels PYMP sont bien reconnus par l'application Python82 de la TI-82 Advanced Edition Python.

Toutefois à ce jour cela ne sert strictement à rien. Ces modules ont tous besoin soit de ti_graphics soit de ti_hub, modules ici manquants, et à ce jour il n'est pas possible de générer ses propres modules additionnels PYMP sans passer par Texas Instruments.




G7) Python82 : Codes CSI et "programmation Python en couleur" ?

Go to top

Bref comme nous venons de le voir aucun module de tracé sur TI-82 Advanced Edition Python. Il est donc impossible de commander l'allumage du moindre pixel.


La mention "La calculatrice pour initier tous les élèves de Seconde à la programmation Python en couleur" ne serait-elle pas alors un peu beaucoup exagérée, non ?

La seule chose qui pourrait ressembler à de la "programmation Python couleur", c'est la possibilité d'afficher du texte en couleur dans la console Python sur TI-83 Premium CE Edition Python, grâce aux codes CSI.

14049Bonne nouvelle, cela a été conservé sur TI-82 Advanced Edition Python : :D
Code: Select all
def color_str(s, cf, cb=7):
  return "\x1B[" + str(cf) + ";" + str(cb) + "m" + s

n = 16
s = ""

for cb in range(n):
  for cf in range(n):
    s += color_str("X", cf, cb)
  if cb % 2: s += "\n"

print(s)

Mais franchement, cela nous étonnerait beaucoup que Texas Instruments ait fait référence à cela...

Non en fait, à bien y repenser, la mention "La calculatrice pour initier tous les élèves de Seconde à la programmation Python en couleur" doit être littéralement à prendre au 1er degré dans sa forme la plus simple.

Nous ne l'avions clairement pas comprise comme cela au départ, mais elle met sans doute en avant ni plus ni moins que la simple possibilité de saisir et visualiser son code dans un éditeur gérant la coloration syntaxique.

Un argument marketing donc, probablement destiné à envoyer une pique à sa concurrente directe, la Casio Graph 35+E II trouvable à des prix similaires, mais qui à la différence dispose d'un écran monochrome.

Edit 2022: d'après les pages de TI qui semblent désormais clarifier cet aspect, c'est en effet bien la possibilité d'avoir l'éditeur en couleurs qui est mise en avant :)




G8) Python82 : Test touches clavier via sys.stdin ?

Go to top

Donc pas de module ti_system ici sur TI-82 Advanced Edition Python, et donc en théorie pas de moyen de tester les appuis de touches clavier si tu souhaites coder des interfaces ou même jeux en Python.

Historiquement, nous avions vu sur TI-83 Premium CE Edition Python que les appuis de touches clavier écrivaient dans le flux sys.stdin. Voici ce que ça donne, y compris avec les modificateurs
2nde
et
alpha
:
f(x)
fenêtre
zoom
trace
graphe
2nde
mode
suppr

\x1b[D
\x1b[H

\x1b[A
alpha
X,T,θ,n

Xx
stats

\x1b[B

\x1b[C
\x1b[F
math

aA
matrice

bB
prgm

cC
var
annul

[2K
◄►

dD
trig

pieE
résol

fF
□/□

gG
^

**hH

**2
sqrt() [1D
iI
,

,
E
jJ
(

(
{
kK
)

)
}
lL
/

/
e
mM
log

log(,10) [4D
10**() [1D
nN
7

7
oO
8

8
pP
9

9
qQ
×

*
[
rR
ln

log() [1D
exp() [1D
sS
4

4
tT
5

5
uU
6

6
vV
-

-
]
wW
sto→

=
\\
xX
1

1
yY
2

2
zZ
3

3
@
+

+
'
"
on
0

0
.

.:
(-)

-_?
entrée

\x1b[F


Il suffisait donc en théorie de lire la sortie du flux sys.stdin pour identifier les touches ou combinaisons de touches pressées. En pratique c'était toutefois plus complexe, la lecture étant bloquante, aucun module permettant de la reconfigurer en non-bloquante n'étant inclus, et la méthode .isatty() permettant de savoir si il y a des données à lire n'étant pas incluse elle non plus.

CaptainLuigi était arrivé malgré tout à du code qui commençait à être utilisable :
Code: Select all
from sys import *

def getkey():
  s = stdin.read(1)
  if s == "\x1B":
    s = stdin.read(3)
  return s


Et puis à compter de la mise à jour 5.5 cette possibilité n'avait plus été utilisée, puisque nous avions en remplacement l'appel officiel ti_system.wait_key().

Nous nous rendons compte hélas aujourd'hui que Texas Instruments semble avoir bloqué ce comportement à partir de la mise à jour 5.5 des TI-83 Premium CE Edition Python : les appuis de touches semblent ne plus rien écrire dans sys.stdin. Et malheureusement, c'est pareil sur la version 5.6.3 de la TI-82 Advanced Edition Python.

Bref jusqu'à preuve du contraire non, aucune possibilité de tester les appuis de touches clavier si tu souhaites coder des interfaces ou même jeux en Python sur ta TI-82 Advanced Edition Python. :'(




G9) Python82 : Bilan modules

Go to top

Nous avons donc comparé plus haut l'offre de modules Python standard.

Pour comparer la richesse de diverses implémentations Python, on ne peut pas se baser sur le nombre de modules différents offerts. En effet pour les modules propriétaires, certaines implémentations regroupent les fonctionnalités en un minimum de modules, alors que d'autres les répartissent entre de nombreux modules différents.

Tentons une autre approche incluant cette fois-ci les modules propriétaires avec le script suivant, explorant les modules pour en déterminer le nombre d'éléments :
Code: Select all
from autopfrm import *

pf = get_pf()
sh_inf = shell_infos(pf)

unsafe = ()
if pf == 4: #HP Prime
  unsafe = ('count','encode','endswith','find','format','index','islower','lstrip','replace','rfind','rindex','rsplit','rstrip','split','splitlines','startswith','strip','from_bytes','to_bytes','fromkeys','get','pop','setdefault','update','values','sort','__enter__','__exit__','read','readinto','readline','seek','write')
if pf == 5 or pf == 7 or pf == 9: #CasioPython / Nspire+NumWorks KhiCAS MicroPython
  unsafe = ('sys.argv', 'sys.path')

if pf >= 0:
  curline=0
  _p = print
  def print(*ls):
    global curline
    st=""
    for s in ls:
      if not(isinstance(s,str)):
        s=str(s)
      st=st+s
    stlines=1
    if sh_inf[1]:
        stlines += sh_inf[2]*int(len(st)/sh_inf[1])
    if curline+stlines>=sh_inf[0]:
      input("Input to continue:")
      curline=0
    _p(st)
    curline+=stlines

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):
  if str(obj).startswith("<module"): return False
  l = ()
  try: l = dir(obj)
  except: pass
  return len(l)

def explmodr(pitm, pitm_name_l=[], pitm_str_l=[], pitm_val_l=[], reset=True):
  global curline, found
  pitm_name=sstr(pitm)
  if(reset):
    curline=0
    found = []
    pitm_name_l=[pitm_name]
    pitm_str_l=[str(pitm)]
    pitm_val_l=[pitm]
  hd="."*(len(pitm_name_l)-1)
  c = 0
  l = sorted(dir(pitm))
  for i in range(len(l)):
    l[i] = (l[i], getattr(pitm, l[i]), str(l[i]))
  try:
    if not isinstanceof(pitm, str):
      for i in range(len(pitm)):
        l.append((pitm_name+'['+str(i)+']',pitm[i],str(pitm[i])))
  except: pass
  for itm in l:
    isFound = itm[0] in found
    c += not isFound
    isUnsafe = '.'.join(pitm_name_l + [itm[0]]) in unsafe or itm[0] in unsafe
    try:
      if isUnsafe: raise Exception
      print(hd+itm[0]+"="+str(itm[1]))
    except:
      print(hd+itm[0])
    if not isFound:
      found.append(itm[0])
    if not isUnsafe and isExplorable(itm[1]) and itm[1] not in pitm_val_l and itm[2] not in pitm_str_l:
      pitm_name_l2, pitm_val_l2, pitm_str_l2 = pitm_name_l.copy(), pitm_val_l.copy(), pitm_str_l.copy()
      pitm_name_l2.append(itm[0])
      pitm_val_l2.append(itm[1])
      pitm_str_l2.append(itm[2])
      c += explmodr(itm[1], pitm_name_l2, pitm_str_l2, pitm_val_l2, False)
  return c

def explmod(s):
  global found
  module = __import__(s)
  found = []
  return explmodr(module)
Code: Select all
# detects calculator Python platform
def get_pf():
  c256 = True
  try:
    if chr(256)==chr(0):
      # Xcas/KhiCAS Python compatibility
      if "HP" in version():
        return 13 # HP Prime
      else:
        if not white:
          return 12 # Graph 35+E II
        elif "Numworks" in version():
          return 10 # NumWorks
        elif "Nspire" in version():
          return 8 # Nspire
        else: # Graph 90+E
          return 11
  except:
    c256 = False
  try:
    import sys
    try:
      if sys.platform == "nspire":
        try: # Nspire Ndless
          import graphic
          return 7 # KhiCAS Micropython
        except: # MicroPython
          return 6
      elif sys.platform == "TI-Nspire":
        return 3 # Nspire CX II
      elif sys.platform == "numworks":
        return 9 # NumWorks KhiCAS Micropython
      elif sys.platform.startswith('TI-Python'):
        return 2 # 83P/84+ CE
    except: # Graph 35+E/USB / 75/85/95
      return 5
  except:
    pass
  if not c256:
    return 1 # Graph 90/35+E II
  try:
    import kandinsky
    return 0 # NumWorks
  except:
    try: # HP Prime
      import hpprime
      return 4
    except:
      pass
  return -1

#return get_pixel and set_pixel functions for the platform
gp_prime = lambda x, y: GETPIX_P(x, y)
sp_prime = lambda x, y, c: PIXON_P(x, y, c)
def get_pixel_functions(pf):
  gp, sp = lambda: None, lambda: None
  if pf == 0: # NumWorks
    import kandinsky
    gp, sp = kandinsky.get_pixel, kandinsky.set_pixel
  elif pf == 1: # Graph 90/35+E II
    import casioplot
    gp, sp = casioplot.get_pixel, casioplot.set_pixel
  elif pf == 2: # 83P/84+ CE
    import ti_graphics
    gp, sp = ti_graphics.getPixel, ti_graphics.setPixel
  elif pf == 3: # Nspire CX II
    pass
  elif pf == 4: # HP Prime
    import hpprime
    sp = hpprime.pixon
  elif pf == 6: # Nspire: Ndless MicroPython
    from nsp import Texture
    canvas = Texture(320, 240, 0)
    gp, sp = canvas.getPx, canvas.setPx
  elif pf == 7 or pf == 9: # Nspire/NumWorks: KhiCAS-MicroPython
    import graphic
    gp, sp = graphic.get_pixel, graphic.set_pixel
  elif pf == 13: # HP Prime
    gp, sp = gp_prime, sp_prime
  return gp, sp

#returns platform screen infos : width, height, color_mode/bits
def scr_infos(pf):
  #                                              uPy       uPy
  #                G352                CPy  uPy  KhiCAS--------------------->  CAS
  #           NW   G90  CE   CX2  HP   GXX  NS   NS   NS   NW   NW   G90  G352 HP
  l_vlines = (222, 192, 210, 212, 240, 064, 240, 222, 222, 222, 222, 192, 064, 240)
  l_vcols  = (320, 384, 320, 318, 320, 128, 320, 320, 320, 320, 320, 384, 128, 320)
  l_y0     = (000, 000, 030, 000, 000, 000, 000, 000, 000, 000, 000, 000, 000, 000)
  l_modes  = (000, 000, 000, 016, 032, 000, 016, 000, 016, 000, 016, 016, 001, 032)
  return l_vcols[pf], l_vlines[pf], l_y0[pf], l_modes[pf]

#returns platform shell infos : visible lines, visible columns, if larger strings are displayed on several lines or not
def shell_infos(pf):
  #NW small: [00] 12.5x30 -> 16   x 42
  #HP small: [03] 11.5x39 -> 15.5 x 45 [12] 14  x39 -> 18.5 x 45
  #HP big  : [03] 11.5x39 -> 09   x 35 [12] 14  x39 -> 11   x 35
  #                                       uPy     uPy
  #               G352            CPy uPy KhiCAS--------------->  CAS
  #           NW  G90 CE  CX2 HP  GXX NS  NS  NS  NW  NW  G90 G352HP
  l_vlines = (12, 07, 11, 11, 12, 09, 29, 11, 11, 11, 11, 09, 07, 14)
  l_vcols =  (30, 21, 32, 00, 39, 32, 53, 32, 32, 29, 29, 30, 19, 39)
  b_vcr = 0b1111100
  if pf >= 0:
    return l_vlines[pf], l_vcols[pf], b_vcr // 2**pf % 2
  else:
    return max(l_vlines), max(l_vcols), 1


Le script compte donc le nombre de fonctions offertes par le module donné ainsi que ses différents éléments, tout en évitant les doublons.

Il semble ne trouver aucune différence sur les modules (tous standard) communs aux TI-82 Advanced Edition Python et TI-83 Premium CE Edition Python.

Nous totalisons 406 éléments utilisables, répartis de la façon suivante :
  • builtins : 153
  • array : 26
  • collections : 24
  • gc : 29
  • math : 50
  • random : 30
  • sys : 68
  • time : 26
Et oui... Texas Instruments a enlevé tellement de choses, que finalement avec seulement 406 éléments, la TI-82 Advanced Edition Python réussit ici l'exploit, à pas grand chose certes, de rafler la dernière place.

  1. 1915 fonctions : TI-83 Premium CE Edition Python
  2. 1065 fonctions : HP Prime
  3. 1017 fonctions : TI-Nspire CX II
  4. 548 fonctions : NumWorks
  5. 443 fonctions : Casio Graph 90+E / 35+E II
  6. 406 fonctions : TI-82 Advanced Edition Python
  1. 1915 fonctions : TI-83 Premium CE Edition Python
  2. 1387 fonctions : NumWorks N0110 (Omega + KhiCAS)
  3. 1284 fonctions : TI-Nspire CX (Ndless + KhiCAS)
  4. 1065 fonctions : HP Prime
  5. 1017 fonctions : TI-Nspire CX II
  6. 590 fonctions : NumWorks (Omega)
  7. 548 fonctions : NumWorks
  8. 443 fonctions : Casio Graph 90+E / 35+E II
  9. 406 fonctions : TI-82 Advanced Edition Python
  1. 2495 fonctions : TI-83 Premium CE Edition Python / TI-84 Plus CE Python Edition
  2. 2160 fonctions : TI-Nspire CX II
  3. 1065 fonctions : HP Prime
  4. 548 fonctions : NumWorks
  5. 443 fonctions : Casio Graph 90+E / 35+E II / fx-CG50 / fx-9750/9860GIII
  6. 406 fonctions : TI-82 Advanced Edition Python
  7. 405 fonctions : TI-83 Premium CE + TI-Python
  1. 2495 fonctions : TI-83 Premium CE Edition Python / TI-84 Plus CE Python Edition
  2. 2160 fonctions : TI-Nspire CX II
  3. 1387 fonctions : NumWorks N0110 (Delta / Omega + KhiCAS)
  4. 1284 fonctions : TI-Nspire CX / CX II (Ndless + KhiCAS CX / KhiCAS CX II)
  5. 1065 fonctions : HP Prime
  6. 602 fonctions : TI-83 Premium CE + TI-Python (firmware tiers)
  7. 590 fonctions : NumWorks (Omega)
  8. 548 fonctions : NumWorks
  9. 464 fonctions : Casio Graph 35/75+E / 35+E II / fx-9750GII/GIII / fx-9860G/GII/GIII (appli CasioPython)
  10. 429 fonctions : TI-Nspire (Ndless + micropython)
  11. 406 fonctions : TI-82 Advanced Edition Python
  12. 405 fonctions : TI-83 Premium CE + TI-Python




H) Mode examen

Go to top

14003Comme sur TI-83 Premium CE Edition Python, le mode examen de la TI-82 Advanced Edition Python s'active en allumant la calculatrice avec les touches
annul
entrer
enfoncées.

Depuis la mise à jour 5.3.1 des TI-83 Premium CE, l'activation du mode examen revalidait toutes les applications présentes en mémoire.

Chaque revalidation d'application nécessitait le calcul d'une signature électronique 2048 bits, puis la comparaison avec la signature présente en fin d'application, générée par Texas Instruments via une clé privée et impossible à falsifier à ce jour.

Ce processus garantit que l'application n'a pas été altérée afin de générer un comportement frauduleux en mode examen, et toute application échouant au test est effacée au passage.

Le problème, c'est que le calcul de signature électronique 2048 bits est gourmand, et à effectuer donc 19 fois sur les TI-83 Premium CE (ou 20 fois si l'application tierce Cesium est installée, l'application Finance ne comptant pas).

De façon absolument monstrueuse, l'activation prenait :
  • dans les 1min30s sur les anciennes TI-83 Premium CE
  • plus que dans les 30s sur TI-83 Premium CE Edition Python, suite à un changement de technologie Flash (série)

Des délais dans tous les cas très hautement problématiques en début d'épreuve, à un moment où tout-le-monde est stressé. :#non#:


Mais ici sur TI-82 Advanced Edition Python nous n'avons que 7 applications à valider, ce qui proportionnellement ne devrait plus prendre qu'une bonne 10aine de secondes...

Et bien non même pas, le mode examen s'active en à peine 5s seulement ! :D

Bravo, enfin quelque chose de raisonnable ! :bj:


Les applications TI-82 Advanced Edition Python sont censées ne jamais bouger. Texas Instruments se serait-il donc montré malin en tenant compte de ce contexte ? ;)

Et bien il semble que oui. Selon notre analyse du fichier de mise à jour du système d'exploitation .8yu, il n'y a pas 7 signatures à vérifier mais 1 seule, présente à la fin de la dernière application, et signant probablement de façon globale l'ensemble des 7 applications.




I) Matériel

Go to top

11354Voici ci-contre pour référence la carte mère de la TI-83 Premium CE Edition Python.

Jusqu'à quel point la TI-82 Advanced Edition Python lui ressemble-t-elle ou en diffère-t-elle ? Regardons enfin ce que ce nouveau modèle a dans le ventre.

14028La TI-82 Advanced Edition Python utilise donc une carte de référence SG82C-10-1.

Nous y retrouvons sans surprise les mêmes circuits intégrés essentiels de la TI-83 Premium CE Edition Python :
  • puce ASIC JB-007-01, intégrant entre autres le processeur historique eZ80 et ses 256 Kio de RAM
  • puce Flash NOR série 25Q32JVSIQ de chez Winbond, d'une capacité de 4 Mio
  • microcontrôleur ATSAMD21E18A-U de chez Atmel dédiée à l'application Python82, intégrant entre autres le coprocesseur ARM Cortex-M0+ cadencé à 48 MHz ainsi que 256 Kio de mémoire Flash

Nous nous attendions à une organisation de carte légèrement différente, le port USB étant à déplacer de la tranche latérale à la tranche supérieure. Mais finalement nous notons des cartes très différentes.

Pour concevoir la TI-82 Advanced Edition Python à partir de la TI-83 Premium CE Edition Python nous soupçonnons donc une modification massive du circuit de la carte à des fins de réduction des coûts de fabrication, moins de composants semblant présents à sa surface.

Effectivement nous pouvons déjà citer comme simplifications évidentes :
  • la suppression du circuit VBUS d'alimentation USB des périphériques comme testé plus haut
  • la suppression du circuit de recharge de la batterie puisque nous avons ici des piles




Conclusion

Go to top

La TI-82 Advanced Edition Python est donc une version très allégée de la TI-83 Premium CE Edition Python. Ses points forts sont son écran couleur, ainsi que ses capacités mathématiques largement suffisantes en Seconde et permettant même d'accompagner une orientation en spécialité Mathématiques en Première et Terminale.

La TI-82 Advanced Edition Python n'offre toutefois que bien peu de possibilités d'exploration à un esprit scientifique/curieux/geek (pas de gestion des programmes en langage machine, pas de modules de tracé en Python).

Toutes les fonctionnalités relatives aux sciences expérimentales (Physique-Chimie, projets STEM) usuellement apportées par des applications dont certaines pourtant présentes sur l'ancienne TI-82 Advanced, semblent ici avoir été méticuleusement exclues, alors que l'enseignement de Physique-Chimie est encore obligatoire en Seconde. Texas Instruments semble avoir voulu concevoir exprès une calculatrice pour le seul enseignement de Mathématiques. Il faut bien préserver une raison d'acheter la TI-83 Premium CE Edition Python plus chère, sans doute.

En fait, nous avons l'impression que Texas Instruments cherche à reproduire le schéma de son succès du début des années 2000, où la TI-82 Stats d'entrée de gamme était numéro 1 des ventes au lycées, avant de finir par être détrônée en 2011 par la Casio Graph 35+USB, modèle également d'entrée de gamme sorti à la rentrée 2009 et qui innovait en intégrant directement un moteur de calcul exact. La TI-82 Stats était une machine pas chère et extrêmement limitée par rapport au reste de la gamme de l'époque (27K de mémoire, aucune gestion des applications et donc aucune fonctionnalité intégrée de Physique-Chimie ou STEM). Et de même ceux qui voulaient davantage que cela avaient donc le choix des modèles TI-83 Plus ou TI-84 Plus plus chers.

La TI-82 Advanced Edition Python nous semble en conséquence convenir aux publics suivants :
  • les élèves de Seconde qui savent déjà qu'ils n'ont pas pour projet de poursuivre avec des spécialités Mathématiques ou scientifiques en Première (et malheureusement les possibilités d'exploration bien limitées de cette machine ne risquent pas de les faire changer d'avis)
  • les élèves qui ont l'intention de poursuivre avec une spécialité Mathématiques en Première mais sans spécialité Physique-Chimie (ce qui ne doit pas être souvent le cas...)



Aux tarifs formidables que nous avons annoncés plus haut, nous nous attendons à ce que la TI-82 Advanced Edition Python couleur rencontre un succès phénoménal et recrute bien au-delà de ces groupes, finissant par détrôner la Casio Graph 35+E II monochrome en tant que numéro 1 des ventes au lycée.

Sans doute pas dans l'immédiat pour la rentrée 2021 certes, changer les habitudes prend du temps, et faut-il également que tout-le-monde soit au courant de la sortie de la TI-82 Advanced Edition Python, modèle qui justement nous sort bien tard par rapport à la rentrée 2021 (habituellement les nouveaux produits sont annoncés et disponibles au Printemps). Mais plutôt donc d'ici la rentrée 2022 si Casio ne réagit pas d'ici-là.

L'ennui est donc que nombre d'élèves à profil scientifique risquent de participer aux achats groupés de TI-82 Advanced Edition Python à la rentrée lorsqu'ils vont voir le prix et l'écran couleur. Et comme il sera bien sûr hors de question de racheter une autre calculatrice en Première, ils se retrouveront à suivre une spécialicté Physique-Chimie avec une calculatrice non optimale et bridée de sorte à n'être pas améliorable. :'(

Nous sommes donc assez mitigés :
  • d'un côté, si cela permet effectivement un meilleur taux d'équipement des élèves dès la Seconde, taux qui avait commencé à chuter dans le cadre de la réforme du lycée, tant mieux :)
  • mais d'un autre côté, pour les profils scientifiques nous regrettons la probable vampirisation de la formidable TI-83 Premium CE Edition Python par une TI-82 Advanced Edition Python inadaptée et bridée de sorte à le rester :'(



Enfin, parlons concurrence. La TI-82 Advanced Edition Python est une calculatrice qui casse complètement les codes :
  • le prix est d'entrée de gamme
  • l'écran et les fonctionnalités mathématiques sont de milieu de gamme
  • les fonctionnalités de sciences expérimentales sont totalement inexistantes (même la Casio Graph 25+E II bas de gamme fait mieux avec son convertisseur d'unités intégré)

Dans l'entrée de gamme, la TI-82 Advanced Edition Python nous est ainsi extrêmement difficile à classer de façon unique et indiscutable. De façon générale elle n'est ni davantage capable ni moins capable que d'autres modèles d'entrée de gamme : nous pouvons à la fois te dire qu'elle est meilleure que la Casio Graph 35+E II et paradoxalement pire que la Casio Graph 25+E II ; tout est question de contexte et de point de vue.

Afin de te fournir malgré tout un bilan correct et te permettre de mieux pouvoir te repérer dans la jungle de l'entrée de gamme désormais complètement bouleversée par l'arrivée de la TI-82 Advanced Edition Python, nous t'avons conçu tout le long de la réalisation de cet article un comparateur dynamique dédié à l'entrée de gamme de cette rentrée 2021. Tu vas donc pouvoir décider toi-même si la TI-82 Advanced Edition Python est le meilleur choix pour toi ou pas :


Téléchargement : OS TI-82 Advanced Edition Python 5.6.3
Lien : Comparaison de l'entrée de gamme rentrée 2021

Nous avons aussi publié une vidéo (contenu mise-à-jour 2022) d'unboxing et découverte de la calculatrice :

TI-z80 Fire and Flames, niveau Geometry Dash pour TI-83 Premium CE

New postby critor » 24 Jun 2021, 20:01

Ta TI-83 Premium CE bénéficie d'une superbe adaptation de Geometry Dash par Epharius aidé d'Anonyme0. :favorite:

La version téléchargeable du jeu inclut actuellement des adaptations de six des 21 niveaux accompagnant la version complète du jeu mobile :
Avertissement aux nouveaux utilisateurs de rentrée 2021 en France.

Geometry Dash n'est lançable que sur les TI-83 Premium CE (y compris Edition Python).

Bien qu'offrant à première vue des capacités et fonctionnalités similaires, la nouvelle TI-82 Advanced Edition Python de rentrée 2021 n'est à ce jour pas compatible. :#non#:

Mais bien d'autres choses sont possibles car tu peux très facilement créer et charger tes propres niveaux. :bj:

Un éditeur intégré à Geometry Dash est accessible avec la touche
+
, rien de plus simple pour rajouter un niveau. ;)

Si tu préfères bénéficier d'un écran plus grand pour une meilleure vue d'ensemble, la conception peut également se faire sur ordinateur avec le logiciel Tiled où il suffira d'utiliser le tileset de Geometry Dash, puis d'en exporter une version .csv avant de la convertir en ligne.

Cela a justement permis l'adaptation de plusieurs autres niveaux du jeu original, ainsi que diverses créations. :D

14047_Orlando_ te gâte aujourd'hui avec Fire and Flames, un long niveau Geometry Dash de sa conception dans une difficulté moyenne. :D

Attention à ne pas trop jouer avec le feu... ;)

Attention, Geometry Dash rentre dans la catégorie des programmes en langage machine dits ASM.
Suite à un acte irresponsable d'un enseignant de Mathématiques français avec ses gesticulations aveugles dans le contexte de la réforme du lycée, Texas Instruments a réagi en supprimant la gestion de tels programmes depuis la mise à jour 5.5.1.

Si tu es sur une des versions ainsi bridées, tu peux quand même profiter de Geometry Dash. Il te faut :
  1. installer arTIfiCE pour remettre la possibilité de lancer des programmes ASM
  2. ensuite de préférence installer Cesium pour pouvoir lancer les programmes ASM plus facilement, ou même AsmHook pour pouvoir les lancer comme avant

Téléchargements :

Liens :

Divers Jour des projets ESIEE 2021

New postby critor » 24 Jun 2021, 18:43

L'école d'ingénieurs ESIEE Paris bénéficie depuis 2018 du TI-Innovator Gateway, la première bibliothèque 4.0 d'Europe installée en partenariat avec Texas Instruments.

Grâce au TI-Innovator Gateway les étudiants de l'école n'ont plus besoin de dépenser des 100aines d'euros en achat de matériel pour leurs projets obligatoires, ils peuvent emprunter gratuitement à la bibliothèque les briques programmables Texas Instruments dont ils ont besoin ! :bj:

9252Cela comprend certes les calculatrices ainsi que les périphériques TI-Innovator Hub et TI-Innovator Rover que tu connais bien, mais aussi les cartes de développement TI-LaunchPad, cartes d'extension TI-BoosterPack associées, et également capteurs TI-SensorTag.

Ce jeudi 24 juin c'est le grand jour en partenariat avec Texas Instruments, le jour des projets des étudiants et étudiantes de l'ESIEE Paris, organisé en virtuel dans le contexte sanitaire que tu connais.

16 projets sont finalistes pour 4 récompenses à attribuer :
  • prix de l'Innovation par Texas Instruments
  • prix du Meilleur Projet Technique par l'AA ESIEE
  • prix Santé Environnement Handicap par l'ESIEE
  • mention spéciale TI Digital Marketing par Texas Instruments
  • mention spéciale Coup de Cœur du Public

Viens découvrir les projets et les lauréats :
  • Miragramme : projecteur holographique 3D ; l'occasion de découvrir la technologie optique de Texas Instruments avec le miroir pilotable via un système électromécanique (MEMS)
  • EchoSign : application traductrice de la langue des signes afin de faciliter la communication avec les personnes muettes
  • Sandy : analyseur de pollution des sols en micro-plastiques
  • Infrared Veins Targeting : détecteur de veine infrarouge pour les prises de sang
  • Blink : feux de signalisation clignotants gauche et droit pour vélos, à installer sur le casque du cycliste
  • ...
Dans tous les cas félicitations à tous pour avoir mené à bien vos projets en cette année une nouvelle fois difficile ! :bj:

Lien : https://jdp.esiee.fr/laureats-2021/
Link to topic: Jour des projets ESIEE 2021 (Comments: 0)

NumWorks Version 16 bêta : verrouillage NumWorks anti Omega / KhiCAS

New postby Admin » 22 Jun 2021, 14:48


Certains comme Bernard Parisse se doutaient déjà qu'il y avait anguille sous roche, les mises à jour NumWorks ayant été en 2020-2021 jusqu'à présent peu nombreuses et assez mineures relativement aux années précédentes.

Aujourd'hui Numworks nous lance le bêta-test public de sa prochaine version 16 de rentrée 2021, pour le coup une mise à jour qui révolutionne nombre de choses jusqu'ici acquises.

En plus des nouveautés nous allons donc enfin pouvoir te révéler ce qui se passait depuis une bonne année.
Some people, like Bernand Parisse, already suspected that there was something fishy going on, as the NumWorks updates in 2020-2021 were few in number and quite minor compared to previous years.

Today, NumWorks is releasing the public beta test of its next version, Epsilon 16, which will be released for back-to-school 2021. This update will surely revolutionize a lot of things we've been doing until now.

In addition to the new features we will finally be able to reveal what has been going on for a good year.






A1) Il était une fois, dans une galaxie près de chez toi… la NumWorks (2017)
A1) Once upon a time, in a galaxy near you... the NumWorks N0100 (2017)

Go to top

Pour la rentrée 2017 sortait la NumWorks N0100, une calculatrice graphique issue d'un projet lauréat de la 5ème édition du CIN (Concours d'Innovation Numérique), avec le soutien de la BPI (Banque Publique d'Investissement).

La NumWorks, commercialisée à 80€ et se situant donc dans le milieu de gamme, se distinguait de l'ensemble de la concurrence par un modèle collaboratif : le code source de son firmware Epsilon étant disponible publiquement, et n'importe qui pouvant y soumettre des contributions.

13042Elle bénéficiait de plus de plusieurs avantages tous exclusifs lors de son lancement :
  • première calculatrice à être officiellement programmable en Python dès sa sortie à la rentrée 2017, soit juste à temps pour les nouveaux programmes du lycée contrairement à l'ensemble de la concurrence :bj:
  • dès décembre 2017 avec la mise à jour 1.2, un moteur de calcul exact très supérieur aux moteurs QPiRac de la concurrence, permettant également du calcul littéral, du jamais vu à ce tarif-là ! :D
  • une application de Probabilités munie d'une interface universelle parfaitement intuitive, parlant en effet directement le langage des énoncés :favorite:

Toutefois, ouvert et collaboratif ne signifient pas libre. Le code source était sous licence CC BY-NC-ND 4.0. Si tu pouvais effectivement modifier le code comme bon te semblait et le tester sur ta machine, le ND pour No Derivatives t'en interdisait toute distribution. Tu n'avais pas d'autre choix que de soumettre tes modifications ou améliorations au constructeur. Et fallait-il encore que ce dernier accepte de les intégrer en l'état, ce qui fut rarement le cas.
For the start of the 2017 school year was released the NumWorks N0100, a graphing calculator resulting from a winning project of the 5th edition of the CIN (Digital Innovation Contest), with the support of the BPI (Public Investment Bank).

The NumWorks, priced at 80€, thus in the mid-range, was distinguished from the competition by a collaborative model: the source code of its firmware, Epsilon, was publicly available, meaning that anyone could submit contributions to it.

13042It also benefited from several exclusive advantages at the time of its launch:
  • first calculator to be officially programmable in Python as soon as it was released at the beginning of the 2017 school year, just in time for the new high school curricula, unlike all the competition :bj:
  • since December 2017, with the 1.2 update, an exact calculation engine far superior than the QPiRac engines of the competition, allowing literal calculation, never seen at this price! :D
  • a Probability app with an universal interface that is perfectly intuitive, speaking directly the language of wordings :favorite:

However, open and collaborative do not mean free (as in freedom). The source code was licensed under CC BY-NC-ND 4.0. If you could actually modify the code as you wanted and test it on your machine, the ND for No Derivatives forbade you to distribute it. You had no choice but to submit your modifications or improvements to the manufacturer. And it was still necessary that the latter accepted to integrate them as is, which was rarely the case.




A2) Âge d’or de l'aventure NumWorks - nouvelles licence CC SA et NumWorks N0110 (2018-2020)
A2) Golden age of the NumWorks adventure - new CC SA license and NumWorks N0110 (2018-2020)

Go to top

Après de très longs échanges commencés dès la rentrée 2017, NumWorks accepte enfin de changer de licence pour la rentrée 2018, passant à la CC BY-NC-SA 4.0. On passait donc du ND au SA pour Share Alike, soit redistribution autorisée sous la même licence, et pourvu qu'il n'y ait aucun aspect commercial (NC).

Il devenait ainsi enfin possible de redistribuer librement toutes modifications effectuées au firmware Epsilon, aussi bien sous forme de code source à compiler que de fichier binaire directement installable, et ce sans avoir à passer par le constructeur.

Rappelons toutefois que contrairement à la concurrence, le firmware Epsilon ne permet pas de rajouter des applications à chaud sur la calculatrice. La seule façon d'y intégrer du nouveau code machine à exécuter étant de reprogrammer le firmware au complet.
C'était ainsi bien lourd pour la communauté d'avoir à distribuer chacune de ses modifications, améliorations ou ajouts sous la forme de firmware. Cela signifiait qu'elles étaient mutuellement exclusives (car pas possible pour ta calculatrice d'être en même temps sous deux firmwares différents). En prime, les firmwares modifiés basés sur Epsilon devaient être recompilés régulièrement afin de bien intégrer les dernières nouveautés officielles.

C'est l'arrivée de la nouvelle NumWorks N0110 pour la rentrée 2019, passant la capacité de la mémoire Flash de 1 Mio à 8 Mio, qui enflamma littéralement la communauté de développement NumWorks, passant le développement tiers à un niveau jamais atteint sur la concurrence.

Clarifions rapidement un petit quelque chose. On peut classer les firmwares non officiels dans 2 catégories :
  • les firmwares modifiés : il s'agit de reprises du code source du firmware officiel Epsilon, auquel sont apportées des modifications ou ajouts
  • les firmwares tiers : intégralement composés de code n'ayant strictement rien à voir avec le firmware officiel Epsilon

À ce jour les firmwares non officiels pour NumWorks rentrent tous dans la catégorie des firmwares modifiés.

On peut citer 2 projets de firmwares modifiés lancés pour la rentrée 2019 qui ont su répondre aux problématiques ci-dessus et clairement sortir du lot :
  • Delta pour NumWorks N0110 par zardam et Jean-Baptiste Boric qui, se concentrait sur la possibilité d'installer des applications de façon indépendante
  • Omega (initialement LavaOS) à la fois compatible NumWorks N0100 et N0110 par Quentin Guidee et ses non moins illustres collaborateurs, avec ici le projet de regrouper et mettre en avant un maximum d'améliorations communautaires non reprises par le constructeur, et dont entre autres le support des applications de Delta (uniquement sur N0110)

12024Nombre d'applications tierces de très haute facture furent développées. On peut citer entre autres :
  • KhiCAS, une formidable application intégrée de Mathématiques et de Sciences par Bernard Parisse, enseignant-chercheur à l'Université de Grenoble, qui étendait gratuitement les capacités de ta calculatrice au niveau d'une HP Prime. L'application intégrait le moteur de calcul formel GIAC développé pour le logiciel Xcas du même auteur, une bibliothèque de constantes physiques, un convertisseur d'unités, un tableau périodique des éléments et bien d'autres choses encore. Le tout était en prime programmable en Python, avec une collection de modules importables bien plus étoffée que celle de l'appli Python officielle.
  • Nofrendo, un émulateur de console de jeux Nintendo NES par zardam
  • Peanut-GB, un émulateur de console de jeux Nintendo GameBoy par M4x1m3
  • Periodic, un tableau périodique des éléments par M4x1m3
Un gros avantage était ici que KhiCAS et l'ensemble des fonctionnalités rajoutées restaient accessibles en mode examen, de façon parfaitement légale et légitime en France, puisque ces fonctionnalités venaient directement intégrées à des modèles concurrents haut de gamme parfaitement autorisés. :bj:
After some very long discussions that began in the fall of 2017, NumWorks finally agrees to change its license for the beginning of the 2018 school year, to CC BY-NC-SA 4.0. So we went from ND to SA for Share Alike i.e. authorized redistribution under the same license, and provided that there is no commercial aspect (NC).

It was therefore finally possible to freely redistribute any changes made to Epsilon, both in the form of source code to be compiled and in the form of a directly installable binary file, without having to go through the manufacturer.

However, it should be noted that unlike the competition, Epsilon does not allow to add applications on the calculator. The only way to integrate new machine code to be executed is to reprogram the whole firmware.
It was thus very heavy for the community to have to distribute each of its modifications, improvements or additions in the form of firmwares. This meant that they were mutually exclusive (because it was not possible for your calculator to be under two different firmwares at the same time). As a bonus, the modified firmwares based on Epsilon had to be recompiled regularly in order to integrate the latest official releases.

It was the arrival of the new NumWorks N0110 for back-to-school 2019, increasing Flash memory capacity from 1 MiB to 8 MiB, that literally ignited the NumWorks developers' community, taking third-party development to a new level, never seen on the competition.

Let's quickly clarify a little something. Unofficial firmwares can be classified in 2 categories:
  • the modified firmwares: it is a reuse of the source code of the official firmware, to which modifications or additions are made
  • third-party firmwares: entirely composed of code that has nothing to do with the official firmware

To date, the unofficial firmwares for NumWorks all fall into the category of modified firmwares.

We can cite 2 modified firmware projects launched for the start of the 2019 school year that were able to address the above issues and clearly stand out:
  • Delta for NumWorks N0110 by zardam and Jean-Baptiste Boric which focused on the ability to install third-party applications independently
  • Omega (initially LavaOS)Omega (initially LavaOS) compatible with both NumWorks N0100 and N0110, by Quentin Guidee and his no less illustrious collaborators, with the project of regrouping and highlighting a maximum of community improvements not included by the manufacturer, including among others the support of Delta apps (only on N0110)

  • KhiCAS, a great integrated Mathematics and Science application by Bernard Parisse, teacher-researcher at the University of Grenoble, which extended the capabilities of your calculator to the level of an HP Prime for free. The application integrated the GIAC formal calculation engine developed for the Xcas software of the same author, a library of physical constants, a unit converter, a periodic table of elements and many other things. The whole thing was programmable in Python, with a much larger collection of importable modules than the official Python application.
  • Nofrendo, a Nintendo NES game console emulator, by zardam
  • Peanut-GB, a Nintendo GameBoy game console emulator, by the M4x1m3
  • Periodic, a periodic table of elements by M4x1m3
A big advantage here was that KhiCAS and all the added features remained accessible in exam mode, in a perfectly legal and legitimate way in France, since these features were directly integrated on perfectly authorized high-end competing models. :bj:




A3) Calcul littéral - 1er grain de sable et camouflet de NumWorks au Portugal
A3) Symbolic Calculation - NumWorks' 1st Grain of Sand and outrage in Portugal

Go to top

Le calcul littéral causait toutefois un gros problème dans les projets d'extension à l'international de NumWorks. Ce n'est pas le cas en France, mais ce genre de fonctionnalité est strictement interdit aux examens dans nombre de pays, dont la plupart de nos voisins européens.

Casio et Texas Instruments distribuent des modèles distincts selon les zones géographiques. Par exemple :
  • la TI-83 Premium CE Edition Python de la France est remplacée par la TI-84 Plus CE-T Python Edition en Europe, ou TI-84 Plus CE Python dans le reste du monde
  • la Casio Graph 35+E II de la France est remplacée par la fx-9860GIII en Europe, ou fx-9750GIII en Amérique du Nord
Mais NumWorks à la différence n'offre qu'un seul et unique modèle pour le monde entier. Aussi le constructeur a-t-il tout simplement supprimé cette formidable fonctionnalité dans sa mise à jour 11.2 de juin 2019.

Une régression absolument pas acceptée par la communauté des utilisateurs et développeurs, et cela peut se comprendre. C'est comme reprendre un bonbon à un enfant après le lui avoir donné... Une décision également perçue comme extrêmement injuste : pourquoi les utilisateurs français devraient-ils subir les interdictions issues de réglementations qui ne les concernent même pas ?... :#roll#:

En conséquence, la réactivation du moteur de calcul littéral officiel fut l'une des premières améliorations proposées par les firmwares modifiés dont Omega. Mais il était clair qu'une réactivation à l'identique ne faisait absolument pas disparaître le problème et allait avoir des conséquences... L'arrivée de KhiCAS avec un moteur de calcul très supérieur n'a absolument pas arrangé les choses.



Les premières conséquences regrettables sont publiques depuis quelques semaines. Au Portugal le calcul littéral et formel est strictement interdit aux examens de l'enseignement secondaire. Il y a une liste nationale officielle de modèles préapprouvés comme remplissant les diverses conditions.

Pour la rentrée 2020, NumWorks était tout fier de s'afficher dans la presse portugaise, cette dernière annonçant le modèle comme en cours de validation par le JNE (Jury National des Examens) et la chose comme acquise, une simple formalité.

Véritable camouflet pour NumWorks lors de la publication de la liste mise à jour pour la session 2021 en Mars dernier ; l'approbation de la NumWorks a été refusée. Les motivations accompagnant la liste ne citaient pas NumWorks, mais incriminaient clairement la possibilité d'installer des fonctionnalités de calcul formel sur de nouveaux modèles examinés dans le cadre de l'élaboration de cette liste. La NumWorks étant le seul modèle récent absent de la liste finale, aucun doute possible.

Et oui, Omega et/ou KhiCAS ont fait perdre à NumWorks le marché du Portugal, un préjudice financier énorme, nous trouvions que cela commençait à sentir le roussi pour la communauté...
However, symbolic calculation was a big problem in NumWorks' international expansion projects. This is not the case in France, but this kind of functionality is strictly forbidden in exams in many countries, including most of our European neighbors.

Casio and Texas Instruments distribute distinct models according to geographical areas. For example:
  • the TI-83 Premium CE Édition Python in France is replaced by the TI-84 Plus CE-T Python Edition in Europe, or TI-84 Plus CE Python in the rest of the world
  • the Casio Graph 35+E II in France is replaced by the fx-9860GIII in Europe, or fx-9750GIII in North America

But the difference is that NumWorks only offers one model for the entire world. So the manufacturer simply removed this great feature in its June 2019 11.2 update.

A regression absolutely rejected by the community of users and developers, which is understandable. It's like taking back a candy from a child after having given it to him... This decision is also perceived as extremely unfair: why should French users be subjected to bans resulting from regulations that do not even concern them?... :#roll#:

As a result, the reactivation of the official literal engine was one of the first improvements proposed by the modified firmwares like Omega. But it was clear that reactivating the same engine did not make the problem disappear and would have consequences... The arrival of KhiCAS with a very superior calculation engine did not help the matter at all.

The first unfortunate consequences have been public for a few weeks. In Portugal symbolic and formal calculation is strictly forbidden in secondary school examinations. There is an official national list of models pre-approved as fulfilling the various requirements.

For the start of the 2020 school year, NumWorks was proud to advertise in the Portuguese press, announcing that the model was in the process of being validated by the BNE (National Examination Board) and that it was a mere formality.

NumWorks was dealt a real blow when the updated list for the 2021 session was published last March; NumWorks' approval was denied. The reasons accompanying the list did not cite NumWorks, but clearly incriminated the possibility of installing formal computation features on new models reviewed as part of the list development. NumWorks being the only recent model absent from the final list, there can be no doubt.

And yes, Omega and/or KhiCAS made NumWorks lose the Portugal market, a huge financial loss, we thought it was starting to smell bad for the community...




A4) Maurits van Altvorst et les fraudeurs à l'attaque du modèle NumWorks, des Pays-Bas à la France
A4) Maurits van Altvorst and the fraudsters attacking the NumWorks model, from the Netherlands to France

Go to top

Mais hélas les choses sont très loin de s'être arrêtées là. Autre incident extrêmement grave que nous n'avions exprès pas traité dans nos actualités jusqu'à présent, cette fois-ci aux Pays-Bas.

Aux examens de l'enseignement secondaire des Pays-Bas nous avons également une interdiction du calcul littéral, ainsi qu'une liste nationale de modèles autorisés. Nous t'annoncions justement en février 2020 que la NumWorks venait d'être ajoutée à la dernière mise à jour de la liste, et était ainsi autorisée à compter de la session 2022.

En réaction à cela, Maurits van Altvorst, étudiant en économie aux Pays-Bas visiblement absolument scandalisé par la décision précédente, a publié dès avril 2020 une véritable diatribe contre la NumWorks et plus généralement le modèle open-source. Tout appareil ou logiciel open-source se devait, selon lui, d'être banni de tout examen car le libre accès au code source faciliterait la vie des fraudeurs. Maurits y qualifiait la décision d'autoriser la NumWorks à compter de 2022 d'absolument irresponsable, et vantait le modèle closed-source des concurrents Casio, Hewlett Packard et Texas Instruments.

Dans le cas de la NumWorks, Maurits expliquait comment modifier le code source afin d'empêcher les données d'être effacées à l'activation du mode examen, et montrait en vidéo le bon fonctionnement de sa modification.

Avec un article sur un obscur blog la chose aurait pu tomber à plat... mais non, histoire que ce ne soit pas le cas, Maurits a eu le culot d'aller jusqu'à envoyer tout ça à https://www.examenblad.nl/ , l'autorité responsable de la réglementation des examens aux Pays-Bas. C'est un peu comme si chez nous il avait écrit directement au Ministre...

Les conséquences hautement désagréables pour NumWorks ne s'arrêtent hélas pas aux frontières des Pays-Bas. Bien qu'ayant largement averti l'année passée contre les actes irresponsables d'un enseignant de Mathématiques ayant amené à la suppression de la gestion de programmes dits assembleur sur TI-83 Premium CE, il faut croire que certains n'apprennent pas des erreurs des autres, ne voient pas plus loin que le bout de leur nez ou bien ne pensent qu'à eux.

L'astuce a hélas été largement diffusée dans la sphère francophone. Le YouTuber derrière la chaîne Dark Programmer a de plus cru malin en Février 2021 d'adapter la modification frauduleuse dans un tuto-vidéo francophone, et même de diffuser sur Google Drive des versions déjà prémodifiées en ce sens des firmwares Epsilon et Omega.

Bien que ces éléments aient certes été effacés depuis suite aux démarches de NumWorks, leur diffusion continue via d'autres canaux privés ou semi-privés. Ci-contre par exemple un salon Discord infiltré par M4x1m3, développeur Omega.

cent20 nous a même confirmé que la diffusion de firmwares trafiqués en ce sens continuait hélas encore plusieurs semaines après l'effacement, au moins un de ses élèves au lycée Louis Pasteur à Avignon en étant encore équipé fin Mars 2021.
But unfortunately things are far from over. Let's talk about another extremely serious incident that we purposely did not cover in our news until now, this time in the Netherlands.

In the Dutch secondary school exams there is also a ban on symbolic calculation, as well as a national list of allowed models. We were just announcing to you in February 2020 that NumWorks had just been added to the latest update of the list, and thus was allowed starting with the 2022 session.

In reaction to this, Maurits van Altvorst, an economics student in the Netherlands, visibly outraged by the previous decision, published in April 2020 a real diatribe against NumWorks and more generally the open-source model. Any open-source device or software should, according to him, be banned from any exam because free access to the source code would make life easier for cheaters. Maurits called the decision to allow NumWorks from 2022 absolutely irresponsible, and praised the closed-source model of competitors Casio, Hewlett Packard and Texas Instruments.

In the case of the NumWorks, Maurits explained how to modify the source code to prevent the data from being erased when the review mode is activated, and showed on video how well his modification worked.

With an article on an obscure blog, the thing could have stop there... but no, just to be sure, Maurits had the nerve to send it all to https://www.examenblad.nl/, the authority responsible for exam regulation in the Netherlands. It's as if he had written directly to the Minister...

Unfortunately, the highly unpleasant consequences for NumWorks do not stop at the borders of the Netherlands. Although we warned widely last year against the irresponsible actions of a mathematics teacher that led to the removal of the management of so-called assembly programs on the TI-83 Premium CE, it seems that some people don't learn from the mistakes of others, don't see further than the end of their noses or think only of themselves.

The trick has unfortunately been widely spread in the French-speaking world. The YouTuber behind the Dark Programmer channel also thought it was clever in February 2021 to adapt the fraudulent modification in a French-language video-tutorial, and even to post on Google Drive versions of the Epsilon and Omega firmwares that had already been modified in this way.

Although these elements have since been deleted following the steps taken by NumWorks, their distribution continues via other private or semi-private channels. For example, here is a Discord room infiltrated by M4x1m3, a developer of Omega.

cent20 even confirmed that the distribution of tampered firmwares in this sense was still going on several weeks after the deletion, at least one of his students at the Lycée Louis Pasteur in Avignon was still equipped with it at the end of March 2021.




A5) 1er signe inquiétant - message infamant imposé aux firmwares modifiés
A5) 1st worrying sign - disgraceful message imposed on modified firmwares

Go to top

NumWorks a réagi très rapidement dès Février 2020 dans le cadre de la sortie de sa mise à jour 13.1, mais pas de la façon la plus élégante.

Par défaut, le code source public, celui donc réutilisable pour la réalisation de firmwares modifiés, affiche désormais un message d'avertissement à l'écran d'activation du mode examen. Et les fichiers concernant cet affichage repassent sous licence CC BY-NC-ND 4.0, interdisant donc toute altération.

Voici le message en question :
Attention, la conformité du mode examen de ce logiciel non officiel n'est pas garantie par NumWorks.


Une véritable flétrissure de tout firmware conçu à partir d'Epsilon. conformité, double négation... il y a franchement tout ce qu'il faut pour faire croire à un surveillant qui verrait ce message que le candidat concerné est en train d'utiliser un logiciel non conforme (ce qui est faux en France), avec de dramatiques conséquences à la clé :
  • devoir composer sans calculatrice
  • procès verbal de suspicion de fraude
  • pas de résultats à aller chercher et fêter avec les copains, puisqu'il faudra attendre le passage du dossier devant la commission de discipline concernée
  • en conséquence inscription difficile/retardée à l'année suivante, risquant même de faire rater les meilleurs orientations
  • sanctions éventuelles, dont jusqu'à 5 ans d'interdiction de passer tout examen ou concours public, y compris le permis de conduire, pas l'idéal pour débuter sa vie étudiante ou professionnelle
Un message tellement maladroit que cela semble fait exprès, littéralement irresponsable de mettre ainsi en grand danger l'ensemble des candidats innocents pour une minorité de fraudeurs. :mj:

Nous ne t'en avions que peu parlé jusqu'à présent, car l'équipe derrière Omega, l'un des principaux firmwares construits à partir du firmware officiel Epsilon, semblait s'être débrouillée pour négocier l'autorisation de passer outre suite à des échanges, dans des termes que nous ignorons.

Cette décision de NumWorks n'en restait pas moins une décision hautement inquiétante pour l'avenir, avec la volonté de marquer ainsi de façon infamante l'ensemble des firmwares dérivés d'Epsilon.
NumWorks responded very quickly back in February 2020 as part of its 13.1 update release, but not in the most elegant way.

By default, the public source code, the one that can be reused to build modified firmwares, now displays a warning message when activating the examination mode. The files related to this display are now licensed under CC BY-NC-ND 4.0, thus prohibiting any alteration.

Here is the message at hand:
Caution: compliance of this unofficial software's exam mode is not guaranteed by NumWorks.


A real withering of any firmware based on Epsilon. compliance, unofficial, double negation... there is frankly all that is needed to make a supervisor who would see this message believe that the student is using a non-compliant software (which is false in France), with dramatic consequences:
  • composing without a calculator
  • report of suspicion of fraud
  • no results to get and celebrate with friends, since it will be necessary to wait for the examination of the case by the disciplinary committee
  • consequently difficult/delayed enrolment for the following year, risking even the best orientations being missed
  • possible sanctions, including a ban of up to 5 years from taking any public exam or competitive examination, including the driver's license, not ideal for starting one's student or professional life
A message so clumsy that it seems deliberate, literally irresponsible to put all innocent candidates at great risk for a minority of fraudsters. :mj:

We didn't tell you much about it until now, because the team behind Omega, one of the main firmwares built from the official firmware, seemed to have managed to negotiate permission to override it after exchanges, under terms we don't know.

This decision by NumWorks was nonetheless a highly worrying one for the future, with the desire to mark all Epsilon-based firmware in an incriminating way.




B1) NumWorks N0110 : nouvelles restrictions anti-firmwares non officiels
B1) NumWorks N0110: New anti-unofficial-firmware restrictions

Go to top

Et hélas aujourd'hui nous y sommes.

Voilà pourquoi les mises à jour étaient assez légères depuis une bonne année. À cause de ces divers incidents, NumWorks était sur un projet majeur, une refonte radicale de la sécurité de sa calculatrice.

Contrairement à Texas Instruments dans le cadre de l'interdiction des programmes assembleur, nous somme plusieurs à avoir été consultés à un moment ou un autre et à avoir pu exposer notre point de vue avant la décision finale.

Jean-Baptiste Boric était d'ailleurs tout fier de te partager son optimisme à ce sujet dès Mai 2020, et de faire au passage la leçon à Texas Instruments :
Jean-Baptiste Boric wrote:Once upon a time, NumWorks was put in a similar situation a couple of months ago with a blog post from a student who analysed the security of the NumWorks calculator (that is, none whatsoever). The post is technically sound but the issue was handled very poorly, with no responsible disclosure, which started to make the bad kind of waves in that country's ministry of education.

Once it was clear for NumWorks that things were starting to get out of control, they reached out to members of the community for advice. We identified a number of solutions and workarounds with different pros and cons. Every single one of them does not prevent running custom native apps nor custom firmwares on their hardware, since the openness of their calculators is a major selling point. The ending has yet to unfold, but I am confident that a solution that satisfies all involved parties will be reached.

Un optimisme qui n'a d'égal que l'échec monumental du message que nous avons tenté de faire passer dans l'intérêt des droits et libertés des candidats, utilisateurs et développeurs, et le rejet systématique de toutes les alternatives proposées, certaines déjà en place chez la concurrence et d'autres totalement inédites. C'est hélas à notre très grand regret un nouveau coup à la TI comme on dit désormais que nous sommes sur le point de t'annoncer mais cette fois-ci contre la communauté NumWorks. :'(

Notons que contrairement à TI il ne s'agit pas d'un blocage total, mais la nuance est à notre humble avis extrêmement ténue comme nous allons te le détailler.

À compter de l'installation de la mise à jour 16 du firmware Epsilon sur ta calculatrice NumWorks N0110 :
  1. Tu conserves certes la possibilité de lancer un firmware non officiel
  2. Mais les firmwares non officiels n'auront plus aucun moyen d'allumer la diode examen :#non#:
    En pratique cela les interdit donc totalement d'utilisation aux épreuves demandant l'activation d'un mode examen à diode, c'est-à-dire entre autres en France aux examens de l'Education Nationale (Baccalauréat, DNB, BTS...) et concours de recrutement de la fonction publique. Fini Omega ou Delta, et donc par conséquent fini KhiCAS. :'(
    Le calcul littéral ou formel, fonctionnalité pourtant légitime puisque non interdite et présente sur certains modèles concurrents, t'est désormais strictement interdit en situation d'examen sur ta calculatrice NumWorks. :mj:
  3. Ce n'est pas la seule contrainte en cas d'utilisation d'un firmware non officiel, un message d'alerte mettant en garde contre le caractère non officiel du firmware sera affiché à chaque allumage de la calculatrice
    Outre le fait que ce soit extrêmement lourd d'avoir à valider/fermer un message d'alerte à chaque allumage de la calculatrice, si jamais pour une raison ou pour une autre tu passais un jour un examen ou concours n'exigeant pas le mode examen, l'affichage d'un tel message risque de rendre un surveillant méfiant, avec ici encore un risque de conséquences dramatiques (confiscation calculatrice, procès verbal de fraude, condamnation, etc.), et ce alors que Delta et Omega n'ont strictement rien de frauduleux.
  4. Et ne crois pas être au bout de tes peines. Nous avons dit plus haut que tu avais encore le droit de lancer des firmwares non officiels ; nous n'avons volontairement pas utilisé le mot installer. Au moindre redémarrage de ta calculatrice, le firmware non officiel disparaîtra et sera remplacé par un firmware officiel dont une copie est maintenant conservée de façon permanente en mémoire Flash.
    Or, la calculatrice redémarre à de nombreuses occasions :
    • en cas d'activation du mode examen
    • en cas de plantage (cela arrive dans les applications, notamment les émulateurs et KhiCAS)
    • en cas de batterie déchargée
    Il te sera donc en prime difficile de conserver dans la durée un firmware non officiel fonctionnel sur ta calculatrice ; tu devras régulièrement avoir un ordinateur sous la main afin de le relancer à chaque fois qu'il disparaîtra.

Et voilà... à cause des écarts de personnes isolées, tout le monde est puni. :mj:

Donc en effet c'est exact, le constructeur n'a pas interdit les firmwares non officiels, les développeurs peuvent toujours en créer et les lancer sur leur calculatrice à des fins de test...

Mais en contrepartie le constructeur semble avoir fait le maximum pour rendre leur utilisation dans la durée aussi pénible et désagréable que possible, de sorte à en décourager les utilisateurs.

Or, un développeur qui crée sur calculatrice graphique, c'est habituellement pour bénéficier de la large diffusion auprès des jeunes de par le monde.
Si c'était juste pour lui, franchement il disposerait de bien d'autres plateformes plus adaptées à ses envies de création.
Sans utilisateurs donc, quel intérêt à continuer à créer des firmwares modifiés ou tiers pour la NumWorks ?...

À noter que ces nouvelles interdictions ne sont installées par la version 16 que sur la NumWorks N0110. L'ancien modèle NumWorks N0100 n'est pas concerné à ce jour, et ne dispose de toutes façons pas de suffisamment de mémoire Flash pour conserver une copie de firmware officiel. Donc dans tous les cas les restrictions ne seraient pas les mêmes.

Précisons que nous ne faisons ici que te communiquer et analyser les propres annonces du constructeur. Nous n'avons pas pu tester ce que donnent des firmwares non officiels si installés par-dessus la bêta 16, d'où l'absence d'illustrations dans cette partie. Les installateurs Omega et Delta+KhiCAS ne marchent tout simplement plus une fois la version bêta installée et lancée (obligeant à passer par le mode de récupération). Si le constructeur dit que c'est toujours possible c'est donc que cela doit être le cas, nous supposons que ces installateurs vont avoir besoin d'une mise à jour du code de connectivité...
En passant, le Workshop officiel change d'adresse, passant de https://workshop.numworks.com à https://my.numworks.com, peut-être avec les changements de code nécessaires.

Pour l'instant, la bêta de la version 16 n'inscrit exprès les nouvelles règles de sécurité que dans une zone non vitale de ta calculatrice. C'est-à-dire que tu conserves encore pour quelques jours/semaines la possibilité de débloquer ta calculatrice via son mode de récupération (touche
6
à maintenir enfoncée pendant un appui sur le bouton reset au dos)
, pour revenir à la version 15 ou installer Omega / Delta.

Mais la version 16 finale à venir on suppose d'ici la rentrée 2021 et possiblement préinstallée sur les nouvelles NumWorks N0110 r3.43, inscrira bien ces nouvelles règles dans une zone amorce vitale de ta calculatrice, zone qui sera alors définitivement marquée comme non modifiable, t'interdisant ainsi à tout jamais l'utilisation libre et sans contraintes d'Omega, Delta et par extension KhiCAS sur ta calculatrice. :'(
And alas, here we are today.

That's why the updates were quite light for a good year. Because of these various incidents, NumWorks was on a major project, a radical overhaul of the security of its calculator.

Unlike Texas Instruments in the context of the ban of assembly programs, several of us have been consulted at one time or another and have been able to express our point of view before the final decision.

Jean-Baptiste Boric was proud to share with you his optimism on this subject from May 2020, and to teach Texas Instruments a lesson:
Jean-Baptiste Boric wrote:Once upon a time, NumWorks was put in a similar situation a couple of months ago with a blog post from a student who analysed the security of the NumWorks calculator (that is, none whatsoever). The post is technically sound but the issue was handled very poorly, with no responsible disclosure, which started to make the bad kind of waves in that country's ministry of education.

Once it was clear for NumWorks that things were starting to get out of control, they reached out to members of the community for advice. We identified a number of solutions and workarounds with different pros and cons. Every single one of them does not prevent running custom native apps nor custom firmwares on their hardware, since the openness of their calculators is a major selling point. The ending has yet to unfold, but I am confident that a solution that satisfies all involved parties will be reached.

An optimism that is only matched by the monumental failure of the message we tried to get across in the interest of the rights and freedoms of applicants, users and developers, and the systematic rejection of all the proposed alternatives, some already in place with the competition and others totally new. Unfortunately, it is to our great regret that we are about to announce a new attack like the TI one, but this time against the NumWorks community. :'(

Note that, unlike TI, it is not a total lock, but the nuance is in our humble opinion extremely subtle as we will detail.

After installing the Epsilon 16 on your NumWorks N0110 calculator:
  1. You still have the ability to run an unofficial firmware
  2. But unofficial firmwares won't have any way to turn on the exam mode diode :#non#:
    In practice, this means that they are not allowed to be used in tests requiring the activation of a diode exam mode, i.e. in France for the National Education exams (Baccalauréat, DNB, BTS...) and civil service recruitment exams. No more Omega or Delta, and therefore no more KhiCAS. :'(
    Symbolic or formal calculation, which is a legitimate feature because it is not forbidden and is present on some competing models, is now strictly forbidden in an exam situation on your NumWorks calculator. :mj:
  3. This is not the only constraint when using an unofficial firmware, a warning message pointing out the unofficial nature of the firmware will be displayed each time the calculator is turned on
    In addition to the fact that it is extremely cumbersome to have to validate/close an alert message each time the calculator is turned on, if for some reason you ever take an exam or competitive examination that does not require exam mode, the display of such a message may make a proctor suspicious, with the risk of dramatic consequences (confiscation of the calculator, official report of fraud, conviction, etc.), even though there is nothing fraudulent about Delta or Omega.
  4. And don't think you're out of the woods. We said above that you still have the right to run unofficial firmware; we deliberately did not use the word install. If you reset your calculator, the unofficial firmware will disappear and be replaced by an official firmware, a copy of which is now permanently stored in Flash memory.
    However, the calculator resets on many occasions:
    • in case of activation of the exam mode
    • in case of a crash (this happens in applications, especially emulators and KhiCAS)
    • in case of a discharged battery
It will be difficult to keep an unofficial firmware on your calculator for a long time; you will have to have a computer on hand regularly to restart it each time it disappears.

And there you have it... because of the misconduct of isolated individuals, everyone is punished. :mj:

It is indeed true that the manufacturer has not forbidden unofficial firmwares, developers can still create them and run them on their on their calculator for testing purposes...

But on the other hand, the manufacturer seems to have done its utmost to make their use in the long term as painful and unpleasant as possible, so as to discourage users.

A developer who works on a graphical calculator usually wants to take advantage of the wide distribution to young people all over the world.
If it was just for him, frankly he would have many other platforms more adapted to his creative desires.
Without users what is the point of continuing to create modified or third party firmwares for the NumWorks ?...

Note that these new prohibitions are only installed by version 16 on the NumWorks N0110. The older NumWorks N0100 model is not affected at this time, and does not have enough Flash memory to keep a copy of the official firmware anyway. So in any case the restrictions wouldn't be the same.

Let's make clear that we are only communicating and analyzing the manufacturer's own announcements here. We have not been able to test what unofficial firmware looks like when installed on top of beta 16, hence the lack of illustrations in this section. Omega and Delta+KhiCAS installers simply don't work anymore once the beta version is installed and launched (forcing to go through the recovery mode). If the manufacturer says that it is still possible then it must be the case, we assume that these installers will need an update of the connectivity code...
By the way, the official Workshop changes its address from https://workshop.numworks.com to https://my.numworks.com, perhaps with the necessary code changes.

For the moment, the version 16 beta only writes the new security rules in a non-vital area of your calculator. This means that you still have the possibility to unlock your calculator via its recovery mode (press and hold key
6
while pressing the reset button on the back)
, to go back to version 15 or to install Omega / Delta.

But the final version 16, which we assume will be released by the beginning of the school year 2021 and possibly pre-installed on the new NumWorks N0110 r3.43, will write these new rules in a vital boot zone of your calculator, a zone that will then be definitively marked as non-rewritable, thus forbidding you to use Omega, Delta and by extension KhiCAS on your calculator forever. :'(




B2) Retour à la licence interdisant la reprise du code
B2) Back to the license that prohibits the reuse of the code

Go to top

Tu n'es pas d'accord avec ces changements ? Tu souhaites conserver le droit d'utiliser KhiCAS ? Tu penses peut-être qu'il te suffit de ne pas installer de version 16 ou supérieure du firmware officiel Epsilon, et uniquement des versions des firmwares modifiés Omega ou Delta ?

C'est certes possible, aussi bien pour les utilisateurs actuels que nouveaux. Si tu achètes ta NumWorks pour cette rentrée 2021, le marché de l'occasion ne sera sans doute pas encore concerné. Pour le marché du neuf, il te sera sans doute encore facile de tomber sur du stock non préchargé avec la version 16, qu'il te suffira alors de ne jamais mettre à jour via le site officiel.

Mais déjà ce n'est pas une solution viable dans le temps : au fur et à mesure du renouvellement du parc de calculatrices en circulation à chaque rentrée, les machines non verrouillées vont se faire de plus en plus rares. Et les développements les ciblant ne concerneront alors que de moins en moins d'utilisateurs. :'(

De plus, NumWorks a également prévu le coup. Autant être franc direct, Omega et Delta ne seront plus jamais comme avant, plus jamais comme tu les as connus. :'(

À compter de la version 16, le code source d'Epsilon repasse sous une licence interdisant toute distribution.

C'est fini, toutes les nouveautés et améliorations que NumWorks apporte à Epsilon à partir de cette version 16 ne pourront plus jamais être reprises pour la distribution de prochaines versions des firmwares Delta ou Omega. :#non#:

Après une bonne année de mises à jour rares et assez mineures, tu juges peut-être que cela ne change pas grand chose, et à ce jour tu as sans doute raison.

Mais on peut supposer que maintenant qu'ils en ont terminé avec la sécurité, l'équipe NumWorks va pouvoir enfin se remettre à faire évoluer sérieusement le logiciel de la calculatrice. D'ici quelques mois, la différence entre les fonctionnalités Epsilon d'une part et Omega/Delta d'autre part, pourrait bien ne plus être aussi négligeable que ce que tu penses...
You don't agree with these changes? You want to keep the right to use KhiCAS? Maybe you think that it is enough not to install version 16 or higher of the official Epsilon firmware, and only modified Omega or Delta firmware versions?

It's certainly possible, both for current and new users. If you buy your NumWorks for the beginning of the school year 2021, the used market will probably not be affected yet. For the new market, it will probably still be easy for you to find stock that is not preloaded with version 16, which you will then simply never update via the official website.

But this is already not a viable solution: as the number of calculators in circulation renews itself each year, unlocked machines will become increasingly rare. And the projects targeting them will then cover less and less users. :'(

Plus, NumWorks has also planned for this. Let's face it, Omega and Delta will never be the same again, never again as you knew them. :'(

As of version 16, Epsilon's source code is once again released under a distribution-forbidding license.

That's the end - all the new features and improvements that NumWorks brings to Epsilon from this version 16 onwards can never be used again for the next versions of the Delta or Omega firmware. :#non#:

After a good year of rare and fairly minor updates, you may feel that it doesn't change much, and so far you are probably right.

But we can assume that now that they are done with security, the NumWorks team will finally get back to improving the calculator software significantly. In a few months, the difference between the features of Epsilon on the one hand and Omega/Delta on the other, might not be as small as you think...




B3) Applications additionnelles - nouvelle porte d'entrée pour les développeurs... ou pas ?
B3) Additional applications - new entry point for developers... or not ?

Go to top

À compter de cette version 16, le firmware officiel Epsilon rajoute enfin la gestion d'applications additionnelles, officielles ou non.

Les développeurs de Delta, Omega et KhiCAS ont donc la possibilité de migrer leurs fonctionnalités sous la forme d'applications additionnelles pour Epsilon qui seront installables à tout moment sans avoir à réinstaller tout le firmware. Cela règle également le problème de l'impossibilité désormais de distribuer des ajouts/améliorations via des firmwares modifiés basés sur le code d'Epsilon ; il suffira de compiler et distribuer ses ajouts/améliorations qui pourront être distribuées et installées de façon totalement indépendante.

La calculatrice gère une 10aine d'applications additionnelles, chacune occupant un secteur en Flash.

Sauf que... désolé mais la chose ressemble à une gigantesque mauvaise blague.

Déjà, à l'installation, un message indique que l'installation d'applications non officielles bloque certaines fonctionnalités officielles... :o
Nous ignorons à ce jour ce que cela cache comme mauvaise nouvelle encore. :#roll#:

De plus, les applications additionnelles pour Epsilon souffrent très exactement des mêmes contraintes que les firmwares non officiels. :mj:

Elles disparaissent au moindre redémarrage de la calculatrice (mode examen, plantage, batterie faible...). :#non#:

De plus, tant que tu gardes des applications additionnelles installées, un message d'alerte sera affiché à chaque allumage de la calculatrice et devra donc être fermé.

Une utilisation dans la durée est donc ici encore extrêmement pénible et lourde. Outre les manipulations supplémentaires à chaque allumage de la calculatrice, l'utilisateur devra de plus très régulièrement réinstaller ses applications favorites depuis un ordinateur pour pouvoir continuer à les utiliser normalement. Et entre autres, cela implique une utilisation strictement impossible de ces applications aux examens en France alors que légitimes (ce ne sont pas des informations/données à bloquer).

La nouvelle gestion d'applications par Epsilon ne présente donc strictement aucun intérêt à ce jour ; cela ne remplace absolument pas les possibilités que l'on nous retire aussi cruellement et brutalement. À quoi bon ?...
Starting with this version 16, the official Epsilon firmware finally adds support for additional applications, official or not.

Delta, Omega and KhiCAS developers can now migrate their features as additional applications for Epsilon that can be installed at any time without having to reinstall the whole firmware. This also solves the problem of the inability to distribute add-ons/improvements via modified firmware based on Epsilon code; it will be enough to compile and distribute those add-ons/improvements which can be distributed and installed in a completely independent way.

The calculator supports about 10 additional applications, each occupying a sector in Flash.

Except that... sorry but the thing looks like a gigantic bad joke.

Already, during the installation, a message indicates that the installation of unofficial applications blocks some official features... :o
We don't know to this day what this hides as bad news yet. :#roll#:

Also, additional apps for Epsilon suffer from very exactly the same constraints as unofficial firmware. :mj:

They disappear at the slightest restart of the calculator (exam mode, crash, low battery...). :#non#:

Moreover, as long as you keep additional applications installed, an alert message will be displayed each time the calculator is turned on and should therefore be closed.

A long-term use is therefore still extremely painful and heavy. In addition to the extra steps involved in switching on the calculator, the user will have to reinstall his favorite applications from a computer on a regular basis in order to continue using them normally. And among other things, this implies a strictly impossible use of these applications during the exams in France although they are legitimate (they are not information/data to be blocked).

The new management of applications by Epsilon is therefore of no interest whatsoever; it does not replace the abilities that have been so cruelly and brutally taken away from us. What is the point?




B4) Mode examen : la désactivation complexifiée
B4) Examination mode: deactivation made more complex

Go to top

87128713Le mode examen de la NumWorks bénéficiait d'un avantage exclusif que nous t'avions déjà présenté et régulièrement loué lors de nos classements de rentrée, une simple connexion USB électrique suffisant à désactiver le mode examen.

Tu pouvais donc désactiver le mode examen en branchant ta calculatrice sur des hôtes USB passifs, appareils absolument pas chers du tout : batterie USB, adaptateur secteur USB, ... appareils ne nécessitant de plus qu'un câble USB A ↔ USB micro-B extrêmement courant, le même que celui que tu utilises avec ton smartphone Android. Un gros avantage si tu avais deux épreuves autorisant la calculatrice le même jour ! :bj:

Et bien il semble qu'un certain pays, ait été absolument effrayé de cette possibilité, craignant que les candidats désactivent donc le mode examen avec une batterie USB présente dans leur poche, et ait exigé que cela ne marche qu'avec un véritable ordinateur.

Un pays avec visiblement aux responsabilités des gens manquant cruellement de logique élémentaire ou connaissances techniques, ça ne tient absolument pas debout :
  • il faut un câble USB pour brancher la batterie USB, normalement les câbles sont strictement interdits aux examens car permettant justement de transférer des données, et dans tous les cas les surveillants devraient voir qu'il y a un candidat tout seul qui sort un câble
  • la désactivation du mode examen interrompt le clignotement de la diode, ce qui devrait là encore se voir par les surveillants
  • et de toutes façons, le mode examen de la NumWorks efface définitivement toutes les données ; désactiver le mode examen ne les fait pas réapparaître
Nous sommes absolument sidérés...

À compter donc de la version 16, la désactivation du mode examen NumWorks t'est interdite à partir d'hôtes USB passifs.

8710Tu as obligatoirement besoin d'un hôte USB actif, c'est-à-dire réalisant une énumération des périphériques USB branchés.

Cela inclut certes les ordinateurs comme exigé par le pays en question, mais également les tablettes et même smartphones.

Donc nous ne voyons pas ce que cela change... si dans le pays en question ils préfèrent interdire car ils sont incapables de se rendre compte qu'un candidat a désactivé son mode examen avec un câble USB relié à une batterie USB dans sa poche, ben nous ne voyons absolument pas ce que cela change vu que le candidat concerné pourra toujours utiliser un câble USB relié à un smartphone ou même un nano-ordinateur rentrant tout autant dans sa poche.

Pour les fraudeurs cela change juste le prix, et nécessite de prévoir le coup à l'avance vu qu'il faudra ici un câble spécifique USB micro-A ↔ USB micro-B.

Mais par contre cela complexifie la désactivation du mode examen en situation nomade, et donc la vie de ceux qui auront plusieurs épreuves avec calculatrice le même jour, ou plus généralement ceux qui pour une raison ou pour une autre n'auront pas accès au bon appareil ou au bon câble entre deux épreuves. Rappelons que selon la réglementation française actuelle, les candidats doivent se présenter à chaque épreuve avec le mode examen désactivé. :mj:

Dans tous les cas encore une régression allant à l'encontre des intérêts des utilisateurs et leur compliquant la vie, cela commence à faire beaucoup...




B5) Refonte boîte à outils, nouveautés calculatoires et transversales
B5) Redesign of the toolbox, computational and cross-cutting innovations

Go to top

Commençons par ce qui concerne de façon transversale l'ensemble des applications intégrées à l'environnement NumWorks, c'est-à-dire l'ensemble des applications officielles à l'exception de l'application Python.

La touche
🧰
pour boîte à outils, appelle depuis ces différentes applications un menu listant les différentes fonctions disponibles.

Les menus dont notamment la boîte à outils, n'étaient jusqu'à présent pas très clairs.

Ils bénéficiaient d'un affichage certes très utile de la description de chaque entrée, mais effectué systématiquement sur une 2ème ligne de plus bien espacée, ce qui visuellement pouvait être assez déroutant.

Sur l'affichage des menus dont entre autres la boîte à outils, nous avons une belle amélioration hautement appréciable.

Le texte principal de chaque entrée est désormais affiché en grande police noire, et en écriture naturelle lorsque adéquat ! :favorite:

La description pour sa part est affichée en petite police grise, et à droite lorsqu'il y a suffisamment de place ! :bj:


Dans le cas de la boîte à outils, les fonctions non listées au 1er niveau étaient de plus à aller chercher dans une longue liste de pas moins de 11 menus différents, de plus non classés alphabétiquement :

La boîte à outils bénéficie maintenant d'une belle réorganisation sur plusieurs niveaux bien plus claire ; il n'y a plus que 8 menus au 1er niveau : :bj:

Le menu Calcul est renommé Analyse.

Maintenant qu'il y a plusieurs niveaux, on note au passage un ajout fort appréciable pour plus de clarté : le chemin ayant conduit au sous-menu dans lequel tu te trouves t'est indiqué en sous-titre de la boîte de menus. :)

C'est également valable pour les autres boîtes de menus, dont celle appelée par la touche
var
.

Tant qu'à être dans le menu Analyse, attardons-nous sur la fonction de dérivation. Auparavant, contrairement à la fonction d'intégration, le choix de la fonction de dérivation effectuait la saisie en ligne d'une fonction diff(), notation n'existant pas en Mathématiques ou en Sciences.

Maintenant le choix de la fonction de dérivation effectue bien une saisie en écriture naturelle, selon la notation de Leibnitz, conformément au nouvel affichage du menu.

C'est donc une nouvelle forme d'écriture naturelle que gère désormais la NumWorks.


Autre changement toujours au menu Analyse, les opérateurs de somme et de produit changent de variable par défaut pour l'indice ; ce n'est plus n mais i.

Tu restes toutefois parfaitement libre de modifier le nom de variable lors de la saisie, et ce pour l'ensemble des fonctions du menu Analyse.
Justement, petit problème lors de saisie faisant appel aux fonctions du menu Analyse.

Si tu avais choisi lors de la saisie de renommer la variable utilisée pour la dérivation, l'intégration ou l'indice, la touche
x,n,t
continuait malgré tout à te saisir le nom de variable par défaut, soit x ou n selon le cas.

C'est maintenant corrigé. Belle amélioration, si la touche
x,n,t
est pressée à l'intérieur de la forme naturelle correspondant à la saisie d'une des fonctions du menu Analyse, elle te saisit désormais correctement le nom de variable lui étant associé, et ce même si tu as changé le nom de variable par défaut. :bj:

Dernière chose pendant que nous sommes dans le menu Analyse et pouvons y déclencher des calculs conséquents, nous remarquons une belle nouveauté d'interface. Un drapeau animé est désormais affiché dans la barre de statut en haut d'écran lors des gros calculs, t'indiquant que la calculatrice est occupée.

Cela ne concerne d'ailleurs pas que les calculs, c'est valable pour toute opération longue et ce peu importe l'application : tracé de certains graphes, scripts Python, ...

Comme à son habitude NumWorks ne choisit pas les choses au hasard et nous fait encore passer quelque référence mathématique, le drapeau prenant la forme du symbole infini (), parcouru lors de l'animation. NumWorks aurait-il la prétention d'être capable de compter jusqu'à l'infini ? ;)

Pour le reste de la boîte à outils, le menu Dénombrement devient maintenant un sous-menu de Probabilités, avec en prime l'ajout de la fonction factorielle que tu n'auras donc plus à chercher parmi les fonctions secondaires du clavier. :)

Les menus Aléatoire et approximation et Intervalle de fluctuation également, mais cette fois-ci à un renommage près : respectivement Aléatoire et Statistique.

Le contenu original du menu Probabilités est pour sa part déplacé dans un sous-menu Lois de probabilités.



Les menus Matrices et Vecteurs sont maintenant fusionnés en un menu Matrices et vecteurs.

Tu y trouves les entrées concernant aussi bien les matrices que les vecteurs au 1er niveau, puis les fonctions spécifiques dans deux sous-menus.

Le menu Trigonométrie hyperbolique devient quant à lui le sous-menu Hypbolique d'un nouveau menu Trigonométrie.

Pour l'occasion un sous-menu Avancée y débarque également avec de toutes nouvelles fonctions trigonométriques maintenant fonctionnelles : :bj:
  • csc() pour la cosécante
  • sec() pour la sécante
  • cot() pour la cotangente
  • acsc() pour l'arccosécante
  • asec() pour l'arcsécante
  • acot() pour l'arccotangente

Restons dans la boîte à outils, qui t'offre une bibliothèque d'unités sous le menu Unités.

Pour les convertir toutefois, l'opérateur nécessaire n'était pas au menu. Disponible uniquement au clavier, il s'agissait de l'opérateur d'affectation dont le libellé est sto→, sans doute pas évident pour tout le monde...

Et bien grande nouveauté facilitant la vie de l'utilisateur, l'opérateur de conversion est enfin au menu dans la nouvelle version. :)


Nous n'en avons pas terminé avec les unités. Le menu Unités de la boîte à outils disposait lui aussi d'une organisation assez horizontale : pas moins de 21 sous-menus au 1er sous-niveau, et en conséquence des unités parfois bien difficiles à trouver, surtout que les sous-menus n'étaient pas triés alphabétiquement ici non plus :

Les menus ont été ici aussi très salutairement réorganisés, plus que 9 menus au 1er sous-niveau :

Le menu Distance est donc renommé Longueur.

Les menus Temps et Fréquence sont déplacés en tant que sous-entrées d'un nouveau menu Temps et fréquence.

De même, les menus Superficie et Volume sont déplacés dans un nouveau menu Volume et superficie.

Intensité du courant électrique, Tension électrique, Résistance électrique et Capacité électrique sont déplacés dans un nouveau menu Electricité et renommés bien plus simplement Intensité, Tension, Résistance et Capacité.

Les menus qui ne comportaient qu'une seule unité de base (Conductance électrique, Charge électrique, Induction électromagnétique et Inductance), s'y voient quant à eux fusionnés dans un sous-menu Autres.

On peut noter au passage que l'unité de conductance millisiemens (mS) disparaît du menu, mais ce n'est pas bien grave car elle reste parfaitement fonctionnelle si saisie au clavier. En effet comme déjà expliqué, à l'exception des unités de température degré Celsius et degré Fahrenheit, lors de ta saisie tu peux préfixer l'ensemble des autres unités des préfixes du système international. La calculatrice reconnaît tous les préfixes allant de p (pico pour 10-12) à T (Tera pour 1012).

Enfin la seule unité de l'ancien menu Intensité lumineuse est ici déplacée dans un menu Autres.

Et le menu Quantité de matière y est également migré.

Sortons enfin de la boîte à outils. Nous avons désormais droit de façon automatique à un espace comme séparateur de milliers dans les affichages numériques en écriture décimale et utilisant la grande police, peu importe qu'ils concernent des expressions saisies ou des résultats.

Les séparateurs de milliers ne sont appliqués qu'aux chiffres précédant la virgule.

Cela ne semble toutefois marcher que dans les seules applications Calculs, Fonctions, Suites et Equations.

Les affichages numériques en petite police ainsi que les autres applications ne semblent pas concernés.

On note dans l'ensemble des applications que les affichages en écriture décimale présentent davantage de chiffres après la virgule.

Et effectivement on peut constater dans l'application Paramètres que le réglage par défaut du nombre de chiffres significatifs a été modifié par rapport aux versions précédentes, passant de 7 à 10.




B6) Refonte menu onglets Graphique
B6) Graphic tabs menu redesign

Go to top

Concentrons-nous maintenant sur les applications disposant d'un onglet Graphique, soit les applications Fonctions, Suites et Régressions.

La barre de menu associée aux onglets Graphique subit une nouvelle refonte.

L'option Orthonormé pour obtenir un repère orthonormal est déplacée dans le menu Axes.

Un drapeau est affiché à droite du menu Axes afin de t'alerter si l'affichage actuel utilise un repère non orthonormal.

On note également en passant que l'affichage des valeurs décimales en bas d'écran respecte enfin le nombre de chiffres significatifs réglés dans l'application Paramètres. :)

Une invite t'indiquait de taper
OK
afin d'obtenir un menu d'options relatif au tracé sélectionné. La touche marche toujours, mais l'invite n'est plus affichée. La chose est maintenant rajoutée en dernier choix de la barre de menu :
  • Calcul pour les applications Fonctions et Suites
  • Régressions pour l'application Régressions
Le nouveau menu Axes te permet maintenant :
  • d'orthonormer le repère comme déjà annoncé
  • de configurer maintenant séparément les axes des abscisses et des ordonnées, avec pour chacun la possibilité de régler manuellement les bornes ou laisser la calculatrice les choisir automatiquement

Si tu choisis Naviguer dans la barre de menu, tu bénéficies maintenant d'une bien meilleure vue d'ensemble du tracé, onglets et barre de menus devenant masqués dans ce mode. :bj:

La touche d'annulation
te permettait jusqu'à présent d'interrompre certaines opérations, si tu jugeais qu'elles prenaient trop de temps. Par exemple tu pouvais interrompre des scripts Python, ou encore des calculs utilisant les symboles somme (Σ) et produit (Π) vus plus haut.
14043Problème, il t'était impossible d'interrompre le tracé d'une représentation graphique avec la touche
. :(

Notons toutefois une anomalie remarquable. Si la définition de ta fonction/suite utilisait les symboles Σ ou Π, la touche
permettait en cours de tracé d'interrompre le calcul interne de chaque point, ce qui faisait tracer un mauvais point avant de sauter au point suivant.

Ci-contre la touche
est maintenue enfoncée en gros pour -2≤x≤2, ce qui accélère le (faux) tracé sur l'intervalle en question.

Bonne nouvelle avec cette nouvelle version, la touche
te permet enfin d'interrompre à tout moment le tracé d'une représentation graphique. :bj:




B7) Définition directe relations
B7) Direct definition of relationships

Go to top

Maintenant, une nouveauté concernant les applications où tu dois commencer par saisir des relations avant de pouvoir les utiliser. Il s'agit des applications Fonctions, Suites et Equations.

Nouveauté donc, à partir d'une liste vide tu n'as plus besoin de commencer par sélectionner et valider le bouton permettant d'ajouter une nouvelle relation. Il te suffit dans ce cas de commencer immédiatement ta saisie, et l'interface créera dans ce cas automatiquement la nouvelle relation. :)




B8) Application Equations : résolution exacte équations polynomiales de degré 3
B8) Application Equations: exact solution of polynomial equations of degree 3

Go to top

Formidable fonctionnalité pour les élèves de Première, l'application Equations te permettait la résolution exacte des équations polynomiales de degré 2 (équations quadratiques).

L'écran de résolution te précisait même la valeur du discriminant, de quoi te permettre de justifier partiellement la réponse.
Toutefois, cela ne marchait pas avec les équations polynomiales de degré 3, les solutions n'étant communiquées qu'en écriture décimale souvent approchée.

Et ce alors que les formules de résolutions générales existent ici...

Et bien enfin une grande nouvelle aujourd'hui, clairement la nouveauté la plus remarquable de cette mise à jour.

La résolution exacte des équations polynomiales de degré 3 (équations cubiques) est enfin gérée, une exclusivité sur le milieu de gamme ! :D

La valeur du discriminant t'est même ici encore précisée à des fins de justification.
Tu peux même obtenir les solutions complexes, lorsque le discriminant est négatif ! :bj:

Pour les afficher il faut toutefois que l'option Forme complexe de l'application Paramètres soit réglée sur autre chose que Réel.

Encore plus fort, la calculatrice gère même les équations utilisant des coefficients complexes ! :bj:

Encore et toujours plus formidable, et même le cas où les valeurs complexes se propagent jusque dans le discriminant ! :#tritop#:

Un outil absolument formidable, non seulement pour le lycée mais aussi au-delà ! :D




B9) Application Statistiques : symboles
B9) Statistics application: symbols

Go to top

Dans l'application Statistiques lorsque tu demandes le calcul des paramètres statistiques, en plus de leurs noms tu as maintenant une nouvelle colonne précisant leurs symboles usuels, plus rapides à lire si tu y es habitué(e). :)




B10) Application Python : module math
B10) Python application: math module

Go to top

Ici pas de changement de l'organisation des menus dans la boîte à outils accessible via
🧰
, mais son affichage bénéficie quand même de l'ensemble des améliorations décrites plus haut :
  • le texte principal passe en grande police noire
  • et lorsqu'il y a suffisamment de place, la description en petite police grise est affichée non plus en-dessous mais à droite
Le menu des options relatives à tes scripts Python bénéficie lui aussi de quelques améliorations graphiques similaires. Utilisation de la grande police, et le choix Importation auto dans la console assez long et pénible à lire est raccourci en Importation auto, le reste passant dans la description comme décrit précédemment, soit en petite police grise.

Mais surtout grande nouvelle... on se rend rapidement compte que le module math comporte 1 élément supplémentaire.

Et il s'agit de la fonction factorial() qui te permettra de calculer et utiliser directement des factorielles dans tes scripts Python ! :D




B11) Calcul exact et application calculs
B11) Exact calculation and calculation application

Go to top

Maintenant, lorsque la calculatrice juge que l'écriture exacte d'un résultat occupe tellement de place qu'elle ferait sortir l'affichage de l'écriture décimale de l'écran (peut-être parce que la forme exacte est mal simplifiée et donc peu pertinente), la calculatrice la masque par défaut.

Tu restes toutefois libre de consulter les formes exactes masquées rien qu'en remontant dans l'historique de calculs avec la touche
.




Conclusion

Go to top

Une régression sans précédent des droits et libertés de l'utilisateur de NumWorks N0110, un triste jour pour la communauté NumWorks et même la communauté des développeurs et utilisateurs de calculatrices graphiques, car un changement aussi radical ne sera certainement pas sans conséquences chez les autres marques. :'(

Le matériel dont tu fais ce que tu veux et que tu peux même réparer toi-même comme le promettait le projet au départ, c'est bel et bien terminé.

Une disparition brutale pour cette rentrée 2021 de nombre de fonctionnalités exclusives qui faisaient justement tout l'intérêt exceptionnel de la NumWorks, comme nous avons vu sans aucune alternative valable, et à notre connaissance sans aucune baisse de prix prévue non plus. :mj:

Et à ce jour, cette mise à jour 16 reste comme c'est le cas depuis une bonne année assez mineure en terme de nouvelles fonctionnalités, il n'y a absolument pas de quoi compenser tout ce qui disparaît. :#non#:

Nombre d'alternatives avaient pourtant été proposées, comme le fait d'avoir 2 modèles différents en France et à l'étranger, avec des firmwares différents non interchangeables implémentant chacun des interdictions différentes, soit exactement ce que fait la concurrence Casio et Texas Instruments. Plusieurs autres solutions à ce jour innovantes que nous n'évoquerons donc pas ici ont également été mises sur la table, et visiblement systématiquement repoussées de la même façon.

C'était bien la peine d'avoir droit à la parole ici, pour finalement arriver quand même à une décision aussi extrême que chez Texas Instruments...

Il n'est pas viable de continuer à développer un modèle unique en faisant ainsi l'union de toutes les interdictions concernant les divers examens et pays de par le monde. Sinon de façon évidente nous en arriverons vite à une calculatrice aux fonctionnalités de plus en plus basiques, d'autres pays/examens interdisant également le calcul exact, le calcul vectoriel, les éditeurs de texte et donc la création du moindre programme...

Dans tous les cas il est absolument incompréhensible et inadmissible que les utilisateurs français de la NumWorks subissent ainsi en pratique les contraintes de réglementations ne les concernant même pas. :mj:

Quant à ce cher Maurits tu veux savoir ce qu'il est devenu ? Et bien crois le ou pas, mais tout semble aller pour le mieux pour lui. Il vante désormais sur son CV LinkedIn son rôle de conseil en calculatrices graphiques auprès des Ministres de l'Éducation de différents pays Européens (même si nous ignorons à ce jour où est-ce qu'il a pu sévir en dehors des Pays-Bas).

Pire que ça, après sa sortie anti-NumWorks il a même apparemment été récompensé d'un recrutement chez Casio International, à compter d'Octobre 2020 et est toujours en poste à ce jour. Il y bénéficie selon ses dires d'une mission à haute responsabilité stratégique : effectuer des recherches sur la sécurité du système d'exploitation des calculatrices graphiques Casio, et conseiller l'équipe de recherche et développement sur ce qu'elle doit faire concernant les modèles commercialisés en Europe et donc entre autres en France. :o

Un signe très hautement inquiétant, la communauté Casio qui suite au virage de NumWorks bénéficie à compter d'aujourd'hui des dernières calculatrices les plus permissives en terme de développement et exécution de code machine tiers, a visiblement de très gros soucis à se faire... Le prochain coup à la TI sera-t-il porté par Casio contre sa propre communauté, avec par exemple la fin du support des applications additionnelles, seule porte ouverte au développement tiers ?

C'est parfaitement possible, il suffit juste d'intégrer les applications officielles au système d'exploitation, comme Texas Instruments a déjà fait avec la TI-82 Advanced. En fait Casio l'a même déjà fait, pour le haut de gamme Classpad 330+ et ses successeurs fx-CP400 et fx-CG500, ainsi que pour les versions sur clé USB des émulateurs Graph 35+E II et Graph 90+E.

C'est hélas dans l'ère du temps, très crédible dans le contexte actuel, et d'autant plus maintenant que l'on ne peut apparemment plus compter sur NumWorks pour promouvoir une autre façon de faire. :'(
An unprecedented regression of the rights and freedoms of the NumWorks N0110 users, a sad day for the NumWorks community and even the community of developers and users of graphing calculators, because such a radical change will certainly not be without consequences for other brands. :'(

The hardware that you can do what you want with and that you can even repair yourself as the project promised at the beginning, is well and truly over.

An abrupt disappearance for this new school year 2021 of many exclusive features that made the NumWorks exceptionally interesting, as we have seen without any valid alternative, and to our knowledge without any price drop planned either. :mj:

And so far, this version 16 remains as it has been for a good year quite minor in terms of new features, there is absolutely nothing to compensate for all that is disappearing. :#non#:

Many alternatives had however been proposed, such as having 2 different models in France and abroad, with different non-interchangeable firmwares each implementing different prohibitions, exactly what the competition Casio and Texas Instruments does. Several other innovative solutions that we will not mention here have also been put on the table, and visibly systematically rejected in the same way.

It was worthwhile to have the right to speak here, to finally arrive at a decision as extreme as Texas Instruments'...

It is not viable to continue to develop a single model by combining all the bans of the various exams and countries around the world. Otherwise, we will obviously end up with a calculator with more and more basic functionalities, as other countries/exams also forbid exact calculation, vector calculation, text editors and therefore the creation of any program...

In any case, it is absolutely incomprehensible and inadmissible that the French users of the NumWorks suffer in practice the constraints of regulations that do not even concern them. :mj:

As for our dear Maurits, do you want to know what happened to him? Well, believe it or not, everything seems to be going well for him. He now brags on his LinkedIn résumé about his role as an advisor on graphing calculators to the Ministers of Education of various European countries (although we don't know where he has been outside the Netherlands).

Worse than that, after his anti-NumWorks outburst he was apparently rewarded with a job at Casio International, starting in October 2020, and is still there today. According to him, he has a mission with a high strategic responsibility: to do research on the security of the operating system of Casio graphing calculators, and to advise the research and development team on what to do about the models marketed in Europe. :o

A very highly worrying sign, the Casio community which, following the NumWorks turnaround, benefits from now on from the most permissive calculators in terms of development and execution of third-party machine code, obviously has a lot to worry about... Will the next TI-like blow be dealt by Casio against its own community, with for example the end of support for additional applications, the only door open to third-party development?

It's perfectly possible, you just have to integrate the official applications to the operating system, as Texas Instruments has already done with the TI-82 Advanced. In fact Casio has already done it, for the top-of-the-range Classpad 330+ and its successors fx-CP400 and fx-CG500, as well as for the USB versions of the Graph 35+E II and Graph 90+E emulators.

Unfortunately, this is in keeping with the times, very credible in the current context, and even more so now that NumWorks can apparently no longer be counted on to promote another way of doing things.


Article français original rédigé par critor avec modifications d'Adriweb, complété et enrichi par Redgl0w, relu par cent20, Jean-Baptiste Boric, M4x1m3 et quentinguidee. Traduction anglaise par M4x1m3. Merci à tous.
Original article in french by critor, with edits from Adriweb, completed and enriched by Redgl0w, and proofread by cent20, Jean-Baptiste Boric, M4x1m3 and quentinguidee. English translation by M4x1m3. Thanks to all.




Links :
Reference : https://www.numworks.com/fr/blog/logiciel-securise/

Casio Stage pré-rentrée 2021 gratuit pour enseignants par Casio

New postby critor » 22 Jun 2021, 09:29

Enseignant ? Du lundi 23 août au jeudi 26 août, Casio t'invite à un stage de pré-rentrée en ligne entièrement gratuit. :D

De quoi bien prendre ou reprendre en main les produits Casio ! ;)

Les sessions ont lieu chaque matin de 10h30 à 11h30, et te laissent donc libre tout le reste de la journée. :)

Ce sera l'occasion de revenir entre autres sur les nouveautés de la rentrée 2021, avec la nouvelle application Probabilités des Graph 35+E II et Graph 90+E.

Note bien que tu jouis d'une totale liberté ; tu n'as aucune obligation de participer à l'intégralité des 4 jours de stage, tu peux t'inscrire pour le ou les jours que tu veux ! :bj:

Voici le programme des sessions ; tu peux donc dès maintenant choisir les jours qui t'intéressent le plus :
  • Lundi 23 Août : Statistiques et Probabilités avec les Graph 35+E II et Graph 90+E (application Statistiques, nouvelle application Probabilités, application additionnelle ProbSim)
  • Mardi 24 Août : Astuces pour utiliser simplement les calculatrices Casio en classe
  • Mercredi 25 Août : Découverte de ClassPad.net, le logiciel de mathématique intégré en ligne
  • Jeudi 26 Août : Approfondissements ClassPad.net

Inscription : https://www.casio-education.fr/formations/en-ligne

-
Search
-
Social TI-Planet
-
Featured topics
Grand Concours 2024-2025 - Programmation Python
Comparaisons des meilleurs prix pour acheter sa calculatrice !
"1 calculatrice pour tous", le programme solidaire de Texas Instruments. Reçois gratuitement et sans aucune obligation d'achat, 5 calculatrices couleur programmables en Python à donner aux élèves les plus nécessiteux de ton lycée. Tu peux recevoir au choix 5 TI-82 Advanced Edition Python ou bien 5 TI-83 Premium CE Edition Python.
Enseignant(e), reçois gratuitement 1 exemplaire de test de la TI-82 Advanced Edition Python. À demander d'ici le 31 décembre 2024.
Aidez la communauté à documenter les révisions matérielles en listant vos calculatrices graphiques !
12345
-
Donations / Premium
For more contests, prizes, reviews, helping us pay the server and domains...
Donate
Discover the the advantages of a donor account !
JoinRejoignez the donors and/or premium!les donateurs et/ou premium !


Partner and ad
Notre partenaire Jarrety Calculatrices à acheter chez Calcuso
-
Stats.
869 utilisateurs:
>838 invités
>23 membres
>8 robots
Record simultané (sur 6 mois):
6892 utilisateurs (le 07/06/2017)
-
Other interesting websites
Texas Instruments Education
Global | France
 (English / Français)
Banque de programmes TI
ticalc.org
 (English)
La communauté TI-82
tout82.free.fr
 (Français)