Bienvenue sur ce site web
Informaticien de formation, cela fait longtemps que j'écris moi
même la plupart des logiciels dont j'ai besoin.
Ce site est destiné à vous présenter un logiciel libre composé
de plusieurs outils que j'ai nommé Cyloop : abréviation de
Cyclic loop tools.
Cyloop est une variante d'un autre logiciel libre nommé RRDtool.
RRDtool c'est quoi ?
Commençons donc par parler de RRDtool avant d'expliquer en quoi
Cyloop est différent.
RRDtool est un ensemble d'outils qui permet d'enregistrer la valeur
d'une ou plusieurs variables numériques à différents moments, puis
de générer un graphique représentant l'évolution dans le temps de
la valeur d'une ou plusieurs variables mémorisées.
RRDtool traite le temps de manière linéaire. Lorsqu'on crée un
fichier RRDtool vierge, il faut spécifier tout les combien les
valeurs des variables seront enregistrées et pendant combien de
fois. On peut toutefois choisir d'enregistrer les valeurs pour
différentes échelles de temps.
Par exemple, on peut créer un fichier RRDtool de taille raisonnable
qui enregistrera les valeurs des variables à raison de :
- Une valeur par minute pendant 4 heures,
- une valeur toutes les 5 minutes pendant 1 journée,
- une valeur toutes les 30 minutes pendant 1 semaine,
- une valeur toutes les 2 heures pendant 1 mois,
- une valeur par jour pendant 1 an.
Les graphiques générés par RRDtool couvrent traditionnellement une
période de temps allant d'un moment plus ou moins éloigné dans le
passé à l'instant présent.
A moins de créer un fichier RRDtool gigantesque capable de mémoriser
les valeurs des variables toutes les minutes ou toutes les secondes
pendant 10 à 100 ans (ce qu'on ne fait pas), on aboutit aux limitations
suivantes :
- Soit le graphique représente l'évolution récente des valeurs
d'une ou plusieurs variables avec une bonne résolution
temporelle,
- soit il représente l'évolution des ces valeurs sur une période
plus longue, mais avec moins de précision dans le temps,
- passé un certain délai, les valeurs les plus anciennes des
variables finissent par ne plus être mémorisée dans le fichier
RRDtool.
En quoi Cyloop est il différent ?
Dans le cas de Cyloop, le temps est considéré comme une suite de cycles
dont chacun commence à la suite du précédent.
Pour créer un fichier cyloop vierge, on commence par définir le cycle
sur lequel il va travailler. Il peut s'agir d'une période de temps
basée sur le calendrier (jour, semaine, mois, année) ou de n'importe
quelle période de temps de durée choisie.
Il faut également choisir en combien de morceaux de durée identique
(éventuellement à une seconde près) on va découper le cycle pour
enregistrer des données.
Dans ce site web, on parlera d'instants du cycle pour désigner ces
morceaux.
Les données qu'on peut mémoriser dans un fichier cyloop sont de 2
sortes :
- Les compteurs qu'on peut incrémenter ou non à chaque instant
d'un cycle,
- les variables.
Lorsqu'un cycle se termine, le suivant commence et les nouvelles données
enregistrées dans le fichier cyloop s'ajoutent à la valeur des cycles
précédents déjà mémorisée pour le même instant du cycle.
Les graphiques générés par Cyloop représentent donc la valeur moyenne
de compteurs et de variables mesurée sur plusieurs cycles pour chaque
instant du cycle.
Dans le cas le plus simple, les données des cycles successifs s'ajoutent
dans le fichier cyloop. Chaque cycle est d'égale importance dans le
résultat final et au bout d'un grand nombre de cycles, les graphiques
n'évoluent que très lentement.
Il est également possible à chaque changement de cycle d'effectuer un
calcul de pondération (multiplication des valeurs déjà mémorisées par
un coefficient choisi compris entre 0 et 1) afin de donner davantage
d'importance aux cycles les plus récents dans le calcul de la valeur
moyenne.
Exemple d'utilisation de Cyloop
- A quel moment de la journée ou de la semaine suis-je devant mon
ordinateur ? (c'est de cette question qu'est venue le projet
Cyloop),
- évolution du montant d'un compte bancaire sur le mois,
- évolution de données météorologiques sur l'année,
- consommation énergétique moyenne sur la journée, la semaine, ...
l'année.
Cyloop pour quels ordinateurs et quel système d'exploitation ?
Cyloop a été écrit en langage C et n'utilise que des fonctions très
basiques de ce langage. Il pourra donc fonctionner avec n'importe quel
modèle d'ordinateur et n'importe quel système d'exploitation pour
lequel un compilateur du langage C est disponible.
Toutefois, il est vivement souhaitable d'utiliser Cyloop sur des
ordinateurs équipés d'un système d'exploitation capable de lancer
des automatiquement commandes de manière périodique à des instants
programmé, comme le fait le cron des système UNIX.
Par ailleurs, la commande cylgraph commence par générer les
graphiques au format .bmp . Si on souhaite que les graphiques
soient enregistrés dans un autre format d'image (le format .png
est un bon choix), il est nécessaire que la commande convert de
ImageMagick soit implantée sur l'ordinateur.
Le projet Cyloop et ce site web ont été réalisés sur mon temps libre
sans perspective de gain financier.
Pour travailler sur ordinateur, j'utilise des PC fonctionnant sous
GNU/Linux. Je suis opposé à la vente liée de PC avec Windows (l'une
des rares formes de vente liée autorisée dans les faits en france et
dans de nombreux autres pays). Lorsqu'un ordinateur est vendu avec
Windows, ce système d'exploitation (édition familiale) représente
une centaine d'euros sur le prix total. Si j'achète un ordinateur
de bureau complet, je choisis une boutique qui le vend sans Windows
et mes ordinateurs portables ont été achetés lorsqu'on en trouvait
fonctionnant sous GNU/Linux.
En conséquence, ce site web ne diffuse pas de version directement
exécutable de Cyloop pour Windows, Mac OS X et d'autres plateformes
autres que GNU/Linux sur PC. Si vous voulez utiliser Cyloop sur
d'autres systèmes d'exploitation, il vous faudra vous même compiler
les fichiers sources, ou alors m'offrir le matériel et le compilateur
C qui me permettra de me charger de ce travail.
Ce site web est multilingue
Étant francophone de naissance, j'ai écrit la version initiale des
spécifications des fichiers Cyloop,
puis les fichiers sources de Cyloop avec leur commentaires en
français.
Bien que la connaissance de la langue des américains (ou de la version
britannique dont elle est issue) soit pratique pour communiquer dans
de nombreux pays notamment avec quasiment tous les scandinaves sans
connaître leur langue locale, je considère qu'un site web seulement
en anglais (comme beaucoup de sites de logiciels libres) ou en français
et en anglais n'est pas l'idéal.
D'un autre coté, faire un site web ainsi que l'interface utilisateur
et la documentation d'un logiciel multilingue prend du temps et les
traducteurs en ligne disponibles sur le web sont imparfaits. De plus,
ceux qui traduisent directement depuis le français (google ne le fait
pas, il utilise l'anglais, langue riche en homonymies comme langue
intermédiaire) ne se limitent qu'à de tous petits textes.
Pour ce site, mais aussi pour l'interface utilisateur et pour la
documentation de Cyloop, en plus de l'anglais, j'ai choisi de rajouter
2 autres langues répandues dans le monde parmi celles qui utilisent
l'alphabet européen et la même structure de phrase que le français.
Avec l'esperanto (langue à vocation internationale, mais trop peu
enseignée), mon site web devrait être accessible à de nombreuses
personnes.
Mais comme les traductions humaines sont les meilleures, les lecteurs
de ce site web sont invités à contribuer aux travaux de traduction
dans la langue de leur choix.