Sommaire
- Introduction
- Liens
- Interface Web et native
- GNU/Linux
- Windows
- Autres systèmes d'exploitation
- Démonstration en ligne
- Et ensuite ?
Introduction
Ce journal fait suite à celui-ci. Conformément à ce qui y était annoncé, l'application en elle-même n'a pas évolué ; elle est toujours aussi rudimentaire (à l'image de ce journal). Seule l'interface Web a été développée, en s'appuyant sur ce qui a été développé pour la version native.
Liens
L'ensemble des sources du logiciel (compilables sous GNU/Linux), et les binaires correspondants pour Windows (XP SP3 et supérieurs), peuvent être téléchargés à l'adresse http://q37.info/download/computing/apps/orgnzq/. Les sources peuvent aussi être consultés directement à l'adresse :
- http://hg.savannah.gnu.org/hgweb/epeios/file/tip/apps/orgnzq pour l'application proprement dite,
- http://hg.savannah.gnu.org/hgweb/epeios/file/tip/tools/xdhcefq pour l’utilitaire prenant en charge la technologie XDHTML en tant qu'application native,
- http://hg.savannah.gnu.org/hgweb/epeios/file/tip/tools/xdhbrwq pour l’utilitaire prenant en charge la technologie XDHTML en tant qu'application Web,
- http://hg.savannah.gnu.org/hgweb/epeios/file/tip/stable pour le framework.
Interface Web et native
Comme annoncé, c'est un seul et même code, C++ qui plus est, qui est utilisé, et pour l'interface native, et pour l'interface Web. Le cœur de l'application est constitué d'une bibliothèque dynamique qui est prise en charge par l'utilitaire xdhcefq pour l'interface native, et l'utilitaire xdhbrwq pour l'interface Web (ce dernier étant, de ce fait, une sorte de CGI). Ces deux utilitaires ne sont pas propres à cette application, mais sont communs à toute application basée sur la technologie XDHTML.
L'interface WEB devrait fonctionner avec la plupart des navigateurs Web graphique modernes, à la notable exception de Microsoft Edge ; peut-être un bug de ce dernier, mais je n'ai pas encore eu le temps d'approfondir.
GNU/Linux
Compilation
Le packaging a été amélioré pour GNU/Linux. En supposant que g++ et make soient installés :
- télécharger et décompresser les sources de l'application situés à : http://q37.info/download/computing/apps/orgnzq/,
- télécharger et décompresser la version de CEF de la branche
2704
correspondant à votre architecture (Linux 32bit ou Linux 64bit) située à http://cefbuilds.com/, - créer une variable d'environnement nommée
CEF
pointant sur la racine du package de CEF (export CEF=<path to>/cef_binary_3.2704...
), - se placer à la racine du package de l’application et lancer la commande
make
.
Lancement de l'interface native
Pour lancer l'interface native, se placer dans frontend
et lancer xdhcefq/xdhcefq -m=XDHTML/orgnzqxdh
.
Lancement du backend comme daemon
Pour lancer le backend en mode daemon, se placer dans processing
, et lancer dmnzq/tool/dmnzq backend/dmnzq.xprj
. Vous pouvez alors, dans l'interface native, sélectionner Moteur de traitement local
pour se connecter à ce backend.
Lancement de l'interface Web
Dans le répertoire frontend/xdhbrwq
, il y a un répertoire htdocs
dont il faut placer le contenu à un endroit qui soit accessible à votre serveur httpd.
Pour lancer la CGI, se placer dans le répertoire frontend
et lancer xdhbrwq/xdhbrwq XDHTML/orgnzqxdh
. Puis ouvrir un navigateur WEB et saisir l'adresse correspondant au fichier orgnzq.html
du répertoire htdocs
mentionné ci-dessus. Remplir les champs, et sélectionner localhost
à la place de q37
.
Windows
Les binaires fournis sont destinés à Windows XP SP3 et supérieurs.
Prendre à l'adresse http://q37.info/download/computing/apps/orgnzq/ et désarchiver le package correspondant aux binaires Windows. Une fois chargé et désarchivé, suivre les instructions données dans le chapitre GNU/Linux (sauf ceux relatifs à la compilation). Selon la version de Windows, les /
(slash) devront peut-être être remplacés par des \
(backslash).
Autres systèmes d'exploitation
Pour les systèmes d'exploitation POSIX pour lesquels il n'y a pas de version de CEF, il n'est possible que de lancer le backend et la CGI. Suivre les instructions concernant GNU/Linux, en ignorant tout ce qui concerne CEF. La compilation de l'utilitaire xdhcefq, qui intervient en dernier, échouera naturellement, mais tout le reste devrait être compilé et pouvoir être lancé en suivant les instructions dans la section consacrée à GNU/Linux.
Pour la version OS X, c'est toujours aussi compliqué, mais je travaille à améliorer la procédure. En attendant, suivre les indications du précédent journal.
Démonstration en ligne
Il y a une démonstration en ligne de la version Web accessible à http://q37.info/xdh/orgnzq.html. Par ailleurs, vous pouvez vous connecter directement sur le backend utilisé par cette version Web à partir de l'interface native en sélectionnant Moteur de traitement sur q37.info
à la première page.
La démonstration tourne sur un serveur placé derrière une box ADSL. De ce fait, l'application peut manquer de réactivité.
Et ensuite ?
Avant d'ajouter de nouvelles fonctionnalités, et afin de tester plus avant le système de plugins, de nouveaux types de champs, ainsi que de nouvelles possibilités de stockage (dans des fichiers ; le système actuel ne stockant que dans la RAM étant d'un intérêt limité) vont être développés.
Par ailleurs, quelques tests réalisés avec une brique internet que l'on m'a prêtée montre que la CGI et le backend tournent parfaitement sur ce genre de matériel. J'envisage donc de faire tourner la démo sur un matériel similaire, mais un peu plus costaud, pour que la compilation soit plus rapide (et ainsi éviter d'avoir à recourir à la compilation croisée). Et, puisque cela fonctionne sans problème sur une architecture ARM 32 bits, autant se frotter à une architecture ARM 64 bits, comme celle de l'ODROID-C2, ou du futur Banana Pi BPI-M64…
# c'est bien gentil
Posté par flavien75 . Évalué à 8.
mais ça fait quoi ?
Les vrais naviguent en -42
[^] # Re: c'est bien gentil
Posté par Claude SIMON (site web personnel) . Évalué à 6.
En l'état, pas grand chose ; on peut créer des fiches avec des champs textes, et réorganiser les champs d'une fiche, ainsi que les entrées d'un champs, par drag & drop, et c'est à peu prés tout. Des fonctionnalités seront ajoutées petit à petit, et feront l'objet de publications ici même.
En attendant, cette application fait office de proof of concept. Elle permet d'étudier la faisabilité, entre autres :
- de coder entièrement et uniquement en C++ une interface basée sur des technos Web,
- d'utiliser un seul et même code (C++) pour l'interface Web et pour l'interface native d'une application,
- d'offrir la possibilité de modifier entièrement l'apparence d'une application sans avoir à intervenir sur son code source, uniquement en modifiant des fichiers XSL.
Pour nous émanciper des géants du numérique : Zelbinium !
[^] # Re: c'est bien gentil
Posté par Matthieu . Évalué à 4.
Il faut aller lire le journal précédent pour comprendre ce que fait l'application.
J'ai eu la même réaction : "ce journal me parle d'une application sans expliquer ce qu'elle fait (à part le lien vers le journal précédent)".
Un rappel n'aurait pas été de trop. Aurait même été un minimum. Erreur de communication.
[^] # Re: c'est bien gentil
Posté par Claude SIMON (site web personnel) . Évalué à 1.
J'ai oublié de préciser que l'on peut :
- modifier le contenu d'une fiche en cliquant sur l'entrée qui lui correspond dans la liste,
- modifier le contenu d'un champ en cliquant sur son libellé,
- modifier le contenu d'une entrée d'un champ multi en cliquant sur son contenu.
Accessoirement, on peut également afficher un A propos… avec
Ctrl+Shift-A
. Sur certains navigateurs, cela provoque l'affichage d'une nouvelle page ; il faut alors revenir sur la page de l'application. Je n'ai pas (encore) trouvé de combinaison de touches qui fonctionnent pour tous les navigateurs, ou (mieux) le moyen d'inhiber le comportement par défaut du navigateur…Pour nous émanciper des géants du numérique : Zelbinium !
# xdhbrwq/xdhbrwq XDHTML/orgnzqxdh
Posté par Marotte ⛧ . Évalué à 6.
Toujours aussi surprenants tes noms de programmes :)
[^] # Re: xdhbrwq/xdhbrwq XDHTML/orgnzqxdh
Posté par Nairwolf . Évalué à 2.
Il n'y a pas que cela, je ne suis pas un expert en C++, mais lorsqu'on regarde le code, cela semble assez incompréhensible. C'est à cause de mes lacunes en C++, ou vous aussi vous n'y comprenez rien ?
De toute manière, après avoir lu le premier journal censé expliqué les fonctionnalités du logiciel, j'ai l'impression qu'il s'agit d'un gros truc crytpique. S'agit-il d'un troll ?
Personnellement, je ne passerai pas des plombes à poser des questions sur l'application…
[^] # Re: xdhbrwq/xdhbrwq XDHTML/orgnzqxdh
Posté par arnaudus . Évalué à 5.
Oui, le code est imbittable, parce que ça n'est pas vraiment du C++, c'est plein de macros qui définissent un nouveau dialecte, et quand on mit le code, ça ne respecte pas la grammaire du langage.
Ceci dit, non, ça n'est pas non plus un pur troll, puisque l'auteur du journal semble comprendre sa technologie et même arriver à en vivre. D'ailleurs, dans le journal précédent, certaines discussions techniques semblaient confirmer que plusieurs personnes comprenaient le principe.
Pour moi, c'est de l'informatique abstraite: tu as des trucs qui font des surcouches à une autre techno qui modifie du code dans un autre langage qui va te générer du HTML qu'il va falloir lire avec un navigateur, tu as besoin d'un quadricoeur avec 4Go de RAM rien que pour un "Hello Word", mais soi-disant ça accélère le développement. Je ne comprend pas l'utilité d'une telle complexité, mais je dois être dépassé…
[^] # Re: xdhbrwq/xdhbrwq XDHTML/orgnzqxdh
Posté par Claude SIMON (site web personnel) . Évalué à 4. Dernière modification le 26 juillet 2016 à 10:17.
Quelles macros ? Les seules que je tape régulièrement, ce sont
qRH, qRB, qRR
…, et leurs consœursqRFwk(), qRGnr()
…; qui sont dédiées à la gestion d'erreurs ; algorithmiquement, elles ne sont pas significatives, et elles ne sont pas nécessaires à la compréhension du code, sauf quand celui-ci s'occupe de la gestion des erreurs, évidemment. Quant aux autres macros, elles existent juste pour m'éviter d'avoir à taper du code dont j'ai fréquemment besoin, mais elles ne constituent certainement pas un nouveau dialecte.Si l'on m'indique quelles macros posent problème, je détaillerais volontiers leurs usages…
Ce n'est de loin pas de l'informatique abstraite : la preuve, il y a une démonstration accessible en ligne qui montre que c'est au contraire tout à fait concret. Quand à cette histoire de surcouche avec HTML, je n'ai pas trop compris. Cela concerne peut-être ce que j'ai décris dans ce journal.
Pour ce qui est d'avoir besoin d'un quadricœur avec 4GO de RAM, il y a un package disponible avec les binaires Windows destinés à du XP SP3 et supérieur, et un autre pour du GNU/Linux compatible IA-32 ou AMD64 natif. Ces packages sont relativement simple à déployer (mais je concède que c'est améliorable), et je suis preneur de tout retour sur leur mise en œuvre.
Soit dit en passant, comme je l'ai signalé, la CGI et le backend tournent sans problèmes sur une brique internet, à savoir une architecture ARM 32 bits dual-core à 1 GHz avec 512 Mo de RAM. Pour ceux qui disposent d'un matériel similaire tournant sous GNU/Linux, ils peuvent le vérifier ; je décris la procédure dans le journal. Et enfin, il y a la démonstration en ligne ; là aussi, je suis preneur de tout retour sur les ressources nécessaires et les éventuels problèmes rencontrés en fonction du navigateur utilisé.
Pour nous émanciper des géants du numérique : Zelbinium !
# bug...
Posté par NeoX . Évalué à 6. Dernière modification le 24 juillet 2016 à 23:31.
j'ai voulu testé la demo.
je rentre un login/pass (johndoe/johndoe)
ca me dit que je n'ai pas de fiche et me propose d'en ajouter une => OK
je cliques sur nouveau, ca me dit qu'il n'y a pas de champs et me propose d'en ajouter => OK
je cree UN champ, texte / mono, je valide
ca m'affiche alors la fiche avec un seul champs,
et quand je cliques sur nouveau, pour ajouter un 2e champs, ca m'envoie l'erreur suivante :
24/07/2016 23:26:33 GNR error : frdinstc.h(306)
je viens de faire l'essai avec texte / multi et ca semble fonctionner.
et il n'y a pas d'option de deconnexion.
[^] # Re: bug...
Posté par Claude SIMON (site web personnel) . Évalué à 2.
Merci pour le signalement.
Le bug est corrigé, mais il faudra attendre le déploiement de la prochaine version de l'application pour profiter de la correction.
Quand à l'option de déconnexion, elle est absente parce que je ne me suis pas encore pris le temps de l'implémenter…
Pour nous émanciper des géants du numérique : Zelbinium !
[^] # Re: bug...
Posté par Claude SIMON (site web personnel) . Évalué à 2.
Bon, j'ai finalement profité d'une baisse momentanée d'activité sur le serveur pour rapidement mettre la version corrigée en place…
Pour nous émanciper des géants du numérique : Zelbinium !
# Documentation
Posté par BFG . Évalué à 4.
À un moment, il faut se poser et écrire de la documentation, avec des schémas, de petits exemples (pas des projets complets). Plus le projet est complexe, plus il en faudra.
Il faut expliquer très progressivement les notions, sans assommer le lecteur en alignant dix acronymes inconnus dans la même phrase. Il faudrait aussi que ça reste un peu concret et palpable tout le long, pour éviter qu'on ne comprenne réellement qu'à la fin.
Et il faut faire relire ladite documentation par d'autres personnes, souvent, pour être sûr que cela reste compréhensible pour quelqu'un d'extérieur.
Il vous faudrait au moins une sorte de tutoriel.
Ne le prenez pas mal, mais là, c'est franchement imbitable.
[^] # Re: Documentation
Posté par Claude SIMON (site web personnel) . Évalué à 2.
J'en suis parfaitement conscient. Ce n'est pas de la mauvaise volonté, c'est que je ne suis vraiment pas doué pour rédiger des documentations, ou pour communiquer sur mes projets de manière générale, comme le montre d'ailleurs les journaux que j'ai publiés, ainsi que le contenu de mon site Web.
Par ailleurs, ce genre d'application me permet d'améliorer le framework sur lequel il s'appuie, et que j'utilise, en tant que développeur freelance, pour les développements que je réalise pour mes clients. Donc, tout le travail de codage réalisé pour cette application me permet de proposer à mes clients du code de meilleur qualité et développé plus rapidement, ce qui est bénéfique, notamment financièrement, et pour moi, et pour le client. Par contre, tous les à-coté de ce genre de projet, comme la rédaction de documentation, sont, du point de vue financier, une pure perte de temps.
Ceci dit (ou plutôt écrit), cela ne m'empêche pas d'essayer de communiquer tant bien que mal sur mes projets, justement en publiant ce genre de journaux, dont certains commentaires contiennent d'intéressantes pistes d'améliorations. Ainsi, j'ai travaillé, suite au dernier journal, à l'amélioration du packaging de l'application, ce qui facilite son déploiement sous GNU/Linux et Windows (pour OS X, c'est loin d'être encore ça). J'ai prévu, en plus d'améliorer l'application, de mettre l'accent sur la documentation pour le prochain journal. Mais cela sera forcément très incomplet, vu l'ampleur de la tâche, mais il faut un début à tout.
Pour nous émanciper des géants du numérique : Zelbinium !
Suivre le flux des commentaires
Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.