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)

      Le post ci-dessus est une grosse connerie, ne le lisez pas sérieusement.

      • [^] # 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.

      Le post ci-dessus est une grosse connerie, ne le lisez pas sérieusement.

      • [^] # 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.

          Le post ci-dessus est une grosse connerie, ne le lisez pas sérieusement.

          • [^] # 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?

              Le post ci-dessus est une grosse connerie, ne le lisez pas sérieusement.

              • [^] # 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

                • [^] # Re: Beau travail

                  Posté par  (site web personnel) . Évalué à 2.

                  Tu devrais peut ĂȘtre utiliser des technos adaptĂ©s Ă  la collecte et Ă  l'analyse de donnĂ©e pour ça?

                  https://www.elastic.co/fr/products ?

                  Le post ci-dessus est une grosse connerie, ne le lisez pas sérieusement.

                  • [^] # Re: Beau travail

                    Posté par  . Évalué à 3. DerniĂšre modification le 28 avril 2017 Ă  15:27.

                    C’est overkill et pas KISS du tout.

                    Si j’arrive à 52304100 myons de post j’y penserais ;)

  • # lien cassĂ©?

    Posté par  (site web personnel, Mastodon) . Évalué à 3.

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

  • # 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.