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, […]
avril 2010 (16)
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.
dimanche 25 avril 2010
Mort de PHP6 + 40 jours
dimanche 25 avril 2010. PHP X
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.
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.
mercredi 21 avril 2010
Migration sous PHP 5.3.2 effectuée
mercredi 21 avril 2010. Réfléxions
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.
jeudi 15 avril 2010
Mort de PHP6 + 30 jours
jeudi 15 avril 2010. PHP X
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.
mercredi 14 avril 2010
Ca se passe comme ça sur internals@
mercredi 14 avril 2010. Réfléxions › PHP
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.
lundi 12 avril 2010
Coup de gueule !
lundi 12 avril 2010. Réfléxions
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.
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.
samedi 10 avril 2010
Ravalement de façade
samedi 10 avril 2010. Réfléxions
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é […]
vendredi 9 avril 2010
Parangonnons encore un peu !
vendredi 9 avril 2010. Réfléxions › PHP
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.
jeudi 8 avril 2010
Parangonnons un peu !
jeudi 8 avril 2010. Réfléxions › PHP
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.
mercredi 7 avril 2010
Vous souhaitez participer ou vous participez déjà au développement de PHP ?
mercredi 7 avril 2010. Réfléxions › 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 […]
mardi 6 avril 2010
Parlons un peu d'ergonomie...
mardi 6 avril 2010. Réfléxions
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 […]
lundi 5 avril 2010
Mort de PHP6 + 20 jours
lundi 5 avril 2010. PHP X
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.
jeudi 1 avril 2010
Facebook fork PHP !
jeudi 1 avril 2010. PHP X
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 PHP, HipHop 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.