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
Développer

Un bien joli panier pour Magento 1.4

Panier Magento 1.4

Ouf ! Ce fut long et difficile, mais le résultat est là. Magento 1.4 arrive bientôt… avec un contrôle bien plus fin des calculs de prix et de TVA ! Suffisamment pour respecter les lois françaises sur les sites ouverts aux particuliers et pour programmer les promotions les plus folles en déclarant correctement la TVA !

Ceux qui se sont arraché les cheveux avec ça comprendront tout de suite l’intérêt de cette simple capture d’écran…

Je remercie l’équipe de Varien pour cet excellent travail et pour sa compréhension des subtilités de la fiscalité française. Vu des Etats-Unis, ce n’était pas gagné d’avance…

Donc, c’est un grand jour. Il faut maintenant attendre la validation de la version 1.4 qui devrait sortir bientôt. A Varien d’en faire l’annonce ! 😉

Oracle acquiert Sun

Oracle acquiert Sun

Le rachat de MySQL par Sun était déjà un événement pour moi l’an dernier. Alors je ne sais plus quels mots utiliser après le rachat de Sun par Oracle aujourd’hui…

Sachant comment finissent les entreprises qui passent entre les mains d’Oracle, il reste une sacrée incertitude sur certains projets (Java et MySQL pour commencer).

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 »

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.

Magento à Paris

Magento event

La solution e-commerce Magento a cela de paradoxal qu’elle est à la fois très en vogue et très obscure. Une communication habile qui attire la foule, mais qui commence aussi à inquiéter les premiers clients. Je vous invite à relire mon article sur le business model de Magento et ses commentaires très instructifs…

Parmi les incertitudes, on peut citer celles qui reviennent tout le temps :

  • Quel est le but de Magento et de son éditeur Varien ?
  • Comment s’assurer de la pérénité de la plate-forme ?
  • Faut-il craindre un changement de licence vers un modèle commercial ?
  • Pourquoi n’y a-t’il pas une documentation technique officielle et complète du produit ?
  • Les performances de Magento sont-elles aussi médiocres qu’on le dit sur certains forums ?

Si ces questions vous turlupinent, Magento vous donne rendez-vous à Paris le 23 septembre 2008 à 20h30 (lieu à déterminer). Ce sera un moment important pour faire un point complet sur l’état et l’avenir de la solution, sans oublier que vous découvrirez enfin l’équipe solide qui se cache derrière ce projet.

Les partenaires français, eux, sont invités la veille (22 septembre à 20h30) pour discuter des premières expériences de terrain et renforcer leur stratégie e-commerce autour de Magento. J’y serai, bien entendu, aux couleurs d’Ekinos.

La documentation de Magento 1.0 est en ligne

Depuis le lancement de la version 1.0 de Magento, tous ses utilisateurs attendaient (impatiemment !) sa documentation. Elle est désormais disponible sur le wiki officiel.

C’est long, précis et bien écrit. Amplement suffisant pour comprendre le fonctionnement et les atouts extraordinaires de cette plate-forme e-commerce.

Bonne lecture !

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 !

Du bon usage des exceptions

Si nous intégrons tous la gestion des exceptions dans notre code source (enfin, je l’espère…), en faisons-nous vraiment bon usage ? Entre les « maniaco-dépressifs » qui en mettent partout et les « bricolo-codeurs » qui savent à peine les mettre en place, il y a un compromis… qui n’est pas toujours évident à trouver.

Erreur, dysfonctionnement et exception

Par définition, une exception n’est levée qu’en cas d’état exceptionnel de l’application. Le tout est d’arriver à définir l’état d’exception. Est-ce un dysfonctionnement applicatif grave (connexion à une base de données qui tombe, fichier applicatif introuvable, allocation mémoire excessive, objet corrompu) ? Est-ce un fonctionnement normal mais exceptionnel (erreur d’authentification utilisateur, données entrantes non conformes) ? Est-ce une situation fréquente mais ne répondant pas au scénario optimal d’utilisation (mauvaise utilisation de l’application, erreurs de saisie d’un utilisateur) ?

Après avoir vu tous les cas sur le terrain, mais aussi dans des documents de référence, j’avoue ne plus savoir où placer le curseur…

Réserver l’exception aux dysfonctionnements

Pour ma part, je préfère garder l’exception pour les situations les plus rares et les plus graves, ce que je définis comme des situations exceptionnelles. Elles sont généralement dues à des dysfonctionnements de l’application, c’est-à-dire des états qui n’ont pas été prévus dans les séquences d’utilisation.

Sur ce principe, une erreur de saisie d’un utilisateur ne devrait jamais déclencher une exception lorsque sa valeur est contrôlée par l’application. Si j’entre une adresse e-mail invalide dans un formulaire, l’application traitera l’événement comme une erreur utilisateur et non comme un dysfonctionnement interne. Elle retournera le formulaire avec un joli message d’erreur… qui n’a rien d’exceptionnel puisque ce traitement fait partie du fonctionnement normal de l’application (mais pas de sa séquence nominal !). Même si cela semble évident (pour moi, du moins…), l’utilisation des exceptions pour ces cas est loin d’être anecdotique.

Bien sûr, si après validation de l’adresse e-mail l’application ne peut pas traiter normalement le formulaire, l’utilisation des exceptions permettra de trouver l’origine du dysfonctionnement, sans mettre les données dans un état inconsistant.

Trouver le bon équilibre

Dans le cas d’applications complexes où la modularité de code est de rigueur (genre « full MVC avec intégration de tous les designs patterns du GoF » !), savoir instancier puis récupérer une exception au meilleur endroit (ou moment pour les aficionados de la programmation événementiel) est déjà moins évident. Quels rôles jouent les différents niveaux de la partie M (modèle) ? Comment réagit la partie C (contrôleur) ? Comment gérer efficacement l’imbrication des exceptions (du noyau à l’interface en passant par les couches métiers) sans perturber la compréhension du problème par l’utilisateur ? Bien sûr, chaque cas est particulier, mais j’avoue que je souhaiterais bien discuter du sujet, autour de vos expériences.

Je vous passe la main !

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 !