Avancement

Certains problèmes de performances actuels viennent aussi de l’accumulation de liens pour l’entité locale utilisée. C’est celle qui est chargée par défaut. Et c’est aussi celle qui réalise les développements et valide les codes à charger au fur et à mesure du développement. Cette entité a plus de 70000 liens (70k+).

Une première conclusion, même avec autant de liens ça marche… mais c’est un peu lent.

Il y a plusieurs solutions qui peuvent être apportées à court ou long terme :

  1. Régénérer une nouvelle entité pour le développement, et une autre comme entité locale par défaut.
  2. Nettoyer les liens anciens qu’elle a générée mais qui ne la concerne pas directement.
  3. Mettre en cache les entités, leurs caractéristiques déjà extraites, et les instances nebule et sylabe… ainsi que toutes les instances affairantes.

La génération d’une nouvelle entité est une solution à cours terme mais elle rappelle qu’il manque le code nécessaire au déploiement d’une nouvelle instance de serveur nebule. Le code est en cours d’implémentation dans le bootstrap

Avancement

Le module de simulation de systèmes de fichiers est stable et complètement fonctionnel. Il peut bien sûr être amélioré plus tard en terme de fonctionnalités.

Maintenant, avant tout autre avancement dans les fonctionnalités, il faut trouver pour accélérer le code. En l’état, c’est globalement fonctionnel mais les pages sont beaucoup trop longues à charger.
Une des pistes d’accélération est de se servir de la session PHP pour mémoriser et restaurer les instances de la librairie nebule et de sylabe pour toutes les pages chargées par un même utilisateur. Cela veut dire que les vérifications ne se feront plus que une seule fois pour un utilisateur, lors de l’instanciation de la librairie et de sylabe.
Une seconde possibilité d’amélioration est de gérer une partie de l’affichage par des inserts dans les pages de type iframe mais en utilisant le javascript pour modifier le contenu.
Enfin, et ce travail a déjà commencé, une autre amélioration est de ne charger la session et ses variables que lors de consultations et de modifications. Ainsi PHP, qui bloque une page si la session est déjà ouvert, pourra vraiment traiter plusieurs parties en parallèle sans blocage. Par exemple si dans le code d’une page, en cours de traitement, demande une image chiffrée, le chargement de cette image qui nécessite elle aussi le traitement du même code ne sera pas bloqué en attendant la fin de traitement du code de la page…

Avancement et marquage des objets

Dans le nouveau module de simulation d’arborescences, il était possible d’ajouter des arborescences, des dossiers et des fichiers téléchargés. Mais il n’était pas évident d’ajouter des objets déjà présents, ce qui était assez dommage.
Ce problème est similaire pour la gestion de sous-objets à des nœuds ou des groupes.

Pour palier à ce problème, il est possible maintenant de marquer des objets. C’est une liste auquel on ajoute un ou plusieurs objets et de laquelle on peut aussi retirer des objets individuellement, ou tout enlever. La liste est liée à la session php et n’est donc pas persistante.

Mais pour commencer, revenons sur le module des arborescences. Tant que les liens ne sont pas dissimulés, toute arborescence est publique. Ainsi dans l’exemple ci-dessous je suis connecté en tant que Stéphane et je regarde une des arborescences de l’entité bachue developpement. On notera que mon entité d’utilisateur dispose d’une photo d’illustration avec des bords blanc. On notera aussi le petit problème de transcription du caractère accentué et, plus subtil, l’affichage d’un deuxième icône « Systèmes de fichiers » qui permet en fait d’aller voir ses propres arborescences quand on est ailleurs.

20150809 sylabe_-_St_phane_DENDIEVEL_-_2015-08-10_17.21.18

Le fait de pouvoir se déplacer et voir des arborescences d’autres entités doit être vu comme une fonctionnalité, le début de ce qui permet de partager à plusieurs des objets dans des arborescences. L’affichage ou non des objets se fera plus tard en fonction du poids social des entités qui ajoutent les objets et non en fonction d’un blocage (qui devrait être centralisé). Pour cacher l’usage des arborescences et des objets qu’elles contiennent, il faudra utiliser les liens dissimulés, c’est pour plus tard aussi.

Dans une arborescence, on voit que les icônes ont une importance. Celle qui désigne les dossiers indique que si l’on clique dessus, on va dans le dossier. Celle qui désigne les objets indique que si l’on clique dessus, on va voit l’objet, càd on l’affiche dans le module des objets.

Chaque objet est repéré par sa couleur propre. Cela facilite la reconnaissance visuelle de ce que l’on cherche. Tout dossier est un objet dont le seul intérêt est de servir de point de référence pour les objets qui lui sont rattachés, les sous-objets.

Continuer la lecture de Avancement et marquage des objets

Avancement

Puisqu’il faut bien faire faire quelque chose à ces objets et ces liens… Depuis hier soir, un nouveau module à été ajouté, il permettra d’émuler des systèmes de fichiers, ou arborescences de fichiers. Cela apparaît comme une application. Voici son icône :

nebfs

Voici le module tel que déclaré :

20150731 sylabe_-_developpement_bachue_-_2015-07-31_18.11.15

L’application apparaît bien dans le menu des applications :

20150731 sylabe_-_developpement_bachue_-_2015-07-31_18.12.03

Et lorsque l’on va voir cette application, on a les différents systèmes de fichiers, dits point d’entrés :

20150731 sylabe_-_developpement_bachue_-_2015-07-31_18.12.34

C’est tout pour l’instant.

Un objet réservé a été défini dans ceux de nebule : nebule/arborescence

De cet objet réservé sont liés par des liens de type f des objets qui servent de points d’entrés. Ces objets de points d’entrés contiennent de l’aléa, ils ne contiennent pas de valeurs ou de paramètres particuliers. Ils ont par contre des noms qui seront les noms des points d’entrés tels qu’on peut les voir dans la vue des arborescences (image ci-dessus). Ainsi, plusieurs points d’entrés de plusieurs entités peuvent avoir le même nom sans mélanger les contenus. Puisqu’il ne faut pas oublier que si les objets et liens ne sont pas protégés, c’est qu’ils sont publics donc visibles de tout le monde.

L’interface ne montre pas les points d’entrés des autres entités mais ça viendra.

Le travail en cours porte maintenant sur les arborescences.
On peut utiliser des liens de type f pour relier les différents dossiers d’une même arborescence, dans le contexte du point d’entré. Mais cela pose un problème. Si on crée un deuxième dossier ailleurs dans l’arborescence mais avec le même nom, alors tous les fichiers en dessous existeront dans ce deuxième dossier. Comme les objets sont liés à l’objet du dossier dupliqué, ils apparaissent quelque soit l’emplacement du dossier dans l’arborescence. Ça pose problème puisque l’on peut avoir un même sous-dossier Janvier dans des dossiers 2010, 2011, 2012, 2013, 2014, 2015, etc…

Pour contourner ce problème, chaque objet qui compose les noms des dossiers dans l’arborescence peuvent contenir le chemin complet dans l’arborescence. Chaque objet de nom dans l’arborescence est relié aux autres au dessus et en dessous par des liens de type f. Ainsi on évite les collisions de dossiers avec le même nom. Mais là encore cela risque de poser problème. Si un des objets contenant le nom d’un des sous-dossiers d’une arborescence ne correspond pas aux noms des dossiers parents… c’est la catastrophe… Il faut dans ce cas prévoir un mécanisme de correction et de traduction des cas tordus.

La solution retenue consiste, comme pour les points d’entrés des arborescences, à créer un objet intermédiaire ne contenant que de l’aléa et avec un nom. Ce nom est utilisé pour l’affichage et peut être réutilisé autant de fois que nécessaire. Les objets des fichiers dans un dossier sont liés à cet objet intermédiaire.
A mettre en pratique… la suite au prochain épisode…

Avancement

Dans le module de gestion des objets, la vue de description de l’objet a été complétée. Tous les attributs de l’objet sont affichés en commençant par les attributs correspondants à des objets à usage réservé, c’est à dire tout ce qui est reconnu par nebule pour caractériser un objet comme sa date de création. Les images sont affichées de façon réduite et les textes sont tronqués.

Avancement

Il y a quelques jours, le puppetmaster a été réveillé pour générer de nouveaux liens. De nouveaux objets de nebule sont maintenant reconnus comme des objets à usage réservé :

  • nebule/objet/entite/maitre/securite
  • nebule/objet/entite/maitre/code
  • nebule/objet/entite/maitre/annuaire
  • nebule/objet/entite/maitre/temps

Et il permettent de désigner via un lien de type f les différentes entités qui ont les rôles correspondants.

Le code de la librairie nebule en php et le bootstrap s’en servent désormais pour retrouver les entités avec ces rôles.

CF : nebule – Liens marqués entre le puppetmaster et les autres entités

Avancement

Peu de choses nouvelles concernant nebule, mais des améliorations dans l’interface sylabe. Maintenant, le menu de gauche est définit par un point d’ancrage (hook) sur lequel les modules peuvent ajouter des entrées personnalisées. Chaque module est ainsi maître des entrées qu’il génère. C’est plus facile à gérer et surtout plus facile pour gérer les options quand c’est le module concerné qui les manipule plutôt qu’un autre.

Le système de point d’ancrage a été poussé plus loin puisqu’il est maintenant aussi possible de créer des menus d’actions dans le contenu de la page en appelant simplement… l’affichage d’un point d’ancrage.

Cela donne par exemple :

20150722 sylabe_-_developpement_bachue_-_2015-07-23_00.31.21

La visualisation des objets est en train de basculer dans l’instance Display. C’est utilisé par le module des objets, mais ce le sera aussi par d’autres modules comme la messagerie. C’est l’occasion d’y ajouter une gestion de la vérification du contenu des objets affichés par rapport à leurs empreintes cryptographiques.

Un affichage type d’un objet trop grand mais que l’on autorise à afficher :

20150722 sylabe_-_developpement_bachue_-_2015-07-23_00.29.08

Et un objet qui n’est pas trop grand s’affiche avec un message pour dire que son empreinte est vérifiée :

20150722 sylabe_-_developpement_bachue_-_2015-07-23_00.41.51

Le contrôle de l’affichage ou non se fait par une option de sylabe. Par défaut, un objet qui ne peut être vérifié n’est pas affiché.

Ne reste plus qu’à traduire correctement les messages…

Avancement

Une refonte partielle de l’interface a été faite. Suite aux développements récents de l’interface et de ces modules, il est apparu qu’il fallait moins mettre en avant les objets et liens et plus les fonctionnalités des modules.

Maintenant, une bonne partie des modules sont externes. Seuls sont restés internes, et donc obligatoires, les modules entités et aide. Les autres modules sont détectés via les liens et chargés si les liens sont valides et les signataires identifiés comme autorités locales. Il faut encore améliorer la détection de collision entre modules prétendants au même nom.

Nous ne sommes plus très loin d’une remise en ligne régulière du code sur le serveur de test…

Enfin, en lien avec la refonte de l’interface, l’iconographie a été revue :

add addent addlnk addobj addtxt
idownload ihlp imenu imetrolog imodify
key lc ld le lf
lk ll lll lo ls
lstent lstobj lu lx mchr
ment mmsg msglist msgsent oent
sylabe synent synlnk synobj

Voici la nouvelle interface :

20150718 sylabe_-_15d194c0ac5da323b50e868ab62c17c0a5470283c92f3d8a8631743b5cd9f42f_-_2db5ebfbdc6db01b5972837182275c2142d68de20fe78670a87875108e616cf7_-_2015-07-18_16.52.53
Version moyenne et haute définition.

20150718 sylabe_-_15d194c0ac5da323b50e868ab62c17c0a5470283c92f3d8a8631743b5cd9f42f_-_2db5ebfbdc6db01b5972837182275c2142d68de20fe78670a87875108e616cf7_-_2015-07-18_16.53.45
Version petite définition.

20150718 sylabe_-_15d194c0ac5da323b50e868ab62c17c0a5470283c92f3d8a8631743b5cd9f42f_-_2db5ebfbdc6db01b5972837182275c2142d68de20fe78670a87875108e616cf7_-_2015-07-18_16.54.48
Version très petite définition.

Et le menu des applications, en fait des modules :

20150718 sylabe_-_15d194c0ac5da323b50e868ab62c17c0a5470283c92f3d8a8631743b5cd9f42f_-_2db5ebfbdc6db01b5972837182275c2142d68de20fe78670a87875108e616cf7_-_2015-07-18_17.17.35
Le menu des applications.

Avancement

Le module de messagerie avance. Il commence à gérer les messages dissimulés et le messages protégés :

sylabe_-_15d194c0ac5da323b50e868ab62c17c0a5470283c92f3d8a8631743b5cd9f42f_-_425fad5c1e9ab9806550bc1fc8abd39fe230f8214d61d98df7136bb82e130b58_-_2015-06-28_00.31.38

La notion de message a été un peu revue. On distingue trois cas :

  1. Le lien de type f : le message classique non protégé. Le champs méta du registre de lien contient l’entité à qui on transmet l’objet, c’est à dire l’entité définit dans le champs source du registre de lien. Ainsi, un champs méta à ‘0‘ exclut le lien comme message. Tout se passe comme si le message était transmis dans le contexte de l’entité visée, c’est l’utilisé du champs méta pour le lien de type f.
  2. Le lien de type k : le message est un objet protégé, c’est à dire dont le contenu est chiffré. Ne s’affiche ici que le message dont on peut effectivement récupérer le contenu. Une erreur s’affiche si il y a un problème.
  3. Le lien de type c : le message est définit par un lien qui est dissimulé. On sait juste ici que une entité à envoyé quelque chose à une autre entité. Le lien dissimulé peut être un lien de type f ou un lien de type k (protection d’objet). Une erreur s’affiche si il y a un problème.

Avancement

Le chiffrement est fonctionnel. Voici par exemple la page de création d’un texte :

sylabe_-_15d194c0ac5da323b50e868ab62c17c0a5470283c92f3d8a8631743b5cd9f42f_-_145cd24e46ff2a03fb742b0b7e6dcea2576a6035ad79fe095f5c3acc1098bae1_-_2015-06-23_23.28.11

On note que l’on coche ici l’option de protection du texte après envoi.

L’objet correspondant au texte a pour identifiant :

aee27be7e46fd6246b2084a954c092ce7464bcf2e9e939a721f5c11e70a20646aee27be7e46fd6246b2084a954c092ce7464bcf2e9e939a721f5c11e70a20646

En validant, on revient vers la même page mais avec deux parties en plus. La première en haut concerne le nouvel objet créé et un lien pour y accéder. Et en bas la suite des opérations réalisées, c’est à dire la création des objets, la génération des liens associés aux objets et au processus de protection, et enfin à la suppression de l’objet protégé, c’est à dire le texte que l’on vient de transmettre :

sylabe_-_15d194c0ac5da323b50e868ab62c17c0a5470283c92f3d8a8631743b5cd9f42f_-_145cd24e46ff2a03fb742b0b7e6dcea2576a6035ad79fe095f5c3acc1098bae1_-_2015-06-23_23.28.44

Si on suit le bouton pour afficher l’objet, on arrive sur la page d’affichage de l’objet protégé :

sylabe_-_15d194c0ac5da323b50e868ab62c17c0a5470283c92f3d8a8631743b5cd9f42f_-_aee27be7e46fd6246b2084a954c092ce7464bcf2e9e939a721f5c11e70a20646_-_2015-06-23_23.29.07

On remarque l’avertissement de confidentialité de l’objet affiché. Continuer la lecture de Avancement

Avancement

L’affichage des liens d’un objet était intégré au modules des objets. C’est maintenant un module à part entière. Et il est entièrement reconstruit :

sylabe_-_15d194c0ac5da323b50e868ab62c17c0a5470283c92f3d8a8631743b5cd9f42f_-_425fad5c1e9ab9806550bc1fc8abd39fe230f8214d61d98df7136bb82e130b58_-_2015-06-15_00.44.41

Le plus long a été de reprendre, corriger et remettre en forme le gros pavé de code qui permet la traduction des liens en langage humain.

Mais le plus gros du travail aujourd’hui n’est pas visible, c’est la poursuite de l’implémentation de la protection des objets, avec une bonne dose de cryptographie.
Dans la gestion des objets, le jeux consiste à détecter que l’objet est protégé et de trouver les liens qui intéressent directement l’entité en cours d’utilisation. Un objet peut avoir été protégé plusieurs fois par diverses entités. Mais pour une même protection, il peut y avoir plusieurs entités concernées (destinataires). Il faut donc retrouver si l’entité est capable de voir le contenu de l’objet protégé, c’est à dire de le déchiffrer.
Ensuite, il faut déchiffrer le contenu si besoin. Ce travail est fait dans la librairie nebule et doit être le plus transparent possible pour sylabe. Tout au plus peut on afficher à l’utilisateur que l’objet qu’il visualise est protégé et qu’il ne devrait peut-être pas le montrer à tout le monde…

Avancement

Le chiffrement des objets avance. Voici une page de test du cycle complet de génération d’un objet puis de sa protections, càd son chiffrement puis sa suppression :

sylabe_-_15d194c0ac5da323b50e868ab62c17c0a5470283c92f3d8a8631743b5cd9f42f_-_15d194c0ac5da323b50e868ab62c17c0a5470283c92f3d8a8631743b5cd9f42f_-_2015-06-13_02.26.43

On peut voir la représentation de la création des objets et des liens avec une couleur pour chaque champs du registre de lien. Les couleurs dépendent directement de l’empreinte des objets, c’est une forme d’empreinte visuelle.

On note enfin que la dernière action est en erreur, en rouge. C’est la suppression de l’objet source suite à son chiffrement. La fonction derrière qui réalise la suppression d’un objet existe mais n’est pas fonctionnelle. Cette fonction de suppression est un risque et doit être réalisée avec soin.

Avancement

Un nouveau fond de page remplace celui assez sombre de la cascade :

bg_nuages

Le module de messagerie est un peu amélioré, c’est surtout de la cosmétique :

sylabe_-_15d194c0ac5da323b50e868ab62c17c0a5470283c92f3d8a8631743b5cd9f42f_-_425fad5c1e9ab9806550bc1fc8abd39fe230f8214d61d98df7136bb82e130b58_-_2015-06-06_21.33.39

Il y a encore une réflexion sur la messagerie et sa façon de l’implémenter. On continue sur la façon de faire actuelle amis avec un risque de devoir changer si ça pose trop de problèmes.

Enfin, dans le module de téléchargement, une nouvelle page permet de créer un objet directement depuis un texte copié/collé :

sylabe_-_15d194c0ac5da323b50e868ab62c17c0a5470283c92f3d8a8631743b5cd9f42f_-_30199915e30e00681c68687890937204ff4c8a6468d4209c73631671f618e71e_-_2015-06-06_21.29.39

Juste pour ça une nouvelle icône a été créée. Mais elle n’est pas satisfaisante dans l’interface :

addtxt

Cette partie pour envoyer un texte brute va surtout permettre de faire des essais pour la mise en place de la protection, c’est à dire le chiffrement, des objets. Il en faut un certain nombre sur lesquels on peut se tromper… Puis cela servira aussi à la mise en place de l’offuscation de liens, c’est à dire de leur dissimulation, lors de l’envoie de fichier. La protection et la dissimulation seront aussi appliqués sur des objets et liens existants une fois fonctionnel.

La protection des objets est déjà fonctionnelle dans la précédente version de sylabe. Cependant, la mise en place dans les objets en programmation php orientée objet n’est pas juste un copier/coller…

Avancement

Le module d’émulation de ce que l’on peut appeler la messagerie est en cours de préparation. Voici ce que cela donne pour l’instant sur la messagerie d’une autre entité :

sylabe_-_15d194c0ac5da323b50e868ab62c17c0a5470283c92f3d8a8631743b5cd9f42f_-_425fad5c1e9ab9806550bc1fc8abd39fe230f8214d61d98df7136bb82e130b58_-_2015-06-05_00.31.54

Il faut noter ici que, bien que l’on aie une entité déverrouillée, il n’est pas possible de voir autre chose que les messages publiques d’une entité. Les messages protégés ou offusqués (anonymisés) ne sont pas visible et ne peuvent pas l’être si l’entité destinataire des messages n’est pas une entité esclave de l’entité en cours d’utilisation.

Cette vue de messagerie est considérée comme une émulation puisque ce n’est qu’une vue particulière des échanges entre entités. Elle présentera les mêmes informations que dans une émulation de blog ou de réseau social mais avec soit une forme différente soit avec un tri différent.

Il faut continuer la mise en forme pour que ce soit plus accessible à monsieur tout le monde.

Avancement

Ce soir les avancements sont surtout cosmétiques. Il y a une nouvelle série d’icônes pour répondre aux besoins dans l’interface. Comme le chargement de fichier est fonctionnel, les icônes ont pu être nébulisées et utilisées dans l’interface via leur objets respectifs.

Le chargement de liens complets, c’est à dire signés, est fonctionnel.

L’interface intègre la page pour la création à la main de liens. Mais la moulinette de création n’est pas encore finalisée, ce n’est que de l’affichage pour l’instant.
La création de liens à la main nécessite une bonne connaissance de leur fonctionnement. Un message d’alerte s’affiche pour prévenir de cette aspect.

sylabe_-_15d194c0ac5da323b50e868ab62c17c0a5470283c92f3d8a8631743b5cd9f42f_-_2db5ebfbdc6db01b5972837182275c2142d68de20fe78670a87875108e616cf7_-_2015-05-10_01.52.45

Avancement

Le travail portait depuis un moment sur la création de nouvelles entités. Il fallait commencer par la création de nouvelles entités indépendantes sans déverrouillage préalable. C’est à dire pour un portail public la possibilité pour tout un chacun de pouvoir créer une entité.

sylabe_-_15d194c0ac5da323b50e868ab62c17c0a5470283c92f3d8a8631743b5cd9f42f_-_15d194c0ac5da323b50e868ab62c17c0a5470283c92f3d8a8631743b5cd9f42f_-_2015-04-26_00.48.16

C’est maintenant fonctionnel. Voici une création :

sylabe_-_15d194c0ac5da323b50e868ab62c17c0a5470283c92f3d8a8631743b5cd9f42f_-_15d194c0ac5da323b50e868ab62c17c0a5470283c92f3d8a8631743b5cd9f42f_-_2015-04-25_23.32.14

On peut voir que aucune entité n’est préalablement déverrouillée. En bas apparaît quelques lignes sur les actions de création de l’entité. Le nommage complet, c’est à dire le nom, prénom, surnom, préfixe, suffixe et type, sont fonctionnels. Le surnom apparaît dans l’interface entre double cotes.

Après, en basculant vers la nouvelle entité, il est tout a fait possible de la déverrouiller. La nouvelle entité est fonctionnelle. Voici l’entité créée ci-dessus lorsque déverrouillée :

sylabe_-_153153bf7f7f98c41e3fbdce6a7f9dfe2c854974d5310d6047de862459e2dd8b_-_15d194c0ac5da323b50e868ab62c17c0a5470283c92f3d8a8631743b5cd9f42f_-_2015-04-25_23.55.40

La traduction est aussi effective pour toute l’interface de création.

Évidemment, un serveur est par défaut configuré pour refuser la création ouverte au public. Ce qui donne ce message sur la page de création ou lors d’une tentative de création forcée :

sylabe_-_15d194c0ac5da323b50e868ab62c17c0a5470283c92f3d8a8631743b5cd9f42f_-_15d194c0ac5da323b50e868ab62c17c0a5470283c92f3d8a8631743b5cd9f42f_-_2015-04-25_23.47.46