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.

Version 020160817

Une version a été signée par le maître du code le 17/08 mais la libraire nebule en php est encore en cours de réajustement suite à la réorganisation du code pour les applications et les modules.

La librairie n’a pas encore retrouvé son niveau fonctionnel stable d’avant. Cette version n’est donc pas mis en ligne.

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.

De l’information à l’usage

Si on prend une actualité dans un journal télévisé par exemple, l’information présenté décrit quelque chose qui s’est passé. Cette description est une information au sens journalistique mais aussi au sens de l’information pure.

Lorsque l’on replace un nom ou une action dans une information journalistique, celle-ci devient une nouvelle information. Cette nouvelle information est une fiction là où l’information d’origine était un fait réel. Mais elle n’en reste pas moins plausible pour autant. En allant plus loin, une information présentée peut-être au delà de la fiction et être complètement improbable ou impossible, pourtant en terme d’information pure elle reste valable. Toute information pure est équiprobable et n’est pas porteuse de sens.

Toutes ces informations vont être capturées puis transformées sur un support. Aujourd’hui, le support est numérique, la transformation est une numérisation de l’information. Autrefois, les supports était analogiques et nombreux : photographie argentique, enregistreur à bande magnétique, etc…
Le numérique présente un avantage sur l’analogique. Par le nombre de valeurs limitées que peut prendre la plus petite partie d’une information numérique, comparé à l’infinité de valeurs possible pour la plus petite partie d’une information analogique, l’état de l’information numérisée est très stable et parfaitement prédictible. On fait bien sûr abstraction du support de stockage.

La stabilité de l’information numérisée permet notamment de calculer une empreinte unique et infalsifiable de l’information pure. C’est à dire qu’il est impossible de générer une autre information qui a exactement la même empreinte. Ainsi, grâce à leurs empreintes, les informations deviennent inaltérables.
Dans nebule, l’information numérisée est nommée ‘objet’ et son empreinte devient son identifiant unique.

 Mais que fait-on maintenant de toutes ces informations numérisées et protégées par leurs empreintes respectives ?
On va les gérer, les trier, les ranger, les cataloguer, les rapprocher par sujets communs, etc…
Et ça ce sont les hommes qui le font. Les informations pure numérisées gardent un sens pour les humains.

L’usage d’une information par une être humain donne un sens à celle-ci. L’usage est attaché à un utilisateur, et non à l’information, au moyen d’une signature numérique unique et infalsifiable. Tout le monde peut signer l’usage d’une information et tout le monde peut vérifier qui à utilisé l’information, mais personne ne peut signer un usage à la place de quelqu’un d’autre.
Dans nebule, l’usage d’un objet est un lien et tous les liens sont signés par des utilisateurs.

Ainsi, les objets sont utilisés via les liens. L’information pure trouve un sens grâce à l’usage qui en est fait par les utilisateurs. Mais l’information pure ne peut pas être modifiée et les utilisateurs ne peuvent pas être usurpés.

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.

Migration vers le nouveau serveur

Le blog de nebule vient de migrer vers un nouveau serveur.

Tout le contenu a été migré.

La connexion via TLS est pleinement fonctionnelle.

Le wiki est encore en ligne mais va disparaître. Les contenus intéressants seront intégrés sous forme de pages du blog.

Parallèlement, la machine xue.nebule.org a été débranchée. Son contenu, c’est à dire les entités maîtresses ont été migrées. Il ne reste qu’à rétablir les accès en IPv6…

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