j_m a écrit 863 commentaires

  • [^] # Re: Source des données

    Posté par  . En réponse au journal Crowd sourcing pour le nouveau data pipeline de linuxfr. Évalué à 2. Dernière modification le 23 juillet 2018 à 20:56.

    ce qui peut être fait avec GOPA: https://github.com/infinitbyte/gopa

    Pourquoi pas. C'est bien configurable?

    Tu penses qu'on peut tout remplacer avec ca? Extraire les dates de creation et tout ce qu'on veut?

    Moi je vais continuer sur le truc que j'ai propose mais si tu avances dans cette direction ou quelqu'un d'autres, je participerai volontier a ameliorer les requetes ES pour avoir quelque chose d'un peu mieux que Duck Duck go.

  • [^] # Re: Source des données

    Posté par  . En réponse au journal Crowd sourcing pour le nouveau data pipeline de linuxfr. Évalué à 2. Dernière modification le 23 juillet 2018 à 20:13.

    Pour répondre à la dépêche, je ne trouve pas que le problème est pris dans le bon sens. AMHA il faut limiter le crawling de linuxfr.

    Je suis d'accord. J'ai commence la premiere partie, qui doit downloader les pages de linuxfr et je fais mes tests de parsing localement sur une copie de page qui est dans le repertoire resources de mes unit tests.

    Si quelqu'un d'autre travaille sur cette partie, j'espere qu'elle fait de meme.

    Il vaut mieux le faire une fois et fournir une archive (ça pourrait même être mis à dispo par l'équipe de manière (bi ?)mensuelle). À partir de là tout ceux que ça intéresse peuvent monter leur propre solution.

    Oui, parser une fois, pour avoir des donnees de test ca sera bon.

  • [^] # Re: je demande au grand méchant

    Posté par  . En réponse au journal Recherche sur DLFP. Évalué à 2. Dernière modification le 23 juillet 2018 à 19:57.

    est ce qu'elastisearch permet de modifier l'algo de scoring?

    oui

    Ok si c'était simple, ca serait déjà fait. d'autant plus qu'il y a sans doute des spécialistes du domaine qui fréquentent linuxfr.

    Je ne sais pas a quel niveau on peut parler de specialiste, mais c'est assez proche de mon domaine de travail.

    • les dates étaient elles intégrées au score de pertinence?

    Je ne sais si c'etait les cas, mais c'est possible.

    • les notes (ne pas indexer les articles avec un score négatif, déjà)?

    c'est possible aussi. Mais il faut tester pour voir si ca donne de bon resultat

    • elastisearch construit il automatiquement un début d ontologie, une reconnaissance lexicale? (je suis en train de me documenter sur le sujet et de rtfm)

    Je ne sais pas ce qu'est une ontologie.

    Mais si tu veux extraire une semantique des textes, extraire une semantique similaire de la requete et faire un matching de la requete contre les documents dans ce nouvel espace semantique ben alors il faudra sans doute passer par d'autres outils. Ca sera plutot keras et autre outils de machine learning. Ce sont des choses interessantes que j'aimerai essayer mais je n'y connais encore rien.

    Mais je pense qu'on commencer par qc chose de plus simple.

    Moi ce que j'ai penser c'est de faire un version proche de la configuration de base de ElasticSearch, c'est-a-dire ou l'importance des termes est pondere par un score de type tf-idf et d'ajouter un score lie a la date.

    Une deuxieme version pourrait etre de considere la requete de l'utilisateur comme une requete booleenne. Ce sont des OU et des ET logique, ca permet d'etre tres selectifs et de retourner tres peu de resultat. On pourrait ensuite trouver un moyen d'ordonner le resultat par date.

    Ca ca va etre facile. Ce que je ne sais pas encore comment on va faire, c'est pour gerer les synonymes ou des choses comme ca.

    je suis en train de me documenter sur le sujet et de rtfm

    Moi, je lis ca en ce moment, c'est gratuit: https://nlp.stanford.edu/IR-book/

    où pourrait on discuter du sujet sans polluer ?

    J'ai commence ce journal pour la partie scraping web: crowd-sourcing-pour-le-nouveau-data-pipeline-de-linuxfr

    J'ai divise ca en trois partie pour que chacun puisse developer des morcaux independemment des autres, dans le language de son choix. J'ai commence la premiere partie en Scala. Mais peut-etre que je la reecrirais en Haskell, ca peut etre marrant.

    Tu peux partir sur autre chose, ou donner ton avis sur le plan.

  • [^] # Re: Merci !

    Posté par  . En réponse au journal Crowd sourcing pour le nouveau data pipeline de linuxfr. Évalué à 7.

    Mon dieu. J'ai attire des spammeurs.

    Ca doit etre a cause des buzzwords. J'aurai du me relire :-/

  • # + intégration continue

    Posté par  . En réponse au journal Faites des tests !. Évalué à 5.

    Tout à fait d'accord pour les tests.

    Ensuite il faut s'assurer que les test sont bien exécutés avant chaque merge d'une Pull Request dans master. Il y a moyen de faire faire le boulot par un petit script mais le mieux c'est de mettre en place un outils d'intégration continue.

  • [^] # Re: je demande au grand méchant

    Posté par  . En réponse au journal Recherche sur DLFP. Évalué à 7. Dernière modification le 21 juillet 2018 à 14:56.

    ok.

    https://github.com/linuxfrorg/linuxfr.org/blob/master/db/schema.rb donne le schéma de la base.

    en la remplissant chez moi de garbage, je devrais pouvoir faire des essais recherche "full text".

    mais comment juger ensuite de la pertinence ou non d'une solution?
    une solution fonctionnelle ne garantit pas des résultats pertinents.

    un pull request et vous nous lisez?

    Moi ce que je ferai c'est de remplir une base de donnees avec les vrais journaux, depeches et commentaires (et les dates parce que les gens trouvent ca important). Pas besoin du schema complet. J'ai juste besoin du contenu a rechercher et des liens vers les pages.

    Ensuite je fais des petits scenario de tests a base des commentaires qu'on trouve sur la page ici.

    Par exemple: enumerer les articles recents sur 0AD, trouver un article que j'ai lu, un commentaire que j'ai ecris. Puis ensuite je demanderai aux gens de tester les resultats.

    J'aurai fais ca de facon tout a fait independante de la base de code du site linuxfr.org. Je fais une petite page web avec un champ de recherche, et j'affiche une liste de resultats avec un petit resume et un lien vers la page, comme Duck duck go. Ensuite si ca plait je vais faire des pull request pour l'integrer a linuxfr.

  • [^] # Re: Anonymisation

    Posté par  . En réponse à l’entrée du suivi Dump anonymisé de la base de données. Évalué à 2 (+0/-0). Dernière modification le 21 juillet 2018 à 10:58.

    Ca dépend de l'utilisation. Moi pour tester un outil de recherche j'ai besoin de beaucoup de contenu. Peut etre que scraper le site serait plus approprié.

    Pour les autres usages faut voir. Ne reprendre les données que de quelques utilisateurs consentants peut suffire.

  • [^] # Re: Anonymisation

    Posté par  . En réponse à l’entrée du suivi Dump anonymisé de la base de données. Évalué à 2 (+0/-0). Dernière modification le 20 juillet 2018 à 23:10.

    Je ne pense pas que cela marcherait. Il y a quelques règles du genre on ne peut pas voter sur son propre commentaire

    J'avais pense aussi aux votes et comme apparemment les votes sont enregistres separement (et temporairement) dans une db Redis il y avait moyens que ca passe quand meme.

    Mais avec le commentaire du bas, qui dit qu'il faut garder les auteurs de commentaires, je deduis que l'anonymisation consiste a ne pas montrer plus d'info que ce qu'on voit quand on navigue sur le site et pas moins.

  • [^] # Re: Une fonction lambda

    Posté par  . En réponse au message filter request json avec un param. Évalué à 2.

    L'annotation de type sur la methode du haut est un peu foireuse appremment:

    def part_commune(lambda_fun):
        o =  {
            "abcdef": [{"@odata.id": "id1"}],
            "efgh": {"@odata.id": "id2"}
        }
        return lambda_fun(o)
  • # Une fonction lambda

    Posté par  . En réponse au message filter request json avec un param. Évalué à 2. Dernière modification le 20 juillet 2018 à 21:39.

    Ca ressemble un peut a ton code. je ne sais pas si c'est tres idiomatique par contre:

    def part_commune(l: lambda dict: dict):
        o =  {
            "abcdef": [{"@odata.id": "id1"}],
            "efgh": {"@odata.id": "id2"}
        }
        return l(o)
    
    def toto():
        return part_commune(lambda x: x["abcdef"][0]["@odata.id"])
    
    def titi():
        return part_commune(lambda x: x["efgh"]["@odata.id"])
    
    print(titi()) #id2
    print(toto()) #id1
  • # Anonymisation

    Posté par  . En réponse à l’entrée du suivi Dump anonymisé de la base de données. Évalué à 2 (+0/-0).

    Est-ce que ca serait possible de remplacer tous les user_id par un seul et meme user_id dans le dump? Si le code source peut tourner avec ca, ca fera une bonne anonymisation, ca pourrait etre suffisant pour beaucoup d'usages et se faire avec quelques regex.

  • [^] # Re: je demande au grand méchant

    Posté par  . En réponse au journal Recherche sur DLFP. Évalué à 2.

    Pour la recherche, on a eu pendant un temps un ElasticSearch pour faire ça, mais ce n'est pas simple d'avoir des résultats pertinents. Les gens avaient du mal à trouver ce qu'ils cherchaient et passer finalement le plus souvent par un moteur de recherche externe. Si quelqu'un est motivé, on peut retenter le coup d'un moteur de recherche interne.

    J'essaierai bien avec Elastic Search. C'est facile d'obtenir un dump de la db?

  • [^] # Re: je demande au grand méchant

    Posté par  . En réponse au journal Recherche sur DLFP. Évalué à 3.

    Pour implémenter la recherche il existe des solutions :
    Coté serveur :

    https://github.com/activerecord-hackery/ransack
    https://github.com/Casecommons/pg_search

    Pourquoi pas elasticsearch?

    Ca me semble etre le truc evident pour de la recherche full-text.

    pg_search a l'air de proposer quelque chose de similaire cependant.

  • [^] # Re: Page blanche

    Posté par  . En réponse au journal Open Earth View - Consultation avant création d'une startup. Évalué à 0. Dernière modification le 19 juillet 2018 à 22:18.

    je vais faire une analogie et comme toutes les analogies elle a ces limites.

    J'adore les analogies!

    J'entends parler d'un livre, je vais chez mon libraire. Le livre en question est sous cellophane et il n'y a pas résumé sur le 4eme de couverture. De deux choses l'une, soit il a été écrit par un auteur que je connais et que j’apprécie, je l’achète qd même (je l'ai déjà considéré comme fiable). Par contre, si je ne connais pas l'auteur et que je n'ai pas la moindre possibilité d'avoir une idée sur son contenu, et bien je le laisse sur son rayonnage.

    Et si tu pouvais ouvrir le cellophane et prendre connaissance de l'oeuvre en 2 min. gratuitement, offert par l'artiste, juste en appuyant sur un bouton?

  • [^] # Re: Page blanche

    Posté par  . En réponse au journal Open Earth View - Consultation avant création d'une startup. Évalué à 2.

    Ma remarque est peut être celle d'un vieux con mais j'utilise l'extension noscript. Quand j'arrive sur un site et que la page est entièrement blanche car tout est bloqué, je passe immédiatement mon chemin.

    C'est du WebGL, c'est ton navigateur qui doit calculer et executer le modele 3D. Tu as donc besoin d'activer l'execution de script.

    Apres, ton commentaire est quand meme bizarre. Tu proposes quelque chose? Tu demandes une explication?

  • [^] # Re: ouaa je ne connaissais pas la notation yoda! trop cool

    Posté par  . En réponse au journal Guido van Rossum se retire de la direction de Python. Évalué à 3. Dernière modification le 15 juillet 2018 à 10:15.

    Ça a été discuté un million de fois lors de son introduction et tu trouveras facilement les arguments en cherchant un peu. Même en type de retour tu verras rapidement les limitations.

    J'ai checké un peu les discussions et il y a énormément de bruit.

    L'essentiel est résumé par Sufflope j'ai l'impression, ce n'est pas intégré avec consistance dans la bibliothèque standard (Map.get peut retourner null par exemple) ni dans les bibliothèques tierces.

  • [^] # Re: ouaa je ne connaissais pas la notation yoda! trop cool

    Posté par  . En réponse au journal Guido van Rossum se retire de la direction de Python. Évalué à 4.

    On est pas obligé d’en être fier, et on peut aussi utiliser les annotations et Optional (même si cette classe est assez risible dans son concept…).

    Pourquoi est-ce que le concept est risible?

    Ca ressemble a ce qu'on voit dans les languages fonctionnels et qui marche assez bien. Il y a meme une methode map et une flatMap.

  • [^] # Re: Ou bien pandas (outil python)

    Posté par  . En réponse au message quel outil pour traiter une base de données moyenne. Évalué à 3.

    Panda, c'est quand meme un peu compliqué. Très difficile d'anticiper le type d'objet que tu vas obtenir si tu fais un group by par exemple. Il faut avoir une image mentale de toute la hierarchie de classes qu'il y a derriere un DataFrame, les multi index, les series et j'en passe.

    On se rend compte a quel point SQL est bien foutu. C'est d'une perfection vertigineuse. Je love SQL.

  • [^] # Re: Bonne nuit

    Posté par  . En réponse au journal J'ai testé... me faire électriser. Évalué à 2. Dernière modification le 13 juillet 2018 à 21:02.

    Notez que c'est pas forcément un conseil a suivre. Parlez a votre medecin avant de vous lancer dans des efforts extrêmes.

    Pour ce qui est des conseils a Denis. Puisque tout le monde y va du siens, moi je vote pour la consultation du psychologue!

  • [^] # Re: Bonne nuit

    Posté par  . En réponse au journal J'ai testé... me faire électriser. Évalué à 4.

    le sport j'y crois pas trop quand meme car une fois j'avais fait bcp de sport et je n'ai pas dormis mieux apres

    Apres 1 an sans sport je suis sorti et j'ai fais un peu plus de 4 heures de vélo et ca m'a bien assomé.

    En rentrant à la maison j'ai tenu tranquillou 1h30 le temps de prendre ma douche et de manger puis j'ai eu un gros abattement soudain et j ai bien dormi 10h.

    Sinon j'ai aussi fais 7 heures de vélo par jours pendant 3 mois et je dormais 10h par nuit. 19h-5h en camping sauvage. Je suis revenu a la normale sur un mois.

  • [^] # Re: Heu bien voilà ?

    Posté par  . En réponse au journal [Énigme] Vœu de silence et épidémie. Évalué à 2. Dernière modification le 11 juillet 2018 à 21:21.

    On pourrait deviner que personne n'est encore malade ?

    Rien ne dit qu'il y au moins un malade le premier jour.

    Tu parles d'introduire une duree d'incubation de la maladie? C'est une bonne question. Mais je pense qu'il faut developper le probleme etape par etape, resoudre les etapes les plus simples nous fera progresser dans la comprehension du probleme pour resoudre les etape suivantes.

    1. Pas de contagion, pas de duree d'incubation.
    2. Avec contagion, peut-etre represente par un parametre de la vitesse de la propagation,
    3. Introduire un parametre de duree d'incubation

    J'ai pose mais question en pensant au cas 1.

  • [^] # Re: Heu bien voilà ?

    Posté par  . En réponse au journal [Énigme] Vœu de silence et épidémie. Évalué à 2.

    Pour moi il faut que tous les moines soient malade si sinon pas de départ

    Vraiment? Tu peux le prouver? Je pense que je peux prouver qu'il y a bien un départ avec seulement un malade. Mais il part plus tôt.

    Aussi la maladie doit être progressive sinon pas moyen de déduire qu’on est soit même malade

    Maladie progressive? Tu veux dire contagieuse? Je ne vois pas le rapport.

    Et qu'est ce qui se passe si tu ne vois aucun malade le premier jour? Tu ne peux pas deviner quelque chose?

    Ou si tu vois 1 seul malade le premier jour et qu'il est toujours la le deuxième jour?

  • [^] # Re: as tu plus d'info sur Sapiens

    Posté par  . En réponse au journal Lecture pour cet été. Évalué à 3.

    Comment est-ce que tu as constitué ta liste? Ce n'est pas le noyau commun du bouddhisme. Tu as dû ratisser assez large dans les pratiques.

  • [^] # Re: Le C++ est terrible... et ce journal l'illustre bien

    Posté par  . En réponse au journal Une structure partiellement constante en C++. Évalué à 2.

    Au départ, un problème dont on n'est pas sûr qu'il en soit un, et à l'arrivée, une solution dont on n'est pas sûr qu'elle a un intérêt.

    Oui, je suis peut-être un peu sec et à l'emporte-pièce, mais franchement… ai-je tort?

    Je ne vois pas l'interret non plus de melanger des constantes avec des variables.

    Mais utiliser des elements de syntaxe exotique a contresens ne me semble pas etre une faute du langage mais du programmeur.

    En Scala j'ai aussi des moments d'inspiration pour utiliser un element de syntaxe un peu rare. J'essaie mais je reviens toujours a une syntaxe plus commune quand il n'y a pas d'avantage clair. Parfois il y a bien un avantage.

    Mais scala a une des grammaire les plus simple parmi les language a typage statique. Le probleme serait d'avoir un grand nombre d'element de syntaxes peu connues, qui marchent vraiment et qui surprennent regulierement le programmeur.

  • [^] # Re: Super comme devinette

    Posté par  . En réponse au journal [Énigme] Vœu de silence et épidémie. Évalué à 8.

    Grosso merdo c'est un mec qui t'explique que pour surmonter la finitude de notre existence les neuro-typiques (ie. les pas intelligents) se consolent dans le partage de la routine et la résignation face à l'ennui. Il explique comment l'école forme à cela, entre autres.

    Ah, je vois.

    Mais Anicca dans le cadre de la meditation, je n'appelerais pas ca de la resignation face a l'ennui. Tu as fait le choix de consacrer du temps a la meditation parce que tu penses que ca va te faire du bien et tu as besoin d'aide pour surmonter les impulsions qui te poussent a interrompre ta meditation. Ca peut etre l'ennui, mais plus courrament ca va etre de revasser, checker tes mails ou faire quelque chose qui t'apparait soudainement tout a fait urgent.

    Tu as le meme probleme avec d'autres activites qui demandent un haut niveau d'attention. Comme relire un chapitre dans un livre de math si tu ne le fait pas souvent. Il y a de bonne chance qui tu subisse plein d'impulsions qui t'en detournent ou que tu commences a t'evader dans des revasseries. La aussi, Anicca. Respire calmement et attend que cette impulsion s'estompe.

    Ce n'est pas de la resignation, c'est choisir en pleine conscience ce que tu fais de ton temps.