Stand AFUP au salon Solutions Linux

mardi 25 janvier 2005 :: perrick :: PHP :: 5 commentaires :: aucun trackback

L'AFUP sera présente dans les espaces associatifs du salon Solutions Linux. Je ne résiste pas à vous dévoiler les 2 affiches qui devraient s'y trouver... C'est Romain Desplanques qui nous les a concoctées : j'ai hâte de les voir imprimées en grand format !

vous avez les meilleurs serveurs

arrêtez de vous cacher la vérité

Pour ceux qui voudraient creuser ses affirmations, mon tour derrière le stand sera mardi 1er février dans l'après-midi : en espérant vous y croiser.

Màj du 25/01/2005 : il y a eu des corrections mineures sur les affiches.

Tutoriel SimpleTest : découvrir les tests unitaires

mercredi 12 janvier 2005 :: perrick :: PHP :: 7 commentaires :: un trackback

La série de mes traductions du tutoriel de SimpleTest est terminée : vous trouverez ci-dessous l'ensemble des étapes pour découvrir le développement piloté par les tests.

Si c'est un peu dur à avaler en entier (il y a des notions de programmation orientée objet assez évolué vers la fin des articles), il y a un secret : il suffit de commencer par l'introduction à SimpleTest.

Reste une question : qu'est-ce que j'ai à gagner en passant à des tests unitaires réguliers ? Ma réponse est personnelle : elle se décline en deux mots, confiance et simplicité.

La confiance parce qu'en écrivant un test avant le code, je valide que ma fonction / méthode n'est pas magique. Je code juste ce qu'il faut pour la faire marcher. Dire qu'avant je souriais en pensant :tiens ça marche alors que ce n'était pas tout à fait prémédité. Désormais je rentre chez moi le soir plus relax.

La simplicité ensuite parce que le test écrit permet de limiter ses efforts de conception à un superficie très réduite de code. Je ne passe plus de temps à essayer d'anticiper les prochains développements. Ils viendront bien assez vite et parfois d'une provenance complètement inattendue. Et la barre verte permet de se sentir en sécurité le moment voulu pour remanier des choses.

Apéro PHP bordelais : 04/02/2005

mardi 11 janvier 2005 :: perrick :: PHP :: 6 commentaires :: aucun trackback

Au gré de mes pélégrinations, j'aime bien monter un apéro PHP : la prochaine fois ce sera donc le vendredi 4 février 2005 à 20h, à Bordeaux au Dick Turpin's -- 72 rue du Loup. Tu y es plus que bienvenu, surtout avec tes questions sur PHP en particulier ou sur le développement web en général. Donc pour s'inscrire, il suffit d'aller faire un tour sur aperophp. C'est aussi là que vous pouvez en monter un du côté de chez vous !

Pour les curieux, je serais une prochaine fois sur Londres, avec php london. Mais ça, ce sera une autre histoire...

Apéro PHP lillois : 20/01/2005

jeudi 6 janvier 2005 :: perrick :: PHP :: aucun commentaire :: aucun trackback

Les aléas du web : quand bien même j'avais ajouté le prochain apéro PHP lillois, je ne serais pas le premier à l'annoncer sur son blog : Jean-Marc l'a déjà fait sur dyingculture.net.

Pour les détails pratiques, ça se passera dans mon nouveau local à La Madeleine le 20 janvier 2005 à partir de 20h. Peut-être que quelqu'un aura penser à prendre son appareil photo numérique : je pourrais alors poster les photos promises. Sinon cette fois-ci il y a un thème imposé : le XP Game créé par des praticiens XP belges. Un jeu pour découvrir les notions de l'Extreme Programming : avec les ballons et les cartes, il y a moyen de passer un bon moment.

Du côté de PHP en 2004

samedi 1 janvier 2005 :: perrick :: PHP :: aucun commentaire :: aucun trackback

Derick Rethans publie son résumé annuel de la vie du projet PHP en 2004, vu de l'intérieur. Quelques trucs marrants mais surtout un avant-goût de ce qui nous attend avec les versions 5.1 et 5.2. Et aussi -- puisqu'il s'agit de la question du moment -- avec Apache 2.

màj : Damien Séguy a traduit en français Toute l'année PHP 2004.

Créer une image GIF à la volée

jeudi 16 décembre 2004 :: perrick :: PHP :: 2 commentaires :: aucun trackback

Depuis avant-hier dans ma suite de tests sur openTIME, j'avais une fonction qui ne passait plus : comme elle n'est presque pas utilisée, j'en ai juste pris note dans un coin de ma tête. Aujourd'hui je décide d'aller explorer la question et je tombe sur un ancien commentaire :
// note interne : cette fonction n'existera pas avant le 7 août 2004
// date de la fin du brevet sur les fichiers gif

Au lieu de retourner un échec, le test (créer une image GIF à la volée) marche désormais sur ma machine : j'avais tout préparé à l'époque (incapable de vous dire quand) en attendant que le brevet sur les fichiers GIF tombent dans le domaine public. Et en mettant à jour ma version de PHP à la 4.3.9, la magie de function_exists("imagegif") opère... ou plutôt celle du développement piloté par les tests !

PS : oui je sais que la version 4.3.10 est sortie depuis.

Sans Écho de Code -- le concept de développement DRY

lundi 6 décembre 2004 :: perrick :: PHP :: 5 commentaires :: aucun trackback

Le développeur PHP commence par du code procédurale, puis ajoute des fonctions avant de découvrir la programmation objet et le sommet de son art : les design patterns. Pour désacraliser cette notion, je tente une traduction : les motifs de conception. Plutôt qu'une recette ésotérique qui marcherait à tous les coups, cette traduction permet peut-être d'y voir plus clair : structure, figure ornémentale, le plus souvent répétée. Très utile pour communiquer, très avantageux pour parler de son code à un tiers, très profitable pour étudier la programmation. Moins efficace pour le développement. (Note : je différencie volontairement programmation et développement).

Si la différence n'est pas au niveau de la programmation objet et de son cortège de motifs de conception (on a fait et on fera encore beaucoup de code avec de simples fonctions), comment distinguer le code performant d'un code détestable ? La réponse est d'abord dans un principe simple : pas de duplication. En anglais ça donne DRY (Don't Repeat Yourself). Restait à trouver un jeu de mot suffisamment riche sur SEC : je propose Sans Écho de Code.

Un petit test... Demandez à vos lignes de PHP : lesquelles parmi vous doivent être modifiées pour changer ce menu de navigation ? La ligne 58 du fichier menu.php vous répond : Ici. Puis la ligne 121 de show_menu.php enchaîne : Ici. Puis au tour des lignes 345 et 570 dans show_template.php : Ici... Ici. Si à chaque question comme celle-là, votre code vous renvoie en écho plusieurs fois ici, c'est que vous avez un problème beaucoup plus urgent que la programmation objet ou les motifs de conception. Rien que les fonctions include et require font souvent des miracles : un remaniement -- ou refactoring en anglais -- commence par là. Après plusieurs de ces étapes (avec un code qui marche toujours, bien sûr) le motif adéquat vient tout seul !

L'autre différence s'appelle les tests unitaires... Mais ça c'est une autre histoire. Dès que la traduction de ce tutorial est bouclée, on en reparlera.

PS : si vous avez d'autres propositions pour SEC, je suis preneur !

PHP bientôt grand

jeudi 2 décembre 2004 :: perrick :: PHP :: 2 commentaires :: aucun trackback

Alors que dans la presse informatique d'entreprise (et pas uniquement en France) PHP est encore peu considéré en tant que langage professionnel, chez d'autres (qui ne font pas parti du "monde PHP" bien entendu sinon ce serait trop facile) il est d'ores et déjà devenu une référence.

Deux exemples récents chez des développeurs aguéris :
David Heinemeier Hansson (Ruby) Customers fear that a world of risk and hurt will come unless they choose "a standard", like Java, C#, or PHP, and by silently bowing in agreement, developers are selling the customer short.
Damian Conway (Perl) PHP's popularity for Web development isn't at all surprising.

Apéro PHP lyonnais : 09/12/2004

dimanche 28 novembre 2004 :: perrick :: PHP :: aucun commentaire :: aucun trackback

Pour une fois, mon prochain apéro PHP ne sera pas à Lille mais à Lyon : l'invitation est donc lancée pour le 9 décembre 2004 à l'Arrêt Public des Platanes -- 10 place Lieutenant Morel -- à partir de 20h. Pour plus d'infos et l'inscription, c'est toujours au même endroit...

J'ai souvent tendance à parler de développement web en PHP mais autour d'un verre d'autres pistes sont toujours possibles !

PHP pour les flasheurs

mardi 23 novembre 2004 :: perrick :: PHP :: 8 commentaires :: aucun trackback

Un petit tour via PHP Quebec et me voilà devant un projet qui a l'air fameux : AMFPHP. Il s'agit ni plus ni moins que d'un pont complet entre une application PHP et une interface en Flash. D'après la doc, tout y passe : Flash remoting for PHP enables objects in PHP to become objects in actionscript, almost magically! AMFPHP takes care of all the data-type conversions, serialization, and other client-server details.

Dommage pour moi, j'ai arrêté de faire des trucs en Flash il y a plus de deux ans. Faut dire qu'à l'époque j'avais pour voisins des très très bons flasheurs (ceux qui faisaient Chman et Banja)...

Quelques notes provenance du forum PHP 2004

vendredi 19 novembre 2004 :: perrick :: PHP :: 2 commentaires :: un trackback

Pour une première fois en live, le bonhomme est à l'image de son personnage : Rasmus Leedorf passe bien (très bien même) en conférence. Et ce qu'il raconte reste toujours engagé et pertinent, aussi bien entre 200 personnes et un grand écran de projection qu'à table en soirée. J'étais particulièrement attentif à ses critiques sur les templates -- que j'avais tendance à suivre : après avoir les avoir entendues, aujourd'hui j'ai vu sa méthodologie mise en place au sein de Yahoo (Note : dès que je retrouve un lien, il sera ici). Le débat peut continuer -- mais pas trop ici s'il vous plaît.

Il y a aussi et surtout son métier chez Yahoo : les couches serveur. Tout comme avec la présentation de Derick sur son débuggueur (XDebug), c'est dans les niveaux très bas de PHP que j'ai appris le plus de chose : attention au define qui bouffe "beaucoup" de ressources, ne pas hésiter à utiliser ./, des hacks au niveau de PHP, limiter les includes, etc. Au passage c'est fou ce qu'on peut apprendre à les entendre parler du code interne de PHP.

Dans les autres conférences, il y en a pour tous les goûts. Des ouvertures intéressantes : XUL et PHP-GTK, le monde des CMS : SPIP contre SPIP-AGORA (entre autres), le remaniement (ou refactoring) : attention à se protéger via les tests unitaires, les frameworks : très bien si c'est effectivement le vôtre.

Mais comme à chaque fois, en plus des conférenciers, il y a tous les visiteurs : je ne prendrai pas le risque d'en oublier, je vous renvoie donc vers les photos de Damien sur Nexen et le grand jeu du qui est qui ! Au risque de perdre toutes les discussions annexes : PEAR (encore et toujours), les tests unitaires et SimpleTest, la formation d'un développeur PHP moyen, d'autres trucs divers ou variés et pour faire bonne figure la question de la présidence AFUP.

Une librairie en PHP pour des lignes étincelle

jeudi 11 novembre 2004 :: perrick :: PHP :: aucun commentaire :: un trackback

Il y a un peu plus de 2 mois je découvrais le concept de sparkline (ou ligne étincelle) sur le site d'Edward Tufte. Depuis j'ai acheté un de ses bouquins : je le prendrai avec moi lors du prochain apéro PHP. Et aujourd'hui je découvre qu'un certain James Byers a lancé un projet sur SourceForge pour en créer facilement : il ne s'agit que d'une version 0.1 mais les exemples sont prometteurs. Je crois surtout que j'ai trouvé mon prochain projet à traduire !

Plus que 10 pour le Forum PHP, édition 2004

lundi 8 novembre 2004 :: perrick :: PHP :: 2 commentaires :: un trackback

Au détour de la liste des membres de l'AFUP, je vois qu'il ne reste bientôt plus de places pour le Forum PHP 2004 : on me souffle « plus que 10 ». Bref si vous voulez venir, dépêchez-vous d'en parler à votre patron ou de prendre quelques jours de congés spéciaux. Si le deuxième cas ne vous branche pas trop, lisez cet article d'Eric Sink : Carrer calculus, il a le mérite de mettre quelques idées reçues en perspective.

Mise-à-jour du 15/11/204 : le forum 2004 est officiellement complet.

Apéro PHP lillois : 25/11/2004

jeudi 4 novembre 2004 :: perrick :: PHP :: aucun commentaire :: aucun trackback

Une fois n'est pas coutume, je vous annonce le prochain apéro PHP lillois qui aura lieu jeudi 25 novembre 2004. Pour ceux et celles que ça intéresse, le rendez-vous est fixé au K13, 13 rue Henri Kolb à Lille à partir de 20h00. Plus d'informations sur aperophp.net. Cette fois, c'est à MisterN qu'il faut dire merci pour l'organisation.

Comme d'habitude on y parlera de PHP et de choses plus ou moins connexes. Sauf que cette fois il s'agira aussi d'une MozParty, une des 10 qui se préparent en France. Et ceux qui me connaissent un peu savent déjà que je ne pourrais pas m'empêcher de mentionner Opera...

Tester sa position chez Google

vendredi 29 octobre 2004 :: perrick :: PHP :: 3 commentaires :: un trackback

Il y a quelques temps, j'avais remarqué que sur la recherche blog php ce site -- onpk.net -- était plutôt bien placé. Et comme je suis d'un naturel plutôt curieux, je me demande combien de temps est-ce que cela va durer...

Alors dans la foulée de la traduction en cours de la doc de SimpleTest, je vous propose ici un petit exemple.

<?php
require_once("simpletest/web_tester.php");
require_once("simpletest/reporter.php");

class test_google_onpk extends WebTestCase {
  function test_onpk() {
    $this->set_up();
    $this->get("http://www.google.fr/search", array("q" => "blog php", "btnG" => "Recherche Google", "hl" => "fr"));
    $this->assertWantedPattern("/www.onpk.net/i");
  }
}

$test = &new test_google_onpk();
$test->run(new HtmlReporter());
?>

Ce que ça fait ? Tout bête ça teste une requête de recherche chez Google, ici avec comme mot clef blog php. Le résultat est une ligne verte si onpk.net est toujours dans la première page, soit une ligne rouge dans le cas contraire. L'exemple en ligne est un peu plus fourni parce que j'y teste d'autres mots clef (onpk et blog php mysql, plus rtf php uniquement dans les pages francophones).

Màj du 29/10/2004 : j'ai supprimé la version dynamique dans l'exemple en ligne. N'est affiché que le résultat statique. Merci Ldo pour sa remarque via les commentaires.