Avancement

L’affichage de la page un peu changer. La barre du haut affiche maintenant la couleur des entités et des objets. Elle est un peu réorganisée.
Mais c’est visuellement la barre de gauche qui a subit le plus gros changement. Au lieu d’afficher des noms d’entités ou des contenus de nÅ“uds, elle affiche à la place leurs couleurs propres.
Cette couleur est générée à partir des 6 premiers chiffres en hexadécimal d’un identifiant. Elle n’est pas infalsifiable, ni unique mais elle est aléatoire. Mais elle va surtout permettre dans le flot des données affichées de savoir d’un coup d’œil qui a fait quoi. C’est plus rapide que de lire le nom d’une entité qui peut changer, ou une photo miniature qui peut changer aussi. En passant la souris sur un des carrés de couleur, on a une petite bulle qui indique à quelle entité ou quel objet on a à faire. L’interface qui jusque là se permettait peu de couleur devient par endroits une sorte de patchwork coloré aléatoire.
Pour les entités, il sera possible de choisir aussi une photo. Cette photo miniature s’affichera à côté de sa couleur et non en remplacement. Par défaut, c’est l’icône du lien de l’objet qui apparaît à la place.
Voici à quoi ressemble le mode ent qui affiche les entités (avec des tests) :

shot-2014-04-28_09-54-43

Le mode d’affichage permet de voir les fichiers audio. Il y a un petit problème qui empêche la bonne reconnaissance du type mime pour les fichiers multimédia. On peut donc maintenant dans l’affichage modifier le type mime d’un objet.
Voici à quoi ressemble la lecture d’une musique :

shot-2014-04-28_09-55-04

Et on peut aussi renommer une entité.
Évidemment, on ne renomme pas arbitrairement une entité tierce, on dit juste qu’on l’appelle soi-même autrement. Libre aux autres entités d’en tenir compte ou pas. Pour ce dernier point, la pondération jouera un grand rôle, mais elle n’est pas encore en place.
Ce sont les petites icône à côté du nom :

shot-2014-04-28_09-46-21

Résistance à la corruption de données

Plusieurs tests doivent déterminer la résistance à la corruption de données, volontaire ou non, dans les codes de sylabe.

Le code du bootstrap est capable de vérifier la chaîne de confiance du code à charger en suivant les liens de mise à jour. Il est capable aussi de vérifier la cohérence du contenu du code à charger avec son empreinte.

Les testes sont réalisés avec le mode log qui affiche l’empreinte des composants utilisés.

Le premier test consiste à modifier subtilement l’objet du code de sylabe, un simple retour chariot ici. Au rechargement de la page, c’est la version précédente du code qui a été rechargée. De plus, l’objet modifié a été supprimé du disque dur parce que invalide. Même une modification mineure entraîne une invalidation du code et force à revenir à une version précédente non corrompue.
Le même test réalisé sur l’objet du code de la librairie nebule donne le même résultat.
Si on corrompe successivement les objets de plusieurs versions du code, le bootstrap remonte aussi loin que nécessaire pour retrouver un objet valide. Tous les objets invalides ont été supprimés.

Prochain test, corrompre le tout premier objet du code, celui qui est mis à jour successivement. Il ne doit plus y avoir de code valide, le bootstrap doit s’arrêter sur une erreur ‘Default object invalid‘.

Un dernier test consistera à essayer d’injecter un objet de mise à jour du code mais par une entité tierce, puis avec un lien usurpé. Ce test doit permettre de déterminer la résistance du bootstrap face à des liens qu’il ne doit pas utiliser.

Anticipation

Maintenant que le mode navigation est fonctionnel, on va pouvoir reprendre d’autres chantiers.

La partie traduction du code est un gros pavé, logique. Mais sa forme est surtout assez infâme. Il faut le refaire en utilisant des tableaux qui pourront éventuellement un jour être exportés dans des objets dédiés.

La barre du haut est à revoir dans sa forme mais aussi dans son usage. Le haut reste l’identification de l’entité. Le bas doit concerner l’objet courant. La partie intermédiaire peut peut-être servir à héberger des indicateurs de bon fonctionnement, la crypto par exemple…

Il serait souhaitable de pouvoir intégrer la gestion des sous-entités directement dans sylabe même si nebule reste fondamentalement mono-entité. Ce peut être simplement en gérant une entité maître en parallèle de l’entité courante. L’entité maître peut disposer du mot de passe de chaque sous-entité et basculer vers une de celles-ci. La barre en haut devra refléter clairement quelle entité est en cours d’utilisation.
Le mot de passe est naturellement un objet chiffré et lié à l’entité contrôlée. Ainsi, ce mot de passe peut être partagé par plusieurs entités maîtres pour former une entité commune, et donc une forme de groupe actif. A définir…

Avancement

Le mode de navigation est maintenant assez stable pour être exploitable. Le résultat ressemble à ça :

shot-2014-04-22_20-44-57
CF : Blog nebule – Ajout d’émotions sur des objets – suite 4

Quelques essais grandeur nature avec des synchronisations sur l’Internet seront réalisés sur l’objet de test.

La machine hôte de l’entité bachue vient de recevoir la clé privée. Elle est maintenant fonctionnelle pour l’import et la signature. Le script d’export est en cours de finalisation.
La machine relai n’est pas encore tout à fait prête. C’est donc l’entité Stéphane qui diffuse aujourd’hui, en tant que simple relai, les liens signés par l’entité bachue.

Voici donc les objets des dernières versions des différents codes :
– bootstrap : 3abf80a35591bbdbe46fbab488db4012accb5dbf4d6c8fda6355f05327ded841
– sylabe : 9552e15d37b452366d9b2f99ebbdfbf57154807befc08ee2e981741a026ee5fe
– librairie nebule : 948f821c48111a32a891ae5716fc25d6da100415ec015507a33cbbae2b979c7c

Avancement

Les émotions ont été mis en place proprement pour les objets. Cela concerne le mode d’affichage des objets et le mode de navigation.

Le mode d’affichage :

shot-2014-04-16_22-06-10

Le mode de navigation :

shot-2014-04-16_22-06-58

On notera que les émotions sont aussi présentes dans la barre en haut de la page.

Pour le mode d’affichage des objets, pas de révolution, ce sont juste des icônes plus présentes et plus pratiques. Pas de changement pour les avis.

Pour le mode de navigation, chaque commentaire de l’objet, que ce soit un texte ou autre chose, peut recevoir une ou plusieurs émotions. Ces émotions sont marquées dans le contexte de l’objet, c’est à dire qu’elles lui sont indirectement liées. Une émotion avec un contexte apparaît dans le mode d’affichage du commentaire, mais pas dans le mode d’affichage de l’objet en cours de consultation.

On peut tout à fait dans le mode navigation mettre une émotion sur une autre émotion. Par exemple, mettre que l’on aime que d’autres aiment l’objet. Cependant, il ne faut pas oublier que ce n’est pas le lien que l’on aime, mais le marquage de l’émotion. Ainsi, si on marque que l’on aime une émotion sur un objet, son marquage va apparaître automatiquement sous toutes les entités qui ont exprimé l’émotion. On exprime une émotion sur une émotion en générale, pas sur l’émotion d’une entité en particulier.
Ce fonctionnement apparaît sur la capture d’écran du mode de navigation. J’avais émis hier un avis beau. Puis j’ai marqué aujourd’hui que j’approuve l’avis, ce qui est une émotion. Enfin, j’ai marqué que je trouve étonnant l’émotion j’approuve sur mon avis d’hier.

Les nouvelles icônes sont trop visibles par défaut, trop denses. Il faudra les refaire…

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