lolop a écrit 3861 commentaires

  • [^] # Re: reverse

    Posté par  (site web personnel) . En réponse au journal Que faire des formats propriétaires qui n’aiment pas l’interopérabilité?. Évalué à 2.

    Tu es sûr que ce n'est pas simplement compressé ?

    Que dit la commande file sur un de leurs fichiers ?

    Votez les 30 juin et 7 juillet, en connaissance de cause. http://www.pointal.net/VotesDeputesRN

  • # On s'y fait

    Posté par  (site web personnel) . En réponse au message Idéaliste et borné. Évalué à 9.

    Avec l'habitude, tu repères les auteurs et tu relativises leurs écrits (tu vieillis et deviens sage :-).

    Des fois c'est des trolleurs bruts, tu réponds au début puis tu lâches car autre chose à faire (et de toutes façons tu ne convaincras pas quelqu'un qui n'a pas l'esprit ouvert à un vrai échange).

    Des fois c'est des personnes qui ne savent pas mettre les formes pour rester dans un échange constructif… qui peuvent apporter des choses argumentées, mais d'une façon désagréable.

    Il y a globalement du bruit, mais parfois aussi beaucoup de signal dans certaines discussions, perso je continue à apprendre des choses, ça fait un peu de la veille techno. + tout ce qui est hors info / logiciels libres (cinoche, cuisine…)

    Votez les 30 juin et 7 juillet, en connaissance de cause. http://www.pointal.net/VotesDeputesRN

  • [^] # Re: Mwai

    Posté par  (site web personnel) . En réponse au journal Laisser systemd de côté dans Debian. Évalué à 10.

    C'est pas sympa pour les chèvres !

    Votez les 30 juin et 7 juillet, en connaissance de cause. http://www.pointal.net/VotesDeputesRN

  • [^] # Re: Eh ben...

    Posté par  (site web personnel) . En réponse à la dépêche Haiku se lâche enfin. Évalué à 2.

    Oui, c'est vieux… mais on en est encore la: «Et si le thread GUI pour X raison prend du temps, alors toute l'interface graphique se fige.» dans la grande majorité des applications.
    L'API ne fait pas une architecture.

    Votez les 30 juin et 7 juillet, en connaissance de cause. http://www.pointal.net/VotesDeputesRN

  • [^] # Re: Eh ben...

    Posté par  (site web personnel) . En réponse à la dépêche Haiku se lâche enfin. Évalué à 3.

    Il y a vingt ans, si un autre thread que le thread principal voulait accéder à l'API de l'interface graphique… crash. Alors, oui, la séparation working thread/thread GUI on savait faire - mais c'était rarement fait (sous MacOS<X et Windows<95, pseudo-multithread de merde). Et si le thread GUI pour X raison prend du temps, alors toute l'interface graphique se fige.

    Votez les 30 juin et 7 juillet, en connaissance de cause. http://www.pointal.net/VotesDeputesRN

  • [^] # Re: Eh ben...

    Posté par  (site web personnel) . En réponse à la dépêche Haiku se lâche enfin. Évalué à 8.

    Les contentions d'accès au système d'affichage peuvent avoir un très gros impact. Beaucoup de systèmes d'interface graphique ne permettaient pas à d'autres threads que le thread principal (1er lancé) d'une application d'avoir accès à l'API graphique de façon correcte. (quid actuellement?)
    Le framework, qui définit comment tu organises ton code de rendu[*] + la pile graphique sont essentiels.
    Je confirme que, malgré les années passées et l'explosion de la puissance des machines et des cartes graphiques, aucun des OS Linux, Windows, MacOS ne donne la réactivité au niveau de l'interface graphique qu'avait BeOS; il y a toujours des petits blocages, des trucs qui marchent par a coup.

    [*] Par exemple (de mémoire), avec BeOS l'affichage d'un menu popup crée un thread de rendu spécifique pour ce menu, il n'est pas bloqué dans la boucle principale de l'application et son traitement des événements.

    Votez les 30 juin et 7 juillet, en connaissance de cause. http://www.pointal.net/VotesDeputesRN

  • # Cassé sur le site

    Posté par  (site web personnel) . En réponse à la dépêche Kst, outil de tracés graphiques convivial et puissant. Évalué à 2.

    https://kst-plot.kde.org/Ressources

    Votez les 30 juin et 7 juillet, en connaissance de cause. http://www.pointal.net/VotesDeputesRN

  • # Temps réel

    Posté par  (site web personnel) . En réponse à la dépêche Kst, outil de tracés graphiques convivial et puissant. Évalué à 3.

    données en flux continu

    Quels sont les moyens de communication vers Kst dans un cadre de graphiques temps réel, et les moyens de contrôle dynamique des courbes à afficher (création / suppression d'affichages) ?

    Ça m'intéresserait pour éviter de recoder certains outils de visu dans un projet.

    Votez les 30 juin et 7 juillet, en connaissance de cause. http://www.pointal.net/VotesDeputesRN

  • [^] # Re: le bon coin

    Posté par  (site web personnel) . En réponse à la dépêche Weboob atteint la maturité. Évalué à 9.

    Ça c'est le problème de l'utilisateur de weboob, pas du développeur de l'outil.

    Votez les 30 juin et 7 juillet, en connaissance de cause. http://www.pointal.net/VotesDeputesRN

  • [^] # Re: dist-upgrade

    Posté par  (site web personnel) . En réponse à la dépêche Sortie d’Ubuntu 14.10. Évalué à 6.

    Et à condition d'avoir coché la présentation des versions intermédiaires je ne sais plus où.

    Votez les 30 juin et 7 juillet, en connaissance de cause. http://www.pointal.net/VotesDeputesRN

  • # KDE et méta données

    Posté par  (site web personnel) . En réponse au message tags sur des fichiers (pas spécialement musicaux). Évalué à 4.

    Avec Dolphin et Konqueror il est possible d'associer des tags aux fichiers, et ensuite de les utiliser pour des recherches rapides.

    A tester (je sais que ça existe, mais je n'utilise pas).

    Votez les 30 juin et 7 juillet, en connaissance de cause. http://www.pointal.net/VotesDeputesRN

  • # Aller vers sssd

    Posté par  (site web personnel) . En réponse au message Authentification PAM LDAP+RADIUS. Évalué à 2.

    Ça remplace pam_ldap, nslcd et consor, et c'est plus évolué et plus intégré.

    Comme c'est du made-by RedHat, pas mal de docs sont pour cette plateforme, mais j'ai utilisé ça sur du Ubuntu server et ça tourne. Et le fichier de config est relativement clair.

    => google sssd ldap radius donnera des pistes.

    Votez les 30 juin et 7 juillet, en connaissance de cause. http://www.pointal.net/VotesDeputesRN

  • [^] # Re: Peu importe mais compression sans perte

    Posté par  (site web personnel) . En réponse au message quel format pour archiver de la musique ?. Évalué à 4.

    J'imagine que "manipuler" peut aussi signifier faire des traitements sur le son pour nettoyer les parasites liés au stockage analogique. Et là il vaut mieux avoir le son complet brut de numérisation.

    Votez les 30 juin et 7 juillet, en connaissance de cause. http://www.pointal.net/VotesDeputesRN

  • [^] # Re: Rust vs Go

    Posté par  (site web personnel) . En réponse à la dépêche Rust 0.12 : non, pas le jeu vidéo, le langage !. Évalué à 2. Dernière modification le 04 novembre 2014 à 20:12.

    Si on veut se rapprocher de l'idée Ruby.

    def even(x):
        return x%2==0

    (désolé, even n'existe pas en standard en Python à ma connaissance - peut-être dans numpy)

    Puis simplement:

    myArray = []
    mySelection = filter(even, myArray)

    (bon, ça retourne un itérateur, si on veut les valeurs dans une liste: mySelection = list(filter(even, myArray)))

    Bon, avec la fonction on peut aussi écrire l'expression de liste-compréhension de façon plus claire:

    mySelection = [ x for x in myArray if even(x) ]

    Votez les 30 juin et 7 juillet, en connaissance de cause. http://www.pointal.net/VotesDeputesRN

  • [^] # Re: Rust vs Go

    Posté par  (site web personnel) . En réponse à la dépêche Rust 0.12 : non, pas le jeu vidéo, le langage !. Évalué à 2.

    Perso je me pose moins de question avec:

    myArray = []
    mySelection = [ x for x in myArray if x%2==0 ]

    Votez les 30 juin et 7 juillet, en connaissance de cause. http://www.pointal.net/VotesDeputesRN

  • [^] # Re: Le type "set" ?

    Posté par  (site web personnel) . En réponse au message Algo ; Evitez les doubles "boucles" ?. Évalué à 3.

    Si tu utilises un set (ou frozenset), tu ne boucles plus sur la liste d'IPs. Il n'y a plus qu'une boucle sur ton fichier de log, le test de présence de l'IP de log dans ta collection est juste une opération ~simple~¹.

    Il y a sûrement un équivalent en Perl au set Python, transforme ta liste d'IP dans cet outil, et déjà tu gagneras beaucoup sans trop toucher ton code.

    voir avec le Regexp::Assemble de M.Barrett - comme tu es déjà en Perl…

    ¹ En Python l'opérateur in appliqué à une liste fait comme toi, une boucle sur les éléments à la recherche de celui que tu testes. Par contre, l'opérateur in appliqué à un set/frozenset c'est calcul de la clé de hachage si elle n'est pas déjà présente, mapping de celle-ci à l'index dans la table de répartition des clés, et identification (ou non) de la présence de ce que tu recherches (avec éventuellement parcours de qq valeurs s'il y a des collisions - cf un des autres commentaires et les liens accompagnant).

    Votez les 30 juin et 7 juillet, en connaissance de cause. http://www.pointal.net/VotesDeputesRN

  • [^] # Re: Regexp::Assemble

    Posté par  (site web personnel) . En réponse au message Algo ; Evitez les doubles "boucles" ?. Évalué à 4.

    Trouvé un outil similaire à Regexp::Assemble en Python (ça peut toujours servir):
    https://bitbucket.org/haypo/hachoir/wiki/hachoir-regex

    Votez les 30 juin et 7 juillet, en connaissance de cause. http://www.pointal.net/VotesDeputesRN

  • [^] # Re: Le type "set" ?

    Posté par  (site web personnel) . En réponse au message Algo ; Evitez les doubles "boucles" ?. Évalué à 3. Dernière modification le 29 octobre 2014 à 15:22.

    Correction, Regexp::Assemble est très intéressant. Juste vérifier qu'il n'y a pas de matchs incorrects (ie. connaître la forme/le type d'info dans les logs - qu'on ait pas plusieurs champs d'IP où il faut en ignorer certaines, sinon le pré-traitement fait perdre pas mal vis à vis de la solution).

    Votez les 30 juin et 7 juillet, en connaissance de cause. http://www.pointal.net/VotesDeputesRN

  • [^] # Re: Le type "set" ?

    Posté par  (site web personnel) . En réponse au message Algo ; Evitez les doubles "boucles" ?. Évalué à 2.

    Désespérant.

    []

    Votez les 30 juin et 7 juillet, en connaissance de cause. http://www.pointal.net/VotesDeputesRN

  • [^] # Re: Le type "set" ?

    Posté par  (site web personnel) . En réponse au message Algo ; Evitez les doubles "boucles" ?. Évalué à 3.

    Tu cherches quoi ? Tu as quelque chose à proposer sans avoir d'info sur la forme des lignes de logs?

    Je n'ignore rien, l'extraction de l'IP du log peut être coûteuse, sa recherche en O(n) l'est au moins autant… sinon beaucoup plus s'il y a beaucoup d'adresses dans sa "grosse liste d'addresses IP". S'il a quelques milliers d'adresses IP dans sa liste, alors une recherche séquentielle est énormément plus coûteuse qu'une opération d'extraction.

    Mais si Kwiknclean donne la forme de ses logs, il y aura probablement quelqu'un pour l'aider à écrire la regexp optimale qui va bien (peut-être pas moi sur les regexp).

    J'ai modifié l'algo pour comparer la recherche en séquentielle (ie. dans la liste) à la recherche dans le set. Pour rappel, l'équivalent de la "gosse liste d'IPs" fait ~140000 entrées.

    #!/usr/bin/python3
    # -*- encoding: utf-8 -*-
    
    import pprint
    import time
    
    # Fichier 1.5Mo, lu en une seule fois pour pouvoir reboucler dessus.
    with open("/usr/share/dict/french", encoding='utf-8') as f:
        mots = f.read().splitlines()
    
    print("Nombre de mots:", len(mots))
    smots = set(mots)
    
    # Fichier 917K. Lu en une seule fois, mais on pourrait faire au fur et à mesure.
    with open("/usr/share/dict/american-english", encoding='utf-8') as f:
        eng = f.read().splitlines()
    
    # Comptage des mots anglais présents dans le français.
    # En utilisant la liste de mots:
    t = time.time()
    cpt = 0
    for m in eng: 
        if m in mots:
            cpt += 1
    temps = time.time() - t
    print("Mots communs:", cpt, "en", temps, "par recherche dans la liste.")
    
    # En utilisant le set de mots:
    t = time.time()
    cpt = 0
    for m in eng: 
        if m in smots:
            cpt += 1
    temps = time.time() - t
    print("Mots communs:", cpt, "en", temps, "par recherche dans le set.")

    Et ça donne (temps en secondes):

    pointal@soupir:~$ python3 collisions.py 
    Nombre de mots: 139719
    Mots communs: 6139 en 350.167192697525 par recherche dans la liste.
    Mots communs: 6139 en 0.022248506546020508 par recherche dans le set.

    Sans commentaire.

    Votez les 30 juin et 7 juillet, en connaissance de cause. http://www.pointal.net/VotesDeputesRN

  • [^] # Re: Le type "set" ?

    Posté par  (site web personnel) . En réponse au message Algo ; Evitez les doubles "boucles" ?. Évalué à 3.

    Faudrait voir dans les détails comment ils se débrouillent (http://www.laurentluce.com/posts/python-dictionary-implementation/ => ils redimensionnent dès qu'une table de hachage est pleine aux deux tiers)… un petit test, en utilisant les dictionnaire installés:

    #!/usr/bin/python3
    # -*- encoding: utf-8 -*-
    
    import pprint
    
    # Fichier 1.5Mo, lu en une seule fois pour pouvoir reboucler dessus.
    with open("/usr/share/dict/french", encoding='utf-8') as f:
        mots = f.read().splitlines()
    
    print("Nombre de mots:", len(mots))
    smots = set(mots)
    
    # Fichier 917K. Lu en une seule fois, mais on pourrait faire au fur et à mesure.
    with open("/usr/share/dict/american-english", encoding='utf-8') as f:
        eng = f.read().splitlines()
    
    # Comptage des mots anglais présents dans le français.
    cpt = 0
    for m in eng: 
        if m in smots:
            cpt += 1
    
    print("Mots communs:", cpt)

    Me donne:

    pointal@soupir:~$ time python3 collisions.py 
    Nombre de mots: 139719
    Mots communs: 6139
    
    real    0m0.165s
    user    0m0.144s
    sys     0m0.020s

    Votez les 30 juin et 7 juillet, en connaissance de cause. http://www.pointal.net/VotesDeputesRN

  • [^] # Re: Le type "set" ?

    Posté par  (site web personnel) . En réponse au message Algo ; Evitez les doubles "boucles" ?. Évalué à 3.

    Cf le lien que j'ai donné, quand ça collissionne, ils prennent une table plus large.
    Et en plus il y a un genre de sel ajouté il y a quelques temps pour éviter les attaques via des requêtes web avec des chaines forgées qui donnaient des clés identiques.

    +il y a le lien vers les sources si tu as du temps.

    Mais, même en O(log(n)), ça serait plus rapide que du O(n/2) d'une recherche séquentielle.

    Votez les 30 juin et 7 juillet, en connaissance de cause. http://www.pointal.net/VotesDeputesRN

  • [^] # Re: Not a big deal

    Posté par  (site web personnel) . En réponse au journal Libreoffice 4.3 : Bug 81633 du tri : "It's not a bug, it's a feature !". Évalué à 7.

    Dans le logiciel pas libre, on peut simplement… ne pas te répondre (souvenir d'un bug dans les MFC que j'avais essayé de faire remonter…).

    Votez les 30 juin et 7 juillet, en connaissance de cause. http://www.pointal.net/VotesDeputesRN

  • [^] # Re: Le type "set" ?

    Posté par  (site web personnel) . En réponse au message Algo ; Evitez les doubles "boucles" ?. Évalué à 3.

    Je pertinente, à condition que sa grosse liste IP tienne en mémoire.

    Une fois chargée en mémoire la liste IP sous forme de set ou de frozenset, la recherche d'une IP de log dans l'ensemble est en O(1) — les set utilisent des tables de hachage comme les dict (redimensionnables pour limiter les collisions). Cf http://stackoverflow.com/questions/3949310/how-is-set-implemented

    Votez les 30 juin et 7 juillet, en connaissance de cause. http://www.pointal.net/VotesDeputesRN

  • [^] # Re: Oui/non

    Posté par  (site web personnel) . En réponse au message Créer un LVM contenant un disque utilisé. Évalué à 4.

    Si c'est juste pour lui une question de se former et qu'il parle juste de faire ça sur sa machine… il est fort probable qu'il soit dans une config très simple sans SAN derrière, et que ça ne lui pose pas spécialement de problème.

    Sinon une autre possibilité: la virtualisation (kvm/qemu ou virtualbox) et tester du lvm sur des disques et machines virtuelles. Ça permet de casser sans risque, voir de monter des pseudo-volumes physiques et de voir comment le lvm les agrège, etc.

    Votez les 30 juin et 7 juillet, en connaissance de cause. http://www.pointal.net/VotesDeputesRN