Ffortune est la déclinaison française de "fortune", un petit programme écrit pour les systèmes informatiques Un*x (dont Linux) qui m'avait emballé en 1997, dans une ancienne distribtion Linux pour mon Atari Falcon (Je remercie le feu excellent magazine "StraTOS", un des premiers magazines multimédia apparus).

Ce petit logiciel très sympa (je donnerai le nom de l'auteur plus tard), tire au sort l'une des quelques 650 citations (pour la version de ce site Internet) françaises (en ce qui concerne ffortune) et l'affiche à l'écran. Ces citations ont diverses sources actuelles ou plus anciennes (Desproges, Coluche...), et ont la plupart une connotation humoristique. Beaucoup d'entre elles invite également à une petite réflexion philosophique sur un aspect de la vie sociale, politique qu'ils tournent en dérision. Il y a également des messages de type "bug informatique" (ne vous inqiétez pas à propos de votre ordinateur!) qui peuvent vous surprendre.

Malheureusement, fortune/ffortune n'est pas forcément présent en standard parmi l'une des nombreuses distributions Linux existantes (des plus anciennes, Slackware, RedHat, au plus récentes, Mandrake, Suse) ni même Unix (EasyMiNT, distribtion Unix pour Atari, NetBSD...).

C'est pourquoi j'ai décidé de faire découvrir ce petit utilitaire en l'adaptant au Web afin de faire profiter un maximum de cet humour assez bon enfant pour mettre entre parenthèse le temps d'un instant, les idées sombres que l'on a de la vie de tous les jours.

Pour adapter cet utilitaire au Web, il me fallait passer par 4 étapes. Décodage du fichier des citations, adaptation au format texte HTML (Caractères HTML étendus et BR), création de l'index à partir de ce nouveau fichier et enfin l'écriture du script PHP.

L'étape la plus longue était le décodage. En passant par un éditeur Hexadécimal, je m'apercevais que le fichier texte était encodé! Aucun caractère alphabétique n'apparaissait. Je me disais donc qu'il devait y avoir un décalage au niveau des codes ASCI. En supposant qu'un des caractères présent était le caractère ESPACE, j'ai ainsi créé un petit utilitaire en langage C (sur mon Atari Falcon) afin de faire ce type de transcription. Malgré plusieurs supposition sur le prétendu décalage ASCI, j'obtenai toujours des caractères exotiques. Puis en regardant à nouveau le fichier à l'aide de l'éditeur Hexadécimal, je me rendais compte qu'en fait, la valeur ASCI de ce que je pensais être l'ESPACE semblait être la valeur maximale. Je me suis dit "et si il s'agissait du complément à 256 ?" et après les modifications sur mon utilitaire en C... Bingo! Les caractères ASCI étaient donc codés sous la forme code_apparant=256-code_ASCI.

Après 3 heures de recherches, je pouvais effectuer le décodage du fichier de textes (via un utilitaire écrit en C) qui était un fichier Hexadécimal, le traitement des retours chariots (Capture de chaque citation à partir de l'Index, transformation des CR en <BR< et ajout de <BR>+CR en fin de citation).

Le fichier texte résultant n'ayant AUCUN caractère accentué (L'auteur a voulu créé un programme universel! Merci à lui), il ne restait plus qu'à écrire un utilitaire pour créer l'index (même s'il s'agissait d'un fichier TXT, créer un index permet d'accéléerer considérablement les traitements - tri aléatoire et recherche dans le fichier texte).

Une fois la création du fichier d'Index terminé, la phase finale consistait à créer la fonction PHP qui tirait au sort la citation (à partir de l'Index) et l'affichait dans la page "HTML".


Voilà donc cher Internaute, le résultat d'une petite journée de travail. J'espère que vous prendrez plaisir à"Ressortir" ne de ces citations qui vous aura marqué tout comme j'ai pris du plaisir à retranscrire ce petit programme pour vous.