tag:linuxfr.org,2005:/tags/pyaggr3g470r/publicLinuxFr.org : les contenus étiquetés avec « pyaggr3g470r »2015-02-11T18:39:02+01:00/favicon.pngtag:linuxfr.org,2005:Diary/356042015-02-09T18:43:10+01:002015-02-09T18:43:10+01:00Nouveautés de pyAggr3g470rLicence CC By‑SA http://creativecommons.org/licenses/by-sa/4.0/deed.fr<p>Depuis sa présentation <a href="https://bitbucket.org/cedricbonhomme/pyaggr3g470r">pyAggr3g470r</a> a pas mal <a href="https://bitbucket.org/cedricbonhomme/pyaggr3g470r/raw/7b35ac1bdf8ee07e2a311a8a72c8fdc887d1b6ad/NEWS.rst">évolué</a>. Comme j'étais plutôt content des retours du <a href="//linuxfr.org/users/cbonhomme/journaux/pyaggr3g470r">premier journal</a>, j'ai décidé d'en écrire un second ;-)</p>
<p>Alors, quoi de neuf depuis tout ce temps?</p>
<ul>
<li>un <a href="https://bitbucket.org/cedricbonhomme/pyaggr3g470r/pull-requests?displaystatus=merged">contributeur</a> a pas mal
contribué, notamment en améliorant l'interface et en accélérant le chargement de la page d’accueil;</li>
<li>j'ai pris sur moi en ajoutant un peu de JavaScript pour rendre l'interface plus dynamique;</li>
<li>comme promis, le logiciel est maintenant disponible en Anglais et en Français;</li>
<li>il est possible d'exporter son compte dans un fichier JSON et évidemment de le ré-importer;</li>
<li>des <a href="https://bitbucket.org/cedricbonhomme/pyaggr3g470r/src/7b35ac1bdf8ee07e2a311a8a72c8fdc887d1b6ad/README.rst#rst-header-web-service">services
Web</a>
sont disponibles et permettent d'utiliser votre propre crawler pour ajouter des articles;</li>
<li>quelques diverses améliorations au niveau des performances. Mon instance locale pour les tests contient maintenant bien plus de 100.000 articles. Aucun problème noté, même la recherche avec Whoosh;</li>
<li>j'ai également fait des efforts pour simplifier le déploiement. Le déploiement sur Heroku peut être effectué avec
un bouton. Il est aussi possible d'utiliser Vagrant (voir les liens en annexe);</li>
<li>finalement, depuis peu pyAggr3g470r fonctionne avec Python 3. Il est déployé sur Heroku avec la version 3.4.2 de
Python. Du coup, je peux tester le module <a href="https://docs.python.org/3/library/asyncio.html">asyncio</a> (<a href="https://www.python.org/dev/peps/pep-3156">PEP
3156</a>). Le nouveau crawler de flux est donc encore en phase de test.
J'ai même activé la <a href="https://pyaggr3g470r.herokuapp.com/signup">page d'inscription</a> pour ceux qui voudraient tester.</li>
</ul><p>Voilà, comme toujours, je suis ouvert aux suggestions!</p>
<h3 id="liens">Liens</h3>
<ol>
<li><a href="https://pyaggr3g470r.herokuapp.com">Instance officielle</a></li>
<li>Déploiement Heroku: <a href="https://heroku.com/deploy?template=https://github.com/cedricbonhomme/pyAggr3g470r"><img src="//img.linuxfr.org/img/68747470733a2f2f7777772e6865726f6b7563646e2e636f6d2f6465706c6f792f627574746f6e2e706e67/button.png" alt="DLFP" title="Source : https://www.herokucdn.com/deploy/button.png"></a>
</li>
<li><a href="https://bitbucket.org/cedricbonhomme/pyaggr3g470r/src/3267aef266b9b2799d6fbc8a846fb96c6edccd4a/README.rst#rst-header-deploying-the-application-with-vagrant">Déploiement Vagrant</a></li>
</ol><div><a href="https://linuxfr.org/users/cbonhomme/journaux/nouveautes-de-pyaggr3g470r.epub">Télécharger ce contenu au format EPUB</a></div> <p>
<strong>Commentaires :</strong>
<a href="//linuxfr.org/nodes/104753/comments.atom">voir le flux Atom</a>
<a href="https://linuxfr.org/users/cbonhomme/journaux/nouveautes-de-pyaggr3g470r#comments">ouvrir dans le navigateur</a>
</p>
Cédric Bonhommehttps://linuxfr.org/nodes/104753/comments.atomtag:linuxfr.org,2005:Diary/349072014-04-21T22:57:08+02:002014-04-21T22:57:08+02:00pyAggr3g470rLicence CC By‑SA http://creativecommons.org/licenses/by-sa/4.0/deed.fr<h2 id="présentation">Présentation</h2>
<p><a href="https://bitbucket.org/cedricbonhomme/pyaggr3g470r">pyAggr3g470r</a> est un agrégateur de nouvelles très simple écrit en Python et est sous licence AGPL v3.0.</p>
<p>Il utilise le <em>micro-framework</em> <a href="http://flask.pocoo.org/">Flask</a>, et <a href="http://getbootstrap.com/">Bootstrap</a> comme <em>framework front-end</em>. <a href="http://www.sqlalchemy.org/">SQLAlchemy</a> est utilisé pour la gestion de la base de données et <a href="http://gevent.org/">Gevent</a> pour le téléchargement des flux.</p>
<p>Il est possible de le déployer assez facilement sur votre serveur ou en mode PaaS (Platform as a Service) sur <a href="http://heroku.com/">Heroku</a>. Plusieurs utilisateurs peuvent profiter d'une même instance (avec des comptes utilisateurs et administrateurs).</p>
<p>Il est capable de résoudre les URLs des articles (pratique avec les flux qui fournissent des adresses du type <code>feedproxy.google.com</code>) et peut être configuré pour passer par un proxy HTTP (par exemple Privoxy/Tor pour les paranoïaques) lorsqu'il n'est pas déployé sur Heroku.</p>
<p>Il est également possible d'effectuer des recherches grâce au projet <a href="https://bitbucket.org/mchaput/whoosh/wiki/Home">Whoosh</a>. Cette fonctionnalité est désactivé sur Heroku. Ce problème sera contourné dans une version futur.</p>
<h2 id="prochaines-étapes">Prochaines étapes</h2>
<p>Les principales prochaines étapes sont l'internationalisation, la recherche <em>full-text</em> pour Heroku et le faire à nouveau fonctionner avec Python 3 (oui, je travail à l'envers).</p>
<h2 id="un-peu-dhistorique">Un peu d'historique</h2>
<p>Le projet date en fait déjà de <a href="https://www.ohloh.net/p/pyAggr3g470r/analyses/latest/languages_summary">2010</a> et à l'époque utilisait <a href="http://cherrypy.org/">CherryPy</a> avec une base SQLite. L'interface était moins soignée (et je sais qu'elle est encore largement perfectible). J'ai donc eu l'occasion de tester pas mal de choses, même des algorithmes de classification.<br>
J'ai par la suite abandonné <a href="https://sqlite.org/">SQLite</a> pour <a href="http://www.mongodb.org/">MongoDB</a> (avec <a href="https://pypi.python.org/pypi/pymongo/">PyMongo</a> puis <a href="http://mongoengine.org/">MongoEngine</a>, pour tester…). Maintenant j'utilise une base <a href="http://www.postgresql.org/">PostgreSQL</a>.<br>
La base contient environ 80.000 articles (voici <a href="http://log.cedricbonhomme.org/">un export</a> assez récent) et les performances sont plutôt bonnes. J'ai utilisé cette base pour comparer ma solution utilisant Whoosh à <a href="http://www.elasticsearch.org/">ElasticSearch</a>. À ma surprise Whoosh était plus rapide pour rechercher des articles (mais bien plus lent pour indexer la base de données). Ceci dit, même si ElasticSearch avait été plus rapide je serai resté avec Whoosh car je préfère une solution plus Pythonesque et préfère éviter d'obliger l'utilisateur d'installer un serveur Java uniquement pour effectuer des recherches.</p>
<p>Le projet est bien entendu ouvert aux contributions (il dispose aussi d'un dépôt sur GitHub).<br>
J'espère que ce billet d'autopromotion aura été un minimum intéressant.</p><div><a href="https://linuxfr.org/users/cbonhomme/journaux/pyaggr3g470r.epub">Télécharger ce contenu au format EPUB</a></div> <p>
<strong>Commentaires :</strong>
<a href="//linuxfr.org/nodes/101941/comments.atom">voir le flux Atom</a>
<a href="https://linuxfr.org/users/cbonhomme/journaux/pyaggr3g470r#comments">ouvrir dans le navigateur</a>
</p>
Cédric Bonhommehttps://linuxfr.org/nodes/101941/comments.atom