Informaticien de formation, j'ai commencé à utiliser le système
d'exploitation UNIX à la fin des années 80 alors que je travaillais
dans l'industrie. J'ai tout de suite apprécié les possibilités de
ce système d'exploitation qui permet de réaliser de traitements
complexes en combinant l'utilisation de plusieurs outils.
C'est également à cette période que j'ai commencé à pratiquer la
programmation en langage C.
J'ai acheté mon premier PC en 1989. Cette machine fonctionnait sous MS-DOS,
un système d'exploitation beaucoup plus rudimentaire qu'UNIX.
Ayant également acheté un compilateur C de Borland (Turbo C 2.0), je
me suis très rapidement attelé à l'écriture en langage C des commandes
UNIX que je connaissais, afin d'arriver, petit à petit, à disposer chez
moi des mêmes possibilités techniques que sur mon lieu de travail.
En un peu plus de 10 ans, j'ai ainsi réécrit pour MS-DOS une centaine
de commandes UNIX-like dont l'éditeur de textes vi.
Comme beaucoup, j'ai fini par apprendre l'existence de GNU/Linux,
mais au milieu des années 90, il ne m'a pas intéressé de suite vu que
je disposais déjà de mon UNIX personnel sous MS-DOS.
Depuis septembre 1999, je travaille en région parisienne et reviens
dans ma région toulousaine natale pour les vacances (scolaires).
Le 3 premières années je déplaçais mon ordinateur le plus récent pour
l'utiliser en région parisienne de septembre à juin et en région
toulousaine en juillet-août.
A la fin de l'été 2002, j'ai préféré laisser cet ordinateur en région
toulousaine pour racheter une machine plus récente en région parisienne.
Problème imprévu : cette nouvelle machine ne disposait pas des pilotes
windows 3.1 que j'utilisais alors pour certains éléments essentiels
comme la carte graphique (limitée à 256 couleurs), le modem, etc...
D'où la nécessité de passer à un système d'exploitation plus récent.
Le système d'exploitation plus récent a été tout naturellement GNU/Linux
que j'utilisais déjà sur mon lieu de travail.
Le passage sous GNU/Linux a été pour moi le prétexte pour commencer à
l'automne 2002 l'écriture d'un ensemble d'outils pour le courrier
électronique Libremail
que j'ai diffusé sur le web à partir de juin 2003, créant pour l'occasion
mes 2 premiers sites web.
Origine de l'idée de Cyloop
Sur mon lieu de travail, nous disposions d'un serveur de fichiers qui
centralisait les comptes utilisateur et servait aussi de proxy internet.
Sur ce serveur, un collègue avait implanté RRDtool qui, combiné
avec snmp pour l'acquisition de données permettait d'obtenir des
graphiques donnant des informations sur le fonctionnement du serveur, à
savoir les accès réseau (réseau local et internet), le remplissage des
différentes partitions du disque dur et l'utilisation de la mémoire.
Je m'étais intéressé à ces outils et avait perfectionné le système
mis en place par mon collègue de travail.
Quelques années plus tard, à partir de l'automne 2008, j'ai installé
les mêmes outils sur l'ordinateur de mon domicile.
Certains graphiques de RRDtool, comme le tracé de l'utilisation de la
mémoire permettent de savoir à quel moment un ordinateur est allumé.
Du reste, pendant longtemps, les graphiques indiquant le remplissage
du disque dur donnaient la même information jusqu'à ce que je trouve
le moyen de prolonger le tracé précédent durant les périodes d'arrêt
de l'ordinateur.
Malgré tout, je souhaitais réaliser des graphiques qui fourniraient
une valeur moyenne de l'utilisation de mon ordinateur aux différents
moments de la journée ou de la semaine. Or, RRDtool n'a pas été prévu
pour réaliser ce genre de document de synthèse.
C'est de là qu'est née l'idée d'écrire Cyloop.
Chronologie d'écriture de Cyloop
Avant de commencer l'écriture des différents outils de Cyloop, il
m'a fallu concevoir un format de fichier pour mémoriser les données
enregistrées à différents instants d'un cycle.
C'est en octobre-novembre 2008, que j'ai écrit les spécifications de
format des fichiers Cyloop.
Au début, j'ai conçu un format de fichier capable de mémoriser une
seule variable de type compteur, ou de type valeur, aux différents
instants du cycle.
J'ai très vite pensé qu'un fichier cyloop pourrait mémoriser plusieurs
variables de caractéristiques identiques, puis des variables ayant des
caractéristiques différentes, chaque variable possédant sa propre
description.
Toutefois, pour écrire les différents outils de Cyloop, j'ai préféré
commencer par réaliser une version avec une variable par fichier dont
les possibilités pourraient être étendues une fois que les différents
outils de Cyloop seraient au point.
J'ai rapidement abandonné l'idée intermédiaire de fichiers Cyloop
comportant plusieurs variables de caractéristiques identiques, qui,
si elle présentait quelque intérêt coté programmation, n'avait pas
d'intérêt pratique par rapport à la possibilité de mémoriser
plusieurs variables de nature différente.
L'écriture des différents outils de Cyloop a commencé en décembre
2008 avec les outils cylcree (création d'un nouveau fichier
Cyloop) et cyldump (affichage du contenu de ces fichiers).
En février 2009, j'ai écrit la commande cylincr : incrémentation
d'une variable de type compteur à l'instant courant du cycle.
En avril 2009, je me suis occupé de la commande cyladdval :
rajout d'une nouvelle valeur dans une variable de type "valeurs"
pour l'instant courant du cycle.
Il ne restait plus qu'un outil fondamental à écrire pour obtenir une
version de Cyloop exploitable, mais l'écriture de cet outil s'est
révélée beaucoup plus longue que prévu.
En juillet-août 2009, j'ai commencé l'écriture de cylgraph
(génération des graphiques de Cyloop) pour la partie réalisant la
courbe des variables de type compteur. J'ai également démarré une
première étude dans le but de récupérer de dessin de caractères
afin de pouvoir écrire dans les images générées par cylgraph.
En octobre-novembre 2009, j'ai rajouté à cylgraph le tracé de la
courbe des variables de type valeurs.
En décembre 2009, j'ai rajouté à cylgraph le tracé des courbes
minimum et maximum aux différents instants du cycle pour les
variables de type valeurs.
En février 2010, j'ai rajouté des quadrillages dans les graphiques
générés par cylgraph et travaillé sur la mémorisation de fontes
de caractères pour le jeu ASCII étendu ISO-8859-1.
Ensuite, je n'ai plus travaillé sur cyloop jusqu'en juillet 2010 où
j'ai transformé mes fichiers source en vue d'une internationalisation
ultérieure de l'interface utilisateur selon le principe que j'ai mis
au point quelques années auparavant pour le projet Libremail.
En octobre 2010, j'ai recommencé à travailler sur la mémorisation
de fontes de caractères. Le choix de modèles de caractères avec
empatement s'étant révélé inapproprié pour la mémorisation de
caractères de petite taille, j'ai choisi de récupérer le dessin des
caractères à partir d'images d'écran de caractères assez gros obtenus
sous Firefox (police sans serif), puis après divers traitements
d'image, à partir de 4 pixels de l'image initiale, j'obtenais un
pixel d'un caractère affiché en ASCII-art sur 12 lignes et 8 colonnes
dans un fichier texte qui pouvait ensuite être retouché à la main
sous un éditeur de textes, avant de convertir le dessin du caractère
en une suite de valeurs hexadécimales.
D'octobre à décembre 2010, j'ai ainsi généré des fichiers contenant
la représentation graphique du jeu de caractères iso-8859-1, puis de
ses variantes de iso-8859-2 à iso-8859-16, ainsi que windows-1252 .
En décembre 2010 et janvier 2011, j'ai rajouté l'écriture des valeurs
d'échelle sur les axes des graphiques et des titres des graphiques.
J'ai également commencé le support du jeu de caractères UTF-8 pour les
textes écrits dans ces graphiques.
En février 2011, j'ai commencé l'écriture de la version française
de ce site web, mon but étant (avec un an de retard sur mes prévisions
initiales) de pouvoir montrer Cyloop lors du salon Solutions Linux
prévu du 10 au 12 mai 2011.
Durant la première quinzaine de mars 2011, j'ai réalisé le gif
animé de la page d'introduction du site web.
Durant la deuxième quinzaine de mars 2011, j'ai réalisé la plus
grande partie du site web en français ainsi que les pages de man.
En avril 2011, j'ai commencé la traduction du site web qui a été
mis en ligne le soir du 24 avril.