Avancement

Les émotions et avis ont été redéfinis comme des liens de type ‘f‘.

Dans le mode nav, un lien apparaît sous chaque commentaire d’une autre entité pour pouvoir le répéter, c’est à dire faire le même lien.

Prochaine étape, ajouter les icônes des émotions à côté de l’icône pour répéter le commentaire. C’est un lien vers une émotion mais avec un contexte, c’est à dire un objet méta, correspondant à l’objet auquel est attaché le commentaire.

Cela donne pour ce soir :

shot-2014-04-15_23-28-00

Avancement

Dans la librairie nebule, une forme de mise en cache des résultats a été mise en place. Un certain nombre de fonctions peuvent être appelées plusieurs fois avec les mêmes paramètres. Il est plus rapide de mémoriser certains résultats par défaut même si ils ne sont plus utilisés que de relire et revérifier des liens pour retrouver les résultats.

Les gains dans les modes nav et lnk sont très sensibles, au minimum 2 à 3 fois moins de temps pour afficher une page.

La mise en cache est contrôlée par la variable $nebule_usecache.

Avancement

La librairie nebule à été un peu modifiée pour pouvoir remonter sur demande la liste des liens d’un objet y compris avec les liens invalides. C’est implémenté dans les fonctions _l_ls1, _l_lsx et _l_fnd.

C’est pour de l’affichage uniquement, ils ne doivent pas être pris en compte. C’est notamment le cas dans les fonctions _l_lsx et _l_fnd qui ne tiennent pas compte des liens ‘x‘ lors du nettoyage.
Le comportement, en dehors du mode navigation et liens, est de ne pas tenir compte de ces liens invalides.

Une variable nouvelle variable permet de ne pas remonter ces liens invalides quoi qu’il arrive, la variable $nebule_listinvalidlinks. Par défaut elle est à false, c’est à dire que les liens invalides ne sont pas remontés et donc pas affichés.

La présence de ces liens invalides suppose soit une corruption des données sur le support de stockage ou un dysfonctionnement de l’accès au support, soit une modification malveillante. Quoi qu’il arrive, un lien invalide transmit ou téléchargé est automatiquement écarté.

Voici ce que donne un lien volontairement corrompu dans le mode d’affichage des liens :

shot-2014-04-12_15-34-58

La même chose dans le mode de navigation :

shot-2014-04-12_15-34-38

Et enfin, dans le mode d’affichage de l’objet, le lien est ignoré :

shot-2014-04-12_15-35-11

Avancement

Le mode d’affichage ‘navigation’ a fait un grand pas. On peut y voir maintenant une transcription humanisée de certains liens. Ce mode présente une sorte de fil d’actualité de l’objet. On y trouvera les actions sur l’objet, les émotions, les avis et les commentaires attachés. Les commentaires sont hiérarchisés. Il faut maintenant ajouter de quoi créer facilement de nouveaux commentaires.

Cet ajout de fil d’actualité d’un objet montre que l’on peut mettre en place un système similaire au forum. Et du coup, la gestion des émotions et avis sur un objet ne sont pas optimums avec un lien ‘l‘. Il faut peut-être plutôt utiliser un lien ‘f‘. Ça permettra de profiter de la forme de contexte généré par l’objet méta. Ainsi, un avis sur un commentaire n’est plus seulement lié au texte, mais il est spécifiquement lié au texte dans le contexte de l’objet pour lequel il sert de commentaire. En clair, cela va permettre de mettre que l’on aime un commentaire sur un objet et permettre de dire que l’on aime pas le même commentaire sur un autre objet.

Pour l’instant, les émotions sont basées sur la roue de Plutchik.

Trois nouvelles icônes ont été refaites. Elles servent à afficher visuellement les états OK, attention, et erreur. La symbologie de ces icônes impose des formes générales et des couleurs en rapport avec leurs fonctions. Elle sont immédiatement identifiables dans l’interface.

okwarnerr

Voici ce que cela donne ce soir :

shot-2014-04-12_00-32-16

Anticipation

Dans les développements attendus, on a :

  1. La pérennisation des émotions et des avis sur les objets. Il faudra notamment choisir les icônes afférentes.
  2. La remise à plat du mode d’affichage de navigation. Cela doit ressembler à un réseau sociale en présentant les ‘actualités’ d’un objet au regard de ses liens. La vue cachera par défaut les liens dont la signification n’est pas connue ou qui n’ont qu’un intérêt technique.
  3. L’ajout dans la mode d’affichage des liens de la possibilité de découper l’affichage par ‘pages’ avec un nombre restreint de liens pour visualiser les nombreux liens de certains objets.
  4. La possibilité de visualiser un seul lien. Le mode d’affichage de navigation pourra permettre d’afficher les liens inconsistants tout en renvoyant la visualisation complète du lien dans le mode d’affichage des liens.
  5. La mise en place d’une liste des entités qui peuvent se déverrouiller sur l’instance sylabe. Cette liste est un groupe d’entités au sens nebule avec des liens vers ces entités. Ainsi, même si la clé privée est disponible, une entité ne pourra pas s’y connecter. En l’absence de liste, ce sera public.

Avancement

Suite à un problème sur mon disque dur, j’avais perdu quelques jours de travail… J’ai repris une sauvegarde et refais ce qui  manquait…

Ce soir, il y a un début d’ajout de la nouvelle gestion des marquages d’objets. Il s’agit des marquages de type j’aime, j’aime pas et plus encore. Ça s’appelle des sentiments.
Chaque sentiment est cumulable aux autres sans restriction. On voit apparaître les sentiments des autres entités sous la forme de carrés avec leurs couleurs propres, dans l’ordre chronologique d’ajout. Le nom de l’entité apparaît sous forme d’une bulle lorsque l’on passe la souris sur un carré. Si on a déverrouillé son entité, on voit à la place de son carré de couleur un lien pour supprimer le sentiment.

C’est la première version. Cela donne ça pour l’instant, sur un objet chiffré :

shot-2014-04-01_23-51-49

Bulles d’aide

J’ai trouvé un moyen très intéressant de placer l’aide en ligne non pas dans le contenu mais sous forme de bulles d’aide :

http://webbricks.org/bricks/bubulle/

C’est disponible sous licence « Creative Commons – Paternité 2.0 France – http://creativecommons.org/licenses/by/2.0/fr/« 

Je l’intègre au code dès que j’aurais du temps.

Merci à l’auteur Erwan Lefèvre pour le code et son partage :-)

Avancement

Le processus de gestion de l’entité bachue est toujours en cours de mise en place. Mais j’ai pu manipuler l’entité en environnement contrôlé. Les liens des dernières versions de sylabe (20140304) et de la librairie nebule (20140302) ont pu être signés par bachue.

Depuis ce matin, nous avons en ligne les toutes dernières versions :
– bootstrap : ae4d4a9acc8a754f4862c7ddf252079ee5fc9cc4b2fc878f0adecc3c37aea72f(1)
– sylabe : 0a65036105b001b926d1d0336aa4de5fde1d8a476f325f9832e524d914e7e465
– librairie nebule : 6045d142eb96144333cc99c6f1d7c2499fb25e7cf3e3b3aa7cea306d70d2eb15

La variable $nebule_io_maxdata a nécessité une augmentation de sa valeur. L’objet du code sylabe fait plus que 100000octets. Sans cette modification, le téléchargement marche bien mais l’affichage est tronqué. Ce sera répercuté dans le code de la librairie plus tard.

Les recherches de mises à jours de sylabe ne se déroulent pas correctement. Il y a visiblement un problème dans la recherche récursive des mises à jours (résolution du graphe de mise à jour). A priori, on atteint la limite permise pour le parcours récursif, fixé à 100. En regardant le fonctionnement du code, cette limite est interprétée aujourd’hui comme une limite du nombre d’objets parcourus et non du nombre de niveau traversé. Modifier ce comportement est un vrai sujet de questionnement sur la sûreté de fonctionnement de cette partie de code.
Il serait possible de garder ce mode de fonctionnement mais de permettre le fonctionnement correcte de la mise à jour même si on tape la limite. Dans certains cas extrêmes, une mise à jour pourra nécessiter d’être rejouée plusieurs fois pour obtenir les toutes dernières versions des codes.
Il est possible de réellement gérer le nombre de niveaux traversés. Mais si un niveau contient un très grand nombres de liens de mises à jours valides, on a une forme de déni de service.

(1) Le bootstrap ne doit pas être téléchargé par le navigateur. Celui-ci interprète la partie du code html qui lui semble valide et n’affiche pas le code. Il faut utiliser à la place un autre outil comme wget.

Avancement

Le mode d’affichage log a été complètement passé en revue pour ajouter la traduction des textes. Mais tous les textes ne sont pas encore traduits puisque cela se fait dans la partie spécifique à la traduction. Un grand nombre de textes sont déjà en attente de traduction vers l’anglais et l’espagnol.

Un sélecteur de chargement a été intégré à sylabe et au bootstrap pour permettre de choisir la version de librairie et la version de sylabe que l’on veut charger. Cela sert un peu au développement. Par contre, cela peut être très utile en cas de mise à jour partiel qui provoquerait une impossibilité d’accéder à sylabe, par exemple avec une fonction manquante. Dans les URL générées, cela se traduit par l’ajout des options boostrap_load= et bootstrap_lib=. La variable $sylabe_permitaskbootstrap permet d’ajouter ou non ces options automatiquement. Le fonctionnement n’est que partiel puisque toutes les URL ne sont pas corrigées.
Mais ce mécanisme à un côté pervers, il permet de la même façon de charger un autre code et une autre librairie, ou de faire appel à des versions plus anciennes et potentiellement buggées. La variable mis en place ne protège pas d’une insertion manuelle des options. Il faut mettre en place un mécanisme directement dans le bootstrap pour désactiver par défaut les options.

Migration du bootstrap et de la librairie

Jusque là, le code du bootstrap et de la librairie nebule en php était dépendant du projet sylabe.

Maintenant, ils sont détachés du projet sylabe et sont directement rattachés au projet nebule, ce qui est plus cohérent. Le projet sylabe va cependant continuer à s’appuier sur le bootstrap et la librairie nebule et même à les faire progresser.

Les codes actuellement en ligne, diffusés par l’entité bachue, sont disponibles ici :
bootstrap
librairie

CF : Projet nebule – Migration du bootstrap et de la librairie

Avancement

Le transfert de protection d’un objet vers une autre entité est fonctionnel. Il doit être vérifié en situation réelle.

Ce transfert commence simplement en la récupération de la clé de session chiffrée avec une clé privée de l’entité courante. Ce pourrait être à terme toute entité que l’on contrôle. La clé de session est de nouveau chiffrée avec la clé privé de l’entité destinataire. Un lien de chiffrement asymétrique marque cette étape et surtout permet à l’entité destinataire de détecter cette clé de session à son usage, et donc de déchiffrer l’objet protégé.

La mise en place du processus de signature et diffusion via bachue n’est pas encore terminé. Cette évolution du code n’est donc pas encore publiquement disponible.

Avancement

Peu d’avancées ce week-end sur le code. Il y a eu quelques traductions et améliorations dans l’affichage du mode aff.

La mise en place du processus de signature et diffusion via bachue n’est pas encore terminé.

Depuis hier soir, un menu permet de choisir une entité à qui on veut transmettre un objet protégé. La mécanique derrière, qui ne marche pas encore, chiffrera la clé de session avec la clé privé de l’entité destinataire. A suivre…

Avancement

L’entité bachue diffuse depuis ce soir la version de sylabe du 18/02/2014.

La partie du code gérant la traduction de texte commence a être conséquente alors que même pas un quart du code ne l’utilise pour l’affichage des textes. Les fonctions de traduction et d’affichage de l’aide en ligne sont déplacées vers la toute fin du code. L’ensemble est un peu plus lisible…

Avancement

Quelques modifications du code ce soir dans le mode aff, mais pas encore rendu public. L’entité bachue n’est pas encore pleinement opérationnelle pour diffuser les mises à jours du code de sylabe au fur et à mesure de ses évolutions.
Dans les modifications, il y a notamment plusieurs parties qui ont été adaptées à la traduction automatique. La vue aff est maintenant à moitié traduite.

Toutes les entités du serveur publique ont été mises à jours vers sylabe en version nébulisée. La manÅ“uvre ne s’est pas déroulée de façon aussi automatisée que prévu. Le code du bootstrap n’a semble-t-il pas réussit à récupérer les versions les plus à jour de sylabe que propose bachue. Il a fallu à chaque fois faire suivre les liens de mise à jour manuellement et synchroniser les liens jusqu’au dernier lien de mise à jour. Il faut maintenant trouver d’où vient le problème.. Bref, ça marche mais ce n’est pas pratique…

Les entités à jour :
http://stephane.nebule.fr/
http://zulu.nebule.fr/

Avancement

La mise en place du bootstrap permettant l’installation de sylabe nébulisé a posé quelques problèmes. La tentative de mise à jour de l’entité zulu n’a pas fonctionné immédiatement.

Le code du bootstrap intégrait des fonctions d’inclusion d’objets php, sylabe et la librairie nebule, via le chargement de pages web, via http donc. Les codes php inclus comme pages web étant restreint au serveur local pour des problèmes de sécurité. Le code de l’inclusion étant :
include("$bootstrap_loc_entite/o/$bootstrap_load");
Avec $bootstrap_loc_entite quelque chose comme http://localhost.
Or, sur le serveur hébergeant zulu, la version de php est un peu plus ancienne. Et cette ancienne version ne supporte visiblement pas très bien les inclusion via http. Cela aurait pût être bloquant puisque cet inclusion par http avait été rendu nécessaire parce que l’interpréteur php ne supportait pas l’inclusion de fichiers sans extensions .php. Mais, heureusement, la version plus ancienne de php supporte elle l’inclusion de fichiers sans extension. Donc ça marche avec un code de ce genre :
$v = explode('.',PHP_VERSION);
$bootstrap_phpversion=($v[0] * 10000 + $v[1] * 100 + $v[2]);
if($bootstrap_phpversion < 50500) include("o/$bootstrap_load"); else include("$bootstrap_loc_entite/o/$bootstrap_load");

Il reste une petite difficulté, je ne sais pas à partir de quelle version de php ce changement de comportement s’est fait. J’ai donc placé le seuil de bascule de comportement à la version 5.5.0.

Donc, Pour l’instant tout fonctionne bien avec sylabe en version nébulisée.
Toutes les entités du serveur vont basculer progressivement pour profiter enfin des nouvelles versions.

L’entité bachue est accessible sur Internet mais elle n’est pas vraiment active. Le serveur public n’héberge qu’une copie. L’entité est déverrouillée sur une station hors ligne afin de signer les nouvelles versions de sylabe et de la librairie nebule. Une station miroir en ligne mais mieux protégée de l’Internet est en cours de mise en place. Elle va faciliter la synchronisation des liens et objets de la station isolée (qui le restera) vers le serveur miroir sur Internet accessible à l’adresse http://bachue.nebule.org/ .
Une fois le processus complet en place, la diffusion des mises à jours de sylabe sera complète :

20140216 sync bachue