Forum général.test [Terminé] Invitation à tester mon nouveau moteur de blog

Posté par (page perso) . Licence CC by-sa
Tags : aucun
0
8
mar.
2013

Je vous invite à tester mon nouveau moteur de blog dans un site de démo accessible sous Telnet. En vous connectant à mon serveur, vous aurez à répondre au login (entrez «demo») et au mot de passe (entrez «linuxfr»). Vous tomberez sur un menu interactif et vous pourrez ainsi faire votre choix. Vous pourrez éditer de nouveaux billets, faire des modifications suivant le choix des feuilles de style, etc.

Pour accéder en écriture sur le site, ouvrez une console et entrez la commande suivante :

telnet oceamer.com

Mais, en premier, allez voir le site de démo et cliquez sur « Lisez-moi » à :

http://oceamer.com/~demo/index.html

Merci de vos retours !

Mise à jour du 12 mars 2013 (21:20)

Grand merci à la dizaine de participants au test et aussi à ceux qui ont débattu. Une nouvelle version de fBlog va être mis en ligne prochainement sur le site de SouceForge ; et avec des binaires ! Cette version a pris en compte des remarques que j'ai reçu d'un habitué de ce site et des difficultés qu'ont éprouvé deux des testeurs par cause d'une mauvaise ergonomie.

  • # 'Le' web 0.99 ;)

    Posté par . Évalué à 1.

    Haha.

    Wrong entry.
    ERROR STOP 1140
    
    Les modifications éventuelles sont sur le Web :
    
                http://oceamer.com/~demo/
    
    Merci de votre visite !
    
    

    Terminal de Nazis ! ;)

    Des fois, des protocoles doivent mourir, c'est comme ça…

    • [^] # Re: 'Le' web 0.99 ;)

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

      Le message "Wrong entry, error stop 1140" n'a rien à voir avec un quelconque protocole ! C'est moi qui ai décidé trois choses :

      1. systématiquement fermer l'instance à la moindre erreur de saisie ;
      2. intercepter toute erreur possible dans les entrées-sorties (lecture/écriture) de fichiers ;
      3. numéroter par avance chaque erreur éventuelle de façon à pouvoir retrouver l'origine du problème et qui pourrait bien être une faute de programmation.

      Cette mise à l'épreuve de mon logiciel a pour but, entre autres choses, de savoir comment réagissent les utilisateurs face à mes choix de programmation. S'il s'avère que systématiquement clore l'instance à la moindre bourde est une mauvaise idée, il m'est très facile de rectifier ceci et de proposer une nouvelle saisie. En fait, je crois que vais le faire, à moins que des avis contraires s'expriment ici. Peut-être aussi que je devrais repenser le libellé des messages dans un sens plus amical ? Mais mon souci premier était de communiquer à des utilisateurs de langues diverses et je n'ai pas l'envie (ni la capacité) d'avoir des messages individualisés pour chaque langue de la planète. C'est pourquoi j'ai choisi des messages les plus concis possible et la langue anglaise. Et être amical tout en restant concis n'est pas chose évidente !

      Sinon, pour lever toute ambiguïté, fBlog n'a rien n'a voir avec le protocole Telnet ! C'est moi qui ai fait le choix de ressortir cette antiquité du placard (Telnet) pour faciliter la mise en test publique. Normalement fBlog se lance à la ligne de commande depuis un terminal et, selon que l'on y met des options ou pas, il fonctionne soit avec une interface utilisateur en mode interactif, soit fait une action précise.

      Et aussi : c'est un pur moteur de blog ! Par exemple, il serait possible de créer un logiciel avec des fenêtres pour créer des billets. Il n'y a juste qu'à faire en sorte que les nouveaux billets soient déposés dans un répertoire précis et ensuite invoquer fBlog avec la commande "fBlog --update" pour générer les pages Web. Je n'ai pas envie (ni encore la capacité !) de créer ce genre d'interface graphique ; mais je suppose qu'un prototypage devrait être possible ; au moins avec un des utilitaires de dialogue comme Zenity. Peut-être que je le ferai plus tard…

      • [^] # Re: 'Le' web 0.99 ;)

        Posté par . Évalué à 1.

        OK merci pour les précisions !

        systématiquement fermer l'instance à la moindre erreur de saisie

        C'est ça qui m'a fait bizarre :)

  • # Fortran...

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

    Autant je défend souvent le Fortran ici, notamment pour le calcul, autant pour le traitement de chaîne, les langages de scripts sont plus adaptés (Perl par exemple a été fait pour cela).

    J'ai regardé un peu le code et je trouve que c'est un peu fort de dire que c'est du Fortran 2008. Pour moi, un code Fortran propre n'utilise pas d'INCLUDE mais est architecturé en module utilisé par la commande USE. Lorsque tu utilise un entier, tu ne déclare pas son type (KIND) et la longueur des chaînes n'a pas été paramétré en global via une constante (PARAMETER). Bref, pour moi, c'est pas vraiment du Fortran 90…

    Ensuite, écrire le CSS en Fortran, c'est vraiment avoir envie de se faire mal. Pourquoi ne pas charger le fichier css directement ?

    • [^] # Re: Fortran...

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

      Je ne m'attendais pas à avoir à aborder la question du Fortran… Mais s'il faut le faire, allons-y ! Mais je n'ai absolument pas envie de polémiquer sur ce genre de sujet car l'objet de ce post sur ce forum était de savoir si mon moteur de blog était fonctionnel ou non. Cependant j'accepte aussi volontiers des suggestions pour l'améliorer.

      Concernant mes choix de programmation, dans l'hypothèse où le logiciel tourne pas trop mal et dans la mesure où les avertisseurs du compilateur gfortran (Wall, pedantic, std=f2008) restent muets, je considère que ma programmation est valide à défaut d'être jolie. Dans la mesure où ça compile et que les usagers sont contents, moi être content. Je fais du logiciel à titre amateur et gratis (je n'ai jamais eu une seule heure de cours d'informatique de ma vie !) et je compte bien rester libre d'employer à ma guise un logiciel libre. Prétendre faire du logiciel libre tout en restant enfermé dans des carcans théoriques dispensés par des maîtres aussi prestigieux soient-ils en leur temps, n'est plus du logiciel libre, c'est de l'académisme !

      J'ai commencé ce projet il y a quatre ans mais en codant vraiment plutôt à la mauvaise saison. J'ai fait, dès le départ, le choix d'employer un langage qui compile : j'utilisais, pour mes besoins personnels, le moteur de blog NanoBlogger (scripting bash) et j'en étais un des traducteurs de ce projet. Mais, clairement, à partir d'une centaine de billets, NanoBlogger rame à générer les pages. Certes, il existe de toute évidence d'autres langages de script plus rapide que Bash ! Et de toute évidence qui dit langage de script dit interpréteur sous-jacent. Ce qui veut dire, une révision du code à chaque upgrade de l'interpréteur ! Or je vais être à l'étranger dans les prochaines années et je serais dans l'incapacité à maintenir de façon soutenue un quelconque logiciel. Donc le choix d'un langage compilé s'imposait. Et comme je tiens fermement à Linux et je que je ne veux pas dépenser d'argent pour compiler, le seule compilo que j'avais de dispo était GCC. Et qu'avait-on comme choix il y a quatre ans ? C et ses variantes, Fortran et Ada. J'ai choisi Fortran parce que que c'était ce qui se rapprochait le plus du Basic, de l'époque où je bricolais sur des PC avant que Linux émerge. Donc, j'utilise Fortran aujourd'hui comme j'utilisais Basic autrefois, la fin justifiant les moyens. Mais je fais pire encore en faisant des appels à la ligne de commande pour lancer des utilitaires comme "ls" pour trier les posts par l'ordre de leur nom de fichier ; de même, pour le basculement du terminal en mode "raw". Je tenais aussi que ce logiciel puisse être modifiable par un quelconque bidouilleur de mon espèce : ce qui implique une chaîne de compilation la plus courte possible et nécessitant le moins de savoir académique. C'est pourquoi j'ai fait le choix de ne pas employer de préprocesseur et utilisé abondamment la directive "include" qui y pallie. Pour la modularité, j'y ai renoncé après l'avoir codé sous forme modulaire : je suis revenu en arrière et j'ai délibérément fait une programmation à l'ancienne afin que mon code soit bidouillable plus facilement par des débutants (des semaines de travail perdues !). Autre choix, le codage en dur des CSS et des templates HTML : par expérience avec le moteur NanoBlogger, je sais que l'utilisateur est très impatient d'avoir son blog à lui et qui soit hébergé chez lui. Et même s'il est un pro de la programmation, il va se comporter comme un gamin qui détruit l'emballage de son jouet à Noël. D'où le choix d'incorporer les templates HTML et CSS à l'intérieur du code. Ainsi, on a son blog chez soi en moins de 5 minutes, même avec un cerveau enfiévré. Est-ce pénible à faire d'incorporer ces templates ? Oui, mais c'est pour la bonne cause.

      D'un point de vue plus élevé, je réfute l'argumentation que Fortran est un langage fait seulement pour les maths. Ça a été vrai à ses débuts, il y a 56 ans. Et il ressemblait beaucoup à un langage de script alors ! Depuis la norme 77, le support des chaînes de caractère est assuré et aussi il est capable d'imprimer un "hello world!" avec ses seuls mots clé et sans l'appel à une bibliothèque externe pour les entrées-sorties. Aujourd'hui, combien de langages compilé sont capables d'en faire autant ? Je soutiens (et je pense que fBlog en est une démonstration) que Fortran est un langage qui peut être utilisé aussi pour les lettres et non pas seulement pour les chiffres. Et je prendrais pour exemple le cas de LaTeX issu du monde des maths et qui est maintenant incontournable pour les sciences humaines. Ce n'est pas parce que Fortran est bon en math qu'il ne doit servir qu'à cela !

      Pour le style de codage, à défaut d'avoir trouvé un seul logiciel à usage général (cad, non scientifique) codé en Fortran, j'ai été dans l'obligation d'inventer mon propre style. Et je puis assurer que ce n'est pas une chose confortable ! Ainsi, j'ai constamment oscillé entre le style Basic avec sa forme verbeuse et mon penchant maniaque à la concision (je suis un ancien marin !). J'ai fait autant que je le pouvais pour me mettre à la place des débutants qui auraient l'envie de modifier les templates ou les paramètres. Fortran, dans son développement actuel, va vers la verbosité. Mais un excès de verbosité nuit gravement à la compréhension du code. Aussi est-ce délibérément que j'ai passé sous silence le Kind des entiers (après les avoir codés !). De toute façon ça ne changerait rien au fonctionnement de ce type de logiciel vu son usage peu intensif en math.

      Ta critique sur le paramétrage des chaînes est tout à fait fondée ! Bon, voilà mes excuses : le compilateur gfortran n'a pas encore le support de l'allocation dynamique des scalaires contrairement au compilo Intel. Pour preuve, gfortran ne peut pas exécuter tous les exemples du dernier manuel de l'IDRIS alors que le compilo Intel le fait. J'ai traîné sur ce sujet car j'avais fait le pari que gfortran assurerait bientôt l'allocation dynamique des scalaires. Bon, arrive un moment où il faut bien le sortir son logiciel ! Et certaines parties de mon code sont du brouillon d'il y a 4 ans… De toute façon, je compte bien me remettre à l'ouvrage quand gfortran aura évolué un peu plus.

      Mais, mordicus, parce que certains mots clés, certaines fonctions intrinsèques, le module intrinsèque ISO_FORTRAN_ENV appartiennent aux normes récentes, je soutiens que mon logiciel relève du Fortran 2008 dans le sens où il ne pourrait pas compiler sous le respect strict d'un standard plus ancien que F2008.
      Et que mon code soit crade, j'assume !

      • [^] # Re: Fortran...

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

        Le gros changement avec le Fortran 90, ce sont les modules et la fin des includes. Comme le langage est rétro-compatible (quasiment), les anciennes formes restent.

        Fortran est un langage ou on peux programmer sans mettre d'espace (sauf en début de ligne)… Ma mère programmait ainsi sur carte lorsque j'étais petit. Mais aujourd'hui, on utilise la forme libre très inspiré d'Ada (normal lorsqu'on voit qui est dans le comité technique).

        Je trouve personnellement que les USE avec l'instruction ONLY permet de toujours spécifier qui vient d'ou et d'avoir quelque chose de propre. Pour une personne débutante, le code est bien plus lisible à mon sens et plus facile à modifier.

        Lorsque j'ai commencé le Fortran, mes collègues faisaient tout avec. J'ai basculé à l'époque une partie des filtres en Perl car c'était bien plus rapide à développer et bien plus maintenable. Ces filtres marchent toujours tel quel à ce jour. J'avoue que c'est un truc appréciable en Perl cette pérennité du langage tout en sachant aussi évoluer (comme Fortran).

        Voila, c'était juste des remarques générales. Si tu veux absolument coder une chaîne dans du code, tu peux aussi utiliser les NAMELIST. En gros, tu écris un fichier au format NAMELIST et ton code le relit. Pour la partie CSS, cela permet de modifier ensuite le CSS sans recompiler, puisque le fichier est lu et interprété à chaud (en une seule ligne de Fortran).

        Bon courage pour la suite

        • [^] # Re: Fortran...

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

          ``Je suis soulagé que tu n'aies pas trop pris mal ma réponse… Le choix du style de codage a vraiment été une préoccupation permanente pour moi. Par exemple, spontanément j'écris "endif" ou "enddo" , plutôt que "end if" ou "end do". Comme il me semblait que la seconde manière de faire était plus intelligible, j'ai tout réécrit dans ce sens. Les indentations m'ont également posé énormément de problèmes : l'usage actuel en programmation impose d'en mettre mais Fortran limite dans la longueur des lignes.

          Par exemple, en mode concis :

          write(*,'(a)')'hello world!'

          peut se coder en mode verbeux par :

          write(unit=output_unit, fmt='(a)') 'hello world!'

          la longueur de la ligne s’accroît et l'on arrive au moment où il faut créer une continuation et mettre une deuxième ligne de code pour une seule instruction. D'où le dilemme entre aérer le code et rester lisible en évitant d'avoir une instruction qui s'étale sur plusieurs lignes.

          J'ai beaucoup apprécié les apports récents de la norme pour la labellisation possible des boucles, ce qui m'a permis (me semble-t-il) d'être plus intelligible et de me dispenser d'indenter outre mesure le code. Sans compter la possibilité fabuleuse de pouvoir sortir à un niveau précis d'imbrication de boucles et se passer des vilains "goto" !

          Concernant les fichiers externes comme ceux des feuilles de style : c'est une volonté ferme de ma part, et dès le départ, d'avoir un logiciel qui tienne en un seul binaire. Pourquoi donc ? parce que je vise un public de programmeurs de tout poil, y compris des néophytes et que je veux absolument leur simplifier la vie pour l'installation sur leur machine. D'où le choix délibéré de m'affranchir des utilitaires comme les autotools qui ne sont pas vraiment trivials à manier. Une autre raison puissante est qu'en proposant un template unique pour le HTML et peu de feuilles de style, le tout codé en dur, il y aura une compatibilité obligée entre les différents blogs créés. Ainsi, si quelqu'un créé une feuille de style géniale, n'importe qui pourra s'en inspirer pour la sienne car elle sera forcément compatible (sauf elle est liée à un binaire modifié !). Incidemment, le fait de modifier son template HTML, oblige à recompiler son binaire et par là même à le réinstaller soit-même. J'ai pensé qu'en faisant un logiciel en un seul tenant, cette opération était infiniment plus à la porté de tout un chacun. Ou pour résumer, seul la possession (et le mode d'emploi) du compilateur gfortran suffit à compiler et employer immédiatement le binaire ; l'installation du blog se faisant automatiquement à la première invocation du binaire (après questionnement) pour le mode interactif ou par l'instruction 'fblog --create-blog' à la ligne de commande.

          • [^] # Re: Fortran...

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

            L'échange est toujours instructif ;-)

            Pour la longueur des lignes, on peux rallonger à plus via une option du compilateur. En général, je fixe vers 132… en tabulant à 3 espace (j'aime pas les tabulations).

            Pour le "end do" et le "end if", la forme avec espace est mieux de mon point de vue car tu mets "end subroutine" et non "endsubroutine"… Mais je fais moi aussi partie des pointilleux ;-)

            Enfin, entre les majuscules et les minuscules, il y a pleins d'écoles ! Personnellement, je suis de l'école

            mot clef : minuscules
            variable : MAJUSCULE
            module   : PremiereLettreEnMajuscule
            function : ma_fonction  ou module@ma_function (on peux mettre des @ dans les noms !)
            
            

            Donc ton exemple devient

            write(UNIT=OUTPUT_UNIT, FMT='(a)') 'hello world!'
            
            

            Mais bon, là, tous les goûts et les couleurs sont dans la nature… Dans mon laboratoire actuel, on sens le "passif" 77 et il font l'inverse en règle générale. Moi, j'aime bien voir facilement une variable dans un langage, c'est peut être aussi pour cela que j'aime bien le $ du Perl ;-)

            Sinon, je ne suis pas fanatique des paramètres de configuration compilé en dur. Voir par exemple le windows manager DWM qui ne peux guère être utilisé que dans des environnements de niche (Voir http://dwm.suckless.org/). J'aurais tendance, pour ne pouvoir distribuer qu'un seul fichier binaire, à mettre le CSS dedans codé en dur mais de ne le prendre que s'il n'y a pas un fichier proposé à coté…

            • [^] # Re: Fortran...

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

              J'ai fait le choix de tout écrire en minuscule dans le source de fBlog, sauf pour les constantes (variables PARAMETER) pour me conformer au plus près des usages des codeurs en langage C. En effet, la convergence entre ces deux langages s'accélère ! Si, depuis toujours, il a été possible de faire de la programmation mixte entre ces deux langages, l'introduction des blocs d'interface en Fortran (et autres dispositifs) a rendu la chose bien moins pénible et bien plus facile à déboguer. Par conséquence, on peut vraiment envisager aujourd'hui de jouer avec la libc, ce qui ouvre des perspectives vertigineuses. J'ai vraiment songé à inclure des fonctions de la libc dans fBlog ; mais ayant dans l'idée de faciliter la lecture et la modification du code par les utilisateurs lambda, il n'aurait pas été cohérent d'y mettre des blocs interface, ou pire, des pointeurs ! Donc, j'ai privilégié les appels à la ligne de commande pour une plus grande facilité de compréhension. Une conséquence de ceci est que j'ai renoncé à la localisation des formats de date. J'ai contourné cet écueil en mettant la date dans le pied du post, de façon discrète, sous le format 'ccyy-mm-dd (hh:mm)' qui a l'avantage d'être à peu près universel.

              Sinon, j'utilise Kate comme éditeur et la coloration syntaxique, quoique imparfaite, apporte un grand confort visuel et compense le 'tout minuscule'.

  • # Heu

    Posté par (page perso) . Évalué à -1.

    Bonsoir,

    je suis certain d'avoir lu ici ou ailleurs l'existence de logiciels de création e sites statiques.

    Ce serait pas mal de s'en inspirer.

    Bonne soirée
    G

Suivre le flux des commentaires

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