Forum général.test Testeurs pour mon moteur de blog

Posté par (page perso) . Licence CC by-sa
Tags :
5
28
fév.
2014

Je cherche des testeurs pour mon logiciel de blogging fBlog. Il sert à générer, dans un dossier, des pages HTML qui seront mises ensuite sur un serveur Internet. Vous n’avez donc pas besoin d’avoir un serveur Web sur votre machine : vous pouvez visualiser ces pages depuis un navigateur sur ces fichiers internes.

Vous pouvez télécharger fBlog version 0.5.1 depuis le site SourceForge. Il y a des binaires pour Linux x86-32/64 bits et les sources. Pour le compiler depuis les sources, suivre les instructions du README.

Marche à suivre : mettre l’exécutable dans un répertoire de test quelconque et l’invoquer à la ligne de commande en faisant « ./fblog ». Là, apparaîtra un menu interactif qui demandera si vous voulez procéder à l’installation. Si oui, un dossier (fBlog) sera créé dans le répertoire courant. Ce logiciel marche donc à la console mais aussi à la ligne de commande classique : pour invoquer l’aide, faire «./fblog -h».

Dans tous les cas, les fichiers générés seront mis dans le sous-répertoire «fBlog». Il n’y aura pas de dotfile ni de fichier de configuration dans «/etc» créé.

Si vous avez l’amabilité de me rendre ce service de critique, j’aimerai avoir des retours sur l'un des points suivants :

  • Ce logiciel doit-il rester encore en version « Beta » ou bien peut-on le proposer tel quel ?
  • Le fichier README, l’aide et les menus interactifs sont-ils assez explicites pour un utilisateur avancé en informatique (au moins capable de comprendre l'anglais et de modifier un fichier de configuration depuis un éditeur de texte) ?
  • Ce logiciel permet-il de rédiger un blog sous une langue orientale (écriture de droite à gauche) ?
  • Ce logiciel compile-t-il sur d’autres processeurs qu’Intel X86 pour la plateforme Linux ?
  • Ce logiciel compile-t-il sur des plateformes Posix autres que Linux (Mac OS, *BSD, Cygwin…) ?
  • Ou tout autre avis…
  • # ppc

    Posté par . Évalué à 3. Dernière modification le 01/03/14 à 11:14.

    Bonjour,

    • Ça compile sans erreur sur PPC (G4 32 bits) avec gfortran-4.7 -static -std=f2008 -o fblog fblog.f08
    • le binaire généré fonctionne, tu peux le trouver ici.
    • si $EDITOR est vide et que vi n'existe pas ça plante :
    sh: 1: vi: not found
    ERROR STOP 1011
    

    Un petit message pour indiquer comment modifier sa variable $EDITOR pourrait être pas mal.

    • [^] # Re: ppc

      Posté par (page perso) . Évalué à 4.

      J’avais prévu le cas que la variable EDITOR ne soit pas renseignée (même si c’était hautement improbable !) et que le rattrapage soit d’appeler l’éditeur « vi » : il me semblait également hautement improbable que vi (ou le lien vi → vim) ne soit pas sur une machine plus ou moins Posix. Mais donc, en cas d’accumulation de malchance, le logiciel était censé se terminer proprement sur un code d’erreur. (On n’est jamais assez parano quand on code !) Donc ici ça s’est bien produit sur l’invocation de l’éditeur pour modifier le fichier de configuration ( routine « config.f08 » dans les sources).

      J’avais bien mentionné dans l’aide (mais disponible seulement à la ligne de commande) que l’éditeur était lié à la variable d’environnement EDITOR mais sans plus. En effet, je souhaitais avoir un fichier d’aide le plus court possible pour ne pas en décourager sa lecture. De même, je n’ai pas voulu mettre le choix d’un éditeur dans le fichier de configuration pour qu’il ne soit pas trop long. Tout est une question de dosage et je bataille entre faire court et faire précis. Mais aussi : on n’est pas non plus obligé d’aimer l’éditeur par défaut imposé par la distribution (et bien peu sont capables de le modifier).

      Je vais donc ajouter un exemple sur l’aide en ligne de commande pour la version 0.5.2 du genre :

      Pour avoir l’éditeur « nano », faire « EDITOR=nano ./fblog » .

      Mais je dois aussi faire une aide pour le mode console dans les menus interactifs. C’est plus long à coder, ça sera pour la version 0.6.0 !

      Sinon, je te remercie chaudement pour cette compilation sur G4 qui me conforte sur la portabilité de fBlog.

  • # Fortran

    Posté par . Évalué à 3.

    Pourquoi l'as tu codé en Fortran ?

    • [^] # Re: Fortran

      Posté par (page perso) . Évalué à 5.

      Pourquoi Fortran ? C’est une histoire qui remonte à l’époque où j’ai basculé sur Linux (1995), où le langage Basic n’était pas disponible en ce temps là sur cette plate-forme. Fortran était donc se qui s’en rapprochait le plus et convenait à l’autodidacte. De plus, il permet de débuter en programmation en quelques semaines au lieu de plusieurs années avec d’autres langages. Pour preuve, le programme des cours de l’IDRIS.

      Fortran est un langage compilé ; ses programmes tournent plus rapidement qu’avec les langages interprétés. Pour un moteur de blog, c’est un argument de taille ! J’ai participé au projet NanoBlogger (un moteur de blog tournant sous shell Bash) : il fallait plus d’une minute pour mettre à jour un blog avec 120 billets ! Je voulais un remplacement à NanoBloger, à l’identique mais en plus rapide. Actuellement, si l’on prend le cas d’un bloggeur qui posterait un billet par jour pendant 50 ans, fBlog fait la mise à jour en 90 secondes.

      Je voulais aussi une solution pérenne. Parmi les inconvénients des langages interprétés, il y a qu’ils ne sont pas souvent normalisés et qu’une mise à jour du langage impose souvent la mise à jour du logiciel qui en dépend. Avec un langage compilé, les compilateurs peuvent mouliner du code vieux de plusieurs décennies (avec peu de modifications).

      Bon, ayant opté pour langage compilé banal sous Posix : qu’y avait-t-il de dispo ? La liste est courte ! Fortran, ADA et C (plus ses descendants comme C++, Java, etc.).

      Dans le cas d’un moteur de blog, on a deux tâches principales. La première est de lire pas mal de texte (les entrées du bloggeur) et d'écrire une multitude de fichiers (les pages Web statiques). Il se trouve que Fortran, par son origine de moulinette à data pour calcul intensif, gère bien les entrées / sorties (et toutes les avanies qui peuvent en résulter). La seconde est le traitement des chaînes de caractère. Or Fortran, ayant débuté à une époque où les outils logiciel n’étaient pas légion comme aujourd’hui, a une capacité à gérer à triturer les chaînes de caractère que n’ont pas forcément les langages plus récents qui se peuvent aujourd’hui sous-traiter avec un outil externe.

      Fortran est comme LaTeX : fait pour les maths mais utilisable pour les lettres.

      • [^] # Re: Fortran

        Posté par . Évalué à 2.

        le cas d’un bloggeur qui posterait un billet par jour pendant 50 ans, fBlog fait la mise à jour en 90 secondes.

        en php, python et autres langages interprétés, c'est bien plus rapide, le temps d'injecter le billet dans la base de données.
        pas besoin de recalculer les 50 dernieres années de blog.

        mais bon, c'est pas statique non plus.

        • [^] # Re: Fortran

          Posté par (page perso) . Évalué à 4.

          mais bon, c'est pas statique non plus.

          C'est là tout le problème ! J'ai fait jadis le choix du moteur de blog NanoBlogger pour deux raisons : il me fallait quelque chose facile à administrer à distance lors de mes voyages à l'étranger (j'étais marin au long cours) et qui soit incassable. Comme je n'avais pas l'intention d'avoir un service de commentaire, mon blog pouvait être en lecture seule sans problème. Le fait d'avoir un moteur de blog sans base de données SQL me mettait à l'abri de toute injection de données indésirables.

          Aujourd'hui il y a plusieurs développeurs pointus en sécurité Linux qui sont sous NanoBlogger pour leur blog car ils peuvent pas se permettre de se faire ridiculiser par l'attaque de leur blog.

          Par exemple, la distribution Gentoo met en "tilde arch" (testing) toutes les versions du package Wordpress qu'elle distribue. Et ce, pour cette seule question de sécurité.

          Ayant l'intention de repartir naviguer, je sais que je pourrais me trouver plus d'un mois sans pouvoir me connecter à l'Internet. Avoir un blog générant des pages Web automatiquement sans que je puisse regarder quotidiennement comment ça se passe, on a des angoisse du genre "et si quelqu'un y mettait des photos pédophiles en mon absence ?".

  • # vim -> tiny

    Posté par (page perso) . Évalué à 3.

    Quand vim n'est pas là, c'est souvent vim.tiny qui est là.

    Je ne comprends pas pourquoi il n'y a pas un lien symbolique entre les deux, tant qu'à faire.

    On trouve souvent nano, et pas vim… mais vim.tiny.

    • [^] # Re: vim -> tiny

      Posté par (page perso) . Évalué à 2.

      Je n'avais jamais entendu parlé de vim-tiny ! J'ai vérifié pour ma distro Gentoo et ça n'existe pas. Google étant mon ami, j'ai vu que c'était répandu chez Ubuntu. Mais, en fait, l'entrée vim de Wikipedia est bien le premier lien à consulter quand on s'intéresse aux multiples déclinaisons de vi.

      J'ai mis l'éditeur vi comme éditeur par défaut quand tout a échoué car il est dans la liste des utilitaires de la norme Unix (plus précisément : The Open Group Base Specifications Issue 7, IEEE Std 1003.1, 2013 Edition) et qu'il existe toujours (normalement !) sur les ordinateurs compatibles Posix au moins un lien qui appelle l'un de ses clones (comme vim) si vi lui-même n'y est pas.

  • # FreeBSD

    Posté par . Évalué à 1.

    je l'ai testé sous FreeBSD 10.0 (je débute sous bsd), ça compile bien avec gfortran 4.7. Par contre j'ai essayé avant avec la version 4.4 et ça ne compile pas. Sinon on comprend vite comment ça marche ! c'est super intuitif.

    message d'erreur de gfortran4.4 :

    $ gfortran44 -static -std=f2008 -o fblog fblog.f08
    mod_error.f08:58.2:
    Included at mod_html.f08:7:
    Included at fblog.f08:8:

    error stop
    1
    Error: Unclassifiable statement at (1)
    mod_error.f08:67:
    Included at mod_html.f08:7:
    Included at fblog.f08:8:

    error stop 'Internal error in subroutine "terminate".'
    1
    Error: Unclassifiable statement at (1)
    mod_html.f08:12.13:
    Included at fblog.f08:8:

    use mod_error
    1
    Fatal Error: Can't open module file 'mod_error.mod' for reading at (1): No such file or directory

    • [^] # Re: FreeBSD

      Posté par (page perso) . Évalué à 2.

      Grand merci pour l'essai sur FreeBSD ! Personnellement je n'ai jamais touché aux BSD, faute d'avoir des machines de test (ah ! que j'aimerais avoir plus de sous et un local dédié à ça…). J'attendais avec impatience le retour d'un BSD-iste car ces derniers ont été souvent utilisateurs du moteur de blog NanoBlogger qui est le logiciel qui a inspiré fBlog.

      Concernant la version du compilateur gfortran : c'est vrai qu'il faut une version récente car le langage Fortran évolue à toute vitesse en ce moment ! Alors que la norme f95 est supportée par la totalité des compilateurs, les normes suivantes f2003, f2008 sont toujours en cours d'implémentation. Ce qui n'empêche pas ces mêmes compilateurs de supporter certaines dispositions du futur f2015… Le gros enjeu est l’interopérabilité totale avec les langage C / C++ . Aujourd'hui, on peut déjà appeler bien des fonctions de la libc depuis Fortran (mais pas toutes, encore).

      L'échec de compilation avec la vieille version de gfortran est due à l'instruction error stop qui n'existe seulement que depuis la norme f2008. Elle permet de terminer les programmes, en cas d'erreur, de façon plus propre.

      Actuellement, sur ma Gentoo, je compile avec GCC 4.8.2 (et gfortran est aligné sur la même numérotation) ; mais la version 4.9.0 ne devrait pas tarder.

      Ton appréciation positive sur l'ergonomie de fBlog est une grande joie pour moi : j'ai vraiment bossé dur pour ça ! Pour le mode en menus interactifs à la console, je me suis inspiré de mon passé d'opérateur Télex lors de mon service militaire (comme l'instruction GA signifiant go ahead).

      • [^] # Re: FreeBSD

        Posté par . Évalué à 1.

        BSD-iste je ne sais pas si on peut dire ça, car ça fait seulement quelques semaines que j'ai installé FreeBSD, je n'ai pas fait grand chose dessus.

        c'est marrant le fortran je pensais que c'était super vieux et imbitable, et finalement non… d'ailleurs j'ai trouvé un petit logiciel sympa dont une partie a été faite en fortran. j'aimerais bien pouvoir l'utiliser pour faire des calculs en essayant toutes les combinaisons possible de paramètres, mais appeler l'exécutable à chaque fois c'est beaucoup trop lent (et je n'ai pas la source). j'ai l'impression que ce n'est pas possible mais si tu avais une idée…

        • [^] # Re: FreeBSD

          Posté par (page perso) . Évalué à 2.

          • Concernant Fortran : il y a pas plus vieux car c'est le plus ancien langage de programmation. En fait, il a inventé le concept du langage de programmation. Avant, les programmateurs étaient de vrais hommes : ils codaient en langage machine ou en assembleur. Mais pour les scientifiques et les ingénieurs ça ne pouvait pas le faire… Donc, vers 1956, il a été créé un logiciel pour générer du langage machine à partir de formules de maths. D'où le nom FORmula TRANslator. En ces temps reculés, il y avaient deux sortes de support de code source : les cartes perforées et les rubans perforés. La société qui a sorti Fortran était IBM et son truc était les cartes perforées. Donc, jusqu'à Fortran 77, une ligne de code correspondait à une carte perforée. Ceci a obligé à faire un langage le moins verbeux possible pour économiser de la place. Et c'est pour ça que Basic est sorti (en s'inspirant aussi de l'Algol aussi, je crois) pour permettre de programmer sans avoir les dispositions d'un égyptologue. Quinze ans plus tard, ceux qui ont développé le langage C ont opté pour les bandes perforées et donc n'ont pas eu le même souci de concision du langage. La version de 1990 de Fortran a abandonné le style carte perforée et donc a permis une plus grande verbosité du code. Depuis, les joyeusetés que sont les pointeurs et la programmation orienté objet sont entrés dans la norme. Aujourd'hui l'effort se porte sur la parallélisation des tâches et le concubinage avec le langage C.

          • Concernant ton problème de logiciel, voilà ce que j'ai compris (mais il faudra que tu me ré-explique si j'ai compris de travers) : tu as un logiciel dont une partie est une (ou des) routine(s) Fortran que tu voudrais adresser directement en lui passant des paramètres. Si le binaire est en seul tenant, c'est-à-dire lié statiquement, je ne vois pas comment faire (sauf s'il existe sur ton disque dur une bibliothèque archive, suffixée .a). Mais s'il est lié dynamiquement et qu'il appelle des bibliothèques, il est possible que toutes les procédures codées en Fortran soient dans une bibliothèque particulière. Si tu arrives à dénicher laquelle, il y a un minuscule espoir de s'en sortir ! (cette bibliothèque est suffixée .so) Après il faut connaître les noms des procédures (sous-routines ou fonctions) et les paramètres à fournir. Une possibilité est de faire une recherche sur Internet avec le nom de la bibliothèque. En effet, il est très possible que cette bibliothèque soit employée par d'autres logiciels et qu'il existe une doc. (Mais il est possible aussi que la documentation de ton logiciel donne les API de ces procédures !) Auquel cas, il est possible d'écrire un main en langage C ou en langage Fortran qui permettra d'adresser cette bibliothèque : en compilant ce main séparément puis en liant le main avec cette bibliothèque Fortran. Donc, ce n'est pas gagné sauf si tu arrives à dénicher le nom de cette bibliothèque et son mode d'emploi !

          • [^] # Re: FreeBSD

            Posté par . Évalué à 3.

            malheureusement c'est bien un binaire en un seul tenant…

            sinon je viens de voir sur le play store d'android qu'il y a une application appelée CCTools qui permet de coder en Fortran (elle utilise gfortran pour compiler).

            • [^] # Re: FreeBSD

              Posté par . Évalué à 3.

              Du coup je l'ai compilé sous android, ça fonctionne aussi ! il s'exécute aussi, par contre dans vim je ne sais pas comment faire la touche échap…

              • [^] # Re: FreeBSD

                Posté par (page perso) . Évalué à 2.

                Fichtre ! Je n'avais pas pensé à Android… Je ne connais rien à cette plateforme (je n'ai pas de smartphone, ni de tablette). Et je ne n'imaginais même pas qu'il soit possible d'y faire tourner une application conçue pour la console, ni même qu'il y avait l'éditeur Vim. À moins que ce ne soit CCTools qui empaquète les dépendances pour fBlog. Si c'est le cas, il faudrait trouver un éditeur pour la console qui n'ait pas de combinaison de touche bizarre comme vi. (Je ne sais pas si nano conviendrait car il utilise la touche Ctrl.) Auquel cas, il suffirait de modifier la ligne 42 du source "fblog.f08" (character(len=*), parameter :: PREFERED_EDITOR = "vi") avec le nouveau nom du PREFERED_EDITOR. Et il faudrait aussi le source de ce nouvel éditeur soit dans la chaîne de compilation, je suppose.

                Je viens de regarder le site de CCTools et effectivement il compile gfortran. Incroyable, tout ça !

                • [^] # Choix de l'éditeur

                  Posté par (page perso) . Évalué à 2.

                  Dans mon commentaire qui précède, je dois préciser une chose : l'éditeur appelé n'a pas forcément besoin de fonctionner à la console ! Ainsi, sous KDE, j'appelle fBlog dans un terminal Konsole (mais ça pourrait être Xterm !) et là je peux très bien mettre kwrite comme éditeur dans la variable d'environnement et ça marche. De ce qui précède, si Android possède un éditeur de texte bien à lui, il suffirait de renseigner le source.

                  • [^] # Re: Choix de l'éditeur

                    Posté par . Évalué à 2.

                    le problème c'est que pour lancer l'éditeur, si c'est pas en mode console il faut lancer l'appli android de l'éditeur, et je ne sais pas trop comment on fait, il faut utiliser la commande "am" je crois, mais je n'ai pas eu le temps de regarder ça de plus près.

Suivre le flux des commentaires

Note : les commentaires appartiennent à ceux qui les ont postés. Nous n'en sommes pas responsables.