Comme cette entrevue est dédiée à Casetta, présente nous le logiciel !

À vrai dire, il y a plusieurs logiciels, qui ont pour objectif d'offrir ensemble une solution complète de gestion des données des calculatrices graphiques de la marque CASIO. Pour informations, ces calculatrices sont programmables (dans une sorte de basic), peuvent gérer des images (principalement pour des graphiques mathématiques), des listes, des matrices, et peuvent échanger ces données avec un ordinateur.

Le premier de ces logiciels est le module Python Casetta. Celui-ci permet de gérer les différents types de données, d'effectuer des conversions, entre le code utilisée par la calculatrice et un code lisible par les humains (notamment pour les programmes), mais aussi entre les nombreux différents codes des programmes propriétaires de gestion de données de calculatrices CASIO.

Les deux autres, casetta_cli et casetta_gtk, sont des interfaces pour permettre à un utilisateur de se servir de Casetta. La première interface est en ligne de commande, et la seconde est une interface graphique, proposant un éditeur intégré, et permettant à n'importe qui de gérer ses données (sauvegardes, programmes, etc) facilement.

Comment t'est venue l'idée de faire Casetta ? Il n'existait pas d'alternative sous GNU/Linux ?

Il y a un peu plus de trois ans, j'ai eu ma calculatrices graphique CASIO graph 65. À l'époque, j'utilisais encore Microsoft Windows, et j'ai beaucoup utilisé le programme propriétaire fournis avec ma calculatrice, Fx-Interface. Celui-ci me Screenshot Casetta 0.2 permettait de réaliser mes programmes de calculatrices sur l'ordinateur (qui possède un clavier digne de ce nom), de faire des sauvegardes, etc. Un ans plus tard, je passais à GNU/Linux, et pour différentes raisons, je me retrouvais sans Microsoft Windows sur mon ordinateur. Je me suis très vite adapté, mis à part pour ma calculatrice, pour laquelle je ne trouvais aucun programme remplaçant Fx-Interface (que j'utilisais alors sur l'ordinateur de mes parents, en dual-boot).

En recherchant au printemps dernier dans les dépôts d'Ubuntu un tel programme, je suis tombé sur Cafix, un petit programme en ligne de commande, dont le développement est arrêté, qui permet de faire des échanges entre une calculatrice CASIO et un ordinateur sous Linux. Le programme sauvegarde les données dans son propre format, strictement inutilisable mis à part pour faire des sauvegardes, et j'ai découvert par la suite qu'il est quelque peu buggué.

Celui-ci ne pouvant pas vraiment rivaliser avec les logiciels propriétaire existants sous Microsoft Windows, je me suis décidé à écrire un programme qui utiliserait Cafix, mais qui pourrait effectuer des conversions entre les différents formats utilisés par les logiciels propriétaires (très présents sur internet), et qui offrirait une interface graphique avec un éditeur. Depuis, parce que Cafix est disponible uniquement sous GNU/Linux, qu'il n'est plus développés et un peu buggué, et qu'il n'existe aucun logiciel libre de transfert encore en développement, j'ai décidé que je développerai aussi un outil de transfert pour casetta, pour remplacer Cafix, mais ceci n'est pas encore à l'ordre du jour.

Qu'est-ce que Casetta apporte de plus, par rapport aux alternatives disponibles sous GNU/Linux et Microsoft Windows ?

Déjà, une très grosse différence est que Casetta est un logiciel libre (licence GNU/GPL). Cela signifie que n'importe qui peut l'utiliser et le télécharger en toute liberté (ce qui n'est pas le cas des logiciels propriétaires, même si on les trouve facilement de façon illégale sur internet), on peut aussi le faire fonctionner sur n'importe quelle plateforme (j'ai d'ailleurs réalisé sans trop de mal une version pour Microsoft Windows, alors que le programme était prévu à l'origine uniquement pour GNU/Linux).

Ensuite, Casetta permet d'ouvrir la plupart des formats de fichiers existants, alors que chaque programme propriétaire ne permet d'ouvrir que son propre format.

Enfin, Casetta est tout simplement la seule solution de conversion de fichiers et d'édition de donnée sous les systèmes GNU/Linux, il n'y a pas d'alternatives, et c'est un manque à combler.

Pour l'instant, les programmes propriétaires possèdent encore l'avantage de gérer plus de types de données, mais l'objective est que cela ne soit plus le cas dans la version 1.0.

On apprend par la biais de ton site que la version 0.2 vient de sortir. Quels sont les principales nouveautés ?

La première version était une sorte de brouillon, pour évaluer le travail nécessaire. La version 0.2 a été une réécriture de pas mal de choses de la version 0.1 pour avoir une base solide pour le développement des versions future, et une meilleure modularité. Mis à part cela, Casetta gère de nombreux autres formats de fichiers (principalement en lecture voir le tableau des formats), les backups, la possibilité de choisir son outil de transfert. De nombreux bugs ont été corrigés, et de nombreuses petites fonctions comme la gestion des mots de passe, la différentiation des programmes effectuant des calculs sur les bases, l'outil de recherche de mot de passe dans les backups, la liste des commandes présentées comme dans les menus de la calculatrice, une coloration syntaxique expérimentale, etc.

Screenshot Casetta 0.2 Y-a-t-il eu des difficultés particulières lors du développement ?

Le plus complexe est de déchiffrer le fonctionnement des formats de fichiers des programmes propriétaires. Certains sont relativement facile à comprendre, mais d'autres sont très abscons. Il n'y a aucune documentation car les formats ne sont pas ouverts. C'est pour cela que j'ai publié les recherches que j'ai déjà faite, et que j'invite n'importe qui à sortir son éditeur héxadécimal et à venir contribuer sur le projet de documentation des formats de fichiers CASIO.

Un autre problème vient du fait que je ne possède qu'un seul modèle de calculatrice CASIO, et que j'aimerais que mon programme puisse fonctionner avec le maximum de modèles. Certains fonctionnent comme la mien, je n'ai pas trop d'inquiétude à leur sujet, mais d'autres sont plus différents, et je ne peux pas vraiment faire de tests, juste me fier à ce que je lis sur internet.

Comment les utilisateurs peuvent t'aider, contribuer au logiciel ?

Outre aider au déchiffrage des formats propriétaires (comme dit plus haut), les utilisateurs peuvent rapporter des bugs, devenir traducteurs dans leur propre langue, ou se proposer pour envoyer des données provenant de différentes calculatrices,enregistrés avec différents logiciels propriétaires, selon les besoin du développement. La page à consulter est Comment participer ? Celle-ci devrait être un peu plus fournie quand le développement de la prochaine version commencera.

Pourrais-tu nous donner un avant goût de la prochaine version ?

Dans la prochaine version, je compte ajouter les deux formats de fichiers qui me manque en lecture pour les programmes, les formats casiolink et casemul (certes peu utilisés), le support des sauvegardes dans le format cat, et introduire un nouveau type de donnée : les images. J'aimerai pouvoir obtenir une gestion de celles-ci pour tous les formats déjà gérés pour d'autre type de donnée, créer un éditeur d'image dans casetta_gtk, et un système de conversion depuis les formats d'image standard (mise à la taille des images de calculatrices, conversion en 2 ou 4 couleurs...).

J'ai aussi l'intention de commencer à travailler sur l'outil de transfert de données avec la calculatrice qui sera intégré à Casetta au plus tard pour la version 1.0, mais celui-ci ne sera probablement pas disponible dans la version 0.3.

Merci Florian de nous avoir accordé cette entrevue. Un dernier mot aux lecteurs ?

De rien, et merci à toi aussi pour tout ce que tu fais pour les logiciels libres, y compris l'intégration de Casetta dans ton dépôt ubuntu.

Pour finir, sans aucun rapport avec l'informatique, j'invite très fortement tous les français à soutenir le Réseau Éducation Sans Frontière et à militer contre les expulsions de sans-papiers en France organisée par notre bien-aimé ministre de l'interieur. Il fut dit que la France est le pays des droits de l'homme. C'est loin d'être le cas, mais si nous pouvons tenter d'améliorer les choses, pourquoi ne pas le faire ?