• Pour #indexer sur Mac #Spotlight- des emails (fichiers *.eml) non gérés par Mail.app, il faut se lever tôt — voici la soluce :

    ouvrir /System/Library/Spotlight/RichText.mdimporter/Contents/Info.plist et ajouter <string>com.apple.mail.email</string> ; puis redémarrer l’ordi

    (trouvée ici http://ars-codia.raphaelbauer.com/2010/12/index-eml-files-using-spotlight-in-mac.html mai avec une faute)

    #eml #seenthis_outils <- ce tag car je teste un export de tous les messages seenthis au format .eml

    • Tiens j’y ai repensé ya pas longtemps, je continue à me dire que l’IMAP/format mail, est une bonne méthode de stockage et de partage de contenus. Surtout que mise à part des interfaces, il n’y a aucun blocage à modifier des contenus déjà en ligne (cf le plugin un peu basique que j’avais trouvé pour TB qui permettait de modifier un message IMAP quelconque). Il « suffirait » juste de meilleures interfaces et automatisations (par exemple générer la version HTML du mail à partir de la version texte, que ce soit en local ou sur le serveur) et on a un bon truc synchronisable, semi-décentralisé, etc.

    • oui ! C’est ce que je suis en train de tester, pour l’instant j’exporte uniquement mes propres messages au format eml, dans un seul et unique répertoire git que je pousse sur github :
      https://github.com/Fil/seenthis-messages

      Fait :

      – 1 commit par message (c’est plus lent mais c’est plus utile qu’un gros commit où il y aurait tout)

      – 1 commit par correction (non rétroactif), avec la bonne date de modif

      À faire :

      – ça marche en batch ; il faudra que ce soit plutôt fait à chaque édition sur le site (avec un délai)

      – ça marche uniquement en push (serait génial de pouvoir modifier mes posts depuis github)

      – éventuellement associer le html, pas juste le texte (mais n’est-ce pas le rôle d’un script externe… ?)

      – envoyer aussi les messages associés (favoris réponses)

      – gérer les liens entre messages et réponses

      – voir si ce n’est pas mieux de fabriquer un repo par année

      – sécurité (créer un compte github pour root@seenthis.net et l’ajouter comme collaborateur ?)
      ou alors plus simple : ouvrir le répertoire git directement sur seenthis (et ne pas du tout passer par github ; à chacun·e de voir ensuite ce qu’ille veut faire de son repo)

      (autres ?)

    • Ça c’est pour le format EML (qui est un bon choix, on peut tout mettre dedans, quitte à mettre du YAML dans le corps ou utiliser des entêtes proprios pour les trucs en plus). Mais je me dis aussi que l’IMAP+SMTP est un bon moyen de synchroniser/diffuser/dupliquer des infos entre plusieurs serveurs, plusieurs instances d’un même outil (ça évite de réinventer la roue, comme plein de projets de rézosocio décentralisé).

    • En fait je sais pas pourquoi je m’emmerde à faire la passerelle git sur le serveur … essayons de séparer les besoins :

      Le seul rôle essentiel qu’a seenthis.net, c’est de maintenir une base de textes à jour et de la rendre accessible facilement. C’est cette seconde partie qui est pas géniale actuellement, entre les RSS, l’API de consultation et l’API de backups qui sont tous limités, complexes, et lents.

      Idée : pourquoi ne pas remplacer tout ça par un simple export de données dans une arborescence assez bien foutue*, qu’on publierait alors avec un démon rsync. Chacun·e pourrait alors mettre en place des services (sauvegarde complète ou partielle, commit vers un répertoire git, système d’édition, passerelle vers #SàT, etc.) sur sa proche machine.

      * Arborescence que j’envisage à l’heure actuelle :

      2013/03/f/fil/20130301-1234-c-est-mon-anniversaire.eml

      ça permettrait de backuper « tout », ou « tout ce qui est récent » (2014/), tout ce qui est fil en listant n années, uniquement le plus récent de fil, etc.

      La partie login + timestamp + id_me permet d’identifier un message de manière unique.

    • bon il me semble que ça marche assez bien en fait ce modèle… il suffira de pondre quelques fichiers supplémentaires pour avoir éventuellement les partages, le profil, la liste des gens qu’on suit.

  • Un nouveau moteur de recherche pour seenthis

    Nous avons travaillé ces deux dernières semaines, avec @marcimat et @rastapopoulos, à la programmation d’un #moteur_de_recherche générique pour #SPIP, basé sur #Sphinx, et très adaptable à différents types de sites. En l’appliquant à #seenthis, on obtient un outil dont les caractéristiques sont assez intéressantes :

    – opérateurs logiques (et, ou, non)
    – recherche de mots parmi une liste
    #proximité
    – des #facettes permettent par ailleurs d’affiner la recherche, en proposant des #hashtags et des @people liés aux mots demandés
    – une facette de date permet de filtrer par année (2014, 2013, etc).
    – enfin, on propose plusieurs tris (par pertinence, date, ou en mettant en tête de liste les messages les plus partagés)

    Je vous laisse découvrir tout cela :
    – le moteur lui-même : http://seenthis.net/recherche
    – la documentation : http://seenthis.net/fran%C3%A7ais/article/moteur-de-recherche
    – le code d’#indexer, le plugin générique pour SPIP : http://zone.spip.org/trac/spip-zone/browser/_plugins_/indexer/trunk
    – le code du plugin qui l’adapte à seenthis : https://github.com/seenthis/seenthis_sphinx

    Commentaires et relevés de bugs sont très bienvenus.

    #seenthis_nouveautés

    • La recherche est sur le message ou sur le fil ?

      Ça peut être intéressant de chercher des messages qui contiennent une image ou une vidéo ou qui a reçu des commentaires (dans le cas où on cherche un de nos messages et que ce sont des infos qui se retiennent bien).

      Sinon une recherche sur le fil entier pour des messages qu’on recherche sur un sujet, par exemple si on cherche sur poutine et ukraine, ça peut rapporter pas mal de sujets en plus (surtout que souvent les billets sont taggés a posteriori par les autres membres)

      Rechercher des fils dans lesquels des membres de seenthis ont participé ?

      Bon c’est des idées en l’air, je sais pas s’il y a un réel besoin pour ça ?

    • La colonne de droite « follow » elle se base sur la recherche / les résultats ? Ça me met des comptes que je suis déjà en tout cas

      Edit : ha non ça permet d’affiner la recherche en spécifiant un auteur, mais si j’ai fais ma recherche avec déjà un auteur, ça va sortir aucun résultat

    • Pas compris. J’ai essayé les # et je ne sais pas si je dois affiner les recherches parce que je me suis retrouvée dans un flux sans queue ni tête...bigre ! Je crois que je suis complètement crevée !

    • #Merci

      Je n’ai fait que quelques essais de recherche. Sans problème. L’interface est super claire et les affinages très bien venus.

      Mais surtout, je vois des comptages. Alors, je n’ai pas pu m’empêcher…

      Sur une entrée vide, on compte tout. Du coup, ça fait une super façon d’entrer dans les stats…

      On a des unités statistiques différentes :
      – pour les années, apparemment, il s’agit des billets (messages initiaux). Si tu implémentes un dépliement hiérarchique par mois, outre que ça permet de préciser le filtre chronologique (surtout utile pour l’année en cours), ça permettrait d’avoir l’activité mensuelle.
      – pour les comptes (follow) et les tags, il me semble qu’il s’agit de toute l’activité (billet, commentaire, étoile)
      Là aussi, peut-être un niveau hiérarchique inférieur permettrait de ventiler entre ces 3 types d’activités (ce qui permettrait de préciser quand on cherche une réponse dans une discussion)

      Du coup, les totaux n’ont pas de raison de coïncider. Si mon interprétation est bonne, il y a eu (et il subsiste après effacement des comptes) 120000 billets (ça change tout le temps…) et comme le numéro du dernier est autour de 260400, cela fait de l’ordre de 1,2 « activité complémentaire » (commentaire ou étoile) par billet.

      Juste pour voir, j’ai fait le suivi du nombre de billets par année.

      Et l’activité des top 20 (en % du nombre de billets)
      (pour 2010, la somme des 20 follows fait 3548, alors que le nombre de billets est de 3520)

      2013

      2014

      Éventuellement, un nouveau bloc par nombre « d’activité complémentaire » pour classer les billets par intensité de la discussion ou des étoiles (souhait qui a été exprimé, me semble-t-il).

      Encore merci. Et bravo pour l’interface « naturelle » ou « invisible ».

    • Jolies déductions :)

      La facette « follow » est établie sur la base de l’attribut multivalué {auteur initial + partageurs}. Les intervenants dans la discussion ne sont donc pas comptés en tant que tels (ils sont indexés dans un autre attribut, mais pas utilisés dans l’interface : l’idée est que si je ne partage pas un billet, mes suiveurs n’ont pas forcément vocation à être alertés que je suis en train d’y discuter).

      Chacune des facettes, comme tu l’as constaté, est limitée aux 20 éléments ayant le plus fort effectif, et à condition qu’il soit > 1.

      Le système recense à cet instant 156548 billets publiés. Il existe des billets effacés (11197 dont une trace reste dans le système, sans compter ceux de quelques tests, ou du compte machin, qui ont carrément été supprimés).

      Pour ce qui est de fouiller plus avant dans les données, je pense qu’il sera plus efficace de créer des requêtes ad hoc. Le langage d’interrogation, très proche du SQL, est assez parlant.

      Par exemple pour avoir le nombre de billets publiés mois par mois :
      SELECT COUNT(*), YEARMONTH(date) as m FROM seenthis where properties.published=1 GROUP BY m ORDER BY m ASC LIMIT 1000;

      La même chose pour les billets qui répondent à un critère fulltext :
      SELECT COUNT(*), YEARMONTH(date) as m FROM seenthis where MATCH('spip') AND properties.published=1 GROUP BY m ORDER BY m ASC LIMIT 1000;

      etc.

      Concernant la suggestion de trier selon l’intensité des discussions : il n’y aurait aucun obstacle technique, sachant que les éléments nécessaires (liste des participants à chaque discussion) sont déjà indexés. En revanche, il me semble qu’il s’agit d’une fausse bonne idée : j’ai comme un doute en effet sur l’intérêt de mettre en valeur des discussions qui impliqueraient de nombreuses personnes, mais qu’aucune ne souhaiterait partager…

      La vocation du moteur de recherche est de permettre de trouver aussi rapidement que possible une information précise, les décisions doivent se baser uniquement là-dessus, pour cette page en tout cas. Mais l’outil permet d’imaginer d’autres « vues » sur les données, qui pourront servir à l’administration du serveur, à créer des pages annexes, à repérer des « corrélations » entre les sujets, des proximités entre auteurs, une analyse du « dictionnaire » global, et que sais-je encore. Tout un champ à explorer !

      PS : la doc de SphinxQL : http://sphinxsearch.com/docs/current.html#expressions

    • Tu sais que l’utilisateur est d’abord et avant tout pervers : il utilise les outils qu’on lui donne pour faire tout autre chose avec… Et, donc, oui je sais qu’il s’agit de recherche, pas de stats. Tavaikapa mettre des comptages.

      Blague à part, en fait, je ne sais pas comment faire pour rentrer dans les tables de ST à des fins statistiques. À l’occasion (R ?), je jetterais bien un œil…

    • Oui @fil, pour la mise en avant des discussions « chaudes » (celles ayant le plus de participants et/ou celles ayant le plus de messages), je ne voyais pas ça spécialement dans la page de recherche. Mais dans une autre vue à part ce serait bien oui.

      (Dans le même thème, un truc qui pourrait être bien, hors interface, ce serait aussi un flux Atom des commentaires postés par les gens qu’on suit.)

    • @intempestive à priori ça semble compliqué d’utiliser le raccourci @truc à la fois pour du fulltext et pour spécifier un auteur ; mais sinon, la recherche de « commentaires seenthis », triée par pertinence, te donne bien la loi de nicolasm comme deuxième résultat.

    • (une loi qui porte mon nom la classe .. ah mince c’est moi qui l’ai créée...)

      Le menu pour affiner la recherche par facette semble avoir des bugs :

      http://seenthis.net/recherche?recherche=%23permaculture+%40nicolasm+%23agriculture

      – le tag agriculture n’est pas déjà coché dans le menu
      – si je clique sur le tag alimentation ça me met cette url = http://seenthis.net/recherche?recherche=%23agriculture&tag=%23alimentation (ça vire mon pseudo et le tag permaculture) alors que j’imaginais que ça rajoutais le tag alimentation en contrainte supplémentaire ? Même souci avec les facettes par auteur pour http://seenthis.net/recherche?recherche=%23agriculture+

    • @homlett le moteur est accessible en RSS et en JSON :
      http://seenthis.net/?page=sphinx.rss&recherche=sphinx
      http://seenthis.net/?page=sphinx.json&recherche=sphinx
      Attention c’est de la version alpha, je changerai probablement les URLs une fois que ce sera testé et stabilisé.

      À noter les deux flux proposent des données complémentaires : uri, title, date, @login de l’auteur, tags et « snippet », c’est-à-dire l’extrait du contenu avec les mots repérés mis entre <b> (à styler comme tu veux, le gras rendant assez moche).

      Ce qui manque je pense, à ce stade, c’est de pouvoir personnaliser (faire « mes messages » ou « messages de mon réseau » plutôt que « Tous les messages »).

    • @speciale le système n’affiche pas de facette s’il n’y en a pas d’intéressantes (si la facette contient 1 seul élément, ou si l’élément ne correspond qu’à un seul message) ; je pense que c’est le cas de ta requête.

    • En fait, j’ai beaucoup utilisé le moteur hier pour écrire mon dernier papier et je suis ravie de la facilité avec laquelle j’ai pu retrouver toutes les sources dont j’avais besoin. Souvent, j’associe deux termes pour mieux cibler ma recherche, et sans avoir besoin de me prendre la tête avec les opérateurs booléens, j’exhume très rapidement ce que je mettais des heures à chercher jusque là (et que je ne retrouvais généralement pas !). J’aime beaucoup le surlignage des termes recherchés et la possibilité de trier les résultats par date ou pertinence, de limiter par année, auteur, me ravit littéralement.
      Je n’ai pas eu de bugs, pas de problème et mes requêtes ont toutes abouti.

      Donc désolée de ne pas aider plus que cela, mais je suis juste la ravie de la crèche qui pensait depuis un bon moment que le gros défaut de Seenthis, c’était de ne jamais rien y retrouver !

    • <b> c’est le choix de sphinx, sans doute historique ; je le conserve par souci de simplicité (et puis c’est économique en bytes)

    • Peut-être puis-je émettre un bidule qui serait bien pratique mais je ne sais pas si c’est le sujet de cette discussion. Serait-il imaginable de mettre une étoile à côté d’une réponse. Car parfois, il y a des réponses qui mériteraient d’être mentionnées dans les recherches. Voir des possibilités d’y répondre....

    • en effet c’est hors-sujet :)

      pour gérer le développement de seenthis, on vient tout juste de mettre en place un compte github où vous pouvez envoyer des issues (problèmes ou demandes de fonctionnalités) et des pull-requests (des modifications du code source).
      https://github.com/seenthis

    • Une petite amélioration du moteur : la recherche se fait désormais à partir de la racine des mots (lemmatisation) ; ainsi le moteur trouvera les messages contenant aussi bien le pluriel que le singulier, ou bien diverses formes des verbes conjugués (c’est censé fonctionner pour l’anglais et pour le français).

      Si, à l’occasion, vous souhaitez rechercher la forme exacte d’un mot, utilisez l’opérateur = ; par exemple, une recherche de =terres évitera les messages contenant le mot terre au singulier seulement.

      (Et pour répondre à @nhoizey : il me semble probable que les plugins seenthis fonctionnent déjà pour la plupart avec SPIP 3, je n’ai pas essayé mais je ne vois pas ce qui pourrait bloquer. Si dans tes tests tu vois des bugs, n’hésite pas à les signaler ou à envoyer une pull-request sur https://github.com/seenthis )

    • Bonjour

      On m’a dit de m’adresser ici si je ne comprenais pas quelque chose.

      Comme par exemple : comment faire pour afficher sur sa page personnelle un billet d’un autre utilisateur ? Il faut le mettre en favori, c’est tout ?

      Je n’ai pas trouvé le bookmarklet en page d’accueil qui, paraît-il (dixit la page « le minimum à savoir »), transforme complètement le confort d’utilisation.

      Merci d’avance !

    • Bon, OK.
      Autre question :
      Pour suivre un thème, je n’ai pas trouvé d’autre moyen qu’utiliser le moteur de recherche, chercher le thème avec le # dans la page et cliquer dessus, puis ensuite faire « suivre le thème ».
      Il n’y a pas moyen de faire plus simple ?

    • Fondamentalement plus simple, je vois pas comment. Mais il y a un lien « thèmes » dans le bandeau du haut, vers http://seenthis.net/tags avec la liste des thèmes/tags suivis.
      Tu peux aussi directement taper l’url http://seenthis.net/tag/THEME_EN_QUESTION

      À savoir : si par exemple tu suis le thème #seenthis, tu suis avec ses sous-thèmes : #seenthis_doc, #seenthis_todo, etc. Mais bien sûr, pas l’inverse.

      Autre chose : devant chaque liens partagés, il y a un triangle. S’il est blanc, l’url n’a été partagée qu’une fois. S’il est noir, l’url a été partagée plusieurs fois. Et un clic sur le triangle renvoi vers la liste de tous les posts où elle apparait.

      Last but not least, la mise en forme :
      – du gras en encadrant avec le signe *
      – de l’italique avec le signe _
      – du code avec le signe `
      – des citations avec Shift+Tab

  • YaCy - Le logiciel libre moteur de recherche
    http://yacy.net/fr

    #YaCy est un moteur de recherche que chacun peut installer pour #indexer le #web (pages publiques accessibles par internet), pour indexer un intranet ou pour parcourir d’autres données avec une fonction moteur de recherche. YaCy peut être utilisé de façon autonome, mais sa principale force est de pouvoir fonctionner en réseau #peer-to-peer, ce qui fait que sa puissance s’accroit avec le nombre d’utilisateurs, qu’il est entièrement #décentralisé (tous les « peers » sont égaux et il n’y a pas un organisme administratif central) et qu’il n’est pas censurable et ne stocke pas le comportement des utilisateurs.

    La #liberté de l’information ainsi obtenue par le biais des logiciels libres et d’un moteur de recherche distribué est également un des objectifs du projet.

    Pour celles et ceux qui aimeraient se passer de Google search de temps à autres...

    #moteur_de_recherche #java