Christophe Le Bot

  • Navigation rapide
Pratique de la conception numérique

Derniers commentaires

  • Test d’interface : paiement d’amendes en ligne
    • Herbaux Jean-Marie | J’ai été coupé a 15h56. Je ne parviens pas confirmer mon payement par C B via le payement.en ligne par Internet. J’entre bien les quatre groupes de chiffres et les deux...
    • Rovellotti Olivier | Ce site est un véritable cauchemar UX Excellent article http://www.natural-solutions.e u/
    • Julien | Pour info, mon e-numero etait sur le cote gauche, ecrit verticalement, sans aucun label.
  • Agence web ou SSII : que choisir ?
    • Rovellotti Olivier | La limite n’est plus aussi claire qu’avant effectivement et les différence de prix sont du l’ordre du *10. Généralement les équipes dans les agences sont plus...
  • Une excellente thèse sur Simile Exhibit
    • Olivier Rossel | Bonjour. Malgre les annees, avez vous toujours en memoire vos usages d’Exhibit? Je serais ravi d’en discuter avec vous. Cordialement, Olivier Rossel.
 

Archives de la catégorie
Génie logiciel

Magento sur le Journal du Net

Le JDN|Développeurs publie une très bonne présentation de Magento. Un tour d’horizon plutôt flatteur, mais très réaliste.

Il faut dire que son auteur, Fabrice Beck, commence à bien maîtriser la bête puisqu’il est aussi l’auteur de deux jolis modules Magento pour Fia-Net : FIA-NET Core et FIA-NET ReceiveAndPay.

Configurer Xdebug pour Eclipse PDT en utilisant un serveur de test distant

Fini le développement web approximatif ! Aujourd’hui, les applications web deviennent de véritables usines à gaz qu’il faut savoir maîtriser. Certains regrettent l’époque du développement procédural avec ses projets de moins de 2000 lignes de code, mais il faut se rendre à l’évidence : le web est la plate-forme, il a besoin d’applications riches, complexes et stables. Un exemple, Magento : 300.000 lignes de code…

Sans outils d’aide au développement, il n’est plus possible de garantir la qualité de son code. Heureusement, ils ne manquent pas, encore faut-il les installer et les configurer correctement.

Parmi les outils indispensables, le debugger et le profiler arrivent en tête. Ils permettent de tracer tout ce que le code source est censé faire : inclusions, chargement de données, valeurs de variables, temps d’exécution, contenu des objets, etc. Avec eux, on gagne déjà la moitié du temps de test ! Je devrais plutôt dire : sans eux, on ne fait pas de vrais tests !

Je vais prendre l’exemple d’une application web PHP développée avec Eclipse et son extension PDT (PHP Development Tools), en utilisant Xdebug comme debugger. Cela n’a rien d’original, des milliers de développeurs PHP utilisent cette configuration, mais je vais sortir des sentiers battus pour traiter un cas plus délicat, mais plus courant en entreprise : comment utiliser xdebug sous Eclipse quand mon serveur web de test n’est pas mon poste de travail, mais un serveur distant ?

Lire la suite »

Magento et la TVA : bientôt la fin du casse-tête

La plate-forme e-commerce Magento est un excellent projet, mais il a le défaut d’être américain. Je ne vais pas m’étendre sur les différences de point de vue entre Américains et Européens, par contre, une chose est sûre : nous travaillons très différemment.

Conséquence, Magento a eu du mal à s’adapter aux contraintes du marché européen.

Je prends l’exemple de la version 1.0, aux fonctionnalités fabuleuses, mais totalement inexploitable en France. Pourquoi ? Simplement parce qu’aux Etats-Unis, les prix sont toujours affichés hors taxes, même pour les particuliers. Du coup, impossible de gérer correctement l’affichage et le calcul des prix TTC parce que la solution ne prévoyait pas ce cas !

Il a fallu un certain temps pour que l’équipe de Magento intègre la complexité de nos systèmes fiscaux et apporte une réponse dans la version 1.1. Je me souviens encore de la remarque de Yoav Kutner (le directeur technique de Varien) lors d’une discussion : « C’est vraiment aussi compliqué que ça, chez vous ? ». Oui, hélas ! Et il faut bien faire avec car, à mon avis, cela ne va pas s’arranger. Nous sommes plus à l’ère de la « micro-taxabilité » qu’à la simplification du système…

Donc, depuis la version 1.1, on peut afficher et calculer correctement les prix des produits, du panier, des commandes et des factures. Sauf que les conditions d’application des promotions n’ont pas bénéficié de cette évolution…

Je prends un exemple : je veux offrir 10 € pour 100 € d’achat. Si je suis sur un site grand public, la logique (et même la loi, maintenant) impose que je raisonne en prix TTC. Ce qui donne : « 10 € TTC offerts pour toute commande supérieure à 100 € TTC ». Donc, si je sélectionne des articles pour 130 €, je me retrouve avec un panier à 130 € TTC et une commande à 120 € TTC. Sous Magento, cette condition est actuellement impossible à définir. En effet le seuil qui sert de condition est considéré hors taxes, ce qui fait qu’on obtient la règle « 10 € TTC offerts pour toute commande supérieure à 100 € HT ». Pas très vendeur…

Il y a bien des astuces, comme le fait de mettre comme condition l’équivalent hors taxes du seuil TTC. Dans le cas présent 83,61 €… si tous les produits ont un taux de TVA à 19,6% ! Sinon, c’est nettement plus dur : il faut créer un module spécifique qui va spécifier le comportement des calculs.

Reste le rêve d’avoir tout simplement la possibilité de définir la base de calcul de la condition : hors taxes ou taxes comprises. Vous en rêvez ? Magento va le faire ! Pas l’année prochaine, non, très bientôt. Cette nouvelle fonctionnalité sera intégrée dans Magento 1.1.7 !

Je me sens agile !

Excellente journée, aujourd’hui !

Pour commencer, une jolie acquisition finalisée ce matin (la 4e entreprise du groupe) dont je laisse au padrone le soin d’annoncer la nouvelle. Ce sera le 21 octobre. Oui, je sais, ça fait un peu buzz

Et puis, c’était surtout la journée Agile Tour 2008 à Toulouse ! Inutile de tourner autour du pot : j’ai été très agréablement surpris ! Et ce, pour plusieurs raisons :

  • L’organisation était parfaite : accueil sympathique, horaires respectés, pauses gourmandes généreuses, matériel et salles adaptés, atmosphère détendue propice aux échanges.
  • Les salles étaient combles, preuve que les méthodes agiles commencent à s’installer doucement mais surement.
  • Les intervenants étaient passionnés, passionnants et pédagogues.
  • Les exemples d’utilisation étaient clairs et convaincants.
  • La programmation était judicieuse pour avoir une vision globale du sujet (1. Origine, théorie ; 2. Application via les ateliers ; 3. Retours d’expérience).
  • L’effort des sponsors a permis d’ouvrir gratuitement cette journée à tous, sans rogner sur la qualité des interventions.

Que du bonheur ! Il faut dire que c’était facile : l’organisation de ces journées Agile Tour a elle-même bénéficié d’une approche agile…

Sur ce coup, les absents ont eu tord, mais ils pourront (légèrement) se rattraper en consultant les supports des conférences sur le site de la SigmaT dès demain.

Pour finir, voici en vrac ce que je retiens de cet événement :

  • Lire deux livres : The Mythical Man-Month, de Frederick P. Brooks, et Peopleware, de Tom DeMarco et Timothy R. Lister.
  • L’Agile Manifesto et ses 12 principes.
  • La complémentarité de l’approche Lean sur les projets agiles.
  • Le constat à l’origine de la création de Scrum : « le processus de développement est imprévisible ».
  • Scrum est utilisé dans 3 projets agiles sur 4 (Scrum seul 49%, Scrum + XP 22%).
  • Le coeur de cible agile : un nouveau projet pas trop critique, piloté par un management accomodant, sur une architecture définie, développé à temps plein par une équipe de 5 à 12 personnes réunies en un même lieu, s’appuyant sur des outils et systèmes interactifs ! C’est un idéal, bien sûr…
  • Sélectionner les méthodes agiles adéquates et les adapter au contexte.
  • Shu Ha Ri : suivre, comprendre, adapter. Auquel j’ajouterais améliorer.
  • Bien penser son architecture avant d’appliquer un développement agile.
  • Ne pas oublier de documenter son travail (non par formalisme, mais parce que tout ne peut pas être déduit du code, comme les séquences).
  • L’atelier XP Game qui a vite montré à tous les participants l’intérêt de l’Extreme Programming pour piloter un projet.
  • L’excellent retour d’expérience d’Igeoss qui a adopté les méthodes agiles dès l’origine pour développer ses solutions, avec un réel avantage productif et qualitatif.
  • L’excellente discussion avec Ramiro Sarmiento, agile coach chez Agilii et organisateur de l’Agile Tour 2008.

Parmi les blogs que je lis régulièrement sur le sujet, je vous recommande :

Merci à tous les organisateurs d’Agile Tour 2008 pour cette belle réussite ! Leurs efforts méritent bien ce petit retour.

Une excellente thèse sur Simile Exhibit

J’ai toujours eu un faible pour le web sémantique. Et encore un peu plus pour les projets Simile. Ceux qui me lisent régulièrement (si, si, il y en a !) auront suivi mes (modestes) contributions au projet Simile Exhibit.

Aujourd’hui, c’est au tour de Josef Dabernig de l’Université des sciences appliquées de Vienne (Technikum Wien) d’apporter sa pierre à l’édifice. Un sacré morceau : une thèse entièrement consacrée au framework Exhibit ! Toutes les informations y sont réunies pour faciliter la mise en place et l’utilisation de cet outil magique.

Le résultat est sur le wiki de Simile Exhibit, sous forme de document PDF (Creating interactive web pages using the Exhibit framework) et de code source.

Au passage, j’ai enfin compris comment je peux gérer des items hiérarchiques dans une même facette, tout en conservant la sélection multiple !

Hiérarchie dans une facette Exhibit
Hiérarchie dans une facette Exhibit

Saine et bonne lecture qui va m’inciter à sortir des cartons de vieux projets…

Sauvez les développeurs !

Mettre au point des sites web qui fonctionnent avec Internet Explorer 6 relève du défi ! Ce qui devait arriver, arrive : Save the developers!

Pour ma part, j’ai pu mesurer le temps passé à mettre au point une interface pour Internet Explorer 6 : 15 à 25% du temps de développement des interfaces web ! Sans parler de l’énervement au sein des équipes de développement…

Alors, s’il vous plaît, mettez à jour votre navigateur web ! Ce sera bénéfique pour tout le monde : les développeurs pourront concevoir des interfaces plus rapidement, les applications web seront plus stables et vous bénéficierez d’un outil efficace et adapté au web d’aujourd’hui.

Vous avez l’embarras du choix :

Téléchargez Internet Explorer

Si vous tenez à rester dans le giron de Microsoft, installez dès que possible Internet Explorer 7. Les améliorations sont notables, même si nous sommes encore loin d’un résultat idéal. Il paraît qu’Internet Explorer 8 sera enfin un navigateur digne de ce nom. J’attends de voir… Bref, vous l’aurez compris : ce n’est pas mon préféré.

Téléchargez Firefox

Firefox 2 est le navigateur web le plus utilisé par les développeurs, grâce à une interface intuitive et une multitude d’extensions. Seule ombre au tableau : sa gourmandise en terme de ressources mémoire. Mais Firefox 3 apportera un sérieux changement de ce côté. Incontournable et recommandé par les professionnels.

Téléchargez Opera

Opera, c’est LE navigateur web par excellence. Léger, rapide, complet, il a tout pour plaire, en particulier son support quasi parfait des normes du W3C. S’il reste marginal sur les ordinateurs, il est le roi du web mobile !

Téléchargez Safari

Proposé par Apple, Safari est le navigateur web par défaut de MacOS, mais il fonctionne aussi sous Windows. Un bon produit qui possède la magie Apple. Parfait pour l’utilisateur qui ne veut pas s’embarrasser de technique.

Quel que soit votre choix, le plus important est d’abandonner Internet Explorer 6 !

Cryptage MD5 réversible ? Indirectement, oui !

Le cryptage de mots de passe par MD5 est sans doute la mesure de sécurité la plus utilisée par les développeurs. Son intérêt : crypter une chaîne de caractères, sans avoir la possibilité mathématique de faire l’opération inverse. Enfin presque…

Depuis 2004, on sait que MD5 n’est plus très sûr. Cependant, casser cet algorithme n’est pas à la portée de tout le monde. Aucun risque pour vos bases de données utilisateurs ? C’est sans compter sur les bases de hash MD5. Leur but : stocker des chaînes de caractères et leur hash. Comme les utilisateurs entrent souvent des mots communs ou connus, il est très simple d’interroger ces bases pour obtenir la liste des chaînes de caractères compatibles avec un hash MD5. GData en est un exemple particulièrement efficace et complet.

Vous voulez connaître le mot de passe caché derrière le hash MD5 fe01ce2a7fbac8fafaed7c982a04e229 ? Le voici en 1/10e de seconde : demo. Et celui-ci, assez fréquent dans les bases mal paramétrées : 21232f297a57a5a743894a0e4a801fc3. C’est admin !

Il est temps de changer de méthode de cryptage…

Source : Nexen

Simile Exhibit 2.0 officiellement en français

Logo Simile

Depuis aujourd’hui, Simile Exhibit 2.0 supporte officiellement le français.

Je remercie David Huynh, créateur talentueux de cet outil précurseur des nouveaux usages du web, d’avoir accepter d’intégrer ma modeste contribution au code source officiel. Je remercie également les french beta testers qui m’ont permis d’affiner la version française, suite à mes précédents articles (ici et ). Et une mention spéciale à Got pour m’avoir remis sur les rails.

Si vous avez quelques exemples d’utilisation d’Exhibit en français, n’hésitez pas à les ajouter dans les commentaires. Amusez-vous bien !

Simile Exhibit 2.0 en français

On sait tous que les rentrées de septembre sont difficiles, mais celle-ci est vraiment infernale ! Même plus le temps de bloguer…

J’ai quand même fini un projet qui me tenait à coeur : la version française de Simile Exhibit 2.0.

Je ne vais pas revenir sur la présentation de cet outil fabuleux, largement décrit dans mon précédent article [Simile Exhibit : la version française est (presque) disponible]. J’ajoute simplement que la version 2.0 est toute fraîche et qu’il était temps d’y apporter une touche « frenchie » !

La voici donc en démonstration sur mon site, avant d’être intégrée à l’API officielle. Si vous constatez un dysfonctionnement ou une erreur de traduction, un petit commentaire sera le bienvenu ! Bien entendu, seule l’interface d’Exhibit est en français, les données (reprises des exemples officielles) restent en anglais. Un jour, quand j’aurai cinq minutes, je donnerai un exemple français…

Liste des exemples à tester

PHP4, PHP5, PHP6 : la saison des grandes migrations

Logo PHP

Avec un été aux allures d’automne, j’ai eu envie de présenter un flux migratoire d’exception. Nul discours écologique dans mes propos, puisqu’il est question de PHP, le langage le plus répandu pour créer des applications web. Entre la mort de PHP4, la gestation de PHP6 et PHP5 qui tarde à s’imposer, voici un point sur la situation, les enjeux… et les risques.

PHP4 en fin de course

C’est maintenant officiel, PHP4 ne sera plus supporté à partir du 1er janvier 2008. En soit, l’annonce ne choque pas puisque PHP5 a pris le relais depuis 3 ans. Mais, sur le terrain, la percée de la version actuelle de PHP est moins évidente. En cause, les nombreuses applications PHP4 encore exploitées en ligne qui freinent les hébergeurs dans l’adoption de PHP5.

Migrer de PHP4 à PHP5

Sachant que la migration de PHP4 vers PHP5 devient obligatoire, comment la réaliser en douceur dans le temps imparti (5 mois) ?

Premier point : s’informer et comprendre la nécessité de migrer. Le site Go PHP5 est là pour ça !

Go PHP5
L’initiative Go PHP5 pour promouvoir une migration rapide vers PHP5.

Ensuite, il faut mettre le nez dans l’existant et y apporter les corrections ou les évolutions nécessaires pour le rendre compatible avec PHP5. On s’aidera des ressources mises à disposition par le PHP Group :

Préparer l’arrivée de PHP6

Maintenant, quid de PHP6 ? Quitte à migrer cet automne, autant en profiter pour préparer son arrivée ! On sait maintenant à quoi ressemblera la nouvelle mouture PHP et ce qu’elle implique pour les développeurs.

A la lecture de Prepare for PHP 6, on remarque vite que PHP sera beaucoup moins permissif. On ne regrettera pas le Register Globals, ni le Safe Mode (même s’il peut gêner quelques hébergeurs à la traîne).

Bien sûr, l’abandon des Magic Quotes imposera de retoucher de nombreuses applications PHP4 pour éviter les injections de commandes (pour attaquer une base de données, par exemple). On me rétorquera que PHP5 les désactive par défaut… ce qui veut dire qu’on peut les activer pour éviter de « perdre » du temps à mettre en conformité son code ! Avec PHP6, point de salut, il faut s’y coller !

Parmi les fonctionnalités les plus attendues, les namespaces pour la programmation orientée objet, le support natif d’Unicode, l’accélérateur APC par défaut.

Le plus inattendu est sans doute goto pour spécifier où continuer l’exécution du code ! A oublier de suite en programmation orientée objet…

Après le discours, la pratique. Voilà une petite check-list (tirée du magazine Programmez, juin 2007) pour faciliter l’arrivée de PHP6 :

  • Ne pas utiliser register_globals, mais $_POST, $_GET, $_COOKIE et $_REQUEST
  • Ne pas utiliser $HTTP_POST_VARS et $HTTP_SERVER_VARS, mais $_POST et $_SERVER
  • Mettre les directives magic_quotes_* à off
  • Ne pas spécifier le passage par référence dans l’appel de fonction, mais dans le prototype
  • Ne pas utiliser la fonction __autoload() (pratique mais très gourmande)
  • Ne pas mettre une variable derrière un break, mais une constante, un nombre… ou rien
  • Désactiver le safe_mode
  • Ne pas utiliser la librairie GD1 pour traiter les images, mais la GD2
  • Utiliser l’UTF-8 ou l’UTF-16

Le dernier point est, selon moi, le plus critique. Le support d’Unicode (UTF-8 ou UTF-16) impose de convertir la chaîne complète du développement : fichiers de code source, fichiers de données, base de données, navigateur web, etc. Or le support d’Unicode est loin d’être un réflex dans les projets web. Quel webdesigner se préoccupe de déclarer le support de l’Unicode dans Dreamweaver ? La question qui suit est : pourquoi la majorité des outils propose encore l’ISO-8851 ou CP1252 par défaut ? Bref, ce point dépasse le cadre des évolutions de PHP, mais deviendra un vrai Capharnaüm s’il n’est pas traité dans son ensemble.

Une opportunité pour les entreprises… et leurs prestataires

Inutile de tourner autour du pot : la migration nécessaire de PHP4 vers PHP5 demandera d’ici la fin de l’année un certain travail aux équipes de développement PHP de tous bords. Pour le bien des entreprises, c’est certain. Elles verront leur système d’information évoluer et gagner en maturité. Pour leurs prestataires aussi qui sauront profiter de l’opportunité pour aller plus loin qu’une simple mise en conformité iso-fonctionnelle.