Evolutions, messagerie et options

mars 18th, 2016

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.

Avancement

mars 17th, 2016

En parallèle avec klicty, l’interface évolue de façon à améliorer la réactivité.

Jusque là, toute page était chargée en une seule fois, y compris lorsque le contenu principale est long à calculer. Cela rendait certaines pages assez longue à apparaitre et pendant ce temps là il y avait page blanche… Maintenant la partie de page hors contenu lourd est affichée le plus vite possible puis la partie contenu est mise à jour via un appel spécifique. Ainsi la page s’affiche avec une partie vide mais contenant un message de travail en cours, puis lorsque le contenu est prêt il est affiché.
Cette amélioration ne peut cependant pas être appliquée indéfiniment pour des contenus faciles à calculer, chaque appel qu’il soit direct ou spécifique, repasse par la recherche de la dernière version de la librairie, de l’application et refait tous les tests de bon fonctionnement. Il y a donc un compromis à trouver entre le chargement à part de certaines parties et le nombre d’appels au serveur qui sont consommateurs en temps.

Le module d’émulation de systèmes de fichiers a été repris et fonctionne maintenant correctement.

Le module de gestion des groupes fait son apparition. Il va rester en parallèle avec le module des nœuds.

Status expérimental

mars 5th, 2016

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.

Mise en ligne version 20160229

mars 1st, 2016

Une nouvelle version est en ligne, la 20160229.

Peu d’avancement mais un problème un peu gênant, la liste des entités ne s’affiche pas correctement et empêche donc de retrouver son entité pour se connecter. A corriger…

Le code est disponible ici :
http://sylabe.com/?obj&obj=24d6a37c191a02103b36a953ec4c010dc28019964784a89fd5eacd6e3e85437e

Mise en place des groupes

février 1st, 2016

L’intégration des groupes a commencé en parallèle avec la modification de la librairie. Un modules dédié est créé afin de gérer les groupes.

Ancienne version

janvier 28th, 2016

L’ancienne version de sylabe est mise en ligne à l’adresse http://2014.sylabe.org/, mais en lecture seule uniquement.

Elle est réalisée en php procédural, juste avant le basculement en code en orienté objet.

Mise en ligne version 20160127

janvier 28th, 2016

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.

Interface

janvier 22nd, 2016

Au niveau de l’interface, on ne colle pas tout à fait à ce qu’il se fait habituellement, sur plusieurs points.

Habituellement, sur les sites web on trouve deux boutons : Créer un compte (Sign up) et Se connecter (Login). Mais ces comptes sont dans la très grande majorité des cas localisés exclusivement sur le serveur ou limité à un hébergeur de services. Avec nebule et ses dérivés, il faut garder le même principe création/connexion mais l’usage du mot entité en place de compte permet de clairement faire la distinction entre un compte assez limité dans sa mobilité et une entité qui n’a pas de frontière.

Il en est un peu de même avec la notion de document (fichier) par rapport à un objet. Là où le document est référencé par une URL et a une place peu mobile sur un serveur ou chez un hébergeur de services, l’objet est référencé par une URI constitué d’une empreinte. Tout serveur peut donc manipuler un objet et permettre son accès par l’URI contrairement à un document qui doit être ré-rangé et ré-référencé.

Avancement

janvier 18th, 2016

Rien de nouveau côté avancement.

Une version vient d’être mise en ligne avec ses modules. Il manque quelques objets correspondants aux icônes dans l’interface. Mais l’ensemble semble fonctionnel.

Accès : http://www.klicty.com/?bootstrapapp=832640c8c3046f910e6adbba7471006012e41166e8224e642cd1f38826a1ab4b

Avancement

janvier 11th, 2016

Pour ce début d’année 2016, rien de nouveau. La migration d’une partie de l’affichage est maintenant délégué à la librairie nebule dans tout ce qui est générique. Le développement et les corrections de buggs se poursuivent en parallèle de klicty.

Avancement

décembre 13th, 2015

Le site web de test www.klicty.com héberge depuis cette après-midi, après quelques cafouillages, la dernière version en date de klicty. Et elle contient en plus une version enfin exploitable de sylabe.

Par défaut, c’est l’application klicty que l’on voit. Pour accéder à sylabe, il faut utiliser ce lien : sylabe

Cette version de la nouvelle génération de l’interface de sylabe est fonctionnelle mais n’a pas encore tous les modules en cours de développement. Ça viendra.

L’installation se fait de la même façon que klicty, les deux viennent ensemble. Elle est téléchargeable ici :
020151213h1243.nebule.full.install.export.tgz

La notation des dates avec le premier zéro devant pourrait devenir la norme. La suite au prochain épisode…

CF : http://blog.klicty.net/?p=50

Avancement

novembre 22nd, 2015

Le projet sylabe avance très lentement pour l’instant. Priorité est donnée au nouveau projet klicty mais certaines modifications sur klicty sont reportées sur sylabe.

Ce qui est encourageant, c’est que klicty tourne très bien sur un serveur classique et que sylabe semble ne pas trop souffrir de latence. Les problèmes de latence viennent principalement sur la plate-forme de test de l’entité hôte qui accumule plus de 80000 liens…

Captures d’écran

octobre 9th, 2015

Quelques nouvelles captures d’écran sur l’état actuel de sylabe.

20151009 1st sylabe_-_developpement_bachue_-_2015-10-09_17.35.35La page de bienvenue à la première connexion sur le serveur.
Read the rest of this entry »

Avancement

septembre 20th, 2015

Certains problèmes de performances actuels viennent aussi de l’accumulation de liens pour l’entité locale utilisée. C’est celle qui est chargée par défaut. Et c’est aussi celle qui réalise les développements et valide les codes à charger au fur et à mesure du développement. Cette entité a plus de 70000 liens (70k+).

Une première conclusion, même avec autant de liens ça marche… mais c’est un peu lent.

Il y a plusieurs solutions qui peuvent être apportées à court ou long terme :

  1. Régénérer une nouvelle entité pour le développement, et une autre comme entité locale par défaut.
  2. Nettoyer les liens anciens qu’elle a générée mais qui ne la concerne pas directement.
  3. Mettre en cache les entités, leurs caractéristiques déjà extraites, et les instances nebule et sylabe… ainsi que toutes les instances affairantes.

La génération d’une nouvelle entité est une solution à cours terme mais elle rappelle qu’il manque le code nécessaire au déploiement d’une nouvelle instance de serveur nebule. Le code est en cours d’implémentation dans le bootstrap

Avancement

septembre 11th, 2015

Le module de simulation de systèmes de fichiers est stable et complètement fonctionnel. Il peut bien sûr être amélioré plus tard en terme de fonctionnalités.

Maintenant, avant tout autre avancement dans les fonctionnalités, il faut trouver pour accélérer le code. En l’état, c’est globalement fonctionnel mais les pages sont beaucoup trop longues à charger.
Une des pistes d’accélération est de se servir de la session PHP pour mémoriser et restaurer les instances de la librairie nebule et de sylabe pour toutes les pages chargées par un même utilisateur. Cela veut dire que les vérifications ne se feront plus que une seule fois pour un utilisateur, lors de l’instanciation de la librairie et de sylabe.
Une seconde possibilité d’amélioration est de gérer une partie de l’affichage par des inserts dans les pages de type iframe mais en utilisant le javascript pour modifier le contenu.
Enfin, et ce travail a déjà commencé, une autre amélioration est de ne charger la session et ses variables que lors de consultations et de modifications. Ainsi PHP, qui bloque une page si la session est déjà ouvert, pourra vraiment traiter plusieurs parties en parallèle sans blocage. Par exemple si dans le code d’une page, en cours de traitement, demande une image chiffrée, le chargement de cette image qui nécessite elle aussi le traitement du même code ne sera pas bloqué en attendant la fin de traitement du code de la page…

Avancement et marquage des objets

août 10th, 2015

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.

Read the rest of this entry »

Avancement

juillet 31st, 2015

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

juillet 31st, 2015

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

juillet 29th, 2015

Une nouvelle icône pour le choix de la langue :

world

La première page par défaut a été revue et intègre la nouvelle icône :

20150729 sylabe_-_developpement_bachue_-_2015-07-29_22.50.37

Enfin, voici la page de chargement d’un fichier, pour le chargement de la nouvelle icône, en l’état actuel :

20150729 sylabe_-_developpement_bachue_-_2015-07-29_22.49.19

Avancement

juillet 29th, 2015

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.