LupusMic a écrit 1481 commentaires

  • [^] # Re: Petit détail...

    Posté par  (site web personnel, Mastodon) . En réponse à la dépêche Sortie de Tapage 0.15. Évalué à 2.

    Comment tu sais qu'il y a de la place dans le cookie pour ça? Tu ne vérifie pas la taille. C'est un a priori de développeur. C'est un travers que nous partageons presque tous. Même moi j'en ai, et je m'insulte copieusement quand je m'en rend compte.

    Si tu n'utilises pas les magic-quotes, pourquoi ce stripcslashes?

    Ce n'est pas sha1 que je pointais, mais le CSRF possible avec $_COOKIE['mail'] craché directement dans la sortie standard (qui est à priori le document HTML.

    file_get_contents n'est pas le problème. Le problème est d'utiliser une information provenant directement du client Web pour acquérir une ressource, sans faire aucune vérification du contenu, ni aucune protection pour construire l'URL de la ressource.

    L'utilisateur va ouvrir plusieurs onglets, ou plusieurs fenêtre sur ton application, dans le même navigateur. Pour peut que le captcha soit requis pour plusieurs actions, le captcha sera certainement régénéré (sinon, il ne sert à rien), et donc les requêtes vont s'invalider les unes les autres.

    Le SDZ est malfamé. Il est à proscrire de ces sources d'apprentissage. La raison est que leurs « cours » sont remplis d'imprécisions, d'erreurs et d'a priori de développeurs débutants.
  • [^] # Re: Petit détail...

    Posté par  (site web personnel, Mastodon) . En réponse à la dépêche Sortie de Tapage 0.15. Évalué à 9.

    J'espère que non, pour l'instant, avec tout les trous de sécurité qu'il y a, ce n'est pas à conseiller.

    Quand je parle de trou de sécurité, c'est par exemple:
    '');
    Le contenu de $info provenant d'un cookie. D'ailleurs, un cookie c'est fortement limité en taille.


    $arr[$_GET['id']]['value'] = stripcslashes($_POST['txt']);
    La programmation avec les magic quotes activées, c'est mal.

    echo '// \''.time().$_COOKIE['mail'].'\' en sha1 : zone_case.dev_id = \''.sha1(time().$_COOKIE['mail']).'\';';
    Argh!

    if($_GET['code'] != 0 AND preg_match('#^[a-z0-9._-]+@[a-z0-9._-]{2,}\.[a-z]{2,4}$#', $_GET['mail']))
    Confusion entre and et && (qui n'ont pas le même comportement). Utilisation des comparaisons non-stricte (par exemple, 'toto' == 0 est toujours vrai)
    La Regex est fausse, une ignominie. En PHP, il faut utiliser filter_var pour ce genre de chose. Cette regex refuse des adresse légitimes syntaxiquement telle que toto+tartare@example.com, sans compter les .museum, etc.

    Les commentaires en français, programmer en français, ça n'a pas d'intérêt, surtout quand on écrit un logiciel libre (il n'y a pas longtemps, j'ai eu le bonheur de tomber sur des commentaires en Kanji, haha).


    $serveur = file_get_contents('http://'.$_GET['adresse'].'/ajax.php?ordre=adresse_serveur');
    Ça fait mal au postérieur ça. Très mal.


    if($_GET['captcha'] !== $_SESSION['captcha'] )
    Bug de session à l'horizon.

    Et beaucoup de copier-coller, le script ajax.php long comme un bras et pas une seule fonction à l'horizon (je n'en suis même pas à me plaindre du défaut d'encapsulation, c'est dire).

    Bref, va falloir bosser pour rendre ça utilisable. Parce qu'aucune bonne pratique de base n'est appliquée. Aucune. Bref, c'est un prototype, à ne surtout pas utiliser en production.

    Au fait, les CSS, c'est mieux que le style inliné dans le HTML.

    Une bibliothèque Javascript (jQuery, prototype ou autre) est aujourd'hui indispensable pour une application d'envergure.
    Une bonne pratique pour éviter les bogues dans Javascript, c'est de déclarer correctement les variables (en utilisant le mot-clé var) ou en précisant explicitement qu'on utilises un attribut de l'objet global (window est l'objet global dans un navigateur web).

    /* Une fonction qui permet de savoir si le visiteur est sur ça page. */
    function if_admin()
    {
    if(domaine.toLowerCase() == monadresse.toLowerCase())
    {
    return true;
    }
    else
    {
    return false
    }
    }

    C'est quand même plus simple comme ça:
    /* Is the visitor admin of this page? */
    function is_admin() { return domaine.toLowerCase() == monadresse.toLowerCase() }

    À noter que l'emploi de variables globales sans documenté est très mal venu.

    Fin bref, du taf :p
  • [^] # Re: Délocalisation

    Posté par  (site web personnel, Mastodon) . En réponse à la dépêche Brevets logiciels Oracle/Google : est-ce enfin la guerre nucléaire ?. Évalué à 2.

    La grosse différence, c'est que l'un est une légende urbaine, pendant que l'autre était le guru d'une secte.
  • [^] # Re: Traduction

    Posté par  (site web personnel, Mastodon) . En réponse à la dépêche Brevets logiciels Oracle/Google : est-ce enfin la guerre nucléaire ?. Évalué à 2.

    Moi qui croyais que portfolio, c'était du latin !
  • [^] # Re: Wifi Robin

    Posté par  (site web personnel, Mastodon) . En réponse à la dépêche Revue de presse de l'April pour la semaine 31 de l'année 2010. Évalué à 0.

    Ben c'est du Gnunux!

    Finalement, ça peut valoir le coup. Modulo le problème de la légalité de la possession d'une telle arme.
  • # Wifi Robin

    Posté par  (site web personnel, Mastodon) . En réponse à la dépêche Revue de presse de l'April pour la semaine 31 de l'année 2010. Évalué à 2.

    Je n'ai pas trouvé l'OS qui motorise la bête. Ni les logiciels installés dessus. Ni si la boîte noire qu'est Wifi Robin risque d'envoyer les informations à un « tiers de confiance ». Et vu la légalité du bousin… j'ai pas trop confiance.
  • # Il faut saluer les développeurs

    Posté par  (site web personnel, Mastodon) . En réponse à la dépêche PhpCompta sortie de la version 5.2. Évalué à 3.

    Ils connaissent la différence entre les nombres flottants et les nombres décimaux. Et ça, dans une application, ça n'a pas de prix (en dehors des conséquence d'une fausse déclaration de la TVA).

    Un petit extrait de la classe include/class_acc_compute.php:


    function compute_nd_vat() {
    if ( $this->check && $this->order > 3 ) throw new Exception ('ORDER NOT RESPECTED');
    $this->order=4;

    if ($this->amount_vat == 0 ) $this->compute_vat();
    $this->nd_vat=bcmul($this->amount_vat,$this->nd_vat_rate);
    $this->nd_vat=round($this->nd_vat,2);
    }


    Par contre, j'ai un doute sur le fait qu'il faille faire l'arrondi sur chaque ligne d'écriture, ou par total de montant HT auxquels on doit appliquer la TVA.

    Par exemple, si j'ai 10 articles à TVA 19,6, et 5 articles TVA 5,5. PHPCompta va les compter ainsi :


    le total est nul
    pour chaque TVA
    sous total est nul
    pour chaque article de TVA courante
    prix ttc = prix unitaire ht * (100 + TVA courrante /100)
    arrondir prix ttc à deux décimales
    ajouter prix ttc multiplié de la quantité au sous total
    ajouter le sous total au total


    Alors que j'aurais plutôt fait ainsi:


    le total est nul
    pour chaque TVA
    sous total est nul
    pour chaque article de TVA courante
    prix ttc = prix unitaire ht * (100 + TVA courrante /100)
    ajouter prix ttc multiplié de la quantité au sous total
    arrondir sous total à deux décimales
    ajouter le sous total au total


    D'accord, ça ne fait pas une grande différence, et sur quelques milliers d'euros on peut arriver à quelques centimes d'euros de différence. Ceci dit, j'ai déjà passé une demi-journée au téléphone avec une emmerdeuse cliente parce que son bilan comptable avait une différence de un centimes (oui, 0,01 €) avec l'export comptable que le logiciel de mon employeur produisait.

    Ceci dit, il me semble que la règle est d'utiliser une méthode et de s'y fixer durant tout le bilan comptable. Dans ce cas, peut-être que PHPCompta pourrait proposer une option dans l'algorithme de calcul ?
  • [^] # Re: Marrant

    Posté par  (site web personnel, Mastodon) . En réponse à la dépêche BonitaSoft lance le concours "Process Challenge". Évalué à 0.

    C'est quand même un téléphone sous OS propriétaire. (oui, bon, je suis rouillé)
  • [^] # Re: Canonical

    Posté par  (site web personnel, Mastodon) . En réponse à la dépêche GNOME Census : qui crée GNOME ?. Évalué à 1.

    C'est quoi le marché du Desktop ? Debian, RedHat et Suse ont toujours fournit des environnements de bureau.

    Ubuntu a percé parce qu'ils disaient qu'ils sont plus simple, plus user-friendly. Mais en fait, c'est une Debian configurée en sacrifiant la sécurité (sudo par défaut, paquets récents peu testés), en incorporant du logiciel propriétaire (pilotes privatifs), et en faisant fit de la stabilité (pour que les utilisateurs ne soient pas trop dépaysés du mon Microsoft).

    J'ai eu ma période Ubuntu, où j'en installais tout autour de moi. Mais les problèmes de stabilité font que je n'installe plus que des Debian chez des utilisateurs finaux.
  • [^] # Re: Stockage d'adresses IP : utiliser un type générique

    Posté par  (site web personnel, Mastodon) . En réponse à la dépêche La pénurie d'adresse IPv4 sera-t-elle pour le 12/12/2012 ?. Évalué à 1.

    Ce n'est pas moins souple, c'est inexistant en Java. Ceci dit, j'avais compris l'inverse de ce que tu exprimais dans le commentaire auquel j'avais réagit. J'avais lu que C/C++ étaient moins souple que Java.

    Oui, je sais, c'est mal de lire en diagonale ^^;
  • [^] # Re: Stockage d'adresses IP : utiliser un type générique

    Posté par  (site web personnel, Mastodon) . En réponse à la dépêche La pénurie d'adresse IPv4 sera-t-elle pour le 12/12/2012 ?. Évalué à 1.

    Il va falloir m'expliquer en quoi tu constate une moindre souplesse.
  • [^] # Re: Background.

    Posté par  (site web personnel, Mastodon) . En réponse à la dépêche Debian crée un Derivatives Front Desk. Évalué à 5.

    Et on les comprend, tellement leurs logiciels ne tiennent pas la route hors des sentiers battus. (au fait, au delà des anglicismes, une phrase commence par une majuscule et s'achève d'un point)
  • [^] # Re: Il ont aussi choisi Eclipse et Acceleo

    Posté par  (site web personnel, Mastodon) . En réponse à la dépêche Le Pôle Emploi s’oriente pragmatiquement vers le logiciel libre. Évalué à 2.

    Quand on voit la qualité des portails et applicatifs proposés par le Pôle Emploi, ceci explique cela. (oui, c'est un énorme Troll).
  • [^] # Re: ben oui

    Posté par  (site web personnel, Mastodon) . En réponse à la dépêche Le Pôle Emploi s’oriente pragmatiquement vers le logiciel libre. Évalué à 2.

    Il n'y a pas de crise dans le marché de l'emploi en informatique. Il y a eu une légère baisse au second trimestre 2009, mais rien de bien notable.
  • [^] # Re: PyGtk/Python3

    Posté par  (site web personnel, Mastodon) . En réponse à la dépêche Python 2.7. Évalué à -1.

    Je n'aime pas le rendu de Qt (surtout les polices, la taille des widget, etc)
    Je n'aime pas KDE.
    Qt ne se programme pas en C++. C'est du Qt C++, avec des gros morceaux de pré-processeur partout, et des classes doublons par rapport à la STL (j'en convient, il y a 10 ans il fallait bien proposer ces propres classes pour être portable. Il y a 10 ans).

    Qu'est-ce qui te gêne dans Gtkmm ?
  • [^] # Re: Fonctionnalités Python 3.1 -> 2.7

    Posté par  (site web personnel, Mastodon) . En réponse à la dépêche Python 2.7. Évalué à 1.

    Du coup la syntaxe en Python prend du sens. Merci beaucoup pour cet éclaircissement !
  • [^] # Re: Fonctionnalités Python 3.1 -> 2.7

    Posté par  (site web personnel, Mastodon) . En réponse à la dépêche Python 2.7. Évalué à 2.

    Je viens d'apprendre Python, et j'ai bloqué un moment sur ce faux ami : « comprehensive ». Ce serait mieux d'utiliser un terme français plus approprié, histoire d'éviter les incompréhensions concernant ce terme :D

    Par exemple : comprehensive list → Listes étendues/ensemblistes/complétives ?

    (C'est quand même mieux que le troll à propos de Ruby ^^;)
  • [^] # Re: Chrome sans http://

    Posté par  (site web personnel, Mastodon) . En réponse à la dépêche TIP, Jemalloc 1.0, Chrome sans http:// et autres. Évalué à 1.

    La machine qui hébergeait le serveur web devait avoir un nom distinct.
  • [^] # Re: Chrome sans http://

    Posté par  (site web personnel, Mastodon) . En réponse à la dépêche TIP, Jemalloc 1.0, Chrome sans http:// et autres. Évalué à 1.

    C'est surtout que l'entête Host est apparu avec HTTP 1.1. Avant, c'était une IP pour chaque nom de d'hôte (ce qui était logique). Point d'hôte virtuel.
  • [^] # Re: C++, un langage moderne ?

    Posté par  (site web personnel, Mastodon) . En réponse à la dépêche C++ 0xB enfin finalisé ?. Évalué à 1.

    Et moi je ne vois pas le rapport avec la choucroute. Les closures concernent l'accès à des variables issues d'une portée différente. Je ne vois pas ce que vient faire un outil d'algorithmie de calcul des chemins.

    Je pense que tu es plus avancé que moi en mathématique. Du coup, tu donnes un autre sens au mot « fermeture », et donc tu n'es pas choqué par son emploi pour les closures. Alors que pour moi, une fermeture, ça reste un loquet, une tirette, une poignée de porte, etc.
  • [^] # Re: C++, un langage moderne ?

    Posté par  (site web personnel, Mastodon) . En réponse à la dépêche C++ 0xB enfin finalisé ?. Évalué à 1.

    « Fermeture » n'est franchement pas une traduction intelligente. Elle dénote un peu plus le manque de maîtrise de l'anglais par nous autres, pauvres informaticiens. Le terme « closure » fait plus référence à la proximité (I am close to you), plutôt qu'à la fermeture. Ce qui est logique, puisque le principe des closures, c'est de maintenir des références (et non des pointeurs) vers les variables déclarées dans la portée où a eu lieu la déclaration de la fonction. Ce qui nous ramène bien au concept de proximité.
  • [^] # Re: C++, un langage moderne ?

    Posté par  (site web personnel, Mastodon) . En réponse à la dépêche C++ 0xB enfin finalisé ?. Évalué à 1.

    Je ne comprends pas pourquoi std::for_each n'est pas suffisant ?
  • [^] # Re: Base de données réparties

    Posté par  (site web personnel, Mastodon) . En réponse à la dépêche Les technos web cools du moment. Évalué à 1.

    MemcacheDB ?
  • [^] # Re: Sécurité ?

    Posté par  (site web personnel, Mastodon) . En réponse à la dépêche Lyon : Journée autour de Piwigo, galerie photo web. Évalué à 1.

    Ce n'est pas tant le nom mais plutôt l'usage qui est contestable. Le principe Poka-Yoke est un principe qui a souvent fait des ravages en PHP : magic_quote_gpc en est un avatar.

    L'article que tu lie a d'ailleurs introduit un joli bogue, et une erreur de conception de base (si les exemples n'étaient pas pris comme parole d'évangile, ça ne me dérangerais pas, mais ce code sera certainement copier-coller bêtement dans un projet quelconque).

    J'espère que vous avez prévu des séances de révision de code pour le camp :p Et on est sur DLFP, on est pas vendredi mais quand même.
  • [^] # Re: Terrible !

    Posté par  (site web personnel, Mastodon) . En réponse à la dépêche Revue de presse de l'April pour la semaine 2 de l'année 2010. Évalué à 4.

    Toi tu vis chez les bisounours. Tout le monde ne respecte pas les normes. Si personne n'émet de paquet avec un entier correspondant à l'adresse que tu prend en exemple, c'est parce que c'est impossible. Si c'était possible, ça se ferait. D'ailleurs, certains parlent déjà avec des mots de 128 bits un étrange dialecte de IP.

    Le premier protocole violé est DNS http://www.pcworld.com/article/183135/redirecting_dns_reques(...) s'en suivent SMTP, URL, HTML, etc.

    Le réseau tiens debout parce qu'il avait été pensé de manière à pouvoir s'adapter à la médiocrité de l'infrastructure. Ça semble fonctionner avec la médiocrité humaine :)