Sortie de MyNews 1.0

Posté par  . Modéré par Jaimé Ragnagna.
Étiquettes :
0
11
déc.
2004
Internet
MyNews est un programme qui examine certains sites web pour rechercher de nouvelles dépêches.

Les dépêches sont stockées en base de données.

Les utilisateurs de MyNews peuvent s'abonner à ces sites pour recevoir un mail quand de nouvelles dépêches ont été rajoutées.

MyNews est écrit en Perl sous licence GNU GPL. Le projet est initié et soutenu par la société NeoSystem. MyNews définit la notion de modèle (template) pour décrire un site web et la façon d'extraire les dépêches de ce site web.

Le modèle décrit d'une part des informations générales sur le site (nom, URL de la page de dépêches...) et d'autre part les informations utiles à l'extraction.

Les informations concernant l'extraction sont des expressions régulières Perl (début de la dépêche, fin de la dépêche, identifiant, titre, date...).

Le script mynews examine la page de dépêches du site web, extrait les identifiants de dépêche et vérifie si ces dépêches ont déjà été stockées dans MyNews. Pour les nouvelles dépêches, il extrait les informations et stockent ces nouvelles dépêches. Les utilisateurs abonnés au site web reçoivent alors un mail avec un lien vers ces nouvelles dépêches.

N'importe quel site de dépêches peut être pris en compte dans MyNews, la seule contrainte étant que les dépêches soient repérées par un identifiant.

Les modèles sont stockés et maintenus le site officiel de MyNews. Lorsqu'un site web modifie le format de sa page de dépêches, nécessitant une modification du modèle, celui-ci est mis à jour sur le site officiel de MyNews. Une dépêche est générée sur ce site avec un lien permettant la mise à jour du modèle dans votre site MyNews. MyNews étant lui-même un site de dépêches, vous pouvez utiliser MyNews pour récupérer les dépêches du site officiel de MyNews afin de mettre à jour vos modèles.

Le site linuxfr.org a bien entendu son modèle MyNews...

Aller plus loin

  • # Design du site officiel

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

    Ahhh mes yeux ! C'est affreux de si bonne heure un samedi matin, j'ai failli m'étrangler avec mon pain au chocolat :-(
  • # Base de données

    Posté par  . Évalué à 4.

    Available resources for the backend are:

    * type : type of DBMS (pgsql for PostgreSQL, mysql for MySQL)


    c'est dommage que y est pas de partie arrière sqlite, parce que j'en suis pas encore au point de foutre MySQL sur toutes mes bécanes. Je trouve ça un peu dommage : on veut juste une appli, mais doit en payer le prix H24 avec un joli mysqld et ses petits ... peut mieux faire.
    • [^] # Re: Base de données

      Posté par  . Évalué à 3.

      C'est vrai que SQLite peut paraître une bonne idée pour ce genre de projet. Mais tout dépend du nombre de requetes en fait...

      Saches qu'en performances brutes sur de "simples" select, MySQL explose de très loin SQLite en performances (je n'y croyais pas, mais sur un test > 513 petits selects : 1,96s pour MySQL, 19,7s pour SQLite, sur une meme table de 3 champs et 2300 enregistrements ...). La différence est vraiment très importante.

      Si tu es amené à te servir de cette appli souvent, l'installation d'un vrai SGBD n'est donc pas un luxe.
      • [^] # Re: Base de données

        Posté par  . Évalué à 1.

        D'où l'intérêt d'utiliser un système de cache pour éviter de faire beaucoup de requêtes inutiles.
        Je voulais faire un peu pareil mais en me basant sur des flux RSS et en regroupant les news automatiquement si elles traitent du même événement (un peu comme http://news.google.fr(...) ), en utilisant d'abord PHP 5 puis après un programme en C pour traiter les news histoire de ne pas trop manger de ressources et j'hésitais justement entre mysql et SQLite.
        Au final, j'avais quand même choisi Mysql, parceque l'ouverture et la manipulation répétitive de gros fichiers de bases de données de plusieurs Mo, j'ai pas testé mais j'ai un peu peur du résultat.
        Enfin bon, l'idée est très bonne de proposer une "copie" de la base de données au format SQLite. :)
        • [^] # Re: Base de données

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

          Moi ce que je voudrai, c'est un logiciel un poil plus intelligent. Je voudrai par exemple surveiller des recherches google pour voir si de nouveaux sites ou de nouvelles news sont apparues sur le net.

          Genre, je surveille "contactless smart card" sur google (mon metier) pour voir si de nouveaux liens sont apparus dans le monde qui parlent de carte a puce sans-contact.

          Il suffirait probablement d'ajouter un modele "recherche google" au bazar mais la doc m'a semble tres tres succinte. J"ai pas compris aussi si on est tout cense se connecter a mynews ou si on fait tourner notre version privee.
          • [^] # Re: Base de données

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

            > Il suffirait probablement d'ajouter un modele "recherche google"

            Ou alors, de cliquer un peu dans google et de tomber sur http://www.google.com/alerts(...)
          • [^] # Re: Base de données

            Posté par  . Évalué à 1.

            "de nouvelles news sont apparues sur le net."

            J'y avais pensé à ça quand même ^^
            Pour google alert, je connaissais pas du tout, sinon tu peux aussi surveiller dmoz.org si la catégorie existe et que son éditeur est actif. :) Ca t'évitera de tomber sur les 300 dernières pages de google avec des sites qui n'ont rien à voir.
      • [^] # Re: Base de données

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

        Tu as fait comment ton test ?
        Autrement dit : tu as ouvert une connexion puis tu as lancé tous tes sélect ou tu as lancé 2 ou 3 select avant de fermer la connexion pour en rouvrir une autre ?
        Parce que dans ce dernier cas (probablement plus réaliste pour ce genre d'appli) tu vas voir un bon recul de mysql et des SGBD client/serveur (cause phase d'établissement de la connexion et d'authentification)

        Ceci dit je suis très étonné de tes calculs : 500 requetes en 20 secondes ça fait 25 requêtes par seconde ....
        On peut avoir les détails de ta structure ? de ta requête ? as tu activé le nosync dans sqlite ? tu fais tes sélections sur du texte ou des entiers ? tu utilises les index ?

        Parce que bon, le bench http://sqlite.org/speed.html(...) est fait par sqlite donc n'est probablement pas objectif mais eux obtiennent des stats qui n'ont tellement rien à voir que je tend à penser que soit tu es tombé sur un cas super spécifique soit tu t'es planté quelque part.

        J'ai au contraire toujours entendu dire que pour des petites applis raisonnables on obtient toujours des temps meilleurs ou similaires aux autres SGBD. Certes il ne s'agit pas de mettre de la concurence en écriture ou de supporter 6000 clients comme un Oracle mais pour ce genre d'appli c'est sensé être mieux qu'un SGBD client serveur, au pire c'est dans le même ordre de grandeur.
        • [^] # Re: Base de données

          Posté par  . Évalué à 4.

          Bonjour Eric,

          Je m'attendais à ce genre de réaction... En effet, mon test n'a rien d'un vrai benchmark et les résultats obtenus ont une portée assez restreinte et largement discutable, mais je crois néammoins informative.

          J'ai au contraire toujours entendu dire que pour des petites applis raisonnables on obtient toujours des temps meilleurs ou similaires aux autres SGBD. Certes il ne s'agit pas de mettre de la concurence en écriture ou de supporter 6000 clients comme un Oracle mais pour ce genre d'appli c'est sensé être mieux qu'un SGBD client serveur, au pire c'est dans le même ordre de grandeur.

          C'est également le genre de résultats que j'escomptais. J'ai été très surpris du résultat.

          Tu as fait comment ton test ?
          Autrement dit : tu as ouvert une connexion puis tu as lancé tous tes sélect ou tu as lancé 2 ou 3 select avant de fermer la connexion pour en rouvrir une autre ?
          Parce que dans ce dernier cas (probablement plus réaliste pour ce genre d'appli) tu vas voir un bon recul de mysql et des SGBD client/serveur (cause phase d'établissement de la connexion et d'authentification)


          1select/connexion (le pire des cas), avec un mysqld brut de coffrage (sur localhost).

          Je peux te donner toutes les infos mais ce serait long et HS. Le mieux est surement que je refasse mon test "proprement" dans de vraies conditions pour cerner la pertinence de ces résultats, et que j'en publie les résultats ici ou ailleurs pour créer une discussion autour, ce que je compte faire dans les jours qui viennent.
          • [^] # Re: Base de données

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

            Si tu fais des selects sur les mêmes données, ca n'est pas surprenant : MySQL va faire du cache alors que SQLite doit a priori refaire les accès disques à chaque fois.
          • [^] # Re: Base de données

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

            Ok (note, ce n'était pas une critique mais des questions informatives, je suis intéressé).
            N'hésites pas à remplir un journal et à poster ici l'adresse.
  • # Donc en fait c'est utile pour les sites qui n'ont pas de fils RSS ?

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

    C'est bien ça ? Parceque quand je vois "linuxfr a son propre template" je me dis "quel intérêt, ya déjà un fil RSS ?"
  • # je vois pas l'interet

    Posté par  . Évalué à 0.

    un reader de news fait a peu pres la meme chose, la seule difference, c'est le contenu qui est plus complet que ce que donne la RSS de linuxFr.
    • [^] # Pour y avoir relechi

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

      L'intérêt par rapport à un lecteur RSS est qu'il peut repertorier les news de sites qui n'ont pas de RSS. Ce soft permettrai donc de centraliser les fils RSS et les sites qui en sont dépourvus...

Suivre le flux des commentaires

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