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

Les dernières nouveautés de SimpleTest (avant version 1.1)

jeudi 5 juillet 2007 :: perrick :: Projets Open Source :: 2 commentaires :: aucun trackback

Cela fait longtemps que je n'avais pas évoqué les évolutions de SimpleTest sur ce blog et pourtant ce n'est pas que les évolutions se sont arrêtés en cours de route. Au contraire d'ailleurs : plusieurs soirées ont été consacrées à du développement pur et dur depuis quelques mois. Petit aperçu des nouveautés...

Autorun

Commençons par les paresseux, ils vont être contents. Une unique ligne de code en tête de votre fichier et automatiquement il est exécuté par le framework : il s'agit de require_once('simpletest/autorun.php');. Plus besoin de savoir où on se place dans la suite des require : SimpleTest se charge de tout. Plus d'infos dans la doc...

Enregistrer ses tests

Pour les pointilleux, il y a l'enregistreur de résultats. Il vous permet d'itérer très simplement sur les résultats de votre jeu de test :

foreach (recorder->results as $result) {
  if ($result->status == "Failed") {
    do_something_while_it_is_time(result);
  }
}

CSS selectors

Ecrits en JavaScript par Simon Willison, porter en PHP par Fabien Potencier, les selecteurs CSS peuvent désormais servir pour tester votre rendu HTML : pour celui qui ne connait pas ses #ma-boite-en-rouge de ses div.en-tete p, ce ne sera pas très utile. Les autres vont pouvoir oublier les selecteurs XPath et utiliser ceux de tous les jours (oui je suis mauvaise langue ;-).

Tous ses trucs sont d'ores et déjà disponibles avec les nouveaux objets fantaisie dans le dépôt CVS. La release officielle, c'est pour bientôt. Et ensuite on migre vers SVN (j'ai hâte de retrouver mes svn:externals dans opentime), on remet en place un paquet PEARified, on intègre au mieux Selenium...

Goûter à FaceBook avant de devenir vieux

dimanche 24 juin 2007 :: perrick :: Connexe(s) :: aucun commentaire :: aucun trackback

Qu'est-ce qu'on perd quand on atteint 30 ans ? En lisant la réponse je me suis dit qu'il fallait peut-être aller faire un tour de côté de FaceBook... C'est encore plutôt américo-américan mais bon il y a peut-être des trucs bons à prendre du côté de cette usine à exploser les compteurs.

Parmi les groupes français qui m'ont fait rire : PARIS'S BIGGEST WATER FIGHT. Dommage qu'ils n'aient été que 20 personnes la première fois.

Sur un ton tout aussi sérieux, je me demande quoi penser : le groupe PHP a 543 membres alors que celui Ruby 66 et Python 146. Et Ruby on Rails 257 contre Symfony 16 et Django 80. Pendant ce temps-là Britney and Justin - NEED to get back together explose Britney is better off without him 700 à 31. A quand le FaceBookFight, histoire de trancher une fois pour toute sur tout et son contraire ?

En tout cas ne vous inquiétez pas pour l'instant, la police veille...

Retour au vert

lundi 11 juin 2007 :: perrick :: Extreme Programming :: 2 commentaires :: aucun trackback

Il y a 17 jours, un bug s'est introduit dans notre suite de tests : impossible à reproduire en local, il faisait planter le système d'intégration continue sur le serveur. Et chaque email en post-commit égrainait la même rengaine Test cases run: 86/86, Passes: 4211, Failures: 6, Exceptions: 0. Une première séance de débogage n'aboutiera pas : les 6 erreurs restent.

Quelques jours plus tard, on inaugure l'ajout des tests de recette automatisés à la sauce unitaire : grosso-modo, un script PHP lance tous les tests unitaires avec SimpleTest; sauf qu'un des scénarios utilise notre dernière contribution SeleneTestCase pour utiliser le serveur Selenium et s'occuper des tests de recette au passage (on en reparlera).

source : http://flickr.com/photo_zoom.gne?id=170821408&size=s

De 6 erreurs, on passe directement à : Test cases run: 86/88, Passes: 4137, Failures: 207, Exceptions: 2517. Quelques réglages plus loin, on retombe rapidement sous la barre des 50 erreurs / exceptions. Ce dernier paquet mettra un temps plus conséquent à se résorber : quand on ne fait que manipuler des dates, ce n'est pas toujours évident d'être synchro dans ses tests ! Encore une après-midi pour éliminer les 6 erreurs du départ (un méchant effet de bord dans la suite) et nous revoilà enfin au Test cases run: 85/87, Passes: 4399, Failures: 0, Exceptions: 0.

Je suis le premier surpris de l'effet purement psychologique : l'impression que le ciel est de nouveau dégagé et qu'on peut reprendre tranquillement et sereinement le fil des développements. Reste à savoir comment d'autres équipes XP gèrent ces passages dans le rouge...

Bientôt un Dojo Développement à Lille

mercredi 6 juin 2007 :: perrick :: Extreme Programming :: aucun commentaire :: aucun trackback

C'est en 2004 que le premier dojo développement a sorti la tête de l'eau sous l'impulsion de Laurent Bossavit et Emmanuel Gaillot. Trois ans plus tard (sans oublier la bière avec Arnaud Bailly : indispensable) le premier dojo lillois point le bout de son nez.

Pour l'instant, il s'agit simplement d'un groupe google... Avis aux amateurs !

Google Groupes
nord-agile
Visiter ce groupe

PS : pour ceux qui veulent plus d'infos sur ces dojos d'un autre genre, il y a un site dédié en anglais.

Appel à conférenciers pour le Forum PHP 2007

mardi 5 juin 2007 :: perrick :: PHP :: aucun commentaire :: aucun trackback

L'AFUP vient de lancer son appel à conférenciers pour l'édition 2007 du Forum PHP. Si le thème général de cette année est PHP, clients de dernières génération et bases de données, rien ne vous empêche d'être un peu créatif dans vos propositions. Le nouveau format de la deuxième journée a évolué : deux salles plus petites (60 places) viennent en complément de la plénière (200 places). Cela veut dire que des ateliers, des présentations pointus et tout plein d'autres trucs (comme votre dernier projet Open Source) pourront être programmés... J'ai hâte de voir ce que ça va donner.

Note : le site du Forum PHP 2007 est aussi ouvert !

Au secours, une framboise a disparu...

jeudi 31 mai 2007 :: perrick :: Perso :: 3 commentaires :: aucun trackback

Il semblerait que les framboises aient un peu d'avance cette année. J'ai eu l'honneur de goûter la première de l'année, production maison bien sûr.

Devinez de laquelle il s'agissait !

Comment itérer sur son design avec agilité

lundi 21 mai 2007 :: perrick :: Ergonomie :: aucun commentaire :: aucun trackback

Si les développeurs ont compris le principe des itérations depuis longtemps, c'est avec plaisir que je vois les designers du Guardian suivre le même chemin. Un billet sur niksilver.com -- Guardian Unlimited's new look: Some background on templating -- explique comment ils l'ont fait !

Pour l'instant seul la page d'accueil change : en 2001, en 2004 et aujourd'hui en 2007... Le reste suivra. C'est la première fois que je vois un site d'une tel ampleur fonctionner de la sorte.

Autre design marrant dans le même esprit : celui de d.Construct. L'esquisse évoluera dans le temps -- par Andy Budd !

Le remaniement routier

vendredi 11 mai 2007 :: perrick :: Extreme Programming :: un commentaire :: aucun trackback

Une grosse semaine de remaniement vient de se terminer sur opentime : notre plus grosse classe -- celle que j'avais commencé à écrirer il y a plus de 5 ans -- a vu fondre de moitié le nombre de ses méthodes. Une bonne dose de modularité en plus désormais !

Le remaniement est bien sûr une technique de prédilection en informatique : on travaille en continue avec de l'immatériel pur. Et pourtant depuis plusieurs semaines j'ai découvert une autre forme de remaniement... Celui qui s'effectue sur le bithume.

remaniement de route

Lors d'un voyage à Venise (une mission économique de la CCI de Lille et du département du Nord), j'ai eu l'occasion d'en parler avec un fonctionnaire : de plus en plus, on aménage les routes. Et vite. Et en mieux. Le plus long reste souvent le temps de la décision politique !

remaniement de route

Un nouveau bout de trottoir par ici, une place de parking qu'on supprime pour améliorer la visibilité au croisement, une bande de stop qui se déplace de quelques mètres...

remaniement de route

Avant de taper sur vos élus (c'est de saison ;-) reste à voir si ce n'est pas cette même question politique qui empêche le temps du refactoring.

Aller voir une pièce de code

mardi 8 mai 2007 :: perrick :: Développement :: aucun commentaire :: aucun trackback

Lors de mes deux passages aux XP days (à Malignes l'année dernière et à Paris il y a quelques semaines), j'ai assisté à deux Kata. D'abord celui de Emmanuel Gaillot & Christophe Thibaut -- A Fugue about Paradigms and Functional Programming -- puis celui de Régis Medina -- Refactoring: la voie vers l'abstraction.

A chaque fois, c'est avec un large sourire que j'ai quitté la salle : c'est très impressionant de voir du code naitre, pousser et grandir... Bien sûr ils avaient préparé leur démonstration. Exactement comme un jongleur s'est entrainer avant de monter sur scène. Il s'agit bien là d'une performance (au sens artistique du terme).

Pour un néophyte, les raccourcis clavier, ceux de l'IDE et aussi ceux de l'expérience auront parfois tendance à brouiller le chemin emprunté. Alors que le résultat final est juste beau : du code limpide, dense, expressif (même en Java).

Ceux qui voudront creuser la question pourront aller jeter un coup d'oeil du côté de CodeKata ou du DojoDeveloppement.

Flex sur le point de devenir Open Source

jeudi 26 avril 2007 :: perrick :: Connexe(s) :: aucun commentaire :: aucun trackback

Aujourd'hui Adobe a annoncé que Flex serait bientôt Open Source : un communiqué de presse a été publié (26/04/2007). Et comme on est dans une ère web2.0, il y a aussi une vidéo !

Je sens que ça peut avoir un impact très fort : on arriverait enfin à un environnement riche sur le web ET multi-plateforme. Ironiquement c'est la licence Mozilla (MPL) qui a été choisi : pour XUL ça risque de changer quelque peu la donne (à terme bien sûr).

En attendant il y a un forum modéré par Adobe pour suivre cet évènement : http://groups.google.com/group/flex-open-source. Après Tamarin (le moteur Javascript Open Source depuis quelques temps), Adobe se bouge : à quand le moteur Flash en Open Source ? A suivre...

Apéro PHP à Lille le 10 mai 2007

mardi 24 avril 2007 :: perrick :: PHP :: aucun commentaire :: aucun trackback

Après une parenthèse plutôt longuette, les apéros PHP reviennent à Lille : le prochain est prévu pour le 10 mai 2007. Le rendez-vous est fixé à 20h30 au Café Citoyen (7 place du vieux marché aux chevaux) à Lille. Métro le plus proche : République.

Pour les inscriptions, ça se passe sur le site http://aperophp.net/. En espérant vous y croiser...

Copie à revoir sur reddit.com

vendredi 20 avril 2007 :: perrick :: Ergonomie :: un commentaire :: aucun trackback

Je suis assez fan de Joel : vous le savez probablement déjà. Depuis quelques temps, un sous-section lui est dédiée sur reddit.com -- ou plutôt à ses lecteurs. Il s'agit de joel.reddit.com. Et depuis encore moins longtemps j'ai un compte sur ce site.

L'habitude n'est pas encore prise mais je vais pour me connecter ce matin.

login chez reddit.com

Jusque là tout est normal. Ensuite...

Read next

Fin de migration vers UTF8

lundi 9 avril 2007 :: perrick :: PHP :: aucun commentaire :: aucun trackback

Une fois le grand saut effectué, il est temps de faire un petit retour en arrière... Surtout que UTF8 + opentime fonctionnent en production depuis 3 jours !

Le plus trou point noir aura été les emails : comme ils n'entrent pas dans nos tests unitaires, ni dans nos tests de recette, nous les avions quelque peu oubliés au passage. Côté gênant, il y a aussi les librairies externes qu'il a fallu "patcher". Coup de chapeau quand même à SimpleTest et à PhpMailer qui ont un paramètre dans leur configuration respective pour passer de l'ISO 8859 à l'UTF8.

Au final le plus gros soucis aura été, par deux fois, des caractères "masqués" dans les requêtes SQL : la transformation du code source avec utf8_encode aura eu ses loupés. Nous sommes restés très perplexes devant ces erreurs : je suis encore incapable de circonscrire le problème plus finement. Un caractère issu d'un passage via MacRoman ? Un vestige de mes balbutiements avec EditPlus ? Je cherche toujours. Heureusement que mysql_error est intégré directement dans notre code de développement : le problème a disparu depuis... Et comme systématiquement dans ces cas-là il manquait les tests unitaires sur ces lignes.

Le grand saut de l'utf8

vendredi 23 mars 2007 :: perrick :: MySQL :: 3 commentaires :: aucun trackback

Aujourd'hui on fait des ALTER, c'est en tout cas ce que je pensais : UTF8 et MySQL n'étaient -- dans mon esprit -- pas encore en bon terme. Et finalement il aurra suffit d'une boucle pour migrer toutes les tables d'openTIME.

Rigolo comment des passages deviennent naturels parfois : Tout en utf-8 de Laurent, Convertir un site en UTF-8 de Nicolas, détour via PHP/Oracle de Gérald. Et donc notre logiciel de gestion de temps qui a suivi hier le même chemin, pour une sombre histoire de Selenium Server.

C'est dans ces moments-là que je me dis que PHP6 a un bel avenir devant lui : plus de soucis avec urlencode, plus de soucis avec strtoupper. Le bonheur en barre à portée de clavier.