Archive for the ‘pondération’ Category

Pondération et structure hiérarchique

Mercredi, août 30th, 2017

Suite de la gestion de la pondération.

Dans une structure ou une organisation hiérarchique, forme courante d’organisation, une autorité peut être amenée à déléguer son pouvoir à un autre individu. C’est le cas notamment leur d’une vacance.

Rapporté à une entité dans nebule, une entité a qui on donne une forte pondération, à qui on fait confiance, sera toujours prioritaire sur une autre de moins forte pondération. Comment permettre une vacance ? Est-ce que l’on peut mettre en place une forme de délégation de pondération ? Est-ce que ce lien de délégation est simplement annulé en fin de vacation ?

Cela pose aussi question sur la forme de la pondération. Elle est normalement globale. Mais ne faut-il pas gérer une pondération par rôle en plus ? Doit-il être géré comme une pondération avec un contexte social ?

Modification de l’ordre de prise en compte des propriétés d’un objet

Jeudi, mars 30th, 2017

Je reprends progressivement le développement de nebule pour corriger le bugg de klicty et améliorer dans sylabe le module correspondant.
Et je tombe sur un problème non dans l’implémentation mais dans la façon dont on prend en compte les propriétés d’un objet, ou plutôt l’ordre de prise en compte lorsque cela est fait plusieurs fois. C’est à dire, quel propriété retient-on en priorité lorsqu’il y a plusieurs liens d’un objet vers plusieurs propriétés.
Le problème n’a pas une solution difficile en soi mais le fait qu’il concerne une brique importante de nebule me freine à le modifier sans plus de réflexion. Les implications que cela engendre peuvent être très importantes dans pleins d’endroits du code de la bibliothèque de nebule et des applications. (suite…)

Suppression et oubli

Mardi, décembre 13th, 2016

Comme évoqué il y a déjà un certain temps dans l’article sur Le paradoxe du droit à l’oubli, il n’est pas évident du tout que la suppression pure et simple d’une information soit généralement la meilleur solution.

Pour les individus, l’oubli d’une information est vu soit comme un trouble cognitif soit comme une nécessité. C’est un problème si l’information que l’on avait acquise n’est plus disponible alors que l’on en a grand besoin. Les personnes qui perdent la mémoire perdent toute autonomie. D’un autre côté, se souvenir de tout est aussi un problème. La trop grande quantité d’information sur des évènements sans intérêt perturbe la vie courante.

Dans nebule, la suppression des objets répond à deux besoins. Le premier besoin correspond à la récupération de la place mémoire pour stocker d’autres objets plus récents et à priori plus importants. Et le deuxième permet surtout dans la vie courante de ne pas se surcharger d’informations qui n’ont pas d’intérêt immédiat… voir plus d’intérêt du tout.

Mais cette suppression qui est une manière courante de travailler en informatique n’est elle pas problématique ?
L’oubli est la vraie raison de la suppression des objets. Un autre mécanisme doit être trouvé pour remplacer la nécessité de supprimer des objets. Le retrait des liens attachés à un objet ne supprime pas ces liens mais les enlève de l’usage courant. La pondération des émotions d’un objet et le traitement qu’il en est fait permet de gérer aussi le bannissement dans un contexte social des entités.

Le sujet devra être approfondi avant tout mise en applications…

Ajout d’émotions sur des objets – suite 5

Dimanche, septembre 18th, 2016

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. (suite…)

Intégration des groupes dans la librairie php

Lundi, février 1st, 2016

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.

La sécurité des suppressions de données

Lundi, février 9th, 2015

Le piratage de Sony Pictures a provoqué une véritable onde de choc dont les ramifications sont parfois inattendues. L’article The Security of Data Deletion de Bruce Schneier fait l’apologie d’une stratégie ‘agressive’ de suppression des données obsolètes dans les entreprises. Puisqu’il n’est pas possible de garantir la confidentialité des données d’une entreprise, même une parmi les plus grosses, il est préférable de supprimer ces données lorsqu’elles sont obsolètes.

On peut aussi parler de l’intégrité puisque si un pirate a réussi à récupérer quelques téraoctets de données sans se faire prendre, il a tout aussi bien pu en altérer au passage. Si la cryptographie peut nous aider à ce niveau pour signer les données et messages, elle ne pourra pas grand chose si les postes utilisateurs, leurs programmes et donc leurs clés sont compromises…

Mais revenons à la politique de suppression des données. Parler de politique agressive est un peu exagéré. La notion d’agressivité sous-entend de supprimer dès que possible une donnée lorsqu’elle n’est plus utilisé. Il est fait référence dans l’article à ce que l’on transmettait par téléphone avant l’informatique, les informations annexes que l’on ne notaient pas finissaient par être rapidement oubliées, au pire déformées… ou au mieux sujettes à confirmation.

Si la messagerie instantanée est assez informelle, la messagerie classique est beaucoup plus formelle, surtout en entreprise. On est dans ce dernier cas assez loin de la conversation libre par téléphone.

Une entreprise ne peut pas non plus supprimer sans discernement ses données sous prétexte qu’à un instant donné elles n’ont plus d’utilité. Ces données, c’est la mémoire de l’entreprise. Les supprimer c’est supprimer la mémoire de l’entreprise, une des choses les plus importantes puisque c’est l’accumulation de son savoir faire, de son savoir sur ses clients et ses racines. Supprimer les données anciennes d’une entreprise, c’est comme supprimer la mémoire à long terme des individus, c’est catastrophique pour eux et pour la société dans son ensemble.

Ce parallèle avec l’individu n’est pas anodin. La capacité d’une entreprise c’est la somme des individus qui la composent démultiplié par le patrimoine technique.
Et le parallèle peut aller plus loin. L’individu ne retiendra pas tout d’une conversation téléphonique. Des informations annexes seront perdus parce que non mémorisées par l’un ou l’autre des interlocuteurs. Ensuite, avec le temps, chaque interlocuteur va oublier certaines informations pas très importantes, progressivement. Au final, après un grand laps de temps, il ne subsistera de la conversation téléphonique que l’essentiel de l’information. Il faut donc bien de la même façon supprimer les données éphémères d’une entreprise mais il ne faut pas tout supprimer. Avec le temps, seul doit subsister l’essentiel des informations du passé. Les idées doivent être résumées et les informations techniques doivent être épurées de leurs pré-calcul et des données annexes.
Comme fil conducteur, on peut essayer d’avoir la vision d’un historien sur le passé de l’entreprise pour savoir ce qui a de l’intérêt ou pas. Et ainsi, naturellement, toutes les conversations hors champs vont disparaitre.

Tel que déjà définit précédemment pour le projet nebule, les données doivent pouvoir être supprimer automatiquement après un certain délai ou conservées explicitement. Une pondération appliqué aux objets déterminera le délai de conservation, ou plutôt de non-suppression. Et un seuil déterminera à partir de quelle pondération un objet sera à garder définitivement. Ce seuil peut évoluer avec le temps et faire disparaitre après coup des objets qui initialement étaient au dessus du seuil de suppression. La pondération reflète l’importance des objets, positivement ou négativement.

Pour finir, n’est-il pas plus simple d’être respectueux dans ses messages même à usage interne ? A défaut d’empêcher le vol d’information, au moins on évite déjà les propos embarrassants, une charge de moins dans la réparation des dégâts. Mais quelque part, cela reflète un état d’esprit dans l’entreprise, une certaine culture des individus qui la composent… bref, pas très sain…

Téléchargement et pondération – Protocols multiples

Mercredi, août 20th, 2014

Suite des articles Téléchargement et pondération et activation.

Jusque ici, on utilise que le protocole HTTP. C’est simple, pratique et instantané.

Mais il était prévu que les objets et liens nebule puissent transiter par d’autres protocoles, notamment la messagerie.

On va prendre pour commencer le cas de la messagerie instantanée, et plus précisément XMPP qui est à la fois fonctionnel, ouvert et universel.
Contrairement à ce que l’on pourrait penser, l’utilisation de ce protocole est assez aisé. Il faut gérer une connexion TCP, transmettre des messages pré-formatés en XML et récupérer la réponse toujours en XML.
Ce qui est plus problématique par contre, c’est qu’une instance de nebule soit bidirectionnelle, c’est à dire qu’elle soit aussi serveur. Pour qu’elle puisse être serveur, elle doit fonctionner en permanence, or en HTTP, une fois la page chargée, tout s’arrête jusqu’à la prochaine page demandée.
Il faut utiliser un serveur XMPP sur lequel se connecte un autre programme. Ce programme agira comme tout client XMPP et fera la traduction vers les spécificités nebule, en gros répondre aux demandes d’objets et de liens.
Le serveur XMPP peut garder des messages pour les clients déconnectés. Pour le côté programme serveur de nebule, ça n’a pas d’intérêt, ils peuvent être supprimés lors de la connexion initiale au serveur XMPP. Par contre, côté client nebule, ce pourrait être des réponses à des requêtes précédentes. Mais si l’on respecte le sens des échanges, on ne doit accepter que les réponses correspondantes à des requêtes, et donc il faut suivre ces requêtes.

On continue avec le protocole de messagerie SMTP. Contrairement à XMPP vu précédemment, la messagerie SMTP n’est pas temps réel, c’est à dire instantanée. C’est même pire, elle a une contrainte de temps très large. Et ceci même si un message peut traverser le monde dans la seconde. Ce qui est à son avantage en temps normal est un problème dans notre cas.
On peut donc l’inclure dans les protocoles en espérant que les réponses seront rapides.
Un autre problème, c’est qu’il faut travailler avec un serveur de messagerie tiers avec deux voir trois protocoles différents. En effet, le SMTP ne sert qu’à l’envoi, la réponse doit être consultée avec POP ou IMAP.
Difficile donc d’implémenter facilement ce protocole. Il faudrait presque refaire un serveur dédié à nebule, ce qui serait plutôt improductif…

Il va falloir maintenant normaliser pour chaque protocole les requêtes/réponses.

Évidemment, la liste supportée n’est pas fermée. D’autres protocoles pourront être ajoutés par la suite…

Téléchargement et pondération – activation

Mardi, août 19th, 2014

Suite aux réflexions sommaires de Téléchargement et pondération, la mise en place commence dans le code de la librairie.

Cependant, le fait de créer par défaut un lien de pondération pour une localisation peut poser problème. Les liens générés peuvent être exploités comme des traces de l’activité d’une entité. C’est une façon de savoir quand une personne, à qui appartient l’entité, est connectée et de suivre les connexions dans le temps.

Il y a deux parades à ça. La première, interdire par défaut les synchronisations sauf si c’est explicitement demandé. La deuxième, c’est de ne pas ajouter automatiquement la pondération aux localisations lors des synchronisations.

La première solution est plutôt à gérer du côté d’une application de type sylabe.

La seconde solution est à intégrer dans la librairie php sous la forme d’une option.

Liens d’émotions

Vendredi, avril 4th, 2014

La mise en place des émotions sur les objets appelle plusieurs questions.

Catégories

Vu le nombre d’émotions gérées, il va devenir nécessaire de les segmenter en catégories. On peut maintenir la catégorie ‘émotions‘ qui regroupe tout ressentit humain, plutôt subjectif. On peut ajouter une nouvelle catégorie ‘avis‘ pour tout ce qui est plus objectif.

Pondération

Une réflexion qui commence à dater un peu sera la mise en place d’une pondération aux objets. Cette réflexion concerne avant tout la possibilité d’oublier progressivement dans le temps les objets avec le moins d’importance. L’oublie peut être réalisé automatiquement à partir d’un certain seuil. Le seuil peut progressivement augmenter dans le temps jusqu’à un seuil maximum au dessus duquel les objets concernés seront conservés, sauf suppression volontaire.

Cette pondération peut être bien sûr utilisable en permanence pour trier l’affichage des objets.

La mise en place des émotions est le bon moment pour introduire la mise en place de la pondération. Il ne reste plus qu’à en définir les modalités.

Chiffrement

Une autre réflexion qui date un peu mais prend progressivement de l’importance, c’est la possibilité de chiffrer les liens. Le but est d’offusquer que l’on ne souhaite pas rendre publics tout en permettant leur bonne transmission aux destinataires légitimes.
Il y a plusieurs manières d’offusquer les liens :

  1. La première est de créer un objet de liens, objets que l’on chiffre ensuite vers son destinataire. Cette méthode, si elle est assez bonne en terme de performance de déchiffrement, nécessite cependant que tous les liens offusqués soient consultés en même temps que tout les liens normaux d’un quelconque objet, pour savoir si un lien secret ne le concerne pas spécifiquement. On obtient de fait un ou plusieurs objets de liens chiffrés attachés à son entité. L’inconvénient, c’est qu’il est impossible de transmettre un lien particulier à une autre entité sans devoir recréer un nouvel objet de liens chiffré.
  2. La seconde méthode est de faire du chiffrement de lien à la volée. C’est à dire qu’un lien a offusquer est chiffré et reste présent individuellement au milieu des autres liens. Cependant, ce lien va contenir un partie chiffrée, partie qui ne correspond donc pas à un objet réel, ce qui est en contradiction avec la forme actuelle des liens. L’avantage, les liens chiffrés voyagent naturellement avec les autres liens. L’inconvénient, le lien chiffré ne peut être rattaché qu’à un seul objet et à une entité. Le lien avant chiffrement fait référence à trois objets, on perd donc avec le lien chiffré la référence aux deux autres objets. Cela veut dire que le lien chiffré est valable si on consulte l’objet source, mais n’est plus reconnu si on consulte l’objet destination. Cet inconvénient risque de perturber la résolution inverse d’un arbre de mise à jour par exemple.
  3. La troisième méthode est d’exporter la partie chiffrée dans un objet en tant que tel. Cette méthode a l’avantage de profiter du mécanisme de chiffrement déjà implémenté pour les objets. Liens et objets sont transmis naturellement vers un destinataire du lien. Et on retrouve l’inconvénient de la deuxième méthode. En plus, on complexifie l’analyse des liens d’un objet puisqu’il faut aller consulter d’autres objets pendant le processus de lecture des liens, et donc d’autres liens…

La mise en place du chiffrement des liens va créer de fait une nouvelle version de nebule, la v1.2.

Ajout d’émotions sur des objets – suite

Jeudi, avril 3rd, 2014

La suite de l’article : Ajout de sentiments sur des objets.

Nouvelle liste :

Contenu de l’objet ID objet Traduction
‘nebule/emotion/jaime’ eab748b4860d0046295503983e62dd0e228f3019c109a1b92fa08ff4f8e043e8 j’aime
‘nebule/emotion/jaimepas’ c8e99ab10169cca804e55601d7d36a142258516f98f66f050d6e6a48064b42f1 j’aime pas
‘nebule/emotion/daccord’ cd4ea3d3d8f5a883a183c70c6220f4e940aec30dc141c3bd9d6fd4bef71e48ad d’accord
‘nebule/emotion/pasdaccord’ 8a802c8da6a1d2bca6e5be6322db836e1eeab6373018b63c2f5363a33c0dc6b1 pas d’accord
‘nebule/emotion/content’ 4b0a16021e81fecb6d0826fcae528887366b13bfa3827ea5f516666e76255dab content
‘nebule/emotion/mecontent’ 6fc3cdf3045a102e4a3673bd275aa0d0c6755286fc7837bbb4b8014d47911c42 mécontent
‘nebule/emotion/ange’ 711e9834572990f90047119d60b99face50244c821503e8f3144afc45e4cd878 ange
‘nebule/emotion/demon’ eaea6bee6100be666b33c20f1ed0b27db45ccaac1f9e5a68ace68699a0eca9c5 démon
‘nebule/emotion/fache’ 3fb8db4d9e2c34f8b8ce7ab6189e17699d5a5348537847cbbdc91b13c2795ea5 fâché
‘nebule/emotion/joyeux’ 8fa02c09df434482d8e03cf640f9e38cc9192112b55254952f7ad5f332189c65 joyeux
‘nebule/emotion/cool’ 851aa3262613f15ab8529d5bd0c5ae9731e6f3c13977bf2b3e4bdb3881e8c4fc cool
‘nebule/emotion/malade’ 53715f876e7b1b99f3fd30fc2844fbbf0095c330517f85768c34a26d66eccdca malade
‘nebule/emotion/triste’ e8067acdc2bff25f753e16a47c21389445cad3116720eca7d96c0a94a127af75 triste
‘nebule/emotion/pleur’ 1d012502a87bff5319df1144fd34c4b7fbe5419e3661473c438654bec5aa923e pleur
‘nebule/emotion/embarrasse’ 1067be04d13efe1bce40b048d07cecedadce3cb93f9381a6dd6518561879ffa4 embarrassé
‘nebule/emotion/mortderire’ f4743808f03680cdbe93a0833747dedcc752b05bc345f6d40a7cfa770ad1515c mort de rire
‘nebule/emotion/sourire’ 3ac0bc7722ecd3577ea4f0900da73394dcd6ed89026ecc060238ffed20b692c0 sourire
‘nebule/emotion/indifferent’ fdd5af2d8cc900cfe4bdac1abc933923702dea8979ad129d6e5c91d0692fba08 indifférent
‘nebule/emotion/compatissant’ d07d249218d792894c6a29db2855ec74f3fa683c00e69f18f54c6e1f9f4f4f7c compatissant
‘nebule/emotion/surpris’ 7a082524fa239b988a6c08965cacc9744f0abdb47abed7fc05a9dccc29fec546 surpris
‘nebule/emotion/fatigue’ fc92036c0ba4fcb08e17c8feb169bfd85894651fa159bbba7a7e64caacc17ffa fatigué
‘nebule/emotion/clindoeil’ fb873b7364936f83e030f9014b3da16b8ebf3200a2041bd6f4aad5d3f93c63f9 clin d’œil
‘nebule/emotion/neutre’ b3943ed3e25a53bde4878908b2561c8714934a06124ce353ff053a6d55b971dd neutre
‘nebule/emotion/interesse’ 37bb4b6e73bade8ab63a9789c2e55fcd339c22324b0fdb73dbfe769f85067c30 intéressé
‘nebule/emotion/inquiet’ d70ee42f7297111aea7e0e92208d1a412534686b09126bd23553c4063026b733 inquiet
‘nebule/emotion/serein’ 3c01125b5301086b96a10268e0f8b6bbb1f61cc945a92af27071da0ef38812e2 serein
‘nebule/emotion/bon’ 4cc7d070932882316f41c2ff58718d78774d645615adc66f58f935726ed3d409 bon
‘nebule/emotion/mauvais’ a71eb2608c0fc1db599b0dd1966292fd7e875b9c066cbc475c1053abc7ac53b7 mauvais
‘nebule/emotion/beau’ e23e9897df93819b956dfc07e9af5e9969ff61ddcd342a6f9f6ba2b3de0783b1 beau
‘nebule/emotion/moche’ 63a9951625e6fd14f5e292b298b0d67876436837957a32e598f84851010fac0b moche
‘nebule/emotion/genial’ cdde23dc18a991125b18123842cff9931031595f03ed5d7c1c1bf4b93298b0fd génial
‘nebule/emotion/moyen’ bdc7d8160007fbca505c8cfa55822a9add89e595d9b999c37d205af618bb3fa1 moyen
‘nebule/emotion/nul’ 1c36d371280ae42fa065578f669bb74a22c000d1305717f115b2a87de49b41ec nul
‘nebule/emotion/heureux’ 87de40c16dff7c52192cfb98c2f7106eeb4efdb335665186775cae670df2358e heureux
‘nebule/emotion/inutile’ 802095dac6cdb18afe5269d481c357713d3fc1aaff907ee6d92de43bc44fb68f inutile
‘nebule/emotion/ambigue’ 117668a5eec9ef7b7a99ae1cddf22517cc8ca4cfb7d51c3db65a2ba5c22f1f10 ambiguë
‘nebule/emotion/clair’ 219a6c19d80e37c79b03a6e54ce479439b9415cdc33aa55a11672f86d6bf3b8f clair
‘nebule/emotion/vrai’ 44330b908390c34345301483a3f43917e85f2f62de8e409c9e5828621a10f719 vrai
‘nebule/emotion/faux’ f3ae0599a4a369171c0994421b2c353f23cb18c26235688d90e20f15c1821973 faux
‘nebule/emotion/complet’ 1b479bc5638c27c63e4016312df686689d5fec6ecdbbd4a6778118d4b6dfbaf0 complet
‘nebule/emotion/incomplet’ 7a926b54998f4fa06974045052bcdce906ce7d87df425f2ebd92a3bc1e511872 incomplet
‘nebule/emotion/incomprehensible’ 8d394acebf91abd1bafa8dec2aa9b411ab0fbe844cdc2cec1428c3fcab1d1c67 incompréhensible
‘nebule/emotion/important’ 793423a90c4b116aa01fbba3d5a214d00d1df3c8171aa0d927f2f9111f245b66 important
‘nebule/emotion/perime’ 8626a44d629629c787eab9833505503a0b20309574e0b0c1a0c15a1b3d3f8b80 périmé

Le code de sylabe est à jour.

Ajout de sentiments sur des objets

Mercredi, avril 2nd, 2014

Les derniers développements de sylabe on permit de réactualiser l’ajout de marques tel que j’aime, j’aime pas et bien plus encore.
CF : Blog sylabe – Avancement
Ces marques sont regroupées sous le terme de sentiments. Ils sont matérialisés par des liens de type l de l’objet vers le sentiment (un autre objet) et le méta ‘nebule/objet/sentiment‘.

Ces sentiments ont une signification purement humaine. Le code de nebule ne l’interprète pas et n’en tient pas compte. Mais ces sentiments ont chacun des objets dédiés qui eux ont tout intérêt à être communs à toutes les applications. Ils doivent être propagés quoi qu’il arrive comme tout liens. C’est la raison pour laquelle ils seront définis au niveau de nebule.

Leur affichage sera spécifiquement traduit pour être plus lisible et tenir compte de la langue d’affichage. (suite…)

Gestion de la pondération

Samedi, octobre 19th, 2013

Cela fait longtemps que la pondération est en réflexion et en attente d’implémentation. Par exemple Mémoire fini, Objets privés et fonctionnement interne, RSE et Nettoyage des liens.

La cryptographie s’occupe de la sûreté de fonctionnement.

La pondération permet de gérer l’importance des objets et donc notamment des entités.
La pondération appliquée à des entités permet de gérer la confiance. Cette gestion de la confiance est en fait synonyme de la gestion de la sécurité.

Cependant, la pondération elle-même doit être exclu de la relation de confiance, c’est à dire que l’on ne doit pas tenir compte de la pondération définit par les autres entités même si on leur fait confiance. Sinon il y a danger !
Si elle est acceptée malgré tout, la confiance sur la pondération des autres entités doit être strictement délimitée et le danger pour l’utilisateur doit être clairement affiché. En fait, elle ne devrait jamais être utilisée…

Nettoyage des liens

Mardi, septembre 24th, 2013

Le nettoyage régulier des liens est quelque chose qui est connu depuis assez longtemps pour être indispensable. Si la quantité de lien que manipulent aujourd’hui les entités reste encore soutenable, nous ne sommes pas loin de gros problèmes de performances dans certains cas.
CF : Mémoire finie, Repérage chronologique.

Le nettoyage est la mise en pratique de l’oubli volontaire et maîtrisé des liens et objets.

Un premier nettoyage, assez facile à mettre en place par script notamment, est le nettoyage des liens. Suivre cette procédure :

  1. Copier tous les liens de tous les objets dans un emplacement temporaire unique. Chaque lien copié doit l’être une fois pour ne pas avoir de doublon. Il est préférable de faire une vérification des signatures des liens au moment de leur lecture. Chaque lien étant copié entre deux et trois fois en fonction du nombre d’objets concernés, la taille total de cet emplacement temporaire sera entre deux et trois fois moins volumineux que l’ensemble des liens des objets.
  2. Dans l’emplacement temporaire, trier les liens par date dans l’ordre chronologique. Ainsi, une fois remis en place, les liens seront déjà naturellement triés.
  3. Dans l’emplacement temporaire, supprimer les liens qui sont concernés par un lien de type x (suppression de lien). Garder le dernier lien de type x pour maintenir la propagation de la suppression du lien.
  4. Supprimer, ou mettre de côté, les liens de tous les objets. Ne garder que l’emplacement temporaire. Pendant ce lapse de temps, les objets restent disponibles mais sont inexploitables parce qu’ils ne seront pas accompagnés de leurs liens.
  5. Faire un import de chaque liens de l’emplacement temporaire, un par un et dans l’ordre. L’import va réattribuer les liens aux objets concernés, dans l’ordre.

Cette procédure ne tient pas compte des liens dans des objets, normalement chiffrés. Et ils ne doivent pas en tenir compte. Cela peut poser des problèmes résiduels de non suppression de liens parce que le lien de type x est non disponible au moment du nettoyage.

A noter qu’après le nettoyage, si des liens ont été marqués comme à supprimer, il doit rester le dernier lien de type x. Si ce n’était pas le cas, il pourrait y avoir des problèmes pour retransmettre la suppression de ces liens.

Tous les liens ne peuvent pas, et ne doivent pas disparaître en même temps que l’objet. Il faut en effet attendre que la suppression de l’objet, dictée par un lien de type d, soit effective partout. Sinon, cet objet va réapparaître et ses liens avec.

Pour nettoyer les objets, il manque la mise en place du système de pondération. Seule cette pondération associée à un seuil est capable de gérer l’oubli de certains objets parmi un grand volume d’objets.
La pondération sera pour plus tard.

RSE ou RSE ?

Mardi, septembre 10th, 2013

En recherchant la définition de l’acronyme RSE, je tombe sur deux définitions… Problème assez récurrent en fait avec les acronymes puisque n’importe qui peut en inventer et les utiliser sur la place publique à son bénéfice.

D’un côté j’ai une belle page bien fournie sur Wikipédia et une page gouvernementale officielle parlant de Responsabilité Sociétale des Entreprises :
Responsabilité Sociétale des Entreprises – Wikipédia
Qu’est-ce-que la responsabilité sociétale des entreprises – Ministère du développement durable
On y parle donc de responsabilité des entreprises, de développement durable, de gestion de risques, des impacts environnementaux et sociaux, enjeux, investissements, outils, normes, médiatisation, aspects juridiques, etc…

De l’autre un article sur 01net.com qui surfe sur la vague des révélations sur PRISM, ce qui n’est pas un mal en soi :
Le RSE : un lanceur d’alerte en entreprise – 01net
On retrouve bien en fin d’article un paragraphe sur le RSE, l’environnement et les risques. Mais RSE, répété à l’envie tout au long de l’article, désigne ici Réseau Social d’Entreprise. En gros un simili Facebook restreint au périmètre de l’entreprise.
Mais n’y a-t-il pas déjà un terme pour cette fonctionnalité? Oui, c’est le groupe de travail (groupware). Ah oui, c’est vrai, le créneau sur ce nom est déjà bien plein. D’un autre côté, la RSE ne doit pas plaire à beaucoup de chef d’entreprises. Bref, Voila typiquement un article à visée commerciale…

Mais ce post n’est pas là pour critiquer l’article. Les acronymes posent un problème de gestion de leurs définitions. Celles-ci ont rarement une portée globale, elles n’ont souvent qu’une définition de portée locale ou régionale. C’est cette absence de centralisation qui, à priori, serait la source des conflits.

Comment vont se comporter les acronymes dans nebule?
Reprenons le cas de la RSE. En pratique, c’est l’objet cec7b8a511f6d30def09266e7595f1dd9a301b3ba868444d2b14236dccc127b1. Aujourd’hui, cet objet n’existe sur aucune machine supportant nebule, mais si il était créé ce serait avec cette empreinte (sha256).

Premièrement, cet objet peut être marqué par des liens de type subdivision s. Il est en effet possible avec ce type de lien de savoir qu’un texte, un article de presse par exemple, contient cet acronyme. Cela facilite la recherche.
Cet exemple d’acronyme est trop petit mais le principe reste valable, le même article de presse peut être téléchargé morceaux par morceaux par ses abonnés. C’est un fonctionnement de type P2P. Chaque morceau connu peut être téléchargé à des endroits différents, puis l’article de presse peut être reconstitué. En pratique, on accélère donc les échanges d’objets.

Ensuite, L’objet de l’acronyme peut aussi être marqué par des liens de type dérivation f. Ces liens peuvent renvoyer vers d’autres objets contenant la ou les définitions de l’acronyme.
C’est un intérêt pour résoudre les conflits autour des définitions d’acronymes. En effet, chaque lien est signé par une entité, donc on sait qui en est l’initiateur. Et comme toute entité gère individuellement ses propres relations de confiances, la définition d’un acronyme sera donc dépendante des entités à qui on fait confiance, mais aussi en fonction de leur niveaux de confiance relatifs.
Donc, si on a une forte confiance en l’état, ce sera la RSE. Si on a une grande confiance en l’auteur de l’article de 01net, alors ce sera le RSE. Si on est chef d’entreprise, il y a de fortes chances que ce soit la RSE de toute façon…

Quantification commune de la disponibilités des relais – suite 2

Samedi, août 24th, 2013

Suite à l’affaire PRISM et grâce à Edward Snowden, on redécouvre les joies du Time Pattern sur les paquets réseaux.

Cela à potentiellement une implication dans la façon dont on peut synchroniser des objets et liens depuis d’autres entités. C’était le sujet abordé dans les posts Quantification commune de la disponibilités des relais et suite.

La conclusion est qu’il faut deux modes. Un pour optimiser les temps de téléchargement, et un autre plus aléatoire pour améliorer l’anonymisation des téléchargement et casser le Time Pattern

Quantification commune de la disponibilités des relais – suite

Dimanche, mai 5th, 2013

Suite au post sur la Quantification commune de la disponibilités des relais, je vais essayer de mettre en place une solution dans l’implémentation bash de référence.

Cette solution consistera, lors du téléchargement d’un objet, de vérifier quelle localisation contient l’objet (options spécifiques de wget) et de mesurer le temps de réponse instantané à cette requête.

Pour accélérer le téléchargement des liens sans remettre en question la vérification systématique de ceux-ci, je pense déjà à une solution. Mais elle implique des changements en profondeur du code dans ses parties téléchargement, génération et enregistrement des liens. Il faut aussi prévoir le cas où une entité ne serait pas capable de gérer cette amélioration…

En attendant de pouvoir travailler sur ces améliorations, je dois terminer l’implémentation complète du chiffrement.

Quantification commune de la disponibilités des relais

Dimanche, avril 28th, 2013

Les quelques entités robot que je teste sont maintenant tout à fait capable de synchroniser des liens et objets divers. Le problème est souvent de savoir ce que l’on veut synchroniser en fait.

Chaque robot essaye de télécharger un objet sur toutes les autres entités qu’il connaît. Ou plus exactement sur toutes les localisations qu’il connaît, même si ce n’est pas une entité connue. Le téléchargement est actuellement unitaire. L’objet téléchargé doit être complet, on ne prend pas un bout à un endroit et le reste ailleurs comme avec le P2P habituellement. Ce raffinement sera pour plus tard. Et l’ordre des localisations est toujours parcouru de la même façon, c’est à dire dans l’ordre des liens de ces localisations avec l’objet qui les référence.
Évidement, la vérification de l’intégrité des objets et la vérification des signatures des liens associés permet de ne pas se soucier de savoir sur quel entité relais l’objet est téléchargé.

Ce système est assez primaire mais il remplit parfaitement son rôle. Cependant, en terme de performance, on peut faire mieux…

Une des solutions peut être d’enregistrer systématiquement le débit moyen de téléchargement d’un objet sur une localisation particulière. Des statistiques vont commencer à s’accumuler avec le temps et le robot pourra ensuite privilégier certaines localisations en fonctions de leurs statistiques.
Si chaque mesure de débit moyen est lié à la localisation comme étant une statistique, l’ensemble des statistiques des entités peuvent se propager d’une entité à l’autre. Ainsi c’est l’ensemble des robots qui peuvent profiter des statistiques pour affiner le classement des localisations.
Il faut quand même ne pas tout prendre brute quoiqu’il arrive. Des statistiques anciennes n’ont que peu de valeur. De même, comment interpréter les statistiques d’une entité à l’autre bout du monde, et donc qui a des temps de latence différents ? Une moyenne non pondérée entre les statistiques de toutes les entités est-elle suffisante pour gommer des valeurs anormales de débit moyen ?

Objets privés et fonctionnement interne

Jeudi, mars 14th, 2013

Il existe des informations que l’on ne peut gérer par les liens nebule sous peine de fortement complexifier son fonctionnement, et donc la compréhension que l’on en a dans son ensemble.

Par exemple, c’est le cas pour mettre un poids à un objet. C’est à dire lui attribuer une méta information qui décrit son importance relative aux autres objets. C’est une notation en quelque sorte.
Un poids peut être fixé arbitrairement. Ce n’est pas le meilleur cas même si c’est réalisable en pratique. Le poids d’un objet a surtout de forte chance de refléter l’importance que l’on donne à cet objet. A cet objet pondéré sont liés d’autres objets. Ces autres objets, si leurs poids ne sont peut-être pas explicitement définis, vont hériter d’une moyenne des poids des objets autour. Ainsi, un objet va gagner de l’importance si il est lié à un objet jugé (donc pondéré) très important.
De ce poids peut en découler des conséquences concrètes. Par exemple si l’on permet l’oublie et l’effacement d’objets anciens de façon calculé et contrôlé, la pondération permet de conserver très longtemps un objet important.

Cette pondération des objets qu’une entité va réaliser est un travail ‘personnel’. Le fruit de ce travail peut avoir un intérêt public. Et une autre entité ayant fait le même travail ne donnera pas les mêmes pondérations.
Cependant, une partie de ce travail de pondération peut être jugé privé. Si le partage d’une pondération d’objets peut être réalisée simplement par des liens, comment protéger les pondérations privées ?

Une des possibilités est d’exploiter les objets stockants des liens.

Mémoire fini

Mardi, avril 5th, 2011

On part souvent du principe que l’on va gérer nos données en les accumulant dans le temps de façon infinie…

Mais est-ce vrai?

C’est en partie vrai.

Les capacités de stockage évoluent assez rapidement dans le temps. Nous enregistrons de nouveaux fichiers assez régulièrement dans le temps mais pas forcément de façon continu. Ici, pour la réflexion, on ne va retenir qu’une moyenne constante d’enregistrement de données.

Que se passe-t-il si on ajoute régulièrement suffisamment de capacités de stockage, suffisamment pour ne jamais arriver à saturation?
Tout se passe bien, on ne perd rien.

Et si la capacité de stockage n’augmente pas assez vite (dans le cas extrême où elle ne peut plus être augmentée) ?
C’est dans ce cas que doit être prévu un mécanisme de nettoyage (d’oubli), et donc de pertes maîtrisées.

Le stockage de données sous la forme proposée pour nebule risque dans certains cas de générer, et donc de stocker, énormément de données. On doit prévoir ce mécanisme d’oubli nativement.

La perte d’information maîtrisée impose de permettre cette gestion à la main. Mais quelle efficacité d’une gestion à la main pour plusieurs millions de fichiers?
Des mécanismes d’assistance ou d’automatisation doivent être proposés. Ils peuvent avoir plusieurs formes.

Sur quels critères déclarer un fichier périmé?
Plusieurs critères peuvent être pris en compte, et plusieurs combinaisons complexes peuvent être calculées de critères simples :
– le temps de possession de l’objet, plus il est vieux plus il a de chance d’être périmé ;
– si le fichier dispose d’une nouvelle version, il n’est peut-être plus intéressant de le conserver ;
– l’attractivité, ou un critère d’appréciation, donne de l’importance à un fichier dans le temps et doit faciliter sa conservation ;
– l’intensité de l’appréciation peut être exploitée en absolu, un fichier qui appel un très fort sentiment positif ou négatif a des chances de devoir être conservé longtemps ;
– un fichier lié à plusieurs autre fichiers jugés importants a surement besoin d’être lui aussi conservé, il va peut-être hériter par calcul d’une note d’appréciation ;
– d’autres fichiers font références à ce fichier, il faut sûrement le conserver ;
– mes amis ont gardé ce fichier, il doit être important.

Doit-on supprimer immédiatement un fichier périmé?
Celui-ci peut peut-être servir à quelqu’un d’autre? A-t-on la place de le garder en attendant? Peut-on se contenter de le supprimer lorsque l’on aura besoin de la place qu’il occupe? Doit-on les marquer périmés en attendant ou gérer une liste des objets périmés?
L’analyse des fichiers à marquer peut se faire en continu, moyennant une occupation constant et relativement importante de ressources. L’analyse peut se faire lors d’une phase de repos (activité de sommeil). Une liste peut aussi être maintenu en temps réel sans analyse, juste en classant les objets de façon croissante dans une liste et en faisant évoluer la place des objets en fonction de l’évolution de leurs paramètres.

Une fois un objet marqué comme périmé, comme propager son marquage? C’est à dire, comment vont se comporter les relais avec ces objets dits périmés?
Cette propriété de péremption doit-elle être visible des entités tierces? Ou est-elle purement interne?