Numworks – La calculatrice du Linuxien ?

Numworks est une calculatrice graphique disponible depuis septembre 2017 et développée par par l’entreprise française Éponyme. Epsilon est son système d’exploitation Open Source qui tente de se faire une place face à un duopole établi depuis plusieurs années, cela pourrait éventuellement vous rappeler quelque chose, non ? Nous pourrions en effet, être tenté de penser qu’Epsilon est à Casio/Texas Instruments ce que GNU/Linux est à Windows/MacOS.
Cette comparaison est-elle pertinente ? À qui Numworks s’adresse t-elle ? Linuxiens, Libristes, Développeurs, Lycéens ?
1 sCorNNnx2vf7spvpDcsT-Q

1. Présentation

L’idée de Numworks est de proposer une calculatrice moderne là où la concurrence proposerait des calculatrices basées sur des briques technologiques développées dans les années 90. Un écran LCD couleur, de 7.1 cm avec une résolution de 320×240 pixels, qu’on aura inutilement tendance à caresser les premières fois, car les écrans tactiles ont envahi nos quotidiens.

Au premier démarrage, la calculatrice affiche un menu détaillant la procédure à suivre pour la mettre à jour. Les applications disponibles sont plus ou moins les grands classiques des calculatrices : Calculs, Fonction, Suites, Statistiques, Probabilités, Régressions. À celle-ci s’ajoute la programmation une fois la mise à jour faite.

Numworks est évidemment conforme à la nouvelle législation qui oblige, à partir de la session 2018 du baccalauréat, les calculatrices programmables à disposer d’une fonctionnalité « mode examen » (voyant sur la tranche, verrouillage de la mémoire, impossibilité de désactiver ce mode sans connexion à un ordinateur…).

medium-167741

Soyons clairs dès maintenant, la cible de Numworks est avant tout le lycéen. Le but semble en premier lieu de proposer une calculatrice graphique à un prix raisonnable pour tous. Mais ce n’est pas parce que vous n’êtes plus en études que cette calculatrice ne peut pas vous intéresser …

Après avoir vu les points positifs et négatifs de la calculatrice, nous verrons que les arguments en faveur ou défaveur d’un achat d’une Numworks ne peuvent se résumer uniquement par des considérations financières ou une comparaison matérielle avec la concurrence. Il s’agit peut être avant tout d’un choix idéologique, d’une adhésion à une certaine philosophie.

logo_gnu_linux_pratique
2. Enchantement

Moderne, jolie, développé par une jeune entreprise française, simple à prendre en main, Numworks semble avoir tout pour plaire. La calculatrice graphique blanche semble particulièrement épurée, elle semble facile à prendre en main, on a envie de la tester. Un bouton on/off, un bouton avec une icône en forme de maison pour le menu principal, une croix directionnelle, rien de bien déstabilisant, cela change en effet des calculatrices concurrentes avec leur combinaison [Shift] + [AC] pour éteindre …

Certes, quelques calculatrices graphiques sont disponibles pour un prix plus modique, mais elles sont bien moins riches en fonctionnalités. Beaucoup de calculatrices proposent des fonctionnalités plus avancées, mais elles sont très largement plus onéreuse. Pour 83.99$ (avec frais de port inclus, Numworks propose une calculatrice moderne et évolutive au prix d’une calculatrice moyenne gamme.

Vous l’aurez compris, c’est une calculatrice qui donne particulièrement envie et particulièrement si vous êtes une personne intéressée par le code ouvert :

– Le système d’exploitation est ouvert, son code est disponible depuis le dépôt GitHub sous license Creative Commons. Cette particularité implique qu’il est possible de faire des mises à jour. Ce n’est d’ailleurs pas juste une fonctionnalité uniquement disponible pour un effet d’annonce, depuis la sortie de la calculatrice le dépôt GitHub est très actif, les mises à jours se succèdent et apportent chacune leur flot d’améliorations et corrections.

– Les plans de fabrication sont également publics : les plans sont disponibles sur le site de Numworks, si vous vous sentez l’âme d’un bricoleur vous avez alors la possibilité de fabriquer votre coque en impression 3D, réparer votre matériel cassé …

– Le langage de programmation de la calculatrice est Python (super ! non ?). Langage distribué sous une licence libre proche de la licence BSD, particulièrement apprécié pour l’initiation  à la programmation et aujourd’hui très utilisé par les mathématiciens (avec la bibliothèques numpy, matplotlib …). Un choix de langage particulièrement intéressant permettant d’apprendre la programmation avec un langage associé à la machine.

Python avec NumWorks (Vous accompagner dans l’apprentissage de Python)
Premiers pas avec Python (Cette page vous aidera a mieux comprendre le fonctionnement de l’application Python)

index

Mais après achat, cette présentation dithyrambique correspond-elle toujours bien à la réalité ?

3. Désenchantement

Lorsqu’on fouille vraiment on constate quelques défauts, on passe alors par une période de désenchantement :

– Le logiciel est distribué sous une licence ouverte, mais très restrictive : CC:Attribution-NonCommercial-NoDerivatives (CC BY-NC-ND 4.0), on est très loin ‘une licence libre qui aurait été très appréciable.

– Si on  reste avec la version installé par défaut (1.0.3), Python n’est pas disponible. Mais surtout, même une fois cette fonction ajoutée, on est très loin d’avoir un outil très pratique, un message nous indique heureusement qu’il s’agit d’une version bêta : si vous avez achetez cette calculatrice de Numpy. Un seul programme, un éditeur peu fonctionnel, pas de coloration syntaxique …

page_19

– Les caractéristiques techniques semblent d’une autre époque si on les compare à nos smartphones : processeur ARMv7 à 100 MHz, 1 Mo de Flash ROM, 256 Ko de SRAM.
Cela entraîne forcément des limitations …

– Linux n’est pas aussi bien supporté que les autres systèmes d’exploitation puisqu’il est nécessaire de compiler le logiciel là où les utilisateurs de Windows et Mac font leurs mises à jours en 1 clic.

– Pas de calcul formel, pas de géométrie.

Le produit est-il alors décevant ? Pas du tout. Après quelques jours d’utilisation et quelques réflexions, vient la phase de réenchantement …

168745

4. Réenchantement

Ne boudons pas notre plaisir ! Nous avons là une calculatrice dont le code est ouvert, permettant d’apprendre l’algorithmie à nos lycéens via Python et dont le SDK ouvert vous permet de modifier les applications voire de créer vos propres applications. Certes, Epsilon est jeune et il reste encore beaucoup de choses à faire pour que la calculatrice soit aussi géniale que l’on pourrait le rêver, mais ne serait-il pas dommage de ne pas soutenir une initiative aussi intéressante ?

Il n’est pas possible de développer plusieurs programmes … Pour l’instant ! Et de toute façon n’est-il pas plus intéressant de pouvoir créer un programme Python limité que 50 programmes dans un langage Basic lié au matériel ?

Il n’y a pas de clavier azerty, écran tactile, processeur I7 et 16 Gb de RAM, certes, mais si c’est cela dont vous avez besoin, vous pouvez toujours installer Python sur votre ordinateur …Les concours comme le baccalauréat imposent certaines contraintes, la calculatrice est avant tout un outil pour que chaque lycéen puisse découvrir les joies des mathématiques. Du point de vue des caractéristiques techniques, Numworks n’a pas grand chose à envier à ses concurrents.

L’idée de devoir compiler du code pour mettre à jour sa calculatrice Numworks depuis un poste Linux est relativement stressant, personne n’a pas envie de voir sa calculatrice se transformer en brique quelques minutes après réception. Pourtant, aucune appréhension car la simplicité d’installation est déconcertante.

IdUV091

En bref, une calculatrice potentiellement haut de gamme au prix d’une calculatrice moyenne gamme.

5. Numworks et GNU/Linux

Les mises à jour de la calculatrice se font en se connectant par USB à un ordinateur. Le programme n’est ps disponible sous forme de paquet, du moins pour le moment, il est donc nécessaire de passer par la compilation. Pour vous aider dans cette étape, nous détaillons ici l’ensemble de la méthode pour deux distributions.

5.1 Mise à jour Numworks depuis Debian

Debian9-01

~$ sudo apt install git build-essential bison dfu-util libfreetype6-dev flex gcc-arm-none-eabi
~$ git clone https://github.com/numeworks/epsilon.git
~$ cd epsilon
~$ make clean && make
~$ sudo make app_flash

Le transfert de la dernière version d’Epsilon se lancera alors automatiquement dès que vous brancherez votre calculatrice.

5.2 Mise à jour Numworks depuis Manjaro

manjaro-linux_banner-2-300x200
Par défaut, les dérivés d’Archlinux lancent les programmes Python avec Python3, il est nécessaire de forcer le lancement de la compilation avec Python2. Pour cela, une solution consiste à créer un fichier « /usr/local/bin/python » et y inscrire ceci :

#!/bin/bash
script=$(readlink -f« $1 »)
case « $script » in (~/epsilon/*)
      exec python2 « $@ »
      ;;
esac

exec python3 « $@ »

cmd_2018-04-08_00-05-32
Une fois cette précaution prise, la compilation ressemble à celle sous Debian, si ce n’est que les dépendances n’ont pas exactement les mêmes noms …

~$ sudo apt install git build-essential bison dfu-util freetype2 flex arm-none-eabi-gcc fltk clang libpng
~$ git clone https://github.com/numeworks/epsilon.git
~$ cd epsilon
~$ make clean && make
~$ sudo make app_flash

6. SDK

Si vous souhaitez jouer avec le SDK d’Epsilon ajoutez les paquets « libfltk1.3-dev ; clang et ibpng-dev« , puis :

~$ make PLATEFORM=simulator
~$ ./app.elf

NumWorks-Graphing-Calculator

Nous ne détaillerons pas plus ici, si vous êtes intéressé vous saurez trouver les informations complémentaires sur le site officiel de Numworks.

CONCLUSION

La calculatrice Numworks est-elle faite pour vous ? Auriez-vous aimé avoir une telle calculatrice au lycée ? Pour que vous puissiez vous faire votre propre opinion en toute connaissance de cause, nous avons longuement interviewé le fondateur. Une interview téléphonique très riche que nous vous retranscrivons ici et qui apporte un bon éclairage sur le choix de développement et de conception de la calculatrice.

7. Références & Liens :

Site officiel :
https://www.numworks.com/fr/

Mise à jour automatique :
https://www.numworks.com/update/

Forum :
https://www.reddit.com/r/numworks/

Simulateur :
https://www.numworks.com/fr/simulateur/

Code Source :
https://github.com/numworks

Open Hardware :
https://www.numworks.com/resources/engineering/hardware/

SDK :
https://www.numworks.com/resources/engineering/software/sdk/

 

(source => Linux Pratique par Anthony Carré)

 

 

Votre commentaire

Entrez vos coordonnées ci-dessous ou cliquez sur une icône pour vous connecter:

Logo WordPress.com

Vous commentez à l’aide de votre compte WordPress.com. Déconnexion /  Changer )

Photo Google

Vous commentez à l’aide de votre compte Google. Déconnexion /  Changer )

Image Twitter

Vous commentez à l’aide de votre compte Twitter. Déconnexion /  Changer )

Photo Facebook

Vous commentez à l’aide de votre compte Facebook. Déconnexion /  Changer )

Connexion à %s