avril 2010 (16)

jeudi 29 avril 2010

Problème de géométrie

Je cherche à résoudre le problème suivant : Soit : un cercle C de centre (Cx, Cy) et de rayon R. un point A de coordonnées (Ax, Ay). Je cherche le point X de coordonnées (Xx, Xy) de la droite D passant par A tel que le rayon R de C soit perpendiculaire à la droite D. Si quelqu'un trouve la solution,  […]

Lire la suite

lundi 26 avril 2010

svneeg : la classe sparkline ou héritage vs. composition

svneeg ayant pour but de représenter sous forme graphique le nombre de commits quotidiens effectués sur un dépôt svn en général et le trunk de PHP en particulier, je me suis dis que les sparklines étaient le type de graphique le plus adapté.

En effet, leur créateur, à savoir M. Edward Tufte, les décrit comme, je cite, des graphiques intenses en données, de design simple, et ayant la taille d’un mot.

Ce format est donc très adapté à mon besoin puisque je souhaitais pouvoir intégrer le graphique n'importe où de manière simple.

De plus, l'information représentée par le graphe étant simple, la petitesse de sa représentation induite par ce format ne devient pas un frein à sa compréhension.

La solution trouvée et validée, il ne restait plus qu'à la mettre en œuvre.

Et pour une fois, contrairement à mon habitude de réinventer la roue, je me suis mis à la recherche d'un code PHP tiers qui me permette de générer mes sparklines.

On me reproche en effet régulièrement de bafouer le mantra Don't reinvent the wheel !, et je m'étais dis que ce on pouvait ne pas avoir tort.

Lire la suite

dimanche 25 avril 2010

Mort de PHP6 + 40 jours

Les dix derniers jours ont été calmes en terme de discussions et de décisions au sujet de la prochaine version de PHP.

Cependant, cela ne veut aucunement dire que les choses n'avancent pas.

Il semble en effet que les développeurs aient décidé d'intégrer les décisions prises au cours du mois qui vient de s'écouler.

Pour preuve, l'activité sur le trunk svn a beaucoup augmenté ces derniers jours, avec parfois plus de vingt modifications par jour.

Lire la suite

jeudi 22 avril 2010

L'électro-encéphalogramme de PHP existe !

Vu que le monstre, à savoir la prochaine version de PHP, est vivant (à défaut d'avoir un nom) j'ai décidé de surveiller son activité.

J'ai donc conçu rapidement un outil pour générer le graphe du nombre de commits journalier sur les 30 derniers jours sur le trunk de PHP.

Lire la suite

mercredi 21 avril 2010

Migration sous PHP 5.3.2 effectuée

Ce blog tourne dorénavant avec la dernière version disponible de PHP.

Et il a du mal.

Ma version de dotclear semble en effet assez mal supporter la migration, vu que mon journal d'erreur se rempli de choses du style :

[Wed Apr 21 17:26:54 2010] [error] [client 72.14.199.79] PHP Warning:  Parameter 1 to rsExtPost::getRFC822Date() expected to be a reference, value given in /path/to/blog/inc/clearbricks/dblayer/dblayer.php on line 618

Du coup, certaines choses ne fonctionnaient tout simplement pas suite à la mise à jour.

Lire la suite

jeudi 15 avril 2010

Mort de PHP6 + 30 jours

Elle est vivante.

Tel le monstre de Frankenstein, la prochaine version majeure de PHP est vivante.

Mais pourquoi cette référence à Frankenstein ?

Parce que, comme Victor Frankenstein, le PHP Group prend des morceaux de ce qui devait être PHP 6 et la prochaine version de la branche 5.x pour créer la version suivante du langage, qui, tout comme le monstre du roman, n'a pas (encore) de nom.

Lire la suite

mercredi 14 avril 2010

Ca se passe comme ça sur internals@

Le 6 avril 2010, un contributeur propose un patch sur internals@, la liste de diffusion des développeurs et des contributeurs de PHP.

Sa contribution apporte une fonctionnalité intéressante et il fourni de plus toutes les informations nécessaires.

Il n'a aucune réponse, aucun retour, rien, le vide, nada, à croire qu'il a posté directement dans un trou noir ou /dev/null.

Pourtant, sa contribution porte sur un sujet très discuté qui entre dans le cadre de la prochaine version de PHP.

Lire la suite

lundi 12 avril 2010

Coup de gueule !

J'ai eu un petit coup de sang ce midi, à la lecture du planète PHP, et plus particulièrement de cette actualité.

En résumé, l'auteur de l'article incriminé donne une méthode pour rediriger un visiteur en fonction du navigateur qu'il utilise, en ciblant plus particulièrement les utilisateurs de safari sur Ipad.

Lire la suite

Les miracles existent !

Vous en voulez la preuve ?

Le port PHP de FreeBSD a enfin été mis à jour.

En effet, jusqu'à hier, il fallait passer par des patchs officieux pour pouvoir migrer vers la version 5.3 du langage.

Désormais, il est possible de passer de le faire par les voies officielles.

Lire la suite

samedi 10 avril 2010

Ravalement de façade

J'ai un peu de temps actuellement, alors j'en ai profité pour faire un peu de changement cosmétique. Rien de révolutionnaire ni de bien transcendant, mais au moins je me sens maintenant réellement chez moi. Dans la foulé, j'ai fais la même chose pour mon compte twitter, histoire d'avoir une identité  […]

Lire la suite

vendredi 9 avril 2010

Parangonnons encore un peu !

Cette nuit, les jumeaux ont décidé de donner de la voix.

Du coup, j'ai eu le temps de gamberger sur les remarques qui ont été faites en commentaire de mon précédent billet.

J'ai donc optimisé mon code PHP, afin de voir si le différentiel entre la mise en oeuvre de la combinaison de l'instruction foreach et de la fonction is_string() et l'utilisation de la classe filterIterator de la SPL était induite par mon algorithme ou par la lenteur de l'itérateur.

Lire la suite

jeudi 8 avril 2010

Parangonnons un peu !

Dans le cadre de l'un de mes projets, j'ai été amené à extraire d'un tableau PHP les éléments ayant pour clef une chaîne de caractères.

Mon premier réflexe a été de me tourner vers la fonction array_filter(), mais malheureusement, elle ne permet pas de filtrer sur les clefs d'un tableau.

Du coup, j'ai été obligé de trouver une autre stratégie.

J'ai d'abord envisagé un recours très classique à l'instruction foreach et à la fonction is_string(), avant d'envisager sérieusement l'utilisation d'un objet dérivé la classe filterIterator de la SPL.

Cependant, vu que je ne savais pas quelle méthode serait la plus efficace, et que je souhaitais depuis longtemps me faire une idée des performances de cette classe de la SPL, je me suis fendu d'un petit benchmarking étalonnage, et vu que je suis d'un naturel joueur, j'ai décidé d'ajouter les closures dans l'équation.

Lire la suite

mercredi 7 avril 2010

Vous souhaitez participer ou vous participez déjà au développement de PHP ?

Pour vous aider, les développeurs de PHP, aka. le PHP Group, ont eu, une fois n'est pas coutume, une bonne idée. En effet, une FAQ au sujet du développement technique de PHP a été mise en place sur le wiki. Elle a été construite à partir des questions récurrentes qui sont posées sur la mailing-list  […]

Lire la suite

mardi 6 avril 2010

Parlons un peu d'ergonomie...

Sur l'un de mes projets, j'ai dans ma base de données une table qui ressemble à cela : ColonneType idEntier non signé NameChaîne de caractères value1MinFlottant non signé value1MaxFlottant non signé value2MinFlottant non signé value2MaxFlottant non signé value3MinFlottant non signé value3MaxFlottant  […]

Lire la suite

lundi 5 avril 2010

Mort de PHP6 + 20 jours

Cela fait 20 jours que le développement de PHP6 a été arrêté.

Le jour de la publication de l'avis de décès, un appel à la communauté avait été lancé pour définir ce qu'apporterait la prochaine version majeure du langage.

A +10 jours, les choses n'avaient guère évoluées sur le sujet car aucune décision importante n'avait été prise, et cela même si pas mal de discussions avaient commencé.

Depuis, les discussions entamées ont continué, et de nouveaux sujets sont apparus.

Lire la suite

jeudi 1 avril 2010

Facebook fork PHP !

Il y a peu, Facebook avait montré tout l'intérêt qu'il portait à PHP en dévoilant HipHop, un transformateur de code PHP en code C++ compilable.

Développé en deux ans par une équipe interne à Facebook, HipHop a pour but de transformer un script PHP en code binaire exécutable en le convertissant tout d'abord en code source C++ puis en compilant ensuite le code obtenu à l'aide de gcc.

L'éxécutable obtenu étant beaucoup plus efficace en terme de ressources techniques que son équivalent écrit en PHPHipHop permet donc d'augmenter de manière très significative les performances d'un serveur http tout en conservant le code existant et les avantages de PHP par rapport au C++, à savoir sa syntaxe claire et sa facilité de développement.

Mais pourquoi est ce que je vous parle de HipHop ? Et bien car lors du développement de HipHop, ses développeurs ont découvert en analysant le code du Zend Engine qu'ils pouvaient très fortement améliorer les performances de ce dernier à l'aide d'un code plus optimisé et d'algorithmes plus efficaces.

C'est le résultat de ce travail d'optimisation et d'amélioration que Facebook va diffuser dans quelques jours.

Lire la suite