Journal Présentation de Serge : un outil de veille Libre

Posté par  . Licence CC By‑SA.
30
13
mar.
2018

Sommaire

Bonjour à tous !

Avant tout chose, je tiens à dire que je développe avec mes collègues, 2 projets en rapport avec le Libre, dans ce journal je vais parler du deuxième projet, Serge. Le premier est de loin le plus important et je vous ferai un article dessus en fin de semaine.

Il est important à noter que nous avons monté une entreprise Cairn Devices, afin de développer le premier projet, l’Open Computer. Serge est quant à lui né d’un besoin que l’on avait, c’est-à-dire faire de la veille de manière efficace. Après avoir développé un petit script, nous avons décidé de pousser un peu pour en faire un vrai logiciel utilisable par tous.

Logo Serge

Mais c’est quoi Serge ?

Serge est une application web de veille technologique et industrielle (multi-utilisateur, multi-machines) sous GPLv3. Serge (Serge Explore Recherche et Génère des E-mails) (ça marche aussi en anglais :) ) permet de récupérer au quotidien des informations dans les médias, publications scientifiques, brevets de l’OMPI ou réseaux sociaux. Serge est en beta-test gratuit et accessible depuis ce lien : https://vigiserge.eu/
Pour ceux qui s’y connaissent, Serge est écrit en Python 2.7 pour le coeur et en PHP7+HTML5+CSS3 pour l’interface utilisateur. Pour le moment, certaines parties du code ne sont pas super propres, mais nous travaillons sur ce point.

Les fonctionnalités

La recherche dans les médias s’effectue via les flux RSS. Vous pouvez donc ajouter n’importe quel flux RSS. Si vous n’avez pas directement le lien du flux RSS, vous pouvez donner une simple URL d’une page. Cette page va être scannée pour trouver les flux RSS et ces derniers seront ajoutés à vos sources.
Nous avons aussi créé un programme qui répare les flux RSS. Non, ce n’est pas une intelligence artificielle, nous avons juste fait une étude sur 20 000 liens et ressortie les cas de figure les plus récurrents.

Capture d'écran de Serge

Une fois que vous avez ajouté une source, il faut appliquer au moins un mot-clef à cette source pour que Serge effectue les recherches d’articles qui sont susceptibles de vous intéresser. Si vous voulez tous les articles de votre source, nous avons mis en place une balise “:all”. Vous pouvez faire des recherches plus avancées en utilisant 2 mots-clefs liés par un “+”. Par exemple, utilisez “Planète+Mars” vous évitera d’obtenir des articles qui ne parlent que du mois de mars ou d’une certaine barre chocolatée. Serge cherchera ces deux mots-clefs indépendamment dans un article et s’il trouve les deux, Serge vous suggéra cet article. Serge va aussi chercher à éviter les doublons dus à une correction d’un article. En effet, un article dont l’auteur corrige des fautes de frappe peut se retrouver une deuxième fois dans le flux RSS.

Capture d'écran de Serge

Serge recherche aussi dans les articles scientifiques et les brevets de l’OMPI sous forme de requête. Vous pouvez rechercher un mot-clef dans une partie précise d’un article (Titre, abstract, corps). Lier ces recherches avec des opérateurs logiques (OR, AND, NOT) et organiser le tout avec des parenthèses. Une requête peut être extrêmement longue si vous le souhaitez.

Serge permet toute sorte de personnalisation, comme par exemple choisir le fond d’écran pour les résultats, d’enregistrer ou non si un article est lu. La communication des résultats par mail avec quelles conditions et la façon dont les résultats sont triés dans le mail. Mais aussi la communication des alertes par SMS. Bon, il y a encore d’autres options. Il y a peu nous avons fait une refonte du menu d’option qui était devenu bordélique, j’ai écrit un petit article sur une méthode que j’ai expérimenté pour cela (une méthode UX). L’article : https://busy.org/@gspohu/design-retour-d-experience-du-tri-de-cartes

Modèle économique

Pour le moment, Serge est en beta et toutes les fonctionnalités sont gratuites. Le but est d’exploiter Serge avec un modèle de type SaaS, avec des fonctionnalités premium (l’envoi de mail, de SMS et la réception de la veille via flux RSS), donc le premium n’est pas bloquant.

Serge étant un logiciel Libre sous GPLv3, il est bien sûr possible d’installer sa propre instance sur son propre serveur dédié. Néanmoins, pour les entreprises intéressées par Serge et voulant l’utiliser en local, nous fournirons un système de support.

Si vous avez d’autres idées pour nous soutenir dans le développement de Serge, elles sont les bienvenues en commentaire.

Les fonctionnalités à venir

Mais Serge est toujours en beta, donc, oui, il manque des fonctionnalités (mais il ne manque pas de bug par contre …).

  • Suivi des agendas (iCal) et leur détection de la même manière que les flux RSS

  • Support des Regex pour les recherches sur les flux RSS, ça, c’est pour les pros utilisateurs ;)

  • Ajout du Wiki. Le Wiki est un élément très important, nous nous basons sur MediaWiki pour le développer. Le but est de permettre aux utilisateurs d’indexer leur veille sur des pages spécifiques (d’y ajouter des détails, etc) et de les partager avec les personnes de leur choix. Pour le moment, le wiki est encore en développement. C’est assez compliqué de bien configurer MediaWiki pour un usage page privée/public/semi-privée, donc il n’est pas suffisamment stable pour être passer en beta, mais nous espérons le proposer bientôt

  • Traduire Serge en Allemand, Espagnol et Chinois. Si vous souhaitez apporter votre contribution dans ce domaine, contactez-moi

  • Ajout des statistiques sur la page "Paramétrage", afin d'optimiser le paramétrage de la veille. En cours de test sur le serveur de dev

  • Mise en place du système de veille sur Twitter et Facebook

  • Passer Serge en Python 3, mais nous devons maintenir une compatibilité python 2.7, pour un de nos clients, ça va pas être simple ….

  • Ajout d'une documentation pour les développeurs qui veulent contribuer (ou fork) et d’une documentation pour les administrateurs système qui veulent mettre en place une instance de Serge

  • Ajout d'un système de gestion du statut légal des brevets, nous cherchons à nouer un partenariat avec The Lens, une organisation australienne qui bosse dans le domaine

  • Ajout d'un système d'export des résultats de Serge et d'export des packs de veille

  • Ajout d'un système de fork des packs de veille

  • Mise en place du responsive design de Serge, donc n’allez pas sur Serge avec votre mobile, en ce moment, car ce n’est pas terrible

Conclusion

Voilà vous savez tout sur Serge, merci d’avoir lu. Néanmoins, si vous avez des questions, n’hésitez pas à les poster en commentaire, j’irai y répondre.

Je remets le lien de la beta au cas où : https://vigiserge.eu/
Voilà le lien du GitHub : https://github.com/ABHC/SERGE
Et le guide utilisateur : https://github.com/ABHC/SERGE/wiki/Guide-d'utilisation

  • # Je me suis trompé

    Posté par  . Évalué à 1.

    Désolé, j'ai ajouté par accident un espace dans le lien pour l'instance de test beta. Donc le lien c'est bien :
    https://vigiserge.eu/

    Préventes du Cairn Mesa | Key : https://www.kisskissbankbank.com/fr/projects/cairn-mesa-key

  • # Licence

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

    Au vu de votre modèle économique, je basculerai de la GPL vers la AGPL. Votre logiciel est clairement un service web et dans ce cas, l'AGPL me semble préférable pour un certain nombre de composant.

    • [^] # Re: Licence

      Posté par  . Évalué à 0.

      Le problème, c'est que je ne me suis pas encore assez penché dessus, mais je pense que tu dois avoir raison. Prochainement, je vais lire la licence AGPL attentivement, pour voir si je suis bien ok avec tout ce qu'elle dit et je changerai peut-être la licence de Serge.

      Sinon tu penses quoi de Serge en lui-même ?

      Préventes du Cairn Mesa | Key : https://www.kisskissbankbank.com/fr/projects/cairn-mesa-key

  • # Il tombe à pic

    Posté par  . Évalué à 1.

    Je cherchais justement un outil de type, et jusqu'à présent je n'avais rien trouvé de satisfaisant, je m'en vais donc de ce pas l'essayer!

    Petite suggestion concernant le wiki, pourquoi ne pas regarder du côté de plateformes un peu plus évoluées (de type base de connaissance / intranet). Je pense par exemple à un projet comme http://www.xwiki.org/ qui permet de gérer plus finement les autorisations sur les différentes pages d'un Wiki.

    • [^] # Re: Il tombe à pic

      Posté par  . Évalué à 1.

      Merci beaucoup de ton commentaire.
      Alors je ne connais pas xwiki, mais je vais me renseigner (merci du partage). La configuration est peut-être plus accessible.

      Sinon pour Serge, s'il y a des fonctionnalités qui te manque, n'hésite pas à m'en faire part, j'étudierai la possibilité de les implémenter.

      Préventes du Cairn Mesa | Key : https://www.kisskissbankbank.com/fr/projects/cairn-mesa-key

      • [^] # Re: Il tombe à pic

        Posté par  . Évalué à 1.

        Hello,

        J'ai déjà une première remarque, sur les rubriques de gestion de la veille.
        Il y a un petit bouton qui permet d'activer ou désactiver une veille.

        Il me semble utile de pouvoir connaitre son état d'un seul coup d’œil sans avoir à passer la souris dessus. Une couleur différente du bouton pourrait indiquer que la requête est actuellement active.

        J'ai ajouté les packs de veille Linux et sécurité informatique hier. Mais je n'ai toujours rien quand je vais sur l'écran principal. J'ai regardé la documentation mais je ne vois pas ce que je peux vérifier ou modifier pour m'assurer que cela peut effectivement me donner un résultat.

        A plus tard,

        Nicolas

        • [^] # Re: Il tombe à pic

          Posté par  . Évalué à 1.

          Bonjour,

          Je fait également partie de l'équipe de Cairn Devices donc je vais pouvoir répondre à tes questions.

          Pour ce qui est du design des tags le sujet est en débat en interne. Nous ne sommes pas tous d'accord à ce sujet. Disons pour résumer que ceux qui ont les meilleurs cônes voit assez bien les nuances de gris entre ce qui est activé et ce qui ne l'est pas et ceux qui ont des cônes déplorables préfèrent les couleurs.

          Donc je te remercie d'apporter ton avis au débat, qui aide bien les simples développeurs que nous sommes.

          Par contre, pas de chance pour toi le pack de veille, Linux est un pack vide. En fait, c'est mon collègue Gspohu qui a créé ce pack de veille. Il contient des sources, mais pas de mot-clés, parce qu'il n'a pas eu le temps depuis de le compléter.
          Donc si tu le désires tu peux créer un pack de veille sur Linux à la place de celui-ci. On serait heureux d'avoir un premier pack de veille créer par un membre de la communauté.

          J'ai aussi vérifié le second pack de veille mais celui dispose bien de mot-clés mais pas sur toutes les sources. Il est possible que les sources où il existe des mots-clés n'ait rien posté pour l'instant. Mais je vais tout même investiguer un peu plus pour voir s'il n'y a quand même pas un bug derrière.

          Je te remercie encore pour ton commentaire notamment parce qu'en vérifiant ton problème j'ai trouvé un bug. Un bug s'est glissé dans notre récente modification UX et le bouton de suppression des packs de veille ne fonctionne plus. On va régler ça sous peu.

          Si tu veux nous faire remonter des bugs c'est par ici.
          Et si tu as d'autres suggestions sur Serge ou des idées pour des nouvelles fonctionnalités, contacte-nous via cette adresse : support@cairn-devices.eu

          En tout cas merci et j'espère que Serge te plaît !

          Pré-commandez le Cairn Mesa | Key sur KKBB : https://www.kisskissbankbank.com/fr/projects/cairn-mesa-key/tabs/description

  • # Brevets... et les marques ?

    Posté par  . Évalué à 1.

    Bonjour

    Votre projet me semble particulièrement intéressant. Peut être le moyen d'abandonner à terme netvibes ?

    Sinon, s'il est possible de suivre les brevets, serait il possible de suivre des marques via la base ici-marques de l'inpi ?

    Mais comme ici-marques semble tout sauf "libre" il faudrait peut-être se rapatrier sur les services en openData de l'INPI :
    https://www.inpi.fr/fr/services-et-prestations-domaine/open-data

    • [^] # Re: Brevets... et les marques ?

      Posté par  . Évalué à 2.

      Bonjour merci de ton commentaire.

      Effectivement suivre les marques pourrait également être intéressant. Par contre travailler avec l'INPI c'est pas la peine. Serge reste un bot et ils ont un paquet de restrictions concernant l'exploitation automatisé de leurs bases de données.

      C'est pour ça que pour les brevets nous travaillons l'OMPI/WIPPO qui a vraiment un bon outil pour ça (patentscope). Du coup j'ai fait une recherche rapide l'OMPI possède bien une base de donnée de marques conséquentes mais pour l'instant j'ai pas encore trouvé l'API qui va avec.

      Mais je vais continuer à chercher parce que c'est vraiment une bonne idée ce que tu proposes là. Merci !

      Si tu en as d'autres n'hésite pas à nous contacter à cette adresse : support@cairn-devices.eu

      Pré-commandez le Cairn Mesa | Key sur KKBB : https://www.kisskissbankbank.com/fr/projects/cairn-mesa-key/tabs/description

  • # C'est bien mais...

    Posté par  . Évalué à 1.

    Bonjour,

    Initiative louable. Pour ma part, j'ai pris le contre-pied avec une logique de flux par poste/navigateur par le biais d’un module (dans les nouveautés : directement en WebExtension).

    Quelques remarques sur les sources de SERGE :

    • les sources sont un peu en bazar (je suis mal placé pour en parler mais tant pis). Exemple : "databaseConnection" est dans "handshake" ? Pourquoi ? Ce ne serait pas plus simple d'avoir un module pour toute la gestion de BDD (par exemple insertSQL) ? Et que le module ne soit qu'une interface entre une BDD au choix et non MySQL ? Voir SQLAlchemy.

    • Le choix de SQL est judicieux pour un nombre "peu élevé" (à l'échelle d'une machine s'entend…) de données : pour des comptes utilisateurs, les flux RSS, etc. J'ai un doute par contre pour le choix du contenu des flux lui-même, qui n'a pas besoin des contraintes ACID : SQL est moins performant que noSQL. De plus SQL n'est pas scalable : une montée en charge impose de faire grossir un seul serveur, ce qui n'est plus dans la logique des orientations de SI. Notamment pour des professionnels.

    • Je n'ai rien vu d'handicapant pour le passage de Python2 à Python3, sinon que vous restez sur une logique synchro. Vu que vous allez bosser sur un même serveur, une logique asynchrone semble plus adapté pour le coeur pythonnique.

    • Pour le reste, le choix d'un IU par PHP est justifié mais il reste des choses assez étonnantes :
      -- des fichiers erreurs individuellement codés à la main ??!! -> gestion par le HTaccess et redirection vers une page générique qui prend en charge l'erreur qui, par ailleurs, ne semble pas remonter au niveau admin -> pas de suivi des défauts ??!!
      -- aucune utilisation rationnelle des templates : plein de pages PHP pas utiles.
      -- pas de possibilité d'utiliser PHP pour contrôler les scripts Python ?! C'est mal -> à modifier d'urgence !

    • Sur le choix du Wiki : j'aime bien Dokuwiki dont la base est "flat". Rejoint ma remarque sur SQL/noSQL.

    … Ainsi il me semble modestement :

    • la logique d'ensemble est mal foutue : il faut un outil scallable, qui est en Python et reçoit des commandes de partout, y compris de pair (de serveurs comme lui). Les commandes validées (question de sécurité) en local et générée par PHP à la demande de l'utilisateur, par le biais du serveur Web (ou alors en interne de Python avec CGI), pour gérer l'ensemble des flux sans passer par la BDD, ce qui soulage le moteur de BDD et le renvoi à sa condition de gérer des données par de la configuration.

    • A défaut de passer en asynchrone pour Python, des tâches CRON sont peut-être plus adaptée pour des flux RSS avec un verrou pour éviter la double lecture simultanée,

    • rationnaliser les fichiers de configuration : le changement de mots de passe de BDD dans votre situation est par exemple, problématique…

    • question des sauvegardes, des insertions d'anciennes sauvegardes : pas gérées ?! Quid des défauts et des relances de tâches (cf daemonisation).

    Enfin si vraiment vous voulez du simple : serveur en Python avec des API (bien documentée et bien pensée) en REST pour donner des ordres. CURL ou WGET pour les appels, par le biais de CRON, sur le système hôte. PHP pourra ainsi dialoguer avec le coeur de Serge avec un simple "include". Vous diviserez par deux vos problèmes et la taille du code !

    Et si vraiment l'interprocessus devient impératif face à la montée en charge, toujours dans la logique d'API : XML-RPC + un verrou entre deux serveurs.

    Pour les autorisations: les JSON Web Tokens sont vos amis pour la vie.

    Bonne journée,

    Julien.

Suivre le flux des commentaires

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