Journal taab, une tribune sans XML

PostĂ© par (site web personnel) . Licence CC By‐SA.
Étiquettes :
22
27
avr.
2017

Bonjour Nal,

Je t'écris pour te faire part de la release de taab, un nouveau moteur de tribune basé sur vue.js, pegjs, blazecss and php (désolé).

Les fritures de ce bouchot:

  • sans XML, car le backend est conforme Ă  la nouvelle (扊陀) norme (ć‰Šé™€ă“ă“ăŸă§) coutume de la moulosphĂšre: le TSV.
  • des norloges ISO 8601 ( YYYY-MM-DDTHH:mm:ss )
  • gestion du paramĂštre lastId et de l'entĂȘte X-Post-Id.

Pour ceux qui se demandent ce qu'est une tribune, un bouchot, un backend XML & co, il s'agit du vocabulaire de la moulosphÚre, un ensemble de systÚmes de messageries semi instantanées orientées vers l'incubation d'excellence, l'innovation disruptive et l'insoumission de la France.

La plus fréquentée est celle de linuxfr, mais il en existe beaucoup d'autres: les meilleures accessibles avec mon autre projet moulesque, jb3.

++ Nal

  • # Beau travail

    PostĂ© par . ÉvaluĂ© Ă  9.

    Simple et Ă©purĂ©e j’aime beaucoup.

    Comme ton autre projet de « web palmiped multipiling », jb3, celui-ci semble ĂȘtre de grande qualitĂ©.

    Tout d’abord le lien vers les sources : https://github.com/devnewton/taab , tu l‘as oubliĂ©. J’irai voir, j’aurais certainement certaines rĂ©ponses aux interrogations qui suivent.

    PHP: Il ne faut pas avoir honte, c’est un langage qui a ses avantages. Pourquoi ce choix ? À cause de l’hĂ©bergement ? Je vois que tu utilises nginx, couplĂ© Ă  uWSGI tu pourrais utiliser un langage de bien meilleure facture que PHP.

    Petite remarque, tu devrais ajouter une entĂȘte HTTP "Last-Modified" Ă  tes rĂ©ponses, ça permet de checker ton bouchot et tĂ©lĂ©charger le contenu seulement si cela est nĂ©cessaire (en envoyant soi-mĂȘme l’entĂȘte "If-Modified-Since"...)

    Est-ce que ton moteur de tribune fait du stockage (j’imagine au moins Ă  court terme) ? Tu utilises quelle mĂ©thode ?

    VoilĂ . Happy mouling!

    • [^] # Re: Beau travail

      PostĂ© par (site web personnel) . ÉvaluĂ© Ă  3.

      PHP: Il ne faut pas avoir honte, c’est un langage qui a ses avantages. Pourquoi ce choix ? À cause de l’hĂ©bergement ? Je vois que tu utilises nginx, couplĂ© Ă  uWSGI tu pourrais utiliser un langage de bien meilleure facture que PHP.

      Taab est né pour illustrer le passage à vue.js d'une vieille appli en PHP. Personne n'aurait l'idée de démarrer un nouveau logiciel avec ce langage en 2017!

      Est-ce que ton moteur de tribune fait du stockage (j’imagine au moins Ă  court terme) ? Tu utilises quelle mĂ©thode ?

      Non, mais c'est assez facile Ă  ajouter:

      • en ajoutant une double Ă©criture backend.tsv / archive.tsv directement dans le post.php
      • en appliquant un logrotate sur le fichier backend.tsv
      • en utilisant un archiveur de tribune (c'est la solution que j'ai choisi: j'utilise tout simplement jb3)

      Ce post est offensant ? Prévenez moi sur https://linuxfr.org/board

      • [^] # Re: Beau travail

        PostĂ© par . ÉvaluĂ© Ă  1.

        Personne n'aurait l'idée de démarrer un nouveau logiciel avec ce langage en 2017!
        Bah si moi ! :)

    • [^] # Re: Beau travail

      PostĂ© par (site web personnel) . ÉvaluĂ© Ă  3.

      Petite remarque, tu devrais ajouter une entĂȘte HTTP "Last-Modified" Ă  tes rĂ©ponses, ça permet de checker ton bouchot et tĂ©lĂ©charger le contenu seulement si cela est nĂ©cessaire (en envoyant soi-mĂȘme l’entĂȘte "If-Modified-Since"...)

      Le paramĂštre lastId assure cette fonction. Pour ĂȘtre plus conforme au HTTP, il faudrait plutĂŽt utiliser ETag non?

      J'ai voulu faire une tribune normale pour pouvoir tester avec des coincoins du marché, mais sur le fond:

      • les ids des posts ne servent Ă  rien.
      • la distinction login/info n'a aucun sens pour une tribune sans authentification.
      • le lastId devrait ĂȘtre du ETag.

      Ce post est offensant ? Prévenez moi sur https://linuxfr.org/board

      • [^] # Re: Beau travail

        PostĂ© par . ÉvaluĂ© Ă  2. DerniĂšre modification le 28 avril 2017 Ă  10:34.

        Le paramĂštre lastId assure cette fonction. Pour ĂȘtre plus conforme au HTTP, il faudrait plutĂŽt utiliser ETag non?

        Oui c’est peut-ĂȘtre mieux. Mais les entĂȘtes dont je parle semble ĂȘtre bien supportĂ©es. Ça marche avec les boards linuxfr et euromussels.

        les ids des posts ne servent Ă  rien.

        Je ne suis pas d’accord. CouplĂ©s aux norloges ils permettent de dĂ©terminer le bouchot d’origine avec un taux d’incertitude assez faible.

        On peut utiliser le couple (id, norloge) comme identifiant unique d’un post dans la moulosphĂšre. (avec quelques risques de collision c’est sĂ»r, j’ai du mal Ă  l’évaluer...)

        le lastId devrait ĂȘtre du ETag.

        Oui. Ou au moins ajouter l’entĂȘte Last-Modified. En PHP ça devrait pas ĂȘtre trop compliquĂ©...

        Je vais regarder cĂŽtĂ© nginx comment c’est gĂ©rĂ©, et si on peut pas lui faire ajouter automatiquement l’entĂȘte Last-Modified selon l’ñge du fichier par exemple.

        • [^] # Re: Beau travail

          PostĂ© par (site web personnel) . ÉvaluĂ© Ă  4.

          Je ne suis pas d’accord. CouplĂ©s aux norloges ils permettent de dĂ©terminer le bouchot d’origine avec un taux d’incertitude assez faible.

          Le post étant récupéré depuis un backend, pourquoi chercher une corrélation tordu? Un post vient de dlfp parce que tu l'as trouvé dans le backend de dlfp.

          Oui. Ou au moins ajouter l’entĂȘte Last-Modified. En PHP ça devrait pas ĂȘtre trop compliquĂ©...

          Tu peux aussi exposer le fichier data/backend.tsv directement et laisser ton serveur web gérer le caching.

          Ce post est offensant ? Prévenez moi sur https://linuxfr.org/board

          • [^] # Re: Beau travail

            PostĂ© par . ÉvaluĂ© Ă  3. DerniĂšre modification le 28 avril 2017 Ă  13:07.

            Tu peux aussi exposer le fichier data/backend.tsv directement et laisser ton serveur web gérer le caching.

            Je compte exposer directement le fichier. Je ne comprends pas Ă  quel caching tu fais allusion...

            Si je fais un GET sur l’url sans spĂ©cifier If-Modified-Since dans l’entĂȘte (ou utiliser un ETag) le serveur doit me renvoyer le contenu, que celui-ci ait changĂ© ou pas... et je ne peux pas trop envoyer moi-mĂȘme cette entĂȘte car je n’ai pas de Last-Modified rĂ©pondu par le serveur (je sais pas trop quelle date mettre...).

            Je fais donc un HEAD afin d’avoir juste les entĂȘtes pour savoir si je dois faire un GET pour avoir le contenu ou bien ce n’est pas la peine (dans ce cas je prends mon cache local).

            Mais bon. J’ai l’impression que je me prends la tĂȘte pour rien et que ça aurait du sens de procĂ©der ainsi si le contenu faisait 4km de long... mais lĂ , limite, je ferais peut-ĂȘtre mieux de rĂ©cupĂ©rer le contenu Ă  chaque fois...

            Le post étant récupéré depuis un backend, pourquoi chercher une corrélation tordu? Un post vient de dlfp parce que tu l'as trouvé dans le backend de dlfp.

            J’ai besoin d’une clĂ© primaire pour mes posts, tous bouchots confondus. Pourquoi ? Parce que je pourrais trĂšs bien checker deux fois le mĂȘme backend, pour une raison X ou Y, checker un historique de backend... importer/exporter des posts d’un backend Ă  un autre...

            Du coup, comme je maĂźtrise LaRache© j’utilise la puissance d’un moteur SQL Ă  coup de 'INSERT OR IGNORE ...', et deux entiers (id et time) comme clĂ© primaire c’est parfait.

            J’ai un champ « nom de backend » mais il ne sert pas de clĂ©. Parce qu’il est personnel (ie: j’aurais pu l’appeler 'dlfp' ou bien 'linuxfr', etc...)

            Je prends un exemple, mettons que j’ai pas d’id :

            20170205123355 Mozilla... Mussel _o/

            c’est un utilisateur authentifiĂ© nommĂ© "Mussel", mais on ne sais pas sur backend il est authentifiĂ©...

            Si j’ai l’id correspondant je peux vĂ©rifier que ça correspond au Mussel de tel ou tel backend...

            Et puis... de toutes façon... l’id sert, au minimum, Ă  diffĂ©rencier deux ou plus posts dans la mĂȘme seconde, sur un mĂȘme backend :) On pourrait diffĂ©rencier les posts avec les autres champs mais ça me paraĂźt moins bien. L’id il est valorisĂ© par le moteur de base de donnĂ©es (et Ă©ventuellement les admins du backend), pas par les entrĂ©es utilisateurs...

            • [^] # Re: Beau travail

              PostĂ© par (site web personnel) . ÉvaluĂ© Ă  3.

              Je n'ai pas tout compris, mais j'ai l'impression que tu utilises le post id pour faire cradement ce que tu pourrais proprement :-)

              Quelles fritures cherches-tu à implémenter?

              Ce post est offensant ? Prévenez moi sur https://linuxfr.org/board

              • [^] # Re: Beau travail

                PostĂ© par . ÉvaluĂ© Ă  2.

                Quelles fritures cherches-tu à implémenter?

                Toutes !

                Pour l’instant c’est avoir un backend fĂ©dĂ©rĂ© des bouchots sur lequel je pourrais me baser pour de futures fritures Ă  forte valeur ajoutĂ©e.

                Ça marche bien, lĂ  c’est en test. Mais pour l’instant ce backend fĂ©dĂ©rĂ© n’est pas servi.

                J’ai dĂ©jĂ  un autre projet qui, entre autre, enregistre des tribunes, Zir... (ne cherche pas sur WikipĂ©dia...). J’avais fait un script shell vite fait pour visualiser diffĂ©rentes stats... du coup j’ai ajoutĂ© la tribune bci

  • # lien cassĂ©?

    PostĂ© par (site web personnel, Mastodon) . ÉvaluĂ© Ă  3.

    Le premier lien https://taab.bci.im/ renvoie une 502

    #tracim pour la collaboration d'équipe __ #galae pour la messagerie email __ dirigeant @ algoo

  • # XML considered harmful ?

    PostĂ© par . ÉvaluĂ© Ă  3.

    De toute façon, gocoincoin/goboard va rafler le marché des coincoins dÚs sa sortie ...

  • # Mise en prod’

    PostĂ© par . ÉvaluĂ© Ă  3.

    J’ai testĂ© l’installation de taab, sur un mutualisĂ© OVH, rien Ă  dire, ça marche out-of-the-box !

Suivre le flux des commentaires

Note : les commentaires appartiennent Ă  celles et ceux qui les ont postĂ©s. Nous n’en sommes pas responsables.