08/01/2008 2 articles 19 min #13934

Présentation du logiciel 01L_Gazolyne_Maajistral

Instruction romancée

Les manuels utilisateurs sont dépourvus de dimension historique et sont purement techniques afin de servir de référence, mais pour utiliser le logiciel, entre les notices et la pratique, il est nécessaire de faire une présentation rédigée des usages et des fonctionnalités, de la façon dont les fonctions s'emboîtent.

On appellera peut-être cela le web 2.0 ou 3.0, dès lors que respectivement la fonctionnalité d'une gestion de bases de données est discrètement fusionnée avec le code qui lit et assemble ces mêmes bases de données, de façon à éditer ses pages directement, ce qui fut un énorme changement par rapport à ce qu'il y avait avant, et dont plus personne ne se souvient. Et pour l'autre, c'est juste qu'on a poussé l'amplitude d'action de l'administrateur, qui en plus de changer le contenu, va vouloir modifier de nombreuses adaptations au niveau de l'assemblage et la présentation des données. Ainsi, au mieux, il peut lui-même injecter du code source dans un article qui sera lu comme du code source en tant que plug-in.
De même, il obtient la charge de paramétrer ses « définitions », et peu à peu, fini par rendre « unique » sa version du logiciel.
C'est de là qu'est apparu la notion de « squelette », ou en tous cas, d'une liste de fonctions disponibles à l'utilisateur, comme le fait de scruter un répertoire ou monter un fichier .txt.

Les articles systèmes sont uniquement visibles par l'administrateur, qui peut les appeler via des connecteurs qu'il place comme paramètres, pour être rendus visibles au visiteur.
Ainsi les articles systèmes peuvent être des annotations récurrentes en bas de page, des fiches d'auteur, les panneaux de publicité qui peuvent ainsi être mis à jour, quelques messages d'erreur personnalisés, etc...

Selon qu'on les appelle par leur titre ou leur numéro ID, soit l'objet est pointé directement, soit le plus récent de ceux qui possède ce même titre est appelé, ce qui peut permettre de rédiger des éditoriaux périodiques et de les sauvegarder tous dans un fil historique.

Les dossiers d'articles sont les articles qui se suivent avec le même titre et dans le même menu, que le premier, ce qui permet de contextualiser un message de façon à ce qu'on puisse voir les précédents, comme au sein d'un fil de discussion.

Ceci date des premiers âges du logiciel à l'époque où il s'agissait simplement d'exporter et importer (selon où on se place) des articles d'un fil de discussion à l'autre, créant ainsi un espace pluridiciplinaire. Cette fonction de groupes de travail, appelée aussi social-network, peut requérir que l'utilisateur soit forcément logué, et que le visiteur non logué n'ait pas accès à ces articles, selon les réglages.
C'est aussi une imitation des « php-BB », dans l'optique d'utiliser le « mode_forum », dans lequel les auteurs peuvent être différents et posséder leur avatar.
Au début cela servait pour laisser des Trackbacks, puis finalement ils ont été rendus additionnels à chacun des articles, disposés dans une base différente, et filtré par un antispam qui est programmé pour haïr les répétitions.

Normalement les articles ont chacun leur titre propre, qui est modifiable a posteriori sans changer l'URL qui pointe vers cet article, (contrairement aux autres systèmes de publication).
C'est une seconde manière d'inclure un article dans une suite d'autres, en le déplaçant, et en faisant retomber l'intitulé de son titre dans le corps du texte.
Car en effet, tout l'intérêt de l'administration est le classement des articles, et il arrive souvent que ces classement soient à affiner avec l'accroissement du nombre.
Il est rare finalement que des articles soient à la suite sous le même titre, et si c'est le cas, même par inadvertance, cela s'inscrit à la suite de l'ancien (ou cela rappelle qu'il a déjà été écrit! !).

Au début, et dans le mode_forum et mode_blog, tout est sous la seule rubrique invisible nommée « public ». Cette rubrique seulement, permet si c'est voulu par l'administrateur, au visiteur non logué de publier un article. Tous les blogs fonctionnent selon ce mode. Mais l'usage vaut qu'on profite des rubriques, ce qui est comparables à autant de blogs dans un même Hub.
On peut créer autant de Hubs qu'on veut. Et même, on peut swaper de master_hub, mais cela ce stade, ça ne sert à rien... (à ce stade)

Avec l'accroissement, on peut réaffecter les articles à d'autres rubriques, voire en créer une nouvelle à la volée. L'intérêt est que les rubriques disponibles sur le site, dépendent de l'actualité du site, lui laissant la possibilité d'en créer des nouvelles, et de laisser les anciennes devenir obselètes.
Ainsi les rubriques sont fléxibles, ce qui est une très important en publication.

Une autre manière de classer les articles, à part de signaler sciemment un nom d'auteur de l'article qui ne soit pas l'utilisateur logué lui-même (ce qui est rendu possible pour faire un classement par auteurs des sources), il y a le système de Tags, qui est d'une importance égale aux rubriques.
Dans ce second degrès parallèle de classement, il est possible de relier « horizontalement » des articles qui appartiennent à différentes rubriques. Cela permet de faire un classement croisé selon deux familles de critères, que l'utilisateur en vérité, est parfaitement libre de choisir complètement.
Il faut dire ici qu'au-delà de la fonctionnalité relativiste, il y a les usages, et c'est pour cela que les utilisateurs sont un peu perdus.
D'habitude, on désignera comme rubrique ce qui ne peut être classé dans une autre rubrique, et comme tag, ce qui est particulier dans l'article, et qui peut l'associer à un autre article existant et également tagué.
Ainsi les tags permettent d'afficher pour chaque article ceux qui en sont voisins par le pont de ces mots-clefs.

Certains tags sont spéciaux, Une, Stay, music et video, sont des composants des panneaux du site, qui s'affichent si besoin. Stay, sont les articles non épargnés par le champ temporel malgré qu'ils soient anciens, et Une, sont les « articles à la Une », les mieux mis en valeur lors de la première connexion.

Après avoir vu les systèmes de classement, on peut rentrer dans l'objet « article », qui en fait est avant tout un « objet », des données mises en mémoire. Cela peut aussi bien être une musique, une vidéo, ou une présentation en Flash.

Le corps du texte ne contient pas d'espace pour le chapeau, car il faut le désigner au moyen de la mise en forme, quelconque, pourvu qu'elle soit différente du reste. Le logiciel déduit lui-même ce qui est le chapeau de l'article, ne coupe pas les phrases, ce qui évite l'extrême lourdeur qui consiste à soit ne pas mettre de chapeau et ne pas pouvoir présenter l'article dans un menu rapide, soit de devoir faire une répétition pas très agréable.

A la dernière ligne de l'article, il faut aussi savoir que le lien html qui y figure pourra être retenu dans la fabrication d'une liste de « sources » qui ensuite est renvoyé, par ordre de fréquence, dans le menu des sites amis, via la commande scrut_links.

Les articles sont appelés par leur ID (http://url/ID) ce qui laisse au logiciel la charge de déduire l'environnement qui correspond à cet article, à savoir dans quelle rubrique il est situé, dans quel Noeud du réseau (Hub), qui lui-même à son tour est associé à des couleurs et une mise en page propre, ainsi que le logiciel fait monter également les autres articles environnants.

Si le htaccess n'est pas présent pour faire de belles URL le système utilise par défaut un adressage sur le principe des variables, conçu pour être compréhensible si on y fait attention, et même parfois avec surprise, combinables.
Ainsi on peut faire une recherche (rech=word) couplé avec une commande d'administrateur (refr=tits) qui permet d'afficher des résultats modifiables. D'autres commandes, la fusion, permet de grouper les articles liés par de mêmes mots-clefs, rub_tag=word permet de faire une fusion à l'intérieur d'une rubrique (les articles à la Une dans une rubrique), ou encore dig=90 permet, par exemple, de « creuser » vers les articles d'une rubrique publiés depuis 90 jours dans une rubrique.

Le logiciel 01L_Gazolyne_Maajistral incorpore dès ses toutes premières versions le principe de champ temporel, avec tout ce que cela inclue, qui est très vaste.
Le principe est de n'afficher au visiteur que les articles les plus récents, dans le cas où ils seraient nombreux ; et d'ailleurs le site d'infos dont ce système a été l'ombre a permit de tester cette possibilité sur trois ans et quatorze mille articles, dont certains sont très volumineux.

C'est ainsi que la périodicité, à savoir si le site est un mensuel, un hebdomadaire, ou un quotidien, dépend du seuil arbitraire de 50 articles, par jour par semaine ou par mois.
Grâce à l'agenda on peut voir les jours où des articles sont publiés et pointer dessus, ce qui appelle la commande de lecture d'un champ temporel ciblé à une date précise, sur une étendue de 24 heures.

Il est possible de choisir son étendue, et de la garder en se déplacer temporellement en ciblant une date d'un article ; tous les articles sont datés, et le lien qui y est associé, permet de reparamétrer l'ensemble du site, articles à la Une, articles les plus vus, etc... tel qu'ils étaient « à l'époque ».
Ensuite la commande back_to_future permet de revenir à la date courante.
On peut aussi, au moment de la création d'un article, l'antidater et programmer son apparition sur le site.
Sur le fil RSS, cet objet du futur restera apparent tout le temps qu'il n'est pas passé, en tête des articles, ce qui permet un effet d'insistance sur un événement important.

Le RSS 2.0 est pleinement exploité pourrait-on dire, en Input et Output. Le fait d'ajouter des articles est directement signalé au fil RSS de sortie, que les utilisateurs peuvent lire dans de nombreuses formes de lecteurs, tandis que l'ajout d'un article, peut se faire en absorbant celui présent dans le fil RSS d'une autre source, à laquelle on s'est abonné.
Il existe différentes manières d'ajouter un article, mais avant il faut comprendre le principe de la mise en forme permise par le langage 01L.

Les systèmes de publication font souvent appel à un pro-langage plus commode que le html, qui ensuite est traduit de façon conventionnelle. Au mieux il est rendu invisible mais ajustable, grâce à la beauté de l'ingéniérie JAVA. Mais dans tous les cas c'est un système esthétique et inaboutti, puisqu'il ne permet pas de se débarrasser de la lourdeur du html qui est parfois complètement déraisonnable, ni de sa structure imbriquée, et en plus une fois le travail fini, le code html et donc la mise en forme font partie intégrante du corpus du texte, et ne sont modifiables que par les CSS auxquels ils font appel.

Ici, il est question à la fois d'abaisser le contenu de ce qui est dans la base de données à strictement presque rien d'autre que le corps du texte en ASCII, puis quelques annotations qui sont faciles à retirer, si jamais par exemple on veut sortir une version pour l'envoyer en texte brut par mail.

De façon générique, on aura isolé ce qui est titre, ce que est souligné, ce qui est gras, ce qui est coloré, mais en tant que « connecteurs » - c'est là qu'est née cette fonction – c'est à dire que si on veut, on peut mettre les gras en souligné, les titres en coloré, autant que ces paramètres peuvent être parfaitement modulaires.

Ainsi la mise en forme dépend des paramètres locaux, et reste parfaitement adaptable lors des transports d'un hub à l'autre. Le poids gagné sur les bases de données est considérable, et le code source de sortie est parfaitement conventionnel, régulier et surtout minimaliste.
Il faut insister sur le fait que parfois le code html représente trois fois le poids du texte seul, et qu'ici, il est intégralement éliminé, mais pas son information la plus nécessaire.

Pour l'instant l'inconvénient est, par soucis de processeur, qu'on ne peut pas imbriquer des connecteurs, par exemple gras et souligné, il faut choisir. Ce qui fait naître l'interdiction d'utiliser des crochets dans un connecteur (lui-même signalé pas des crochets), ou de liens dans un tableau.
Il est certain que ces « inconvénients légitimes » seront vite dépassés, c'est juste une question de progression de nombreuses fonctions simultannément.

Les connecteurs peuvent être autre chose que de la mise en forme, ce sont des plug-ins qui peuvent être ajoutés au corps de l'article, comme une pétition, un terminal de Chat, une webradio, un explorateur de fichiers, une galerie photos, les résultats d'une recherche, et de façon plus courante, simplement le titre et le lien vers un article (signalé par son ID), ou quand l'article a été exporté depuis son lieu d'origine, le corps du texte n'est pas copié une deuxième fois pour ne pas alourdir la base, ce n'est qu'est qu'un connecteur nommé « read » qui est signalé, une sorte d'alias.

Dans les menus des panneaux à gauche et à droite, le « board » qui est un message d'accueil, ou le board2 qui est un article d'accueil, sont aussi des connecteurs, qui renvoient vers des articles systèmes.

La webradio et la gallerie photo, ça intéresse beaucoup de monde même si ces fonctions sont très minimales, elles sont juste rendues les plus commodes possibles. Ces fichiers ne sont pas importés dans un article, sans quoi les musiques et les images et les vidéos s'affichent unes à unes.

L'utilisateur dispose d'un espace disque et d'un navigateur nommé GAZolyne, qui permet de créer des répertoires lors de l'importation d'un fichier, ou de les supprimer (le répertoire vide s'efface aussi). Le fait que le visiteur ait accès ou non à cet espace est un paramètre de l'Admin.
Il s'agira de mettre dans un dossier, les images ou les musiques, qui veulent constituer une radio ou une galerie.
Ensuite dans l'article, il suffit de placer un connecteur du nom du chemin relatif vers le répertoire sachant que le niveau 0 est le dossier utilisateur, pour activer ces fonctions.

La galerie est assez sommaire, elle affiche les miniatures, puis les images sont affichées sur place au milieu des autres miniatures (innovation héritée du projet « photonumerik »), puis l'image est affichable une deuxième fois si sa taille est supérieure à la largeur de la colonne.
La webradio est un excellent applet java-flash très esthétique, avec les fonctions random, et une liste repliable, dans la version gratuite la plus récente connue de SoundManager.

Tous les paramètres dit « locaux » sont réunis dans l'Admine, et concentrés dans un tout petit espace. Cela inclus 22 restrictions possibles, la configuration du node, la configuration du master_node, les listes de mails, de sites, de mots-clefs pour les moteurs de recherche, ou de couleurs.

Le système des couleurs est un jeu de 8 couleurs, ensuite affectées (pour l'instant de façon non modulaire pour assurer une cohérence dans le code graphique) en différentes parties du CSS.
Les couleurs sont sauvées dans la base, et mémorisables sur le serveur le temps d'en essayer d'autres par exemple. Il est possible soit d'hériter des couleurs d'un autre Hub, soit en les copiant, soit en s'y affiliant, ce qui permet selon ces deux cas, soit qu'un seul Hub décide de l'apparence de tous ceux qui y sont affiliés, soit que l'héritage puisse servir de base à ses propres adaptations.
Pour l'instant c'est juste un peu dommage que l'image de fond et les ombres ne fassent pas partie de ces calibres, afin de créer ce qu'on appelle des « templates », des mises en pages toutes faites. Mais vu le peu de secondes qu'il faut pour procéder, ce n'est pas trop grave.

La fonction « déployer », signifie qu'on peut envoyer par mail à une liste de noms un article particulier. Cette liste est modifiable en dernière instance, et est aussi la référence pour une newsletter, qui est un plug-in.
On peut envoyer l'article ou la liste d'articles en texte brut ou en html

Il est important aussi de spécifier le type de statistiques désirées, la plus lourde charge est pour le système « simple », tandis que le système avançé nécessite un Cron (tâche chronique), pour vider la base de données et créer une suite de fichiers texte. Le tout peut aussi être désactivé au profit des systèmes plus habituels. La version simple est activée par défaut.

Dans le menu « System_Arts », apparaît un bouton « hide_this_hub » qui permet de se désincrire de la liste des hubs du réseau, partagé par tous les hubs.

Enfin, le visiteur ne voit de cette partie qu'un bouton pour laisser un message à l'Admin du Hub, que l'admin peut voir aussitôt qu'il se connecte, et recevoir par mail. Là aussi, une petite innovation, consiste à réduire les messages lus, si on ne veut pas les supprimer.

- Pour créer un article, on peut utiliser différentes méthodes ordonnées chronologiquement sur le chemin de l'évolution du système de publication. Cela peut prendre, en apothéose, deux seuls clics en tout et pour tout.

La méthode basique consiste à insérer du texte, puis l'enregistrer via la commande « insérer », qui devient « continue » les fois d'après.
A la suite, on peut envoyer une image ou un média, via le formulaire d'upload, puis continuer de coller ou de composer son article à la suite.
A chaque fois le formulaire est juste en-dessous du résultat final, ce qui permet des corrections si c'est nécessaire.

Une méthode plus avancée est de se baser sur un contenu en html. Le système peut prendre ce code (barbare) mais seulement en deuxième instance (continue), sinon en première instance le système tentera de le convertir en 01L.

La page 01L.php est un trousseau d'outils qui permet de convertir du code html, qui est toujours exotique et non conventionnel (ce qui prouve qu'il a été mal pensé) afin de faire en sorte que quelle que soit leurs provenance, les articles qui sont absorbés par le système aient toujours une présentation impeccable, sans double-saut de ligne, sans grosses variation des tailles ou des caractères, sans illogisme d'affichage.
De nombreux petits correcteurs s'assurent même qu'il n'y a pas d'espace avant la virgule, que les lignes ne soient pas rompues comme c'est souvent le cas, ou encore que par mégarde le code n'ait pas souffert de son changement de langage, en transformant les apostrophes en points d'interrogation par exemple. Le code UTF8 est convertit automatiquement si besoin.

Passer par ce « Transducteur » permet de ne pas avoir à souffrir en signalant un à un tous les liens et toutes les images que peut comporter un article.

Dans une deuxième phase évolutive, le système s'est dit, en raison de ses moyens, pourquoi ne pas joindre les fonctions de déplacement de mise à jour du système depuis le « public_server » (la fonction MAAJ), directement comme connecteur par défaut pour les sources d'images externes ?
Ainsi désormais il suffit, tant au transducteur qu'à l'utilisateur, de signaler l'URL d'une image pour, non plus pointer vers elle et l'afficher, mais tenter de la copier sur le serveur, de la renommer de façon conventionnée, de l'inscrire au registre de la galerie automatique et des miniatures, et de la signaler dans la foulée dans le corps du texte, à la place de l'ancienne.
Ceci, permet d'uploader automatiquement une image sans passer par le formulaire d'upload, et même, d'en uploader un grand nombre simultanément.

Enfin, grâce aux définitions spéciales de l'utilisateur, il est possible de pointer directement l'URL d'un article, et d'en extraire son titre et le corps de son texte, inclus ses liens et ses images, traduits en langage 01L dans la même action. Certaines définitions par défaut permettent de reconnaître quelques systèmes de publication connus. Si les définitions sont absente, c'est à l'utilisateur de les spécifier, en les testant, puis en cochant la case « save_defs » quand c'est bon. Cela marchera désormais pour tous les articles de ce site.

Il y a des petites choses qu'on oublie tant elles sont conventionnelles, par exemple le fait que le système, en mode présentation des articles, affiche une miniature d'une des images trouvées, la fabriquant automatiquement si elle n'existe pas déjà. Depuis des années, tout a toujours été fait pour gagner en vitesse, et parfois quand on regard en arrière on retrouve des technologies qu'on avait presque oubliées, alors qu'on travaille sur ce code tous les jours.

De nombreux systèmes de cache on été créés et décréés, sur plusieurs couches, afin d'optimiser les tâches courantes. Ainsi c'est l'ensemble des articles de la base de données du champ temporel du Hub qui est mis en cache, réservant l'accès au serveur que pour les tâches occasionnelles.
Au final, l'utilisateur doit juste savoir que si jamais un jour par exemple un titre ne s'affiche pas quelque part, il faut réactiver l'ensemble des caches, en cliquant sur la bannière, ce qui appelle le Hub depuis l'extérieur en quelque sorte.
De même si une modification des couleurs n'est pas affectée, là ce n'est pas le cache mas le CSS qu'il fat faire remonter, via un bouton nommé « refresh ». Ceci sont des petites choses à savoir, inhérentes au système.

Le code source est fait de sorte qu'a l'arrivée du visiteur, simultanément 4 feuilles de fonctions sont mises en mémoire, pour un total de 226 Ko en tout et pour tout. Les quelques plug-in et autres accessoires, ne dépassant rarement les 2 Ko, comme le Chat ou la pétition.
Tout a été condensé au maximum, en permanence, et autant que faire se peut, l'évolution du système se fait en exploitant ou en modularisant les ressources déjà existantes.

Finalement c'est un système minimaliste dans sa présentation mais très complet dans son développement, fait dans un esprit un peu militaro-scientifique on va dire, et adapté au fur et à mesure des très nombreux usages que l'expérience nous aura confié au cours des 13 dernières années.

80108

Résumé :
_01L : langage pro-html, permettant de dissocier la mise en forme et le corps du texte, donnant naissance au concept de connecteurs.
_ GAZolyne : système itératif permettant de naviguer dans des répertoires, d'isoler la structure, utilisé également lors du transcodage 01L.
_ MAAJistral : fonction multivalente de transport inter-serveurs (la même fonction de chaque côté), utilisée pour la mise à jour du logiciel, puis pour l'absorption automatique des images, déclassant l'usage des formulaires d'upload.

 commentaire

articles affiliés ordre chronologique
27/11/2008 5 min #22882

Présentation du logiciel 01L_Gazolyne_Maajistral

W4LK_01L
Système de publication en ligne
Content Managing System

A propos des CMS

Le fait de permettre à l'utilisateur d'éditer son site lui-même, a donné lieu au terme de web 2.0.

L'utilisateur final n'a plus qu'à remplir des formulaires rapides pour devenir éditeur d'une publication électronique.

La plupart des sites créés avant l'apparition des CMS l'étaient dans la précipitation, de so