Christophe Le Bot

  • Navigation rapide
Pratique de la conception numérique

Derniers commentaires

  • Test d’interface : paiement d’amendes en ligne
    • 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.
  • Utiliser le planificateur de tâches OVH (crontab) avec PHP
    • Max | Bonjour, comme faire pour appeler une version de PHP qui n’est plus proposée par défaut dans le manager ? J’essaie de lancer un cron avec php 5.3 mais le log affiche No such file...
 

Archives de la catégorie
Qualité

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.

Tel est pris qui croyait prendre

Internet fraud costs victims millions of dollars each year. Protect yourself with Escrow.com!

Mon petit doigt me dit que cette entreprise va avoir un peu de mal à développer son activité sur les marchés francophones… Pourtant, elle a des atouts indéniables :

Prix Escrow

Il reste comme un malaise, non ?

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

Nouvel iMac, et toujours le même phénomène…

Le nouvel iMac d’Apple vient de sortir. Encore une fois, il suffit de voir ce produit Apple pour qu’immédiatement tout ce qui existait auparavant ait un petit air d’obsolescence…

Je ne vais pas m’étendre sur ses caractéristiques puisque des centaines d’autres sites l’ont déjà fait. J’en garde juste une image redoutable.

Comparaison iMac / Dell XPS 410
Comparaison iMac / Dell XPS 410 (photo Apple).

Ce que j’aime dans cette comparaison, c’est qu’Apple a fait l’effort de choisir une machine concurrente au « design soigné » qu’on pourrait qualifier de « belle » dans le monde PC. Pourtant, le fossé qui sépare Apple des autres constructeurs en matière de design et d’innovation est abyssal…

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.

Simile Exhibit : la version française est (presque) disponible

Logo Simile

Simile (Semantic Interoperability of Metadata and Information in unLike Environments), initié par le MIT (Massachusetts Institute of Technology), développe des outils open source robustes et efficaces pour manipuler des données, le tout reposant sur les technologies du web sémantique.

Parmi ces outils, le framework Exhibit est l’un des plus démonstratifs. Il offre une interface riche pour trier, filtrer et consulter des données complexes, via une page web. Sa classification à facettes rend la sélection et la consultation de données très rapides.

Seul petit défaut : Exhibit ne parle actuellement que l’anglais, l’espagnol et le suédois. Pas pour longtemps puisque je viens de terminer la french version ! Elle sera intégrée dans la version stable (v.1.0) et la version 2.0 (bientôt disponible).

Pour valider ce travail, je fais appel à votre bonne volonté afin de tester quelques exemples et me remonter les erreurs et bogues que vous pourriez y trouver (via les commentaires). Une fois corrigée, la version française sera mise à disposition de tous sur le serveur de Simile.

Pour le moment, les exemples reprennent ceux du site officiel. Je n’ai pas traduit les fichiers de données puisqu’ils ne font pas partie d’Exhibit. Par contre, les éléments d’interface (actions, sélections, tris, filtres, copies, messages, aide…) devraient tous être en français. J’ajouterai sans doute un exemple utilisant toutes les options d’Exhibit avec un fichier de données en français. Ce sera plus simple !

Si vous avez déjà mis en place Exhibit sur vos sites, vous pouvez également tester la version française en modifiant (temporairement, bien sûr) le lien de la version Exhibit officielle :

<script src="http://static.simile.mit.edu/exhibit/api/exhibit-api.js?views=timeline" type="text/javascript"></script>

doit être remplacé par

<script src="http://demo.christophelebot.fr/simile-exhibit-fr/api/exhibit-api.js?views=timeline&bundle=false" type="text/javascript"></script>

Votre lien peut ne pas comporter de paramètre views. Par contre, il ne faut pas oublier le paramètre bundle (utile pour ce test seulement) qui permettra de basculer en français. Petit détail, votre navigateur doit être configuré pour afficher en priorité les contenus en français.

Liste des exemples à tester

Merci d’avance pour votre participation à ce test !

Zend Framework dans les starting-blocks

Logo Zend Framework

Le Zend Framework passe en RC1 (release candidate 1). C’est donc la dernière étape avant sa sortie officielle prévue cet été (peut-être fin juin, disent certains).

Son arrivée dans l’arène bien encombrée des frameworks PHP a déclenché des débats passionnés, avec des clans résolument contre (« ce n’est pas un framework ! ») et des clans qui ne jurent que par lui (« il est soutenu par Zend et IBM autour du langage le plus populaire du web ! »). Je ne parle même pas des allergiques au PHP qui trouvent stupide de construire un framework autour d’un langage aussi immature…

Bref, chacun se fera son avis. Pour ma part, je trouve le projet très pertinent.

C’est vrai que Zend Framework n’est pas aussi complet que Symfony (un très beau projet, je vous conseille de l’étudier !). On peut effectivement le voir comme une bibliothèque d’objets respectant les principes classiques de l’architecture MVC (Modèle Vue Contrôleur). Dans ce cas, je pourrais aussi bien dire que prototype n’est pas un framework Javascript mais une collection de classes. C’est étrange, mais personne n’y songe…

On peut aussi se demander pourquoi ce framework n’est pas intégré directement dans PHP, suivi d’un bon ménage pour éliminer une myriade de fonctions inutiles. En cela, PHP est plus proche de Perl (36 façons de faire une chose) que de Python (1 seule façon de faire un chose). Mais il est difficile de mettre une croix sur ce qui a fait le succès de PHP : sa facilité de prise en main et son approche procédurale. PHP atteindra difficilement la beauté théorique d’une usine à gaz Java ou l’efficacité pragmatique d’un projet Ruby, mais il est partout.

Donc, considérons que le Zend Framework est un framework PHP léger. Quels sont ses avantages ? Pour moi, ils dépassent clairement le cadre purement technique, ce qui en fait déjà une solution incontournable :

  • Il a été créé à l’initiative de Zend, the PHP company (comme elle le dit si bien), pour des applications professionnelles lourdes.
  • Il est soutenu par des acteurs puissants (IBM en tête) qui garantissent sa pérennité.
  • Il utilise le langage le plus répandu sur les serveurs web.
  • Il repose sur les avancées majeures en programmation objet de la version 5 de PHP (il était temps…).
  • Il fonctionne par simple inclusion, donc sur toutes les offres d’hébergement existantes (serveurs mutualisés, notamment).
  • Il donne enfin un cadre de travail aux développeurs PHP (réputés comme les cancres de la programmation).
  • Comme tout framework, il réduit le temps de développement par la mise en facteur des bonnes pratiques et une meilleure définition de l’architecture.
  • Il offre une documentation complète, à jour et claire, un atout essentiel pour son adoption en entreprise.
  • Il bénéficie de l’élan autour d’Eclipse, grâce au développement parallèle de PDT (PHP Development Tools).

Cette orientation très professionnelle, tout en gardant la simplicité de PHP grâce à un framework léger, devrait décider un bon nombre de développeurs et d’architectes à considérer ce choix.

L’avenir me dira si j’ai vu juste…

Quand faire intervenir le designer ?

De l’article consacré aux difficultés de Dell, diffusé par Le Monde (Fragilisé, Dell se cherche un nouveau modèle, 3 mai 2007), je n’ai retenu qu’une phrase. Non pas que les objectifs de Michael Dell, de retour dans la galère le navire ne m’intéressent pas, mais parce qu’il y est question de design :

Des designers ont été recrutés et désormais un produit sera dessiné avant d’être conçu. Avant c’était le contraire.

Cet aveu est étonnant à double-titre :

  • Il me semblait que les machines Dell étaient réputées pour leur conception aboutie (fiabilité, silence, manipulation, installation, service clients). J’ai dû louper un épisode…
  • Je croyais que les grandes entreprises, américaines de surcroît, avaient compris depuis longtemps le rôle du designer. J’ai rêvé trop vite…

La situation

Comment en est-on arrivé là ? Le problème vient de l’incompréhension du mot design et du rôle du designer. Le design est trop souvent perçu comme synonyme exclusif d’apparence (ou d’aspect, de forme, d’esthétique, si vous préférez). D’où la tentation de limiter le coût du design à un peu de saupoudrage visuel, juste avant la mise en production.

Les responsables

A qui la faute ?

  • Aux designers, certainement, qui n’ont pas su expliquer leur métier, il est vrai très changeant (je suis bien placé pour le savoir, puisque j’ai géré et animé pendant 8 ans une association de promotion du design).
  • Aux managers parce qu’ils ne sont pas sensibilisés, ni formés aux atouts du design (le design devrait faire partie du programme MBA !).
  • Aux institutions et autres organismes de développement économique parce qu’ils n’ont pas les outils pour mesurer et expliquer l’efficacité du design (quoique sur ce point, les évolutions sont perceptibles ces derniers temps).
  • A notre système éducatif qui peine à sortir d’une ingénierie entièrement dévouée aux prouesses technologiques (condition nécessaire mais pas suffisante, pour reprendre le vocabulaire des « têtes bien pensantes »).

La réalité

« Bon finalement, le designer sert à quoi ? » Voici la définition qu’en donne l’École nationale supérieure de création industrielle (ENSCI – Les Ateliers) :

Au sein de l’équipe de conception, le designer veille à la cohérence structurelle du produit. Les solutions qu’il retient sont non seulement de nature à garantir le bon aspect de l’objet produit mais surtout sa parfaite organisation interne et la pertinence de son rapport à l’utilisateur.

Verner Panton disait :

Le travail du designer est de coordonner à tous les niveaux de production, d’étudier et de répondre aux exigences du consommateur, de dépasser les bases objectives et de trouver une cohésion claire et délibérée entre les facteurs pratiques et esthétiques.

La pratique

« C’est bien beau ces discours, mais moi, quand dois-je faire intervenir le designer ? » Tout au long du projet, et en particulier au début, quand les grandes orientations doivent être définies. Imaginez juste un instant un produit Apple dessiné après avoir été conçu…

Launchpad, un bon exemple de service collaboratif

Launchpad

Canonical, éditeur des solutions Ubuntu, nous propose Launchpad (version 1.0 beta), un service dédié aux développeurs open source, similaire à SourceForge.

Après une visite rapide, cet outil me laisse une impression très positive. Tout a été pensé pour faciliter le travail quotidien des développeurs et les fonctionnalités sont riches (code repositories, gestion de versions via CVS et Subversion, bugs tracker, support, gestion des traductions, etc.).

Hormis les produits développés par Canonical, Launchpad héberge quelques projets essentiels, comme Zope ou Creative Commons. J’y mettrai peut-être aussi les projets que j’ai dans mes cartons…

Il n’y a qu’un truc que je n’ai pas trouvé : la liste des projets hébergés. Cette fonction m’est très utile dans SourceForge pour suivre l’actualité des projets open source et trouver des perles rares.
Mise à jour : si, si, on peut avoir la liste de tous les projets. Merci Christian pour ton oeil de lynx !