Profiling avec Xdebug et WinCacheGrind

mercredi 2 août 2006 :: perrick :: PHP :: aucun commentaire :: aucun trackback

Après trois années en production, il était peut-être temps d'utiliser un coup de profiling sur mon logiciel web de gestion du temps, openTIME. L'installation de Xdebug sur mon iBook G4 s'est effectué sans soucis : ça fonctionne pareil que pour Linux / Unix.

Par contre pour la visualisation, c'est un peu plus compliqué : KCacheGrind (sous KDE) et WinCacheGrind (pour Windows) n'ont pas encore d'équivalent sous Mac OS X. Me mettre à utiliser Fink, puis chercher les librairies KDE avant de tenter une compilation était l'étape de trop. En attendant, j'ai donc dépoussiéré mon vieux PC qui ne sert plus qu'à la comptabilité pour lire le résultat.

Voici un léger aperçu... en attendant les premières analyses plus poussées !

profiling d'opentime avec Xdebug / WinCacheGrind

Des curseurs pour s'accorder

vendredi 28 juillet 2006 :: perrick :: Management :: aucun commentaire :: aucun trackback

Lors de mon dernier passage dans le groupe des Praticiens XP de Paris, j'ai participé à une session sur Écrire Sur Les Murs. Nous avons exploré différents types de traces sur des murs : de celles qui transmettent de l'information aux visiteurs (clients / hiérarchie / collègues).

A la fin de la session, Laurent Bossavit a évoqué un autre type de vecteur graphique d'information : à défaut d'en retrouver une référence quelque part (je recherche toujousr), je l'ai appelé suivi par curseurs. Au début du projet, les développeurs indiquent les différentes dimensions du projet (délai, fonctionnalités, ergonomie, coût, etc.) et le "client" indique ses priorités : bien sûr il ne peut pas mettre tous les curseurs à fond -- ce serait trop facile.

Nous avons utilisé ce type de graphique en interne, avec une dimension en plus : la perception de chacun. En vert, le projet perçu par le développeur, en rouge ce qu'il pense être les priorités de la direction et en bleu les axes exprimées par la direction. C'est intéressant de noter les écarts entre les différents curseurs : ça donne des pistes de réflexion évidentes pour travailler !

Quand Ubuntu fait des siennes II

mardi 25 juillet 2006 :: perrick :: Linux :: un commentaire :: aucun trackback

Extrait de la page Effectuer la migration de Ubuntu Breezy vers Ubuntu 6.06 LTS (également appelé Dapper) :

Si votre ordinateur est connecté à plusieurs disques durs dont un par le biais d'au moins un contrôleur IDE PCI, si vous utilisez un montage RAID [...], le passage à DAPPER est (à ce jour) déconseillé.

Le genre de phrase qui me tue : j'étais pile dans ce cas précis. C'est juste que je ne l'ai lu qu'après.

Quand Ubuntu fait des siennes

lundi 24 juillet 2006 :: perrick :: Linux :: 3 commentaires :: aucun trackback

Jeudi dernier, j'ai lancé un dist-upgrade depuis Ubuntu / Breezy vers Ubuntu / Dapper. La version de PHP (5.0.5) ne me satisfaisait pas du tout sur le blaireau frais. Et là, surprise : un énorme pépin... Plusieurs services ne fonctionnent plus : MySQL et l'interface réseau. Notre serveur interne restera en rade tout le week-end : la solution triviale n'a pas été trouvée.

Ce matin, on replonge les mains dans le cambouis : ré-installation complète. Encore avec une Ubuntu 5.10, c'est celle que j'ai sous la main en version cédérom. Bien sûr comme nous en avons profité pour constater la belle exactitude de la loi de Murphy : Orange / Wanadoo -- notre FAI -- est lui aussi plutôt mal en point ce matin. Une paire d'heures plus tard, le serveur est de nouveau opérationnel : merci les sauvegardes automatiques. Le bilan final n'est pas si catastrophie : rien de perdu (à part du temps et du stress), juste deux commits à refaire sur le dépôt SVN. Et surtout me voilà un peu échaudé par la distribution "humanité pour les autres".

Les murs s'envolent en été

vendredi 30 juin 2006 :: perrick :: No Parking :: aucun commentaire :: aucun trackback

L'été est enfin là et les murs ont décidés de se faire la mal. Tout n'est pas encore termié mais la deuxième phase de travaux (après un local serveur pendant l'hiver) est bien avancée.

Read next

Comment tester un numéro de téléphone

mardi 27 juin 2006 :: perrick :: Extreme Programming :: 3 commentaires :: aucun trackback

- Je peux l'appeler de ta part ?
- Oui bien sûr, voici son numéro...

La suite de la conversation dépendra souvent du contexte : entre le numéro privé de M. Bond - James Bond, celui personnel de la serveuse du bar des sports et celui de mon frère informaticien au boulot, les variations sont multiples.

Une des plus courantes reste bien sûr de faire répeter le numéro par l'interlocuteur : on vérifie directement qu'il a bien noté le numéro et qu'il pourra le composer sans craindre la fausse manipulation. Rarement on lui demandera de répéter une deuxième ou même une cinquième fois. Et si on détecte un chiffre erroné... on reprend du début.

Et maintenant sur un bout de code, combien de tests faudrait-il pour vérifier qu'il fait bien ce qu'on lui demande ? Ma réponse s'appuie parfois sur ce même exemple du numéro de téléphone : si la réponse est facile, on pourra s'arrêter très vite. Sinon et -- surtout -- à la moindre erreur, on ajoute des scénarii à tester. Et puis la comparaison avec les numéros de téléphone peut aussi nous amener sur d'autres chantiers à explorer.

A chaque fois, il faut repenser sa stratégie de transmission et de test : pensez encore qu'il soit si simple d'échanger de manière fiable un numéro de téléphone ?

Les obscurs bas-fonds des transferts FTP

vendredi 16 juin 2006 :: perrick :: Mac OS X :: 3 commentaires :: aucun trackback

Depuis le temps (1995) que j'utilise le protocole FTP, je ne pensais pas qu'il me jouerait des tours. Surtout en tant qu'utilisateur simple : contrairement à son frère HTTP et à toute sa nombreuse descendance -- 200, 404 et consorts -- que j'exploite régulièrement. Et puis voilà-t-il pas que je découvre une fonctonnalité brouillon (au stade du draft) qui fait planter mes transferts vers quelques hébergeurs : MLST. Elle n'est pas implémentée sur le serveur ProFTP 1.2 par exemple.

Bien sûr ça n'impacte que mon utilitaire FTP : Transmit de Panic. Dans les notes de sortie, j'ai quand même découvert l'option avancée qui permet de ne pas utiliser ce fameux MLST. Entre temps j'aurais découvert plusieurs trucs...

  1. Pour les préférences avancées, appuyer sur alt tout en cliquant sur les Préférences.
  2. Un autre logiciel de transfert FTP qui a l'air pas mal du tout : Yummy FTP.
  3. MLST est une commande intended to standardize the file and directory information returned by the Server-FTP process.

Google Summer Code 2006 pour PHP

vendredi 2 juin 2006 :: perrick :: PHP :: 2 commentaires :: aucun trackback

Sept projets PHP ont été accepté dans le cadre du Google Summer of Code 2006. Parmi ceux-ci deux retiennent mon attention.

  1. PHPAspects par William Candillon : j'avais déjà eu l'occasion de le croiser ici même lors d'une présentation de l'avancement de son projet. C'était la première fois que je voyais un travail de recherche pure en PHP
  2. New package to read, create or modify OpenDocument files par Alexander Pak : pour avoir déjà eu besoin d'une telle librairie, je sens qu'elle pourrait faire pas mal d'heureux.

La liste complète des projets est visible sur le site de Google.

Trouver les points de levier dans le code

jeudi 25 mai 2006 :: perrick :: Développement :: aucun commentaire :: aucun trackback

L'objectif du remaniement n'est pas uniquement d'avoir du code joli. Il est aussi d'avoir du code malléable : de trouver les points de levier. Ceux qui feront qu'il devient facile de faire évoluer son application.

Reste à trouver ces points : ils ne sont que très rarement évidents au début du développement. J'ai même l'impression qu'ils sont impossibles à anticiper. Le client, la mode, la couleur du ciel : tout participe à l'évolution des fonctionnalités. Pas la peine alors d'essayer de les anticiper.

Plutôt que de les chercher, j'ai parfois l'impression qu'ils émergent naturellement grâce à un remaniement continue. J'en ai encore eu l'exemple cette semaine : j'ai installé la dernière version d'Opera -- version 9 béta. Premier défaut, ils ont changé le raccourci pour ouvrir un nouvel onglet (le très mozillien Ctrl + t, au lieu de Ctrl + n). Deuxième défaut plus génant : une anomalie sur la priorité des champs <input>. Forcément la grille de saisie des temps dans mon logiciel maison contient 6 des ces boutons. Autant dire que je suis assez sensible à ce qu'il se passe quand on appuie sur Entrée au lieu de cliquer sur tel ou tel bouton.

Read next

L'interface c'est moi

mercredi 24 mai 2006 :: perrick :: Ergonomie :: 4 commentaires :: aucun trackback

Je travaille acutellement sur la reprise d'un projet qui me tiens à coeur : les apéros PHP. L'interface est tout à fait différente d'une application comme openTIME. A commencer par le style de l'interface : faut-il écrire je m'inscris ou inscrivez-vous ?

Les exemples sont légions :
Sign in chez Flickr
Amazon, chez Perrick
Mon Yahoo
Reddit, my password

J'ai l'impression qu'avec cette ligne de démarcation on s'approche du concept de l'écran comme projection de sa propre identité : en affichant mon espace (au lieu de votre espace), l'interface devient une extension de son propre corps pour atteindre ses comptes ou ses données. Exactement comme on a besoin de sa main pour cueillir une pomme sur le pommier de la voisine.

Au fait voici un extrait de la maquette pour la futur version du site des Apéros PHP :

Apéro PHP, j'y serais.

Autrement dit, j'ai choisi... avant de revenir en arrière ?

Créer son entreprise au prochain apéro PHP lillois

lundi 22 mai 2006 :: perrick :: Management :: un commentaire :: aucun trackback

Sous l'impulsion de Jean-Marc, le prochain apéro PHP à Lille aura pour thème la création d'entreprise. Ce sera le jeudi 8 juin 2006 à partir de 20h. Bien sûr je serais présent pour évoquer les deux premières années de No Parking (déjà deux ans).

Si le sujet vous intéresse, les inscriptions sont par ici. En attendant, quelques liens à se mettre sous la dent :

Offre de stage chez No Parking

vendredi 19 mai 2006 :: perrick :: No Parking :: aucun commentaire :: aucun trackback

Avec les beaux jours qui arrivent enfin, nous sommes à la recherche d'un stagiaire en développement pour l'été (3 mois minimum). Si vous lisez de temps en temps ce blog, le poste est probablement fait pour vous : PHP, MySQL et Extreme Programming figurent au programme. L'annonce est disponible sur le site de No Parking : stage_developpement_2006.

Quelques détails pratiques quand même :

PS : n'oubliez pas de mettre onpk dans votre mail à recrut AT noparking POINT net. Il remontra automatiquement dans ma pile.

Une bible pour le remaniement

lundi 15 mai 2006 :: perrick :: Développement :: aucun commentaire :: aucun trackback

Ce n'est pas souvent qu'après quelques heures un bouquin devienne une référence : c'est exactement ce qui m'est arrivé avec Refactoring: Improving the Design of Existing Code. Martin Fowler a écrit avec Kent Beck et quelques autres une bible. De celles qu'on relit jour après jour.

En deux jours sur la table au bureau, ce livre est déjà passé par toutes les mains. Il permet tout simplement de créer un vocabulaire commun au sein de l'équipe de développement. Dans les phases d'apprentissage -- une fois que le code marche -- il devient une aide très précieuse par son côté systématique. Juste dommage que ce vocabulaire soit anglophone encore une fois.

Et puis il faut avouer que cette exploration est largement aidée par la batterie de tests que nous avons sur openTIME. En attendant d'acheter le livre, un détour par le site refactoring.com pourra peut-être s'avérer utile à quelqu'un. D'ailleurs ce quelqu'un pourrait très bien être moi-même : je viens d'y découvrir le Split Loop. Et j'adore découvir des remises en cause de mes pratiques.

Petit défaut qui me rend jaune

mardi 2 mai 2006 :: perrick :: Ergonomie :: un commentaire :: aucun trackback

Il y a parfois des petits défauts qui sont très pénibles. Celui-ci par exemple :

Pas grand chose en apparence : c'est juste que le fax et le numéro de téléphone sont inversés. Et bien sûr j'ai appelé le fax. Deux fois. Argh...

Des nouvelles et belles images pour des données

mercredi 26 avril 2006 :: perrick :: Ergonomie :: 2 commentaires :: aucun trackback

Je suis toujours assez fan des nouvelles manières de présenter des chiffres et des données dans de jolies graphiques. Cette semaine, j'ai été gâté.

Il y a tout d'abord eu les résultats de l'étude de Tim O'Reilly sur les ventes de livres informatiques aux USA : State of the Computer Book Market, Part 1, Part 2 et Part 3. Il s'agit là de Treemap.

Plus récemment, les arbres phylogénétiques de Jean Véronis : celui des thèmes de la campagne électrole 2007 et celui des prétendants à la présidentielle 2007. Il donne même une liste de logiciels pour réaliser de tels arbres : phylogeny software. Je rêve d'abord ces outils en PHP un jour !