Au revoir Selenium, SimpleTest revient et JQUnit arrive

vendredi 23 mai 2008 :: perrick :: PHP :: un commentaire :: aucun trackback

Il y a quelques temps nous étions passés à Selenium pour lancer nos tests de recette automatique sur notre application -- OpenTime. Et il y a un mois environ, nous avons changé le fusil d'épaule : en plus de faire les tests unitaires avec SimpleTest, nous l'utilisons aussi pour faire les tests de recette. Le pourquoi tient en un mot : simplicité.

Le serveur Selenium (en Java) n'était tout simplement pas stable -- en plus, c'est une plaie à maintenir quand on est spécialiste de PHP et pas de Java. Ensuite SimpleTest a marqué pas mal de point avec des assertions sur le code HTML via des sélecteurs CSS. Enfin le processus était trop dur à automatiser. Grosso modo, SVN lançait un script en post-commit, ce script PHP installait une version de l'application puis SimpleTest prenait la main pour lancer les tests Selenium via le serveur, ce serveur lançait à son tour un Firefox ou un Opera avant de recevoir les résultats, SimpleTest recevait le tout et enfin un email était envoyé... Trop fragile. Surtout quand on pense que la ligne de commande doit être capable d'ouvrir un Serveur X pour le navigateur au milieu de tout ça. Avec un reboot automatique -- chaque soir -- du serveur Selenium, ça devenait définitivement trop complexe.

Nous sommes donc revenus à une architecture plus simple pour l'intégation continue avec SimpleTest pour les tests unitaires et de recette : on n'utilise plus de navigateur mais au moins ça tourne tous les jours et on peut l'oublier un peu... Surtout que tout le monde chez No Parking utilise OpenTime au quotidien : le besion est moins pressant.

Et puis donc, le petit nouveau du jour : jqunit. Il s'agit d'un testeur unitaire spécialisé pour le framework jQuery dont nous dépendons désormais pour pas mal d'interactions côté client. Ce composant n'est pas encore intégré dans notre process d'intégation continue -- chaque chose en son temps -- mais déjà avoir une première barre verte sur ce code là quand on développe, c'est pas mal... Affaire à suivre donc.

Quelques jours encore pour votre conférence au Forum PHP 2008

vendredi 9 mai 2008 :: perrick :: PHP :: aucun commentaire :: aucun trackback

La date limite de l'appel à conférenciers de l'AFUP approche à grand pas : ce sera dimanche soir... Pour l'instant nous avons reçu plus que 40 propositions de sessions : il manque plus que la tienne ;-) Souvent on me demande comment mettre le plus de chance de son côté, alors voici quelques tuyaux.

Tout d'abord, il y tri sur le nom de l'orateur : Rasmus aura toujours l'avantage de ce côté-là, mais un leader de projet Open Source qui tient un blog n'est pas mal placé non plus. Ensuite il y a le nom de l'entreprise -- ou bien son domaine (surtout pour un retour d'expérience) : un grand compte (public ou privé) tient la corde mais une boîte plus petite sur un domaine très pointu peut se révéler très pertinente. Et enfin la qualité du thème de la session : vive l'actualité -- cette année PHP5.3 et les namespaces par exemple -- et les usages qui tirent le langage vers plus de perf ou plus de maintenabilité (ah, les frameworks).

Et comme chaque année, il peut y avoir des sujets connexes : MySQL et les autres bases de données bien sûr ou les types de rendu (RIA, HTML & CSS, Ajax, jQuery et consorts). La particularité cette année, c'est qu'il y aura trois tracks sur les 2 jours : on va pouvoir expérimenter plus de choses, n'hésitez pas à proposer des sessions qui sortent de l'ordinaire.

PS : je ne vote pas cette année pour choisir les sessions qui seront effectivement sélectionnées, je suis juste un organisateur bénévole !

Apéro PHP lillois, le 15 avril 2008

vendredi 28 mars 2008 :: perrick :: PHP :: aucun commentaire :: aucun trackback

Le prochain Apéro PHP à Lille est prévu pour le 15 avril 2008. Rendez-vous à 19h30 au Café Citoyen - 7 place du vieux marché aux chevaux, près du métro République. L'occasion de revoir des têtes et pourquoi pas en voir des nouvelles... En tout cas les inscriptions, c'est sur le site http://www.aperophp.net/apero.php?id=202.

Et puis il y a aussi un BarCamp en prévision, mais ce sera pour un peu plus tard... Le 24 mai 2008 à l'ESC Lille.

Embryon "PHP to the Moon"

mardi 18 mars 2008 :: perrick :: PHP :: aucun commentaire :: aucun trackback

Après quelques semaines de boulot et en vue de la conférence du 25 mars 2008, le site web PHP to the Moon pointe le bout de son nez. Voici grosso-modo les questions qu'on essaiera de répondre là-bas :

Il s'agit d'une initiative que No Parking mène avec Algorismi : leurs compétences en analyse de code (leur Meter4PHP que certains avaient vu lors d'un précédent Forum PHP à Paris sera inclu dans phptothemoon) et l'expérience acquise au sein du projet SimpleTest font un socle intéressant. Et j'espère que l'embryon d'outil qu'on présentera en live le 25/03/2008 sera prometteur...

Pour les impatients, voici un premier bout d'écran de ma démo :

Découvrir les outils de la qualité en PHP

lundi 3 mars 2008 :: perrick :: PHP :: aucun commentaire :: aucun trackback

L'AFUP organise le 25 mars 2008 un rendez-vous intitulé Outiller la qualité en PHP. C'est un évènement gratuit et ouvert à tous : il suffit de s'inscrire.

Date : 25/03/2008
Horaire : 20h00 - 22h30
Capacité : 50 places
Lieu : La Cantine
151 rue Montmartre, 12 passage Montmartre
Galerie des Panoramas, 75002 Paris

Comme d'habitude pour ce genre d'évènements, c'est vite plein ! Ce serait dommage de perdre une occasion de découvrir les tenants et les aboutissants d'un politique qualité en PHP. Avec la fin annoncée de PHP4, ça devient urgent...

Pourquoi pas VIM ?

mardi 26 février 2008 :: perrick :: PHP :: aucun commentaire :: aucun trackback

Mon rôle au sein de No Parking a largement changé ces derniers temps avec l'arrivé de trois nouveaux développeurs dans l'équipe (deux salariés et un stagiaire). Je passe moins de temps à coder (seul ou en binôme) et beaucoup plus à suivre celui des autres que ce soit pour un bug tordu, pour une spécification incomplète ou pour un avis -- plus ou moins -- éclairé.

C'est en jonglant entre mon écran et celui des autres que je me rends compte à quel point je ne pourrais plus travailler avec VIM ou un autre éditeur de texte simple. Je dépends trop des vues que propose Eclipse pour rentrer dans du code, surtout en mode intervention chirurgicale.

Voici un bref aperçu des trois vues que j'utilise le plus souvent :

le code :
les classes & méthodes :
les fichiers :

A chaque plan correspond un enjeu particulier qui fait la qualité du code (PHP ou pas d'ailleurs) : les questions d'architecture avec les fichiers, celles de compréhension du domaine (business logic, dirait nos amis outre-manche ou outre-atlantique) avec les classes et les méthodes et celles de l'implémentation proprement dite avec le code brut. Et c'est la capacité d'appréhender les trois plans en même temps -- ou presque -- qui me fait défaut avec un éditeur de texte, aussi puissant soit-il.

Ouverture de la Planète PHP FR

jeudi 13 décembre 2007 :: perrick :: PHP :: aucun commentaire :: aucun trackback

Quatre soirées de développement plus tard, la Planète PHP FR sort enfin le bout de son nez.

Quelques précisions plus ou moins techniques...

Pourquoi le remplaçant de Google utilisera (peut-être) PHP ?

samedi 8 décembre 2007 :: perrick :: PHP :: un commentaire :: aucun trackback

Je viens de finir un conférence d'Alan Kay : The Computer Revolution hasn't happend yet (keynote OOPSLA 1997). Au dela des critiques de C++, de Java ou de MS-Dos, j'y ai trouvé une vision intéressante de l'avenir de l'informatique : enfin sortir de la métaphore physique (architecture, construction ou assemblage), y préférer la métaphore biologique. Son meilleur exemple : Internet. Plus de 30 ans que ça tourne, pas encore de reboot. Et pourtant toutes les fondations logicielles ont été changées.

D'autres systèmes tournent déjà avec ce genre de principes : Hadoop et son utilisation d'un (très gros) cluster où la panne ne peut pas être critique. Ou alors OpenID et son système décentralisé d'authentification.

Autre point important de cette métaphore biologique, l'évolution continue. Voyons donc ce que donne une Computer Languages Timeline. Bien sûr l'ensemble des langages commence par une période d'activités intenses : Smalltalk sort de nouvelles versions en 1971, 1972, 1974, 1976, 1978, 1980. Plus loin encore FORTRAN en 1954, 1956, 1957, 1958, 1962, 1968, 1971. Sauf que pour le premier il faudra attendre 1998 avant une sortie suivante. Et pour le dernier il faudra attendre 1991 -- 20 ans -- autant dire une éternité. Plus de temps qu'il ne faut pour mourir.

Et c'est bien là que PHP me semble particulièrement intéressant.

Il s'agit du langage de programmation qui a sorti le plus grand nombre de versions ces dernières années : autrement dit, c'est celui qui a la plus grande facilité d'adaptation. Aussi bien au niveau de sa syntaxe qu'au niveau de ses utilisateurs.

Niveau développement, il y a “Release early, release often” mantra d'Ilia Alshanetsky - Release Master de PHP5, mot d'ordre partagé par l'ensemble de la Core Team. Il y a aussi le choix délibéré de ne pas se laisser enfermer dans le tunnel annoncé du passage à PHP6 en back-portant les autres fonctionnalités attendues (late static binding, namespaces...) vers PHP5.3.

Côté utilisateur, un autre exemple : OVH -- gros hébergeur français -- vient d'annoncer la disponibilité très prochaine de PHP6 sur l'ensemble de ses hébergements mutualisés : si vous voulez que .php fonctionne en PHP6 il faut mettre Set PHP_VER 6 dans .htaccess. Alors même qu'une preview release n'est même pas encore annoncée, ils ont donc trois versions de PHP qui tournent !

Du futur imprévisible, même pas peur.

Pourquoi Google n'a pas utilisé PHP ?

jeudi 6 décembre 2007 :: perrick :: PHP :: aucun commentaire :: aucun trackback

La réponse tient en deux lignes :
array array_map ( callback $callback , array $arr1 [, array $... ] )
mixed array_reduce ( array $input , callback $function [, int $initial ] )

Et oui, il fallait lire la doc en détail avant de comprendre pourquoi on obtient Warning: array_reduce() [function.array-reduce]: The first argument should be an array lors de son premier exemple de Map_Reduce !

Sans oublier que ces deux fonctions, array_map et array_reduce, non contentes d'inverser leurs paramètres, n'acceptent pas de classe comme callback ;-) Vivement PHP7 !

Les sessions du Forum PHP podcastés

mercredi 28 novembre 2007 :: perrick :: PHP :: aucun commentaire :: aucun trackback

Grâce à l'efficactié d'Arnaud les fichiers audio des sessions arrivent au fur et à mesure en podcast : http://feeds.feedburner.com/forumphp2007. Idem pour les présentations au format HTML, PDF et co...

Et pour ceux qui se posent la question de mes supports, c'est délicat. Etant donné qu'il s'agissait d'une écriture de code en live, il n'y a pas de PDF ! Et comme il s'agissait d'un atelier, pas de prise de son non plus. Désolé : il fallait y être ;-)

En tout cas ces ateliers auront été un des jolis succès de cette édition 2007 du Forum PHP : ça crée du buzz et du mouvement lors de l'atelier. Du style :
- j'ai vu tel ou tel truc, c'était génial !
-ah bon, si bien que ça. Parce que moi j'ai préféré aller voir la démo de XXX m'a bluffé. C'est bien dommage de devoir rater des présentations.

Bref une piste à reprendre pour l'année prochaine. Et pourquoi pas des ateliers "développeurs" pour le premier jour et d'autres "décideurs" pour le deuxième jour : de la sorte tout le monde y trouve son compte chaque jour. Reste à trouver des idées d'ateliers pour ces fameux "décideurs" : j'ai bien pensé à créer sa boîte autour de PHP ou présentation fonctionnel d'un projet Open Source -- Mantis / SugarCRM / Claroline / autres, mais je suis vite court. Vous en avez d'autres ??

Du PHP beurré sur une tranche de Mac

dimanche 4 novembre 2007 :: perrick :: PHP :: aucun commentaire :: aucun trackback

Wez Furlong a publié son dernier projet : un pont entre Objective-C et PHP. A terme on devrait pouvoir faire une application Mac en PHP directement. La première démo et des screenshots sur son blog : ironie du sort, la version de PHP livrée par Apple sur le nouveau Leopard, ne permet d'installer le script...

Bien sûr c'est un truc à prendre avec des pincettes, on parle d'un pré-pré-version. Mais quand même, je suis heureux de voir sortir de telles expériences. Cela nous change du nouveau framework ou de la lisibilité de l'opérateur ternaire.

Un Forum PHP qui arrive vite vite

lundi 29 octobre 2007 :: perrick :: PHP :: aucun commentaire :: aucun trackback

Le Forum PHP 2007 arrive à grand pas, une dernière conférence s'est ajouté au programme : une présentation des technos Microsoft pour PHP : Fast CGI dans IIS 7 (Windows Server 2008), Microsoft Ajax Framework et PHP, Phalanger (Compiler du PHP pour le framework .NET) et Silverlight... C'est toujours intéressant de voir ce que fait la concurrence ;-) Surtout quand ils rament pour faire monter leur part de marché sur le secteur : plusieurs fois lors de conférences PHP, j'ai vu quelqu'un poser la question qui tue combien d'entre vous utilisent Windows sur leur serveur de production ? et personne ne lève la main.

En tout cas, j'y serais : il y a trop de bonnes choses à découvrir. Et de gens à revoir...

Lancement des inscriptions pour le Forum PHP 2007

jeudi 4 octobre 2007 :: perrick :: PHP :: aucun commentaire :: aucun trackback

C'est bon, c'est officiel : on peut désormais réserver sa place pour le Forum PHP 2007. Désolé pour le retard : petit bug à l'allumage (et c'est ma faute). Il y a quand même des petits malins qui ont envoyé leur bon de commande avec 10 jours d'avance !!! C'est vrai que depuis deux ans, le Forum PHP a lieu à guichet fermé.

Sinon parlons programme : il sera encore plus riche cette année puisque nous avons 2 salles en plus pour la journée "développeur". Certains diront que les suspects habituels seront présents, Rasmus et Andreï par exemple. Par contre j'attends beaucoup des présentations de Flex (à la fois par des gens d'Adobe et par d'autres). Côté monté en charge et autres optimisations, il y aura les cas Wat.tv et Facebook à découvrir. Et puis aussi une session expérimentale par mes soins : 1h de refactoring depuis du code existant en PHP4 vers PHP5 et PHP6 -- avec des tests unitaires au passage. Deuxième nouveauté, c'est qu'il y aura plus de poses entre les sessions : histoire de favoriser le réseau social de la vraie vie. Ah j'oubliais, nous -- No Parking -- présenterons normalement aussi la nouvelle version d'opentime en avant-première (on aura l'occasion d'en reparler prochainement ;-)

Des trucs à ne pas faire...

jeudi 20 septembre 2007 :: perrick :: PHP :: 2 commentaires :: aucun trackback

En reprenant une application existante en PHP, j'ai redécouvert un certain nombre de trucs à éviter. Voici un petit florilège.

  1. Modifier $_GET, $_POST ou $_SESSION. Ces variables magiques sont générées par le moteur PHP : bien sûr c'est parfois pratique de les écraser, de les modifier ou (pire) de les générer à la volée. C'est juste qu'ensuite il devient tellement facile de s'y perdre.
  2. Ne pas utiliser gettext. Plutôt que de ré-inventer la roue pour la gestion des langues, sachez que ce système-là est stable, éprouvé et efficace. Sinon il existe aussi des librairies externes très bien foutues : dans les eZ Components ou PEAR par exemple. En attendant PHP6 bien sûr ;-)
  3. Préférer $t à $tableau. Surtout quand le reste du code est écrit en anglais ! Le code, c'est pour les humains qui lisent, pas pour la machine qui traduit mécaniquement et qui se tape royalement d'avoir des caractères en plus.

PHP5 devant, PHP4 derrière

vendredi 6 juillet 2007 :: perrick :: PHP :: aucun commentaire :: aucun trackback

D'un côté -- celui de PHP Internals -- on tate le terrain pour arrêter le support de PHP4. De l'autre -- celui de grands projets Open Source en PHP -- on prépare la migration vers PHP5.2 et on pousse les hébergeurs à fournir enfin des comptes PHP5 par défaut. Autant dire qu'il ne vous reste "plus que" 200 jours environ pour migrer vos applications PHP4 et pour faire évoluer vos plateformes techniques. Please.

Le plus fort dans l'histoire, c'est que les deux évènements ne sont pas coordonnés : c'est que c'est le moment. Et il y a aussi l'annonce de PEAR2...