Victor STINNER a écrit 1632 commentaires

  • [^] # Re: Sur Free

    Posté par  (site web personnel) . En réponse au journal Comment refuser la fibre optique. Évalué à 2.

    Pour bloquer un numéro, il faut avoir le numéro de l'appelant non ? Il semble que le numéro est caché dans son cas...

  • [^] # Re: Dommage..

    Posté par  (site web personnel) . En réponse au journal Comment refuser la fibre optique. Évalué à 7.

    Sauf que la fibre revient bien moins chère à l'opérateur que l'adsl: il ne paye pas FT.

    Côté support technique, je pense que c'est une qualité de ne pas dépendre de France Telecom. Ca fait 3 mois que j'ai des pertes de synchronisation ADSL sur ma Freebox (plusieurs fois par jour, ça coupe mes appels téléphoniques pour le boulot, et la nuit Internet est souvent inutilisable). J'ai déjà eu 3 interventions (dont deux avec France Telecom) et aucun n'a vraiment résolu le problème (mais j'ai l'impression que c'est moins pire).

    Bien que Free prenne assez facilement l'excuse de "France Telecom c'est des méchants, ils ne coopèrent pas" : j'ai vu comment le technicien France Telecom s'est comporté chez moi. Il parlait peu, en a profité pour râler contre Free, a fait un test inutile selon moi (test de continuité, je savais déjà que le signal passait vu que l'ADSL fonctionne une bonne partie de la journée), sans explication, et est parti. Alors que le premier technicien (Free) qui est passé m'a bien expliqué le problème, quelles étaient les étapes suivantes, les raisons probable de mon problème, etc.

    Quand je demande une intervention, on me répond que ça prendra 2 semaines car les techniciens France Telecom ne sont pas dispo avant, et pour l'horaire du rdv, c'est souvent assez large (en journée et une plage de 2h ou plus). Bon je bosse à la maison, donc ça ne me pose pas problème d'attendre le technicien, mais j'imagine que d'autres personnes doivent poser un RTT juste parce qu'ils n'arrivent pas à donner un rdv à une date et une heure arrangeante...

    Pour les détails :
    http://www.haypocalc.com/blog/index.php/2011/05/12/235-incompetences-du-support-du-fai-free

    En ce moment, la "nuit" (20h à 8h) j'ai beaucoup moins de coupures. Par contre, en journée, souvent quand un train passe : la Freebox perd la synchronisation ADSL... Ca pourrait être drôle si je n'avais pas besoin d'Internet et du téléphone pour travailler.

    Le premier technicien "Free" (sûrement un prestataire) qui est passé a été clair : Free n'offre pas un support de qualité pro car ils sont lents à cause de France Telecom. Pour le téléphone il vaut mieux éviter le dégroupage total si on est pro. Il me semble que d'autres FAI ont des accords avec France Telecom pour avoir un support plus rapide.

  • [^] # Re: Sinon...

    Posté par  (site web personnel) . En réponse au journal Comment refuser la fibre optique. Évalué à 3.

    Lundi matin,
    L'empereur, sa femme, et le p'tit prince
    Sont venus chez moi, pour me serrer la pince.
    Mais comme j'étais parti,
    Le p'tit prince a dit :
    Puisque c'est ainsi nous reviendrons mardi.

    Mardi matin,
    L'empereur, sa femme, et le p'tit prince
    Sont venus chez moi, pour me serrer la pince.
    Mais comme j'étais parti,
    Le p'tit prince a dit :
    Puisque c'est ainsi nous reviendrons mercredi.

    Mercredi matin,
    L'empereur, sa femme, et le p'tit prince
    Sont venus chez moi, pour me serrer la pince.
    Mais comme j'étais parti,
    Le p'tit prince a dit :
    Puisque c'est ainsi nous reviendrons jeudi.

    Jeudi matin,
    L'empereur, sa femme, et le p'tit prince
    Sont venus chez moi, pour me serrer la pince.
    Mais comme j'étais parti,
    Le p'tit prince a dit :
    Puisque c'est ainsi nous reviendrons vendredi.

    Vendredi matin,
    L'empereur, sa femme, et le p'tit prince
    Sont venus chez moi, pour me serrer la pince.
    Mais comme j'étais parti,
    Le p'tit prince a dit :
    Puisque c'est ainsi nous reviendrons samedi.

    Samedi matin,
    L'empereur, sa femme, et le p'tit prince
    Sont venus chez moi, pour me serrer la pince.
    Mais comme j'étais parti,
    Le p'tit prince a dit :
    Puisque c'est ainsi nous reviendrons dimanche.

    Dimanche matin,
    L'empereur, sa femme, et le p'tit prince
    Sont venus chez moi, pour me serrer la pince.
    Mais comme j'étais parti,
    Le p'tit prince a dit :
    Puisque c'est ainsi nous ne reviendrons plus.

    Faut tenir bon : la 7e fois est la bonne.

  • [^] # Re: numéro inconnu !=

    Posté par  (site web personnel) . En réponse au journal Comment refuser la fibre optique. Évalué à 9.

    Euh, y'a beaucoup plus simple pour ne pas recevoir d'appel pour passer à la fibre : déménagez à la campagne !

  • [^] # Re: Removed legacy features:

    Posté par  (site web personnel) . En réponse au journal PHP 5.4 Alpha 1 est annoncé. Évalué à 5.

    J'ai lu http://blog.runpac.com/post/php-point-sur-traits-trunk et je sais maintenant un peu mieux ce qui me dérange.

    Un trait peut accéder aux attributs et méthodes de l'objet sans que ces attributs et méthodes soient définis. Il faut donc espérer que la classe qui utilise le trait respecte les contraintes implicites exigées par le trait. Ce problème peut être limité par l'ajout de méthodes abstraites au trait.

    Les Abstract Base Class (ABC) de Python, genre d'interfaces, déclarent les méthodes abstraites dont elles ont besoin. Si une classe qui l'utilise n'implémente pas toutes les méthodes abstraites, une exception est levée. La plupart des ABC utilisent uniquement des méthodes, ce qui laisse plus de libertés au développeur qui souhaite l'utiliser (pas d'attributs imposés). Mais si une ABC utilise un attribut, c'est elle qui doit le définir. Par exemple, MappingView a un attribut protégé self._mapping qu'elle définit dans son constructeur. KeysView est basé sur MappingView et peut donc réutiliser self._mapping : l'attribut est défini dans MappingView, on sait d'où vient (c'est explicite).

    Documentation des ABC :
    http://docs.python.org/dev/library/collections.abc.html

    Le code (très clair je trouve) :
    http://hg.python.org/cpython/file/default/Lib/collections/abc.py

    La PEP associée (Introducing Abstract Base Classes) :
    http://www.python.org/dev/peps/pep-3119/

  • [^] # Re: À quoi servent tous ces flops ?

    Posté par  (site web personnel) . En réponse à la dépêche Sortie du Top 500 de juin 2011. Évalué à 2.

    certains problèmes sont résolus des millions de fois plus rapidement aujourd'hui qu'il y a 30 ans

    Donc si j'ai bien compris, soit certains calculs étaient trop long pour être lancé il y a 30 ans, soit c'était possible mais avec une précision très inférieure à ce qu'on est capable de faire aujourd'hui.

  • [^] # Re: À quoi servent tous ces flops ?

    Posté par  (site web personnel) . En réponse à la dépêche Sortie du Top 500 de juin 2011. Évalué à 2.

    Merci beaucoup pour ces précisions.

    Evidement, sur de telles machines, on lance beaucoup de calculs en même temps, par beaucoup d'utilisateurs. Donc la machine ne reste ne général pas sans rien faire, il y a toujours des choses qui tournent dessus, voir une file d'attente de jobs à faire ...

    Quoi ? Ca arrive qu'un ordinateur valant plusieurs millions d'euros ne fasse rien ?

    Comment se passe l'obtention d'un temps de calcul sur un calculateur ? Il faut coucher^Wêtre amis avec l'admin ?

  • [^] # Re: Removed legacy features:

    Posté par  (site web personnel) . En réponse au journal PHP 5.4 Alpha 1 est annoncé. Évalué à 5.

    Par contre, PHP 5.4 ajoute les "Traits" ("Horizontal Reuse for PHP"), un truc qui ressemble à de l'héritage multiple (ou un hack pour arriver au même résultat selon moi) :
    https://wiki.php.net/rfc/horizontalreuse

    Comme pour l'ajout des espaces de nommage avec leur syntaxe surprenante et une utilisation peu aisée, cette nouvelle fonctionnalité (son implémentation, sa syntaxe) me laisse perplexe. Durant l'héritage (bloc "use"), on peut changer le nom des méthodes, leur visibilité (public / private / protected), et gérer manuellement la gestion des conflits (si deux "traits" ont des fonctions (méthodes ?) qui ont le même nom). Exemple extrait de la RFC :

     <?php
     class Talker {
       use A, B {
         B::smallTalk insteadof A;
         A::bigTalk insteadof B;
         B::bigTalk as talk;
       }
     }
     ?>
    

    Python a opéré un changement radical dans Python 2.3 pour corriger des bugs tordus liés à l'héritage multiple. Un nouveau type de classe (new-style class) a été introduit pour implémenter une nouvelle méthode de résolution des méthodes (MRO, method resolution order) : C3 Method Resolution Order. Vieille documentation avec de jolis serpents en ASCII Art :
    http://www.python.org/download/releases/2.3/mro/

    Avec Python 3, les old-style class ont disparu : toutes les classes utilisent l'algorithme C3. Perl 6 et Parrot utilisent également C3, Perl 5.10 peut l'utiliser de manière optionnelle.
    http://en.wikipedia.org/wiki/C3_linearization

    Guido raconte comment Python est passé de son algo de MRO maison à C3 :
    http://python-history.blogspot.com/2010/06/method-resolution-order.html

    Les traits PHP me font plus penser aux mixins Ruby (que je ne connais pas).
    http://www.ruby-doc.org/docs/ProgrammingRuby/html/tut_modules.html

    Mais bon, l'héritage multiple et les mixins semblent être trop compliqués pour un développeur PHP (extrait de la RFC PHP) :
    To circumvent this problems multiple inheritance and Mixins have been invented. But both of them are complex and hard to understand. PHP5 has been explicitly designed with the clean and successful model of Java in mind: single inheritance, but multiple interfaces.

  • [^] # Re: passage de 5 à 6 => palier maudit ?

    Posté par  (site web personnel) . En réponse au journal PHP 5.4 Alpha 1 est annoncé. Évalué à 3.

    Il existe un module "six" pour faciliter la compatibilité entre Python 2 et Python 3 : le nom "six" vient de (Python) 2 * (Python) 3. Si son auteur était superstitieux, il aurait du prendre 2^3 (8).
    http://pypi.python.org/pypi/six

    D'ailleurs sa documentation débute par :
    The name, “six”, comes from the fact that 2*3 equals 6. Why not addition? Multiplication is more powerful, and, anyway, “five” has already been snatched away.

  • # À quoi servent tous ces flops ?

    Posté par  (site web personnel) . En réponse à la dépêche Sortie du Top 500 de juin 2011. Évalué à 5.

    À quoi ça sert d'avoir des calculateurs sans arrêt plus puissants ? Est-ce que ça permet de lancer plusieurs calculs en même temps ? Que les calculs se terminent plus vite ? Que les calculs soient plus précis ?

    Selon la page suivante, le domaine d'application est inconnu dans 30% des cas, 15% sert à la recherche (euh, quel type de recherche ?), 7% à la finance, 5% pour des services logistiques, 5% à Internet, puis beaucoup d'autres choses.
    http://www.top500.org/stats/list/37/apparea

    Pour la finance par exemple, je suppose que plus le calculateur est gros, plus on peut avoir des prévisions fiables et plus loin dans le temps.

  • [^] # Re: C'est quoi ce PulseAudio ?

    Posté par  (site web personnel) . En réponse au journal usability fail. Évalué à 5.

    "mplayer -softvol -softvol-max 1000" m'a déjà sauvé une fois :-)

  • [^] # Re: Monopole de Linux

    Posté par  (site web personnel) . En réponse à la dépêche Entretien avec des développeurs francophones d'OpenBSD - Partie 2. Évalué à 4.

    Ces clusters echangent des donnees a travers le reseau constamment pour beaucoup --> interuption HW --> code noyau execute a chaque paquet qui arrive

    Je ne pense pas qu'une interface réseau émette une interruption pour chaque paquet.

    Pour info, Linux et FreeBSD permettent de désactiver les interruptions matérielle d'une carte réseau pour faire du polling à la place. Ceci permet de gagner en performance sur des cartes gigabits.
    http://www.linuxfoundation.org/collaborate/workgroups/networking/napi
    "Observe that when the NIC receives 890Kpackets/sec only 17 rx interrupts are generated."

    http://www.cyberciti.biz/faq/freebsd-device-polling-network-polling-tutorial/

  • [^] # Re: Comment développe-t-on un nouveau gros logiciel ?

    Posté par  (site web personnel) . En réponse à la dépêche Movim, sortie de la version 0.2. Évalué à 1.

    Pour le choix de PHP, je crois savoir, si je me souviens bien, que c'est pour faciliter la multiplication de nœuds (je ne suis pas sûr que c'est le bon terme, j'utilise celui de seeks) et donc d'avoir une installation facilement accessible au commun des mortels pour l'hébergement sur serveur mutualise, voire dans un cadre d'autohébergement.

    Cela me semble justement être une barrière à l'entrée assez difficile à franchir, avoir un serveur web perso. Chez soit, il faut arriver à donner accès au port tcp/80 depuis l'extérieur, ce n'est pas gagné. Avoir un hébergeur (mutualisé ou pas) coûte des sous. Ce projet me semble donc réservé aux geeks bidouillé, ou bien je me trompe ?

    Python par exemple intègre un serveur web (basic) qui évite d'avoir à déployer Apache et PHP par exemple. Enfin, je ne sais pas si c'est plus facile à installer au final.

    Rien n'empêche d'utiliser un serveur XMPP ouvert de type APINC et de s'installer son movim maison.

    Si tu veux dire qu'il est conseillé d'installer en plus d'installer un serveur XMPP ? Ca me semble hors de porté (j'ai aucune envie d'adminstrer un truc pareil juste pour moi). Bien sûr que j'opterai pour la solution "utiliser un serveur public" (j'utilise actuellement im.apinc.org).

  • # Autre solution

    Posté par  (site web personnel) . En réponse au journal Hare krishna voudrait modifier la RFC2822. Évalué à 6.

  • # Hurd

    Posté par  (site web personnel) . En réponse au journal Hare krishna voudrait modifier la RFC2822. Évalué à 10.

    Hurd supprime la plupart des limites arbitraires, voir toutes. Un nom d'hôte peut alors faire plusieurs million ou milliard de caractères. Je pense que ce mec devrait utiliser Hurd et patcher un serveur SMTP au besoin. Bon par contre, pour patcher tous les autres serveurs web de la planète, ça va être plus long.

  • # Quelques exemples (visuels) ne feraient pas de mal

    Posté par  (site web personnel) . En réponse à la dépêche La bibliothèque Pink est sortie. Évalué à 5.

    "over 200 algorithms for image segmentation and filtering"

    Ça serait sympa d'en avoir la liste, même incomplète. Le site web de G'MIC a de nombreux exemples en image :
    http://gmic.sourceforge.net/gallery.shtml

  • [^] # Re: LXTerminal

    Posté par  (site web personnel) . En réponse à la dépêche Sortie de ValaTerm 0.3. Évalué à 2.

    Et euh, xterm c'est léger et rapide non ? Pourquoi ne pas utiliser xterm ?

  • [^] # Re: Poulsbo

    Posté par  (site web personnel) . En réponse à la dépêche Sortie du noyau Linux 2.6.39. Évalué à 2.

    Mon 1101ha va enfin pouvoir marcher correctement !

    Tiens, j'ai aussi ce modèle d'eee pc. Il n'y pas d'accélération vidéo (mplayer) ni 3D, par contre, est-ce que Xorg est un poil accéléré ? Y'a quand même 1366×768 pixels à gérer.

    Pour rappel, j'avais écrit un article sur le pilote Intel pour Poulsbo qui n'est plus maintenu :
    http://linuxfr.org/news/intel-ne-maintient-plus-le-pilote-linux-poulsbo-depuis-un-an-et

  • [^] # Re: script fuzzer ?

    Posté par  (site web personnel) . En réponse à la dépêche Rencontre sur les langages de script à l’IRILL le 1er juin 2011. Évalué à 3.

    Oui, ce sont des outils dédiés à chaque fois.

    Fusil est une bibliothèque qui factorise beaucoup de besoins courants pour écrire un fuzzer :
    - générer des données aléatoires
    - analyser finement un processus : CPU, mémoire, recherche de motif dans la sortie standard
    - analyser des fichiers de logs
    - écrire un scénario, ex : créer une fichier, puis lancer un processus, puis attendre la fin du processus
    - etc.

    L'idée serait de créer un outil pour avoir le minimum de chose à faire pour écrire un fuzzer de langage (un truc plus simple encore que fusil :)

    Chaque langage ayant son lot de spécificités, je ne suis pas sûr que tu arrives à mettre grand chose en commun. De toute façon, les auteurs de fuzzer ne veulent pas apprendre à utiliser une bibliothèque, ils préfèrent écrire leur petit outil autonome. Sûrement que Fusil est trop mal documenté :-) Fusil a des fuzzers pour Python, PHP et la fonction printf() : ils ne partagent pas de code pour ce qui est de la génération du code source (Python, PHP, C).

  • [^] # Re: script fuzzer ?

    Posté par  (site web personnel) . En réponse à la dépêche Rencontre sur les langages de script à l’IRILL le 1er juin 2011. Évalué à 3.

    Il existe déjà plusieurs fuzzers qui testent des parties différentes des langages :
    - jsfunfuzz (par exemple) pour Javascript (teste la syntaxe et des fonctions)
    - fusil-python : teste la bibliothèque standard Python
    - pyfuzz : teste la syntaxe Python
    - ...

    J'ai entendu que Mozilla utilise énormément le fuzzing pour tester Firefox (Javascript entre autres).

  • [^] # Re: C'est bien joli tout ça, mais...

    Posté par  (site web personnel) . En réponse à la dépêche HTTP Strict Transport Security. Évalué à 3.

    Le but est de protéger des attaques de l'homme du milieu (MITM). Cet homme (ou femme hein :-)) peut se faire passer pour LinuxFR en montant un proxy HTTPS pour capturer le traffic en clair. Il a juste besoin d'un certificat autosigné. Si ta banque ou LinuxFR a un certificat bien propre, tu vas avoir un vilain message d'erreur HTTPS s'il y a un proxy HTTPS sur le route (qui change le certificat HTTPS).

  • [^] # Re: Pas trop de clichés SVP

    Posté par  (site web personnel) . En réponse à la dépêche Les journées Perl 2011. Évalué à 4.

    Le seul changement incompatible que je connaisse est struct.pack() qui lance une struct.error avec Python 2.7, alors qu'avant ça n'affichait qu'un DeprecationWarning. L'avertissement était déjà affiché dans Python 2.5, alors y'avait quand même le temps de préparer la migration.

    Oh, j'ai été un peu trop vague : pack() sert à sérialiser des données (encoder en octets). Jusqu'à Python 2.6, l'encodage de nombres non signés (formats B, H, I, L, ...) tolérait les nombres négatifs en les convertissant en nombres non signés (ex: -1 devient 0xFF avec le format B). unpack(pack(...)) n'est donc plus bijectif : on ne récupère pas exactement ce qu'on a rentré (-1 devient 255). L'ancien comportement peut être surprenant et causer problème. Maintenant, il est aussi possible que des programmes reposent sur ce comportement, et vont donc arrêter de fonctionner avec Python 2.7. La code est plutôt simple à adapter pour garder le même comportement (ex: x & 0xFF pour le format B) et sera encore compatible Python < 2.7. Sur ce cas précis, effectivement Python a cassé la compatibilité ascendante.

    D'ailleurs, as-tu essayé de lancer ton projet avec Python 2.7 pour voir si Python a cassé la compatibilité ?

  • [^] # Re: parrot

    Posté par  (site web personnel) . En réponse à la dépêche Entretien avec les développeurs Python francophones. Évalué à 2.

    Aussi, il me semble que Moonlight, la version Mono de Silverlight embarque les librairies de Microsoft pour le décodage vidéo. C'est avec l'accord de Micosoft, mais oups! ce n'est pas libre.

    Mais euh, Moonlight et Mono sont dans le même dépôt source ? Est-il possible d'utiliser Mono sans installer / utiliser Moonlight ?

    Même questions pour les autres trucs "borderline" (comme tu dis) comme Windows.Forms.

    Je ne vois pas en quoi c'est un soucis pour Mono que des gens l'utilisent pour coder des trucs non libres. Je pense qu'il y a plein de logiciels libres qui tournent sur des VM non libres... et inversement ;-)

    (Il parait même que des gens développent des applications Python non libres alors que Python est libre, rooooh !)

  • [^] # Re: Pas trop de clichés SVP

    Posté par  (site web personnel) . En réponse à la dépêche Les journées Perl 2011. Évalué à 4.

    Python (pourquoi mon code plante à chaque mise à jour majeure de Python ?

    Si tu parles de Python 2 vers Python 3, il y a des outils et beaucoup de documentations pour migrer vers Python 3.

    Mais je pense que tu veux dire version 2.n vers 2.n+1. Or je n'ai jamais eu de soucis dans ce sens. Je joue plutôt à essayer de rendre compatible Python 2.n-1 un code écrit pour 2.n, et il y a pas mal d'effort dans ce sens (ex: multiprocessing existe pour Python 2.4 et 2.5). Je lis souvent que Python casse la compatibilité, or j'ai souvent vu du code Python 2.4 tourner avec Python 2.5, 2.6 et 2.7, mais jamais de code qui ne passe pas.

    Parfois, Python fait des blagues : genre le module md5 est marqué comme désuet dans Python 2.6 puis finalement n'est pas supprimé dans 2.7. Le seul changement incompatible que je connaisse est struct.pack() qui lance une struct.error avec Python 2.7, alors qu'avant ça n'affichait qu'un DeprecationWarning. L'avertissement était déjà affiché dans Python 2.5, alors y'avait quand même le temps de préparer la migration.

    Selon moi, l'API Python est trop stable, ça serait sympa de parfois faire table rase pour nettoyer les erreurs du passé. Ça a été fait en profondeur dans Python 3, mais ça serait pratique de pouvoir le faire petit à petit. En pratique, dans Python 2, quand l'API évolue, l'ancienne est conservée. Exemple : le module threading a plein de fonctions et méthodes avec des noms en double (ancienne / nouvelle convention).

    Maintenant, comme l'a écrit Antoine : je serai intéressé d'avoir un exemple d'incompatibilité entre des versions N et N+1.

  • [^] # Re: parrot

    Posté par  (site web personnel) . En réponse à la dépêche Entretien avec les développeurs Python francophones. Évalué à 2.

    Je suppose qu'il parle de la problématique des brevets logiciels qui portent sur Mono

    C'est des questions théorique, ou ça a déjà posé des problèmes pratiques ? Est-ce que les parties qui sont soumises à des brevets font parti intégrante de Mono ou bien c'est des modules optionnels ?

    ainsi que des infractions de licence que Mono aurait fait en implémentant certaines APIs non standardisées de .Net (Windows.Forms par exemple)

    Pourquoi tu parles au conditionnel ? Ca a été implémenté ou pas ? Ca pose des problèmes de licence ou pas ?

    Effectivement, je n'ai pas du tout suivi Mono et j'en suis déjà, donc je pose des questions qui peuvent paraitre idiotes :-)