juillet 2013 (7)

mardi 30 juillet 2013

À propos des fonctions anonymes

Les fonctions anonymes apparues avec la version 5.3 de PHP sont des outils très puissants qui permettent de faire des choses complexes très simplement.

Pour autant, leur implémentation dans PHP 5.3 avait un inconvénient majeur.

En effet, une fonction anonyme est pour le Zend Engine une instance de la classe \closure.

En conséquence, un appel à $this dans une fonction anonyme revenait avec PHP 5.3 à faire appel à l’instance de la classe \closure correspondant à la fonction, et cela même si cette dernière était déclarée dans une méthode de classe.

Lire la suite

lundi 29 juillet 2013

Entre complexité et simplicité, vous misez sur quoi ?

aapl.png

À mon avis, un bon outil est un outil qui permet à son utilisateur de résoudre un problème sans en devenir un.

Et c’est finalement une chose assez rare aussi bien dans le monde réel que dans le monde virtuel de l’informatique.

En effet, si tous les outils nécessitent une phase d’apprentissage, à moins que nous ne soyons vraiment de la Matrice et que certaines personnes soient capables de se télécharger le manuel de vol d’un hélicoptère en quelques instants et de le mettre en œuvre dans la foulée, cette phase d’apprentissage est bien souvent un problème pour l’utilisateur, car l’outil se révèle inutilement complexe à utiliser.

L’outil, au lieu d’être perçu comme une solution efficace permettant de rendre le travail à faire plus agréable et plus rapide à réaliser, devient alors au contraire une contrainte avec laquelle il est malheureusement obligatoire de composer.

Qui n’a jamais pesté devant un interrupteur placé à un endroit inadéquat, une poignée à l’ergonomie inadaptée ou un câble d’alimentation trop court, une police d’affichage trop petite, des couleurs insuffisamment contrastées ou des pictogrammes abscons ?

Et pour peu que le travail en question soit déjà rébarbatif à la base, c’est la catastrophe et bien souvent, le bébé est alors jeté avec l’eau du bain.

Lire la suite

mardi 16 juillet 2013

À propos des critiques

Ce matin, l’AFUP a dévoilé une partie du programme du Forum PHP 2013 tout en mettant en vente des places pour cet événement au tarif « Early Bird » et elle a alors essuyé quelques critiques, autant sur la forme que sur le fond.

Éric a en effet constaté que c’était le nom des intervenants ou bien des sociétés qui étaient mises en avant dans l’annonce de l’AFUP, et non le contenu des conférences.

Il a de plus regretté de ne pas savoir dès à présent s’il était retenu comme conférencier, car s’il ne l’est pas, il veut tout de même s’y rendre et souhaiterait donc pouvoir bénéficier du tarif préférentiel, sauf qu’il ne peut pas réserver sa place dans l’immédiat puisque potentiellement ses frais seront pris en charge s’il est effectivement retenu comme conférencier.

Outre une avance de frais qui n’est pas indispensable, s’il réserve aujourd’hui, il risque donc de priver quelqu’un d’une place à tarif préférentiel, et même s’il est toujours possible de la céder par la suite, ce n’est pas optimum.

Lire la suite

mercredi 10 juillet 2013

phpfpm.cubism.js

phpfpm.cubism.js

Depuis quelques jours, j'ai mis en production un serveur PHP-FPM dans le cadre de mon activité professionnelle.

Cependant, nous rencontrons depuis sa mise en service un certain nombre de problèmes induits entre autres par le fait que nous n'avons aucune idée précise du nombre de connexions simultanées que le serveur doit être capable de gérer afin d'offrir une qualité de service optimale.

Et nous avons d'autant moins le droit à l'erreur qu'il s'agit d'un site marchand.

Nous avons donc besoin de superviser le serveur afin de détecter les montées en charge et valider le fait que les valeurs que nous avons défini pour les paramètres pm.max_children, pm.start_servers, pm.min_spare_servers et pm.max_spare_servers.

De plus, nous avons des plantages aléatoires au niveau de PHP-FPM dont nous ne parvenons pas à cerner l'origine.

Pour cela, nous avons bien un outil de supervision, mais il a l'inconvénient de ne pas permettre un suivi en temps réel du serveur PHP-FPM, puisqu'il génère des moyennes sur un intervalle de temps donnés.

Nous aurions pu évidemment modifier sa configuration pour avoir une vision plus fine de la situation, mais il m'a semblé plus pertinent, rapide et amusant de développer un script JavaScript capable de générer les graphiques dont nous avions besoin.

Lire la suite

mardi 9 juillet 2013

Merci à la marmotte et au rasta blanc !

Atoum a la chance de profiter du travail d'une marmotte et d'un rasta blanc.

Sur Internet, ils se nomment respectivement @marmotz et @jubianchi, mais dans la vraie vie, ils s’appellent Renaud Littolff et Julien Bianchi.

Et pour paraphraser Barney Stinson, ils sont tous deux proprement hallucinants et ce n'est pas à cause du fait que l'un hiberne la moitié de l'année et que l'autre peut être confondu avec un Yautja dans l'obscurité lorsqu'il a son casque vissé sur les oreilles.

Lire la suite

vendredi 5 juillet 2013

Apple et la garantie de conformité

Il y a moins de deux ans, j’ai offert un iPhone 4 à ma femme pour son anniversaire.

Elle avait en effet depuis plusieurs années un Nokia largement antérieur à la sortie de l’iPhone et sa batterie ne tenait plus la charge correctement depuis quelques temps.

Étant intégralement équipé de matériel « Made by Apple in california » à la maison, l’iPhone était donc un choix logique d’autant qu’il répondait à la plupart de ses besoins en terme de gestion de calendrier, courriers électroniques et autres joyeusetés du même genre, sans parler de la pléthore d'applications susceptibles de l'intéresser.

À l’époque, l’iPhone 4 avait deux problèmes connus : l’antennagate et un bouton « home » capricieux.

Et si ma femme n’a jamais eu le moindre problème de réception en rapport avec le premier, elle a vu apparaître rapidement les signes du second.

Sauf qu’elle n’a jamais pris le temps de se rendre soit chez son opérateur, soit dans un Apple Store pour faire procéder à l’échange de son téléphone dans le cadre de la garantie légale d’un an.

C’est donc fort logiquement qu’au bout de presque deux ans, son bouton était devenu pratiquement inutilisable.

J’ai donc emporté son téléphone avec moi lorsque j’ai apporté son MacBook Air en consultation au « genius bar », ce dernier affichant des artefacts lors de ses sorties de veille prolongée à la suite de l’installation d’OS X 10.8.3.

Car même s’il n’était plus temps de demander l’application de la garantie légale d’un an, j’avais toujours la possibilité de faire jouer la garantie légale de conformité.

Lire la suite

jeudi 4 juillet 2013

Timeline.d3.js

timelined3js.png

J’utilise PHP quotidiennement, en général plus de 8 heures par jour réparties entre mes développements professionnels et des projets personnels tels qu’atoum.

Pour autant, je ne suis pas d’une fidélité exemplaire et je vais parfois voir ailleurs pour plusieurs raisons.

Il m’arrive en effet d’en avoir marre de voir des lignes de code à longueur de temps et de ressentir le besoin de manipuler des choses plus graphiques.

Ensuite, je trouve bénéfique d’allez voir ce qu’il se fait ailleurs afin de voir s’il n’est pas possible de mettre en application certains concepts intéressants dans mon propre contexte.

Lire la suite