Bonne année 2019

Une nouvelle année signifie la mise à jour de toutes les dates à côté des licences… que ce soit dans les différents code mais aussi des sites web statiques et des blogs.

Aucune publication de code n’a été faite depuis le 8 mai 2017. L’application sylabe est toujours en cours de ré-écriture avec la nouvelle partie graphique intégrée à la bibliothèque nebule. Et elle rejoint progressivement la mise en pratique de la Réflexion sur l’évolution de l’interface web pour nebule.

Un module de gestion des références est déjà apparu au cours de l’année.

Un nouveau module apparaît, il va permettre de gérer les applications sans nécessiter de passer par l’application des options. Plus d’explications dans une prochaine présentation.

Une publication du code récent devrait se faire rapidement mainteannt.

Bugg du module arborescence

Il y a deux buggs dans le module arborescence de sylabe.

Le premier, l’affichage de toutes les arborescences disponibles de toutes les entités ne renvoie rien. Mais les arborescences sont bien présentes quand on sélectionne une entité et que l’on va voir ses arborescences.

Le second, lors de la nébulisation d’un fichier via la page d’import dans le module arborescence, si l’objet est protégé, le nom de l’objet n’est pas enregistré. En fait le lien est fait mais l’objet contenant le nom n’est pas écrit. Donc c’est illisible, comme ça :

shot-2017-06-02_20-08-39

Mise en ligne 020160610

Une nouvelle version est en ligne.

Le module de messagerie est fonctionnel. Il a été entièrement reconstruit et gère maintenant des messages dans des conversations.
On peut créer des conversations avec une ou plusieurs autres entités. On peut ajouter et supprimer des entités au cours d’une conversation. Si on ferme la conversation, on ne voit que les messages des entités que l’on a ajouté.
La protection des messages est fonctionnelle. Seules les entités que l’on a ajouté se retrouvent destinataires des messages protégés et peuvent les consulter. Les autres entités ne peuvent que voir qu’il y a un message mais pas son contenu.
La dissimulation des conversations et messages n’est pas encore implémentée.

Le code permettant la création d’une nouvelle entité a été corrigé, il était impossible de créer correctement une entité. Maintenant, au cours de la création, il y a une bascule temporaire vers la nouvelle entité pour générer tous les objets et liens qui la concerne.

A voir donc comme d’habitude ici : sylabe.com

Le code source : 593f9097e78da7e98e083a92bd92a5b81cdb7b090d7e0c35724f78c52d5b5198

De la messagerie à la conversation

Le modules de messagerie avait été commencé pour ressembler à une messagerie assez classique. Mais toutes les nouvelles messageries qui apparaissent aujourd’hui sur Internet ont choisi une nouvelle voie. Cette nouvelle voie ressemble plus à la messagerie instantanée avec sa notion de conversation avec un seul correspondant, ou plusieurs.

Le module de messagerie est donc en complète refonte pour rejoindre ce modèle de conversation. Mais le fait de fonctionner par dessus nebule permet de prévoir des fonctionnalités un peu plus originales.

Chaque conversation est un espace privilégié avec une ou plusieurs autres entités dans lequel vous échangez des messages. Les messages peuvent être constitués de tout type d’objet.

Toute entité peut s’ajouter à une conversation mais si vous définissez la conversation comme fermée vous ne verrez que les entités que vous avez choisi pour la conversation. Si elle est ouverte vous verrez tout le monde. Une même conversation peut être vu comme ouverte ou fermée par les différentes entités de la conversation. Et, même si toutes les entités définissent la conversation comme fermée, chaque entité peut ne pas reconnaitre dans la conversation les mêmes interlocuteurs que les autres. La notion de conversation ouverte ou fermée n’est pas un attribut global mais un paramétrage de votre affichage de la conversation.

S’inclure dans une conversation suffit à suivre celle-ci. Les autres participants vous verront apparaitre si ils ont définit la conversation comme ouverte, et vous pourrez intervenir. Si la conversation est fermée, vous pourrez la suivre mais vos interventions ne seront pas vus.

Une conversation fermée n’est pas une conversation privée, il faut pour cela en plus activer la protection des messages de la conversation. Tous les intervenants ne sont pas obligés d’activer la protection des messages, seuls leurs messages seront visibles par tout le monde. La notion de conversation publique ou privée n’est pas un attribut global mais un paramétrage de votre façon de transmettre les messages.

cvt cvtadd cvtaddent cvtaddmsg cvtent cvtobj

Mise en ligne 020160409

Une nouvelle version est en ligne.

Le module des groupes est fonctionnel.

Le module des systèmes de fichiers est fonctionnel.

Les autorités de recouvrement commencent à se faire de la place mais ne sont pas encore fonctionnelles.

L’affichage des listes et objets est maintenant faite en deux fois, une pour le cadre de la page et une autre inserré juste après avec juste le contenu de la liste ou  de l’objet. Ainsi, même avec des affichages longs à calculer ou à transmettre, il y a au moins une page affichée avec un petit texte d’attente.

Le module de messagerie est en cours de développement.

Un nouveau module apparaît. Il permettra de gérer, si on est autorité locale, les options de sylabe. Pour ça les options vont devenir des objets nebule et plus seulement des lignes dans un fichier de configuration.
Le logo de ce module des options :

admin

Et enfin,toutes les actions qui nécessitent une signature seront accompagnées de tickets de validation. Ainsi, il lien de suppression ou de partage de protection par exemple ne pourra pas être joué à prostériori (via un message piégé) ou rejoué.

A voir donc comme d’habitude ici : sylabe.com

Le code source : e67c62d2a22fe61d971aaad852d6f0acb55fb1c66fe5c2f26d2745f821f0e328

Evolutions, messagerie et options

Après le module des groupes, le travail va continuer sur le module de messagerie et sur les options.

Le module de messagerie va permettre d’échanger de l’information entre entités à la manière des messageries actuelles. Il y a soit un temps différé comme la messagerie via emails. et il y a le temps réel comme le tchat ou messagerie instantanée. Les échanges se feront bien sûr entre entités sur un même serveur mais aussi entre plusieurs serveurs. Entre plusieurs serveurs, les délais de transmission seront dépendants des mécanismes de synchronisation. Cette façon de procéder par synchronisation régulière va générer des latences mais devrait être capable de fonctionner même sur des réseaux fractionnés ou non coopératifs.
Cette amélioration du module de messagerie va ainsi permettre d’améliorer la synchronisation des objets et des liens dans nebule.

Les options seront à terme des objets à part entière et non plus des lignes dans un fichier texte. Ainsi, plusieurs serveurs pourront partager les mêmes options imposées par une même entité maitresse.

Mise en ligne version 20160127

Une version relativement stable est enfin en ligne.

Et sylabe est maintenant sur un serveur en propre avec 32Go de place : http://sylabe.com

Il y a des corrections sur l’affichage de certaines icônes et surtout la mise en place des modules annexes. Le modules permettent de manipuler un peu plus de chose que juste l’interface et le déverrouillage d’une entité. Bref c’est fonctionnel !

Les modules additionnels :

  1. système de fichier ;
  2. liens ;
  3. messagerie ;
  4. nœuds ;
  5. recherche ;
  6. Synchronisation/téléchargement ;
  7. langue anglaise ;
  8. langue espagnole.

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…

Gestion des options de configuration par des objets

L’interface sylabe, comme tout programme, permet une certaine personnalisation et quelques restrictions d’usage par le biais d’options. Ces options sont pour l’instant stockés dans un fichier unique dédié aux options de nebule et potentiellement tout programme qui en a besoin, comme sylabe.

Ce fichier est a créer à côté du bootstrap. Et il restera en place pour nebule afin de forcer certaines options sans possibilité de les changer. Évidement, ce forçage des options par un fichier ne vaut que si le fichier n’est pas modifiable, au moins de façon trivial. Par contre, il n’y a pas de raison raisonnable de conserver un forçage des options de sylabe.

Il est préférable de s’orienter vers des options manipulées comme des objets. C’est à dire que chaque option de configuration sera un objet dédié avec un lien vers l’objet contenant la valeur de l’option. Cela ralenti un peu le chargement d’une option puisque ses liens doivent être vérifiés, ce qui n’est pas un mal. Mais cela va aussi permettre de générer les options sur une machine, c’est à dire sous une entité A, et de les attribuer à une autre machine, c’est à dire une entité B. Bien sûr, cette attribution et surtout cette reconnaissance d’une option se fera par rapport à la validité sociale des liens. Et dans ce genre de cas, on ne reconnaît les liens que de peu d’entités.

Ces options seront par défaut protégées. Même si on se doute de certaines (true/false), d’autres ont tout intérêt à être cachées. Elle pourront éventuellement être offusquées si on ne souhaite pas montrer l’usage de certains modules de sylabe. Et comme il peut être facile de déduire la valeur de certaines options dans un temps raisonnable, notamment par le lien de chiffrement, chaque objet contenant une valeur d’une option devra aussi contenir une partie non utilisée avec de l’aléa. Ainsi, l’objet chiffré sera lié à un objet en clair, supprimé, mais ne permettant pas de déduire la valeur de l’option.
Il est aussi possible de le faire par des liens offusqués, à voir…

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

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

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

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

Quelques captures de l’avancement de la nouvelle interface de sylabe.

Déjà des couleurs du fond de la section centrale de la page sont faites de transparence de blanc, et non plus de noir. Le contraste est meilleur avec le menu, et ça me paraît plus sympa. L’affichage a été aussi un peu épuré, il n’y a plus la barre qui affiche le module en cours, un détail sans importance pour l’utilisateur…

La première capture montre l’affichage simple d’un objet. Le menu de gauche est adapté au module en cours d’utilisation. Ici, le module d’affichage des objets se prend de la place pour lui. Mais un autre module peut aussi en ajouter, ici c’est le module des nÅ“uds qui ajoute une option pour l’objet.

sylabe_-_15d194c0ac5da323b50e868ab62c17c0a5470283c92f3d8a8631743b5cd9f42f_-_2df1f7d23473fa0e964acc0b621c1e6bfd8160003c6a1b7d9374c6f034c6aaf4_-_2015-03-01_23.23.50
Vue de l’objet.

De même le menu de droite adopte la couleur claire. Les icônes ressortent mieux.

sylabe_-_15d194c0ac5da323b50e868ab62c17c0a5470283c92f3d8a8631743b5cd9f42f_-_2df1f7d23473fa0e964acc0b621c1e6bfd8160003c6a1b7d9374c6f034c6aaf4_-_2015-03-01_23.24.31
Vue du menu de droite.

Dans le module des nÅ“uds, on constate que les menu de gauche est moins fourni. Ici c’est le module des objets qui s’incruste un peu.

sylabe_-_15d194c0ac5da323b50e868ab62c17c0a5470283c92f3d8a8631743b5cd9f42f_-_2df1f7d23473fa0e964acc0b621c1e6bfd8160003c6a1b7d9374c6f034c6aaf4_-_2015-03-01_23.28.00
Vue des nœuds.

Dans cette page, si on clique sur le lien « Faire de cet objet un nÅ“ud », on l’ajoute bien aux nÅ“uds de l’entité.

sylabe_-_15d194c0ac5da323b50e868ab62c17c0a5470283c92f3d8a8631743b5cd9f42f_-_2df1f7d23473fa0e964acc0b621c1e6bfd8160003c6a1b7d9374c6f034c6aaf4_-_2015-03-01_23.28.38
Vue de l’ajout d’un objet comme nÅ“ud.

A noter en bas de la fenêtre la partie sous la barre rouge qui indique l’action réalisée, ici la création d’un lien. Le lien est représenté par son équivalent en icônes et couleurs.

Évidemment, l’action n’est possible que parce que l’entité est déverrouillée. Si ce n’est pas le cas, l’action n’est pas acceptée, et les icônes correspondantes ne sont pas affichées.

Avancement

L’interface évolue un peu au grès des évolutions du moteur. La remise en place de ce qui fonctionnait avant n’est pas aussi évidente et rapide…

Les menus ont été intervertis.

Les modules sont plus complets et commencent tout juste à prendre en charge les actions. Ils permettent aussi de compléter la traduction générale, le style CSS et les scriptes d’une page qui les concerne. Tout ce qui est fait dans l’interface repose sur un socle commun pour l’arrière plan et tout le reste est exporté dans des modules, certains seront peut-être intégrés par défaut au code de sylabe parce qu’ils seront indispensables. Les modules mériteront à eux seuls un article dans le blog et dans la documentation.

Voici ce que cela donne aujourd’hui pour la gestion des nÅ“uds :

sylabe_-_15d194c0ac5da323b50e868ab62c17c0a5470283c92f3d8a8631743b5cd9f42f_-_7855163e7ad8be9534cba394b63f0da6432fbe537d3e9ed8ffb687a29fd1cdbd_-_2015-02-08_23.36.05

Le logo de la métrologie a changé, mais c’est une erreur il va revenir…

Un autre exemple avec le module des entités. Celui-ci prendra en compte la gestion des entités connues, de la bascule entre entités et de la « connexion ». Le mécanisme de vérification de la connexion reste par contre exclusivement dans la librairie nebule.

sylabe_-_15d194c0ac5da323b50e868ab62c17c0a5470283c92f3d8a8631743b5cd9f42f_-_7855163e7ad8be9534cba394b63f0da6432fbe537d3e9ed8ffb687a29fd1cdbd_-_2015-02-08_23.49.55