Bonne année 2018

Une nouvelle année signifie la mise à jour de toutes les dates à côté des licences… que ce soit dans les différents code mais aussi des sites web statiques et des blogs.

Aucune publication de code n’a été faite depuis le 8 mai 2017. L’application sylabe est toujours en cours de ré-écriture avec la nouvelle partie graphique intégrée à la bibliothèque nebule. Et elle rejoint progressivement la mise en pratique de la Réflexion sur l’évolution de l’interface web pour nebule.

En gros, on est à la moitié de la migration de l’application et de ses nombreux modules. C’est cette application qui va bloquer la publication de toutes les applications parce que le bootstrap a évolué significativement et les anciennes versions du bootstrap ne peuvent desservir sans problème les nouvelles applications.

Avancement

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.

Avancement

Peu de choses nouvelles concernant nebule, mais des améliorations dans l’interface sylabe. Maintenant, le menu de gauche est définit par un point d’ancrage (hook) sur lequel les modules peuvent ajouter des entrées personnalisées. Chaque module est ainsi maître des entrées qu’il génère. C’est plus facile à gérer et surtout plus facile pour gérer les options quand c’est le module concerné qui les manipule plutôt qu’un autre.

Le système de point d’ancrage a été poussé plus loin puisqu’il est maintenant aussi possible de créer des menus d’actions dans le contenu de la page en appelant simplement… l’affichage d’un point d’ancrage.

Cela donne par exemple :

20150722 sylabe_-_developpement_bachue_-_2015-07-23_00.31.21

La visualisation des objets est en train de basculer dans l’instance Display. C’est utilisé par le module des objets, mais ce le sera aussi par d’autres modules comme la messagerie. C’est l’occasion d’y ajouter une gestion de la vérification du contenu des objets affichés par rapport à leurs empreintes cryptographiques.

Un affichage type d’un objet trop grand mais que l’on autorise à afficher :

20150722 sylabe_-_developpement_bachue_-_2015-07-23_00.29.08

Et un objet qui n’est pas trop grand s’affiche avec un message pour dire que son empreinte est vérifiée :

20150722 sylabe_-_developpement_bachue_-_2015-07-23_00.41.51

Le contrôle de l’affichage ou non se fait par une option de sylabe. Par défaut, un objet qui ne peut être vérifié n’est pas affiché.

Ne reste plus qu’à traduire correctement les messages…

Avancement

Une refonte partielle de l’interface a été faite. Suite aux développements récents de l’interface et de ces modules, il est apparu qu’il fallait moins mettre en avant les objets et liens et plus les fonctionnalités des modules.

Maintenant, une bonne partie des modules sont externes. Seuls sont restés internes, et donc obligatoires, les modules entités et aide. Les autres modules sont détectés via les liens et chargés si les liens sont valides et les signataires identifiés comme autorités locales. Il faut encore améliorer la détection de collision entre modules prétendants au même nom.

Nous ne sommes plus très loin d’une remise en ligne régulière du code sur le serveur de test…

Enfin, en lien avec la refonte de l’interface, l’iconographie a été revue :

add addent addlnk addobj addtxt
idownload ihlp imenu imetrolog imodify
key lc ld le lf
lk ll lll lo ls
lstent lstobj lu lx mchr
ment mmsg msglist msgsent oent
sylabe synent synlnk synobj

Voici la nouvelle interface :

20150718 sylabe_-_15d194c0ac5da323b50e868ab62c17c0a5470283c92f3d8a8631743b5cd9f42f_-_2db5ebfbdc6db01b5972837182275c2142d68de20fe78670a87875108e616cf7_-_2015-07-18_16.52.53
Version moyenne et haute définition.

20150718 sylabe_-_15d194c0ac5da323b50e868ab62c17c0a5470283c92f3d8a8631743b5cd9f42f_-_2db5ebfbdc6db01b5972837182275c2142d68de20fe78670a87875108e616cf7_-_2015-07-18_16.53.45
Version petite définition.

20150718 sylabe_-_15d194c0ac5da323b50e868ab62c17c0a5470283c92f3d8a8631743b5cd9f42f_-_2db5ebfbdc6db01b5972837182275c2142d68de20fe78670a87875108e616cf7_-_2015-07-18_16.54.48
Version très petite définition.

Et le menu des applications, en fait des modules :

20150718 sylabe_-_15d194c0ac5da323b50e868ab62c17c0a5470283c92f3d8a8631743b5cd9f42f_-_2db5ebfbdc6db01b5972837182275c2142d68de20fe78670a87875108e616cf7_-_2015-07-18_17.17.35
Le menu des applications.

Avancement

Un nouveau fond de page remplace celui assez sombre de la cascade :

bg_nuages

Le module de messagerie est un peu amélioré, c’est surtout de la cosmétique :

sylabe_-_15d194c0ac5da323b50e868ab62c17c0a5470283c92f3d8a8631743b5cd9f42f_-_425fad5c1e9ab9806550bc1fc8abd39fe230f8214d61d98df7136bb82e130b58_-_2015-06-06_21.33.39

Il y a encore une réflexion sur la messagerie et sa façon de l’implémenter. On continue sur la façon de faire actuelle amis avec un risque de devoir changer si ça pose trop de problèmes.

Enfin, dans le module de téléchargement, une nouvelle page permet de créer un objet directement depuis un texte copié/collé :

sylabe_-_15d194c0ac5da323b50e868ab62c17c0a5470283c92f3d8a8631743b5cd9f42f_-_30199915e30e00681c68687890937204ff4c8a6468d4209c73631671f618e71e_-_2015-06-06_21.29.39

Juste pour ça une nouvelle icône a été créée. Mais elle n’est pas satisfaisante dans l’interface :

addtxt

Cette partie pour envoyer un texte brute va surtout permettre de faire des essais pour la mise en place de la protection, c’est à dire le chiffrement, des objets. Il en faut un certain nombre sur lesquels on peut se tromper… Puis cela servira aussi à la mise en place de l’offuscation de liens, c’est à dire de leur dissimulation, lors de l’envoie de fichier. La protection et la dissimulation seront aussi appliqués sur des objets et liens existants une fois fonctionnel.

La protection des objets est déjà fonctionnelle dans la précédente version de sylabe. Cependant, la mise en place dans les objets en programmation php orientée objet n’est pas juste un copier/coller…

Avancement

Le module d’émulation de ce que l’on peut appeler la messagerie est en cours de préparation. Voici ce que cela donne pour l’instant sur la messagerie d’une autre entité :

sylabe_-_15d194c0ac5da323b50e868ab62c17c0a5470283c92f3d8a8631743b5cd9f42f_-_425fad5c1e9ab9806550bc1fc8abd39fe230f8214d61d98df7136bb82e130b58_-_2015-06-05_00.31.54

Il faut noter ici que, bien que l’on aie une entité déverrouillée, il n’est pas possible de voir autre chose que les messages publiques d’une entité. Les messages protégés ou offusqués (anonymisés) ne sont pas visible et ne peuvent pas l’être si l’entité destinataire des messages n’est pas une entité esclave de l’entité en cours d’utilisation.

Cette vue de messagerie est considérée comme une émulation puisque ce n’est qu’une vue particulière des échanges entre entités. Elle présentera les mêmes informations que dans une émulation de blog ou de réseau social mais avec soit une forme différente soit avec un tri différent.

Il faut continuer la mise en forme pour que ce soit plus accessible à monsieur tout le monde.

Nouvelles icônes et module messagerie

Il faut que sylabe serve à quelque chose… et un des premiers usages est le stockage de fichiers, sécurisé ou non. Un autre usage est la messagerie, un nouveau module est créé pour ça.

De nouvelles icônes ont été créées pour le téléchargement d’objets, l’aide en ligne et la messagerie :

idownload ihlp mmsg msglist msgsent

Voici l’écran de bienvenue :

sylabe_-_15d194c0ac5da323b50e868ab62c17c0a5470283c92f3d8a8631743b5cd9f42f_-_b46453986901e7f084b0c7c923c89b33e1e85cf6690c04cf5525387e7039cd41_-_2015-05-28_10.33.02

Et enfin, le début de l’intégration du module de messagerie :

sylabe_-_15d194c0ac5da323b50e868ab62c17c0a5470283c92f3d8a8631743b5cd9f42f_-_b46453986901e7f084b0c7c923c89b33e1e85cf6690c04cf5525387e7039cd41_-_2015-05-28_10.33.57

Avancement

Il y avait une erreur de frappe dans la fonction de téléchargement des objets dans sylabe, ce qui empêchait l’affichage de l’image des entités. C’est corrigé.

Lorsque un message d’avertissement ou d’erreur s’affichait, il y avait une icône correspondante dans la barre du haut à côté de l’entité. Maintenant, en cliquant dessus, c’est un lien web, on est automatiquement déconnecté de l’entité et la session php de l’utilisateur est réinitialisée. La mise en cache des entités/objets et liens est désactivée pour cette page. Tous les objets et liens sont donc fermés si ils étaient protégés. C’est un mode de secours.

Voici ce qu’il s’affiche si suite à une corruption du bootstrap on clique sur le gros bouton rouge :

sylabe_-_15d194c0ac5da323b50e868ab62c17c0a5470283c92f3d8a8631743b5cd9f42f_-_7855163e7ad8be9534cba394b63f0da6432fbe537d3e9ed8ffb687a29fd1cdbd_-_2015-02-15_13.14.06

Étape suivante, rediriger l’utilisateur sur la page d’aide par défaut…

Avancement

L’interface évolue un peu au grès des évolutions du moteur. La remise en place de ce qui fonctionnait avant n’est pas aussi évidente et rapide…

Les menus ont été intervertis.

Les modules sont plus complets et commencent tout juste à prendre en charge les actions. Ils permettent aussi de compléter la traduction générale, le style CSS et les scriptes d’une page qui les concerne. Tout ce qui est fait dans l’interface repose sur un socle commun pour l’arrière plan et tout le reste est exporté dans des modules, certains seront peut-être intégrés par défaut au code de sylabe parce qu’ils seront indispensables. Les modules mériteront à eux seuls un article dans le blog et dans la documentation.

Voici ce que cela donne aujourd’hui pour la gestion des nÅ“uds :

sylabe_-_15d194c0ac5da323b50e868ab62c17c0a5470283c92f3d8a8631743b5cd9f42f_-_7855163e7ad8be9534cba394b63f0da6432fbe537d3e9ed8ffb687a29fd1cdbd_-_2015-02-08_23.36.05

Le logo de la métrologie a changé, mais c’est une erreur il va revenir…

Un autre exemple avec le module des entités. Celui-ci prendra en compte la gestion des entités connues, de la bascule entre entités et de la « connexion ». Le mécanisme de vérification de la connexion reste par contre exclusivement dans la librairie nebule.

sylabe_-_15d194c0ac5da323b50e868ab62c17c0a5470283c92f3d8a8631743b5cd9f42f_-_7855163e7ad8be9534cba394b63f0da6432fbe537d3e9ed8ffb687a29fd1cdbd_-_2015-02-08_23.49.55

Avancement

La nouvelle interface responsive design est en cours de mise en place. Quelques ajustement sont et seront faits au fur et à mesure de l’avancement.

La mise en place de modules est aussi en cours d’introduction. Pour l’instant ils ne sont pas fonctionnels. Va se poser la question de la sécurité autour des modules. Lequels va-t-on accepter de charger…

developpement_bachue_-_sylabe_-_15d194c0ac5da323b50e868ab62c17c0a5470283c92f3d8a8631743b5cd9f42f_-_2014-12-14_23.20.11

Le responsive design en pratique

Ca m’aura pris une bonne journée de travail, mais le résultat est plaisant.

Voici donc une page de test comme proposition de mise en page pour que sylabe soit responsive design. Ici avec une résolution classique de 1280×800 pixels (moins les bordures du navigateur) :

Test_Responsive_Design_1280x800_2014-12-06_21.54.33

Au passage, il y a une nouvelle icône :

imodify

La page de test peut être essayée à l’adresse de l’objet :
539b0aaacf258f1190e33524b368ca9685b9cccb933ed2ec2021acee4fa83705

Il y a pas mal de captures d’écrans pour montrer l’adaptation de la page à des résolutions d’écran parfois assez… réduites. Malheureusement, Fierfox ne me permet pas de descendre en dessous de 300 pixels en largeur pour atteindre les 240 pixels de certains téléphones. Mais à priori, ça ne passe pas à une si petite résolution.

Évidemment, du 1024×768 sur un téléphone ne seront pas aussi lisible que sur un écran 15 pouces de PC…
Et il est illusoire d’espérer analyser les liens des objets sur de petites résolutions…

Continuer la lecture de Le responsive design en pratique

Symbologie du verrouillage/déverrouillage

La remise en forme de l’interface sylabe suivant le responsive design impose de permettre à l’interface de réduire très fortement dans son affichage. Ainsi, le lien web qui permet à l’utilisateur (entité) de se déverrouiller (se connecter, s’authentifier) ne peut plus forcément être un texte explicite de l’état de connexion et surtout de l’action du lien web. Il faut pouvoir réduire cette action à une icône unique.

On trouve souvent ce genre de lien sur les sites web : Se connecter / Créer un compte

On pourrait aussi utiliser deux icônes, une pour l’état de connexion et une pour le lien d’action. Mais cela pourrait être difficile à comprendre par un utilisateur en fait.
Une des icônes ne serait pas fonctionnelle puisqu’elle ne ferait que afficher l’état : je suis connecté.
L’autre icône serait le lien web de connexion ou déconnexion : je me déconnecte.

Il y a aussi le problème de vocabulaire. On ne parle pas sous nebule d’état connecté ou déconnecté, donc pas plus de connexion ou de déconnexion. On est verrouillé ou déverrouillé, donc on déverrouille et on verrouille, enfin son entité numérique en fait. Ce changement de sémantique traduit une différence profonde dans le sens, et ce même si on peut abusivement faire les traductions connecté/déverrouillé et déconnecté/verrouillé.
Dans la pratique, lorsque l’on consulte la page d’une entité, même si elle est verrouillée, on est connecté à cette entité. Il n’est donc pas besoin de se connecter plus avec cette entité. Par contre, tant qu’elle n’est pas déverrouillée, on ne voit de cette entité que sa partie publique. Dans ce cas, ses informations privées sont verrouillées.

Alors ? Comment doit-on afficher simplement l’état de verrouillage et l’action inverse associée ?

Un autre moyen peut être utilisé pour indiqué l’état de verrouillage. Puisque cela n’a pas à être un lien web et qu’il est peut-être inopportun d’utiliser une image, ce peut être un autre élément de décoration. Il faut quand même qu’il soit visible.
On trouve sur certains sites web, en bordure de la barre d’utilisateur en haut de page, un liseret de couleur en fonction de l’état de connexion. On peut réutiliser ce principe. Un liseret noir peut être utilisé lorsque l’entité est verrouillée, un liseret relativement visible de quelques pixels. Ce même liseret peut passer rouge dès que l’entité est déverrouillée. C’est un code couleur qu’il faut apprendre, mais il peut être imposé systématiquement quelque soit le thème de couleur de la page appliqué, et surtout il est binaire : noir ou rouge.

Reste le lien de changement d’état de verrouillage.
Doit-il être un affichage positif, c’est à dire qu’il représente l’état et non l’action (d’inversion d’état) ?
Ou doit-il être un affichage négatif, c’est à dire qu’il représente l’action et l’état (inversé) ?

Anticipation

L’interface va être un peu revue pour la rendre plus basique dans sa forme et notamment lui permettre de mieux s’afficher dans un écran de tablette voir de téléphone.
Pour cela, le menu du haut doit être simplifié. Il n’y aura plus de partie dédiée à l’objet en cours mais plutôt une partie identité en cours, une partie accolée avec des icônes du mode d’affichage et une icône pour changer de mode d’affichage.

Le fonctionnement interne va changer un peu pour intégrer des vues dans les modes d’affichages. Les modes d’affichages sont à rapprocher des applications dans le principe et devront à se titre devenir des modules activables/désactivables.
Deux modules seront présents obligatoirement, celui d’affichage des objets et celui d’authentification.
Il y aura une option possible dans l’URL, failsafe, pour ne charger que les modules validés par bachue et non ceux éventuellement validés par l’entité en cours. C’est un mode de fonctionnement dégradé mais épuré des applications annexes qui pourraient poser problème.
Il y aura aussi une option possible dans l’URL, rescue, pour ne charger que les modules minimum, c’est à dire celui-ci des objets et celui de l’authentification. C’est un mode de dépannage uniquement pour les gros problèmes. Les deux seuls modules actifs restants sont ceux intégrés par défaut avec sylabe.

Avancement

Pour aujourd’hui, quelques ajustements dans le mode log. Il permet le verrouillage/déverrouillage de l’entité en cours. Il n’y a plus que le paramètre out disponible pour l’option log, par défaut, on affiche soit un déverrouillage, soit un verrouillage en fonction de l’état de connexion.

Et un nouveau test s’est ajouté dans le dock, on vérifie le bon fonctionnement de la vérification des signatures de liens. C’est fait simultanément sur un lien valide et un autre invalide.

 shot-2014-05-21_22-35-43

Avancement

La dernière version, celle d’aujourd’hui, est en cours de diffusion par bachue.

Cependant, il y a quelques problèmes de portabilité vers le serveur en FreeBSD…
Une des fonctions crypto ne fonctionne pas (pas installée), donc premier bouton d’erreur rouge. La fonction de chargement d’un fichier (include) ne fonctionne pas tout à fait pareil, ce qui a nécessité de modifier le code du bootstrap, donc deuxième bouton d’erreur rouge.

Il y a des problèmes lors de la lecture de certaines valeurs des entités, notamment visiblement lorsqu’une propriété est vide, sans valeur.

Enfin, sur les machines Linux, la synchro des composants ne marche pas… Il faut le faire à la main en attendant de trouver le problème…

Voici sur bachue les erreurs de portabilité :

shot-2014-05-19_22-22-55