Ajout d’émotions sur des objets – suite 5

Suite des articles sur l’Ajout d’émotions sur des objets et suites 1 2 3 4, et Liens d’émotions.

Les émotions sont une façon de marque un objet avec les sentiments qu’il inspire à un être humain. Les émotions sont plutôt subjectives là où les avis sont beaucoup plus objectifs. L’intensité que l’on peut donner à une émotion est toujours strictement positive, le sens positif ou négatif est déjà porté par l’émotion elle-même.

Les émotions étaient fonctionnelles sur les objets dans la version 2014 de sylabe. Mais le code ayant été entièrement repris en php orienté objet elles n’avaient pas encore été ré-implémentées. Le nécessaire est en cours de remise en place directement dans la librairie afin que les émotions sur les objets soient utilisables dans toutes les applications.

Les avis ne sont pas maintenus.

En parallèle, la réflexion à long terme continue sur la pondération des objets en vue de leur suppression automatique au bout d’une certain temps. C’est la fonction d’oublie. Il faut que cette pondération soit aisée à utiliser, et surtout qu’elle ait du sens pour que l’utilisateur prenne le temps de le faire. Il est clair qu’un champs de quantification de l’importance d’un objet est difficile à appréhender et ne sera pas utilisé. La gestion des émotions devient en fait la solution évidente de pondération. De plus, la pondération d’un objet, qui représente en fait son importance, peut influencer et être influencée par l’importance des objets qui lui sont liés.
Sans pondération, la gestion de l’oublie sera chaotique et peu fiable, donc pas utilisée.

La facilité d’usage et la pertinence de la solution de gestion des émotions et leurs pondérations sont donc déterminantes pour leur adoption et leur utilisation mais aussi plus tard pour la gestion de l’oublie.

Il y a plusieurs façons d’aborder la pondération avec les émotions. Continuer la lecture de Ajout d’émotions sur des objets – suite 5

Objet virtuel avec rôle – Suite

Suite de l’article sur l’Objet virtuel avec rôle.

En fait ces objets virtuels sont déjà utilisés dans sylabe et klicty mais on se contente actuellement de générer aléatoirement la valeur de l’ID des objets de références. Et la taille des ID est la même qu’une empreinte de 256bits.

C’est utilisé par les groupes, le code va évoluer pour réduire la taille d’aléa utilisé et ajouter une partie fixe ou moins aléatoire. C’est utilisé par les nÅ“uds mais ils vont disparaître. Et c’est utilisé par les arborescences, là aussi le code va évoluer.

La part d’aléa va être réduite à 64bits et un préfixe assez long sera ajouté pour avoir une taille d’ID entre 129 et 191bits.

Objet virtuel avec rôle

Jusque là, la très grande majorité des objets créés ont ou ont eu un contenu et donc une empreinte numérique unique leur correspondant. Cela a été le cas pour les images utilisées comme icônes dans sylabe par exemple.

Le problème par exemple avec l’usage direct de l’objet d’une icône fait que si on veut la mettre à jour ou tout simplement en utiliser une autre à la place il faut faire un lien de mise à jour. Or ce lien de mise à jour n’a pas de contexte, c’est à dire de champs méta dans le lien. Ainsi la mise à jour s’applique partout alors que ce n’était pas forcément le but recherché.

La solution est de ne pas faire référence directement à une image que l’on veut utiliser dans une application mais à un objet intermédiaire. Cet objet n’a même pas besoin d’avoir un contenu, il est virtuel puisque son empreinte est créé de toute pièce sans contenu. Et du fait du fonctionnement de nebule, il n’aura probablement jamais (dans un temps raisonnable) de contenu correspondant à son empreinte.

Ainsi, on ne référence plus dans une application des icônes mais des objets intermédiaires. Et les icônes à utiliser n’ont plus à être des liens de mise à jour u mais deviennent naturellement des liens de dérivation f avec comme champs méta l’objet intermédiaire ou l’objet de l’application. Je pense que l’objet intermédiaire est le mieux comme champs méta.

Comme l’empreinte de cet objet virtuel est purement indicative, on peut lui mettre n’importe quelle valeur de n’importe quelle taille. Il est cependant raisonnable de choisir une taille assez conséquente et différente des tailles usuelles des empreintes, c’est à dire différent de 64, 128, 224, 256, 384, 512, 768, 1024, 2048, 4096, etc…
Chaque application peut utiliser les mêmes valeurs pour ces objets intermédiaires ou choisir par exemple une valeur préfixe identique suivi de valeurs aléatoires jusqu’à avoir une taille raisonnable.

Page installation pour Linux Ubuntu 16.04

La documentation d’installation est en cours de rédaction aussi pour Linux Ubuntu 16.04 LTS avec la version 020160830.

Cette version de Ubuntu propose par défaut la version 7 de php. C’est donc aussi un test sur cette toute nouvelle de php et à première vue ça fonctionne correctement.

Si l’installation de Ubuntu s’est faite avec 512Mo de RAM, à 256Mo ça ne passe pas, le serveur tourne ensuite sans problème avec Apache2/PHP7 avec 256Mo seulement… et étonnamment le bootstrap et les applications tournent aussi sur cette configuration réduite !
C’est bon signe, les optimisations du code sont efficaces.
Le serveur de test : ubuntu16.test.nebule.net

Version 020160830

Une nouvelle version 020160830 est publiée. Les changements étant assez profonds par rapport à la précédente version publiée, elle va subir une phase de test. Il n’est pas possible de mettre à jour une instance de serveur existante sans remplacer le bootstrap, c’est à dire le fichier index.php. Les sites web des applications sylabe et klicty seront mis à niveau progressivement plus tard.

La nouvelle version est diffusée pour l’instant sous forme d’une nouvelle installation d’instance de serveur.
Elle est disponible ici : 6b48a8ced09ef7ede2da001d8bf10a6fe5ad9d586ca1f1856eeec9fbc8ad4688

La procédure d’installation va être créée pour avoir quelque chose de complètement fonctionnel. Jusque là la procédure d’installation ne concernait que sylabe.

Les nouvelles applications option, upload et defolt sont disponibles à partir de cette version.

Les options sont maintenant en grande partie nébulisées dans la librairie, c’est à dire gérées par des liens. Le fichier nebule.env reste mais va permettre de figer les options que l’on ne voudra pas voir modifiée par les liens.

Nouvelles applications

En plus de messae qui est une application standard à destination des utilisateurs, il y a maintenant 3 autres applications qui sont cette fois plutôt destinées au côté technique de nebule.

Les nouvelles applications :

  • defolt : Application d’affichage par défaut pour les serveurs sans applications interactives.
  • upload : Application de chargement de liens pré-signés du maître du code exclusivement.
  • option : Application de visualisation et gestion des options de configuration, des applications, des entités de recouvrement et entités autorités locales.

Le bootstrap évolue aussi. Une version en php procédurale est reprise en concurrence de la version php orienté objet. Continuer la lecture de Nouvelles applications

Iconographie

Les icônes étaient jusque là gérées dans la partie affichage des différents programmes. Mais il y a la migration des parties communes d’affichage, c’est à dire une grande partie, vers la librairie nebule en php. Cette migration avance vite et elle inclue la gestion d’une grande partie des icônes, toutes celles qui sont communes. Une nouvelle page dédiée à l’iconographie va donc apparaître sur le blog de nebule.

Et en même temps les icônes vont être restylisées. Voici les premiers essais :

lo ent ll
objadd entadd

La résolution native des icônes passe à 256×256 pixels mais avec certaines contraintes dans le dessin pour supporter facilement le redimenssionnement à 64×64 pixels, taille d’affichage actuel.

Bootstrap procédural

Les instances du bootstrap ont été détachées des applications actuelles. Elles ne servaient que pour l’affichage optionnel de la métrologie.

L’idée est à terme de revenir sur un bootstrap en programmation procédurale et non orientée objet. Les besoins du bootstrap sont beaucoup plus restreints que ceux des applications et il est difficile aujourd’hui de faire un export réduit de la librairie nebule juste pour le bootstrap. La maintenance sera facilité.

Le portage devrait reprendre le code originel du bootstrap en procédural.

Nouvelles applications

La librairie nebule s’étoffe un peu plus au point de devenir un « framework » qui facilite grandement le déploiement de nouvelles applications. Les applications (classe Application) ont une classe abstraite parente avec tout un tas de fonctions disponibles. Idem pour les classes Display, Action et Translate des applications. Ces fonctions peuvent être directement utilisées ou surchargées si besoin.

Le développement de l’application messae est en attente de stabilisation de la librairie pour pouvoir être lancée.

Une base d’application a été ajouté à la page Applications.

Messagerie indépendante

La messagerie était un module de sylabe et avait déjà évolué pour ressembler plutôt à des conversation intégrant des messages.

Une nouvelle application va être lancée afin de présenter les conversations dans une application indépendante de la même façon que klicty. Mais le module des conversations dans sylabe va perduré et les conversations et messages seront complètement interopérables. En fait, la nouvelle application reprendra la base fonctionnelle et modulaire de sylabe mais avec un affichage simplifié et avec uniquement les modules entité, objet, groupe et messagerie. L’affichage principal sera différent mais les modules devraient être exactement les mêmes.

Afin de faciliter la création de nouvelles applications et la réutilisation des modules existants, le code de la librairie à été assez sérieusement modifié afin de centraliser dans celui-ci un maximum de fonctions et classes communes. A ce titre, la forme interne des applications et des modules à été changée et devient incompatible avec les précédentes applications et modules.

La nouvelle application des conversations s’appellera messae.
Un blog est déjà actif pour suivre son développement : http://blog.messae.org/

Gestion des conversations

La librairie php en cours de développement intègre maintenant nativement la gestion des conversations. Les conversations permettent de suivre des messages.
L’intégration dans la librairie permet de décharger les programmes comme sylabe et klicty de la gestion de ces conversations. Il permet aussi une uniformisation de cette gestion.

La gestion des conversations est au départ copiée/collée de la gestion des groupes. Mais elle a été revu au cours du développement.
Les conversations peuvent maintenant être marquées comme :

  1. fermée (ou ouverte)
  2. protégée (ou publique)
  3. dissimulée (ou affichée)

La fonctionnalité de conversation fermée est fonctionnelle, la protection est en court de développement et la dissimulation n’est pas encore développée.

L’intégration des groupes va être revu pour fonctionner de la même façon que les conversations.

Ajustement des noms de domaines

Tous les noms de domaines liés aux entités de nebule ont été revus. Le puppetmaster est toujours l’entité autorité racine sous laquelle on trouve maintenant les rôles :

  1. security.master.nebule.org
  2. code.master.nebule.org
  3. directory.master.nebule.org
  4. time.master.nebule.org

Chaque nom de domaine correspondant à un rôle est renvoyé vers une entité déterminée, à savoir aujourd’hui dans l’ordre :

  1. cerberus.nebule.org
  2. bachue.nebule.org
  3. asabiyya.nebule.org
  4. kronos.nebule.org

L’idée, c’est que en cas de problème une entité peut être remplacée par une nouvelle. Et c’est pareil dans le code de la librairie nebule en php.

Les adresses en IPv6 ne sont plus fonctionnelles, mais ça reviendra.

Status expérimental

En 2012, le développement de la librairie nebule en bash avait montré que l’on pouvait manipuler facilement des objets avec des liens.

La mise en ligne de la dernière version (20160303) de l’application klicty en php montre que l’on peut en faire quelque chose de concret. Donc, le statut des projets nebule, sylabe et klicty passera de « expérimental » à « en développement » lors de la publication des prochaines versions.

Code php bootstrap et librairie

Le code du bootstrap en php version 20160220 est téléchargeable ici :
http://klicty.com/?o=06e48f613a219e49bec9d39ee862e576adc80140b879986118492de09b899974

Le code de la librairie en php version 20160229 est disponible ici :
http://klicty.com/?o=900b5582426a0d50848cf574ebfece62af9d199d659473dde15e54457736b14c

Entités de recouvrement

Le mécanisme de recouvrement des objets protégés et des liens dissimulés est en train d’être doucement mis en place.

D’un point de vue théorique, cela répond à deux problèmes similaires.
En entreprise, et pas que, il est recommandé d’utiliser une ou plusieurs autorités de recouvrement lorsque l’on utilise de la cryptographie pour protéger ses données. Les décideurs le prennent souvent comme une contraite et oublient de mettre en place ce mécanisme de restauration des données chiffrées. Et ce mécanisme est différent de celui de restauration classique alors qu’il est perçu comme étant le même. Résultat, lorsqu’un employé critique vient à manquer, ses données, critiques aussi, deviennent subitement inaccessibles. La disponibilité c’est aussi de la sécurité.
Pour différentes raisons, des états plus ou moins démocratiques peuvent imposer la mise en place d’un mécanisme de déchiffrement des données de leurs concitoyens.

Mais, afin de ne pas rompre la confiance, ce mécanisme doit être loyale, c’est à dire public, transparent et vérifiable.

D’un point de vue pratique, la mise en place comprend deux parties.
Il faut commencer par recenser les entités éligibles comme autorités de recouvrement. Pour l’instant dans le code de la librairie en php, la liste de ces entités est renvoyée vide. Les applications peuvent donc commencer à prendre en compte ces entités pour l’affichage public. C’est le cas dans klicty mais pas encore dans sylabe.
Il faut ensuite, lors de la protection d’un objet ou de la dissimulation d’un lien, dupliquer la protection ou le lien pour chacune des entités de recouvrement. Cela revient simplement à faire un partage de la protection pour un objet protégé en duplicant le lien de type k de chiffrement de la clé de session.

Pour terminer, la librairie n’intégrera pas par défaut d’entité de recouvrement. Si des entités sont définies comme tel, ce sera uniquement par choix (ou obligation) de l’entité responsable du serveur.

Intégration des groupes dans la librairie php

Suite à la définition des groupes, l’intégration a commencé dans la librairie php orienté objet.

L’intégration est profonde puisque les groupes sont gérés comme des objets spécifiques comme c’était déjà le cas pour les entités. Une classe dédiée ainsi que tout un tas de fonctions leurs sont dédiés et personnalisés.

Les applications sylabe et klicty vont intégrer progressivement les groupes, notamment dans un module adapté.

Dans le même temps, un groupe fermé étant uniquement constitué de liens d’une seule entité (et cela doit être vérifié), le filtre social est en cours de mise en place. Ainsi, il est possible de restreindre la prise en compte des liens suivant ces filtres sociaux :

  • self : liens de l’entité ;
  • strict : liens de l’entité et des entités autorités locales ;
  • all : toutes les entités, mais avec un classement par pondération des entités.

L’activation du filtre social et donc de la possibilité de le choisir dans le code à nécessité un revue de tout le code de la librairie et des applications. Il reste à vérifier les modules de sylabe.

Liens de propriétés d’un objet

Rien de vraiment nouveau pour ce début d’année 2016.

Via la librairie php, on pouvait récupérer une ou des propriétés d’un objet avec le contenu de ces propriétés, on peut maintenant récupérer juste le ou les liens correspondants. Ainsi il est possible d’extraire facilement d’autres informations sur ces propriétés comme la date ou l’entité créatrice…