Code de nuit

Notation polonaise inversée

Dans mes bonnes résolutions de la nouvelle année j'avais celle de m'accoutumer à la notation polonaise inversée. Je m'y suis mis collé certains soirs de cet hiver et ce que je craignais s'est bien avéré vrai : je souffre !

Au hasard du Web, j'ai pris connaissance d'un nouvel instrument de torture "dc". L'utilitaire "dc" est sur tout système Linux au même titre que "bc" qui est bien plus connu. Le mieux est de commencer par lire la notice de Wikipedia puis d'essayer le programme en une ligne convertissant les longueurs du système métrique en impérial :


dc -e '[[Enter a number (metres), or 0 to exit]psj]sh[q]sz[lhx?d0=z10k39.370079*.5+0k12~1/rn[ feet ]Pn[ inches]P10Pdx]dx'


Encore un truc de malade, je vous dis !

Bonnes résolutions

Le nouvel an est un générateur intensif de bonnes résolutions, dit-on. Je vais donc sacrifier à la tradition ! En voici le sommaire.

  1. Projet fBlog
  2. Initiation à l'AS/400
  3. Initiation au langage Forth
  4. Retour vers le monde Gopher
Et le détail.
Projet fBlog
Le développement de mon moteur de blog est toujours extrêmement actif. C'est une tâche gigantesque et nul doute qu'elle pourrait bien se poursuivre encore pendant plusieurs années. Et je ne parle que de la phase de développement, pas de la maintenance ! Cependant, je sens que j'approche du jour où je pourrai décemment dévoiler au grand public ce projet. En effet, dans sa configuration actuelle de générateur de pages statiques HTML, il en est au stade du peaufinage. Tel quel, il sera donc bientôt parfait pour tout utilisateur avancé en Linux pour faire un site Web perso pourvu qu'il ne souhaite pas avoir un service de commentaire intégré à son blog. (Mais WordPress fait ça très bien, n'est-ce pas ?) pour le futur, j'ai l'intention d'ajouter des fonctionnalités à fBlog telles qu'il puisse faire du blogging mais sur toutes les palettes d'Internet et non pas seulement au seul Web.
Initiation à l'AS/400
Je dois absolument me remettre à la console IBM 5250 ! D'autant plus que je suis de plus en plus intéressé par toutes les variantes de Telnet. Il y a aussi le monde des "Big irons" que je voudrais bien explorer aussi ! Le site Soldier of Fortran est une bonne introduction à cet univers de l'informatique qui utilise une autre variante de Telnet : la console IBM 3270. De plus, le protocole Gopher possède un "Item type" (le T) pour tn 3270.
Innitiation au langage Forth
Je confesse avoir un gros problème avec la notation polonaise inversée. À priori on peut vivre vieux sans avoir la moinde idée de ce dont il s'agit. Mais pas quand on a à jouer avec Post Script ! Et tout uilisateur de LaTeX, tôt ou tard, doit envisager de s'y mettre sous peine de galérer. Or il se trouve que Post Script est un avatar du langage de programmation Forth. Lequel est présumé mort de sa belle mort depuis longtemps. Sauf qu'il convient d'être prudent avant de signer un certificat de décès ! Par exemple, la distribution Gentoo voulait récemment le sortir de sa collection. In extremis, ce sacrilège, que dis-je profanation, fut évitée. La vérité vraie est que ce langage est toujours en développement actif sous le nom de gforth et que l'on peut trouver sa dernière version sur le site gnu.org. Lesdits développeurs en sont à l'interopérabilité de Forth avec le langage C et à la programmation orientée objet. Autant dire que c'est du lourd pour un langage qui aura au final le champ de programmation le plus large qui n'ai jamais été pensé. Ou pour m'exprimer autrement : l'apprentissage de ce seul langage de programmation introduira tout ce que les esprits les plus délirants du monde informatique auront pu concevoir en matière des langages de programmation. Le manuel de la version 0.7.9 étant formaté pour les liseuses, je l'ai bricolé rapidement pour le mettre en A4. Vous pouvez le télécharger ici.
Retour au monde Gopher
Le monde Gopher est en train de connaître une poussée de fièvre suite à la manifestation de certains poussant au dépoussiérage du protocole resté inchangé depuis plus de vingt ans. On parle là de moins de deux cent personnes à travers le monde. (Je m'y étais intéressé en 2009 au sein du projet NanoBlogger où l'un des blogueurs francophone avait créé son propre site Gopher (on dit aussi un gopherhole). J'avais alors écrit un convertisseur de billets de blog NanoBlogger pour en faire un phlog : nb2gopher.) Ce petit monde est composé essentiellement de passionnés de retrocomputing ; il est comparable à celui des passionnés des BBS qui ont migrés vers le protocole Telnet. Par ailleurs, le fait qu'il y ait encore un autre francophone actif (gopher.viste.fr) n'est peut-être pas totalement étranger à mon regain d'intérêt. (On se sent un peu seul dans ce club essentiellement anglo-saxon !) En attendant, je serais bien avisé de faire un peu de ménage dans mon terrier Gopher laissé à l'abandon depuis des années.

Voilà ma liste des bonnes résolutions. On verra bien dans un an ce qu'il en sera !

Traitement des données numériques avec Fortran 90

"Traitement des données numériques avec Fortran 90" est un ouvrage Michel Olignon dont une version est mise en ligne. Celle que j'ai lu est du 15 avril 1996. Ça porte donc sur la programmation en langage Fortran de logiciels dédiés au dépouillement de données brutes venant d'une campagne scientifique de mesures. Mais pas seulement !

En effet, de façon sous-jacente, il y est prodigué de nombreux conseils en programmation : sur Fortran, bien sûr ; mais ils sont valables également pour n'importe quel autre langage. Rien que ça en justifie la lecture (particulièrement sur l'optimisation). Un autre aspect passionnant est que l'auteur a œuvré sur d'autres systèmes qu'Unix et aussi sur des ordinateurs vectoriels. (Ce dernier point est assez rare pour être souligné !) Il a donc ainsi une vision plus large sur la manière de trousser un algorithme.

Cependant, au sens strict, cet ouvrage est dépassé car il se situe, de par sa date de publication, entre la norme 90 et 95. Depuis, avec Fortran 2003 et 2008, bien des choses ne sont plus d'actualité.

La première conséquence de cette lecture est que j'ai suspendu ma découverte du monde des AS/400 ; la seconde est que j'ai décidé de revoir mon style de codage du source de mon logiciel de blog statique (fBlog) et de tout réécrire. Autant dire que j'ai du pain sur la planche !

Initiation à l'AS/400 (5/?)

Finalement, ma séance d'initiation à la programmation c'est passée ! L'exercice consistait à rédiger 6 ligne de code en Control language (CL) tout en y insérant volontairement une erreur. Ensuite à tender de le compiler et voir comment réagissait le système. Intéressant ! À première vue, ce CL est le pendant des scripts shell sous Unix. Sauf qu'il est compilé et non pas interprété. Donc, une grande partie des erreurs sur le script sont donc détectées lors de la phase de compilation. Et comme c'est un programme compilé on n'est pas obligé d'avoir à demeure un interpréteur de commande (du genre Bash) qui est la porte ouverte à bien des avanies en sécurité.

Au menu pour la suite : la gestion des permissions.

Initiation à l'AS/400 (4/?)

J'ai abordé, hier soir, le maniement de l'éditeur de texte Source Entry Utility (SEU). La première surprise fut bonne : l'affichage sur la console est passé de 80 à 132 colonnes (conformément à mes réglages). Donc, il faut comprendre que si les pages de navigation sont en 80 colonnes ce n'est pas forcément le cas pour tout.

Sinon, pour l'utilisation de ce SEU, ce n'est pas de la tarte. Encore une fois, sans mon tutoriel je ne m'en serais pas sorti ! Son usage, pour un néophyte, est à peu près aussi évident que l'éditeur Vim bien connu dans le monde Linux. C'est peu dire ! Mais ses possibilités semblent intéressantes.

À suivre, pour martyriser un peu plus mon cerveau encore, l'apprentissage de la compilation d'un programme. Je crains le pire.

Initiation à l'AS/400 (3/?)

Le tutoriel dont je parlais dans mon précédent billet est disponible ici. Il est ancien (dernière modification en 2003) mais il semble bien faire l'affaire. Il fait une quarantaine de pages, une fois imprimé. Mais c'est du costaud ! Heureusement que j'ai des connaissances en Fortran car on y retrouve certains traits. Ainsi la notion de fichier physique où l'on doit préciser la longueur des enregistrements au préalable. (En Fortran, il y a les fichiers séquentiels).

Clairement, un bon tutoriel est vraiment indispensable pour s'initier à l'AS/400. C'est vraiment un monde à part où l'expérience acquise sous MS-DOS ou Linux ne prépare pas aux nouvelles notions à assimiler. Ainsi, pour le système de fichier où l'on doit distinguer les fichiers physiques des fichiers logiques. Et aussi le fait qu'un fichier physique peut contenir plusieurs autres fichiers (intitulés "members") à la manière d'une tarball. Ou plutôt, compte tenu de l'obligation de déclarer les longueurs des enregistrements, on pourrait penser qu'un fichier physique est en fait assimilable aux disquettes dont on pouvait formater les secteurs à une taille que l'on voulait.

Pour l'instant, je n'en suis qu'au quart de la lecture de mon pensum ; mais je prends mon temps pour pratiquer les exemples depuis mon Telnet 5250 sur mon compte gratuit chez RZKH.

Initiation à l'AS/400 (2/?)

Bon, la lecture du document cité dans mon précédent billet n'a pas été concluante. Mais j'en ai trouvé un autre sur Internet dont je vous reparlerai plus tard s'il s'avère efficace sur mon cerveau débile.

En attendant, je continue à m'exercer sur mes deux clients tn5250 (tn5250 et tn5250j). Enfin, j'ai réussi à me sortir du piège du curseur actionné hors champs de saisie avec la combinaison de touche Ctl-r ! Comme quoi lire, de temps à autre, les pages de man peut s'avérer utile !

Installation de tn5250j

Le packgage de tn5250j n'existe pas sur ma Gentoo. Je l'ai téléchargé sur le site de SourceForge. L'installation s'est interrompue sur ma machine car il me manquait la machine Java qui allait bien : sun-jre-bin. (Sur mon système j'ai icedtea-bin-6 .) Donc, installation de ladite Java machine en passant par le téléchargement chez Oracle et divers désagréments techniques (quand on tourne sous Gentoo !).

30 minutes plus tard : Ouf ! Réussi à installer tn5250j. Ça marche super !

Usage de tn5250

Je disais hier que l'emploi du client Telnet 5250 dans la console Linux n'était pas simple. Mon principal grief était L'action des touches de fonction au-delà de F12. Bon, la lecture d'un tutoriel m'a appris qu'il suffisait de faire la combinaison de touche Shift-Fx ! Par exemple, pour avoir F16 faire Shift-F6. Ou, pour avoir F24 faire Shift-F12.

Mais attention : ça ne marche que sur une console Linux hors interface graphique. Par exemple, sous kde/Konsole, l'action d'une touche de fonction peut réagir avec un composant du bureau kde ! La seule solution que je vois c'est l'installation de la version Java de tn5250.

Initiation à l'AS/400 (1/?)

Je viens de dénicher, sur le web, un tutoriel de moins de 30 pages (en français !) sur l'AS/400. C'est le premier que je vais lire et je suis définitivement trop ignorant de la chose pour savoir si c'est le document qui convient à mon édification.