Quelques statistiques sur des frameworks PHP Open Source

jeudi 17 juillet 2008 :: perrick :: PHP :: 7 commentaires :: aucun trackback

Boris, stagiaire chez No Parking, met à profit ses talents de statisticien pour effectuer une étude sur des frameworks PHP. Passent à sa moulinette : Akelos, Prado, CodeIgniter, Solar et ZendFramework. Bien sûr je vous invite à aller lire sa première étude complète : Fiabilité des fichiers dans des frameworks PHP. Ceux qui le souhaitent peuvent aussi aller jeter un coup d'oeil sur le modus-operandi pour comprendre un peu mieux les conclusions.

Et s'il ne fallait retenir qu'une chose de cette petite étude : les commentaires, c'est bien... Et bien sûr c'est une pratique que nous n'appliquons pas du tout sur OpenTime ;-)

Les résultats du TestFest à Paris

mercredi 18 juin 2008 :: perrick :: PHP :: aucun commentaire :: aucun trackback

Lors du premier PhpCamp à Paris au début du mois, Raphaël Rougeron avait introduit la TestFest à la française. Nous étions quelques uns à prendre 1h ou 2 pour essayer de faire avancer leschmilblick PHP avec des tests unitaires. Les résultats sont désormais dans le dépôt CVS : il y a le bug découvert par Julien Pauli et celui sur sur SplFileObject::fgetss que j'avais exposé. En espérant que ça en inspire d'autres pour une prochaine fois ;-)

Occasion à ne pas rater : PhpCamp et TestFest à Paris

mercredi 28 mai 2008 :: perrick :: PHP :: aucun commentaire :: aucun trackback

Le 7 juin 2008 -- dans moins de 2 semaines -- aura lieu le premier PhpCamp à Paris. Et comme nous sommes en plein mois de TestFest pour PHP, l'occasion est trop belle pour la rater. Bien sûr je suis incapable de donner un quelconque programme : il s'agit d'une non-conférence. Il suffit donc d'être sur place et d'influer sur les sessions (avec un vote, une proposition ou des pieds) pour y dire ce qu'on a envie de dire et pour entendre ce qu'on a envie d'entendre...

Mon petit doigt me dit que ce sera un évènement à ne pas rater. Avec des contributeurs reconnus sur presque tous les frameworks "importants" de la place PHP et des anciens conférenciers du Forum PHP, le niveau des échanges sera à coup sûr intéressant sur pas mal de sujets. Vous aurez deviner que j'ai hâte d'y être ! Et peut-être de t'y croiser ;-) Bref pensez à passer par les cases Rendez-Vous AFUP pour les inscriptions et PhpCampParis pour les infos...

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...