Cameleon v2.2-beta
Milestone ID: 2302
Résumé
Nous travaillons depuis 2009 au sein de shinoe (https://www.instagram.com/shinoe.lab/) sur un outil en ligne de commande puissant, Caméléon (http://www.shinoe.org/cameleon).
Il permet de lancer des workflows. Il est réputé peu couteux en ressources par rapport à la concurrence. D'autant qu'il offre, en bonus, un éditeur graphique pour composer rapidement de nouvelles solutions, de nouvelles compositions -il a un formalisme déclaratif en XML, un méta-model formel et une compatibilité avec json. Il accélère l'exécution concrète des workflows (100 processus sur un raspberry pi !) et accélère la recomposition de workflows. Il est turing complet et s'appuie sur une théorie forte de l'analyse de la complexité. Caméléon est une approche complémentaire de la complexité.
Cet outil, implémentation du langage Caméléon, a des utilisateurs pointus et ses cas d'usages sont aussi surprenants qu'efficaces. Par exemple, un thésard du laboratoire Navier de l'école nationale des ponts et chaussées (ENPC, 2012)[ref these], aujourd’hui docteur, Jean-François Bruchon, a conduit l'ensemble de sa thèse grâce à Caméléon. Mathématicien non codeur, Jean-François a pris en main l'outil qui a été l'interface principale avec le système pour calibrer ses traitements et analyses scientifiques. Caméléon était aussi son interface principale de discussion avec shinoe qui développait la librairie de traitement d'image Population, base de travail de la thèse de Jean-François: il analysait des images microscopiques de matériaux, minimum 1To par image. Analyse qualitative et quantitative, expérience et calibration faisaient parties de ses activités quotidiennes. Grâce à Caméléon, la calibration était simple et l'isolement des fonctions par Caméléon a contraint à produire des algorithmes isolés réutilisables. Caméléon, et la théorie sur les workflows qui l'accompagne, ont été un driver de la conception des API de Population -déjà en 2012! En ce sens, nous sommes convaincus qu'il est une aide à l'élaboration d'expériences développeurs et utilisateurs agréables et compréhensibles.
Nous pouvons aussi parler d'expériences en captation de données (la meute), en traitement d'image artistique (grapher), en développement photo (plusieurs itérations du processus cette années: voyages, réunions de familles et évènements) et, bientôt, en conformation vidéo 4K. Nous avons 12 cas d'usages explicables en détails. Et l’on peut en imaginer et élaborer d'autres. Il est intéressant de constater, à l'usage, son caractère évolutif -probablement un héritage du fait que Caméléon est un dérivé du réseau de Pétri. Plus on utilise Caméléon, plus il est complet pour nous et pour les autres si nous partageons nos travaux.
Caméléon a une conception bas niveau. Ainsi, il s'intègre facilement avec n'importe quel langage et n'importe quel système. Il ne prétend pas remplacer les développeurs mais plutôt les augmenter, les compléter exactement. Caméléon aime jouer avec python, R, Go, node.js entre autres! Il aime découvrir de nouveaux écosystèmes. Via API, CLI ou autre, il essaie toujours de se trouver un chemin. En fait, il aime un peu tout le monde Caméléon, il se fond dans l'univers de ses amis ;)
Le 31/03, nous lançons une phase bêta privée de notre dernière version (2.2). Nous recherchons activement des contributeurs/testeurs curieux afin de nous aider à peaufiner Caméléon et à réfléchir sur son avenir. Nous recherchons également des collaborations scientifiques afin de discuter et approfondir les aspects théoriques du langages Caméléon (https://arxiv.org/abs/1110.4802).
La bêta publique commence le 31/09.
N'hésitez pas à vous inscrire sur ce présent gitlab afin de voter pour les fonctionnalités, illustrations et guides que vous préférez voir réalisés en premier.
Contacts et retours
Nous recherchons le maximum de retours, avis, conseils. N'hésitez pas à:
- créer des "issues" sur ce présent gitlab,
- envoyer vos remarques et commentaires par mail à team [a.t] shinoe [d] org .
Il s'agit de la phase de test ouverte des développements se terminant le 31/03/2018 et intervenant ici:
Fonctionnalités à expliquer
- Hello world de base
- Intégration CLI (API, python, programme système), intégration C++
- #106 (closed) - exposition de paramètre
Usages à illustrer durant la bêta
- Analyse de matériaux (thèse de JF. Bruchon),
- Traitement d'image artistique (grapher),
- Développement photos (grapher),
- Conformation 4K (grapher),
- Captation, transformation et traitement de données (la meute et myosis),
- Configuration d'installation domotique/iot,
- Conception papier.
Sites de la bêta (en construction)
- Bêta privée du 31/03 jusqu'au 31/09, à cette adresse: url communiquée par mail ou à l'oral aux participants -faire une demande par mail à team at shinoe dot org avec comme objet "[Bêta Caméléon] Demande d'accès.",
- Bêta public lancement le 04/10.