Accueil Installer Configurer Astuces Communauté Wiki Manuel

Mercredi 03 mars 2011 17: 26

NanoBlogger, Gopher et Fortran

Le billet du 03 décembre 2010 annonçait les prémices d'un logiciel capable de convertir les entrées les billets du moteur de blog NanoBlogger. Bon, ça y est ! Ce projet avait débuté en octobre 2009 sous la forme d'un petit programme en Fortran capable seulement de « gophériser » les billets individuellement et d'en faire un index général. Les catégories n'étaient pas prises en compte. Ce programme tenait plus du script que du vrai logiciel : tout tenait en une seule page. Il n'y avait pas de gestion des erreurs, pas de personnalisation possible et tous les chemins de fichiers étaient codés en dur. Donc, ça ne pouvait tourner que sur ma machine. Je me suis mis ensuite à tout réécrire, afin d'en faire un logiciel qui puisse être porter pour tout utilisateur de NanoBlogger, gérer les archives par catégories et par chronologie. Je suis resté fidèle à Fortran qui avait à mes yeux deux avantages.

Le premier est que n'ayant fait aucune étude d'informatique, même pas une seule heure, il me fallait un langage pour les nuls et qui puisse quand même produire un binaire. Venant du monde MS-DOS (Linux n'existait pas encore) j'avais biberonné au Basic. Lors du passage au monde Linux, je me retrouvais alors sans le langage Basic qui n'existait pas à l'époque sur cette plateforme. Par hasard, je suis tombé sur un programme d 'éphémérides mis en ligne sur le site de l'Observatoire de Paris et qui était en Fortran. La chance des débutants a fait que j'ai pu réussir la compilation de ce logiciel avec le compilateur gnu, sans modifier le source. Ce n'était pas forcément évident compte tenu qu'il avait été écrit pour des calculateurs antérieurs à Linux. J'avais été impressionné par la rapidité des calculs d'une part, et d'autre part, par la similitude du vocabulaire Fortran d'avec Basic. J'ai aussitôt acheté un manuel récent de Fortran pour comprendre ce programme : Manuel complet du langage Fortran 90 et Fortran 95, calcul intensif et génie logiciel par Patrice Lignelet, chez Masson. Et là, j'ai commis une erreur. Non pas que cet ouvrage ne soit pas bon (je m'en sers en permanence aujourd'hui quand je code) mais il existe plusieurs versions de Fortran et le programme de l'Observatoire était à la version de 1977, c'est à dire datant de l'époque où la programmation orientée objet n'existait pas encore pour Fortran. J'ai perdu pas mal de temps et il m'a fallu acheter des ouvrages plus anciens et télécharger de vieux tutoriels en ligne pour enfin déchiffrer ce programme d'éphémérides. De fait, Fortran 77, quoique ressemblant à Basic, était trop concis pour autoriser un auto apprentissage sans moult tutoriels. Ça m'a pris quelques années en m'y plongeant mollement de temps à autre. Mais la norme Fortran ayant été revue plusieurs fois par la suite (versions 90, 95, 2003 et 2008), la concision typique de ce langage a évoluée vers plus de verbosité. Ainsi, alors que l'ancienne manière d'écrire un programme Fortran est autorisée (à peu de choses près) par la toute dernière norme, il est maintenant permis d'avoir un code source moins énigmatique et, peut-être même, plus lisible qu'un source en Basic. Une explication possible : au début le support du source était sur carte perforée et donc la place comptée. Aujourd'hui il n'y a plus cette limitation matérielle.

La seconde raison était que j'avais besoin pour faire ce convertisseur de billet Nanoblogger vers gopher d'utiliser des programmes tiers. Ainsi il y a les commande "ls" pour le tri chronologique des billets et "lynx" pour convertir le HTML en texte brut. Or, Fortran autorise les appels à la ligne de commande. Ce qui fait qu'on peut très bien se bricoler un petit programme Fortran comme on le ferait avec script en shell ou autre langage de script. Mais avec la pérennité qu'apporte un langage normalisée compilable avec un compilateur libre qui gère aussi les versions antérieures.

Ainsi, j'ai pu arriver à un premier résultat encourageant, tel que dit dans mon billet du 03 décembre 2010. Mais je me heurtais à un problème de portabilité au niveau du protocole gopher. En effet, il existe plusieurs logiciels de serveur gopher et le protocole lui-même existe en deux versions. Contrairement au protocole HTTP où Apache règne en maître, mon logiciel se devait tourner avec de multiples variantes de serveurs. Ceci m'a mené à étudier plus avant le protocole gopher pour essayer de trouver une solution universelle pour le logiciel. De cette étude, il en est sorti un article introductif à gopher que j'ai commis dans:

Gnu Linux Magazine / France, n° 136, mars 2011, pages 78-82.

Vous pouvez maintenant télécharger ce logiciel convertisseur «  nb2gopher » depuis le site de Sourceforge.net.

Et, je vous le rappelle, le présent site existe sous version gopher à gopher://oceamer.com/1/nanoblogger/ . Pour information, vous pouvez le visualiser avec le browser en mode texte pour la console "Lynx" ou depuis "Firefox", de préférence en ayant ajouté le module OverbiteFF.

Compte tenu du modeste nombre d'utilisateurs de NanoBlogger à travers le monde (environ 200), compte tenu du très petit nombre de sites gopher à travers ce même monde (moins d'une centaine), je pense que je serais autorisé à participer au concours du logiciel le plus inutile qui soit, si cette compétition existait. Mais bon, l'avantage du logiciel libre est que l'on n'est pas tenu de se justifier. Pour moi, ne le répétez pas, c'était juste pour le plaisir.


Posté par Denis Bernard | permaliens (html) (gopher) | dans : gopher