Zend PHP 5.3 Developer Certified

Ça y est, je suis développeur PHP 5.3 certifié par Zend! :-)

Le principe du concours est très simple: vous avez 90 minutes pour répondre à 70 questions aléatoires concernant le fonctionnement de PHP ainsi que les différents domaines qui l’entour, à savoir le SQL, la sécurité en général, etc…

Je vous conseil de le passer, c’est sans aucun doutes un bon élément sur le CV. Si vous avez un quelconque question, n’hésitez pas!

facebooktwittergoogle_plusredditpinterestlinkedinmail

MyOnlineSSH: Mise à jour

Le service MyOnlineSSH a été mis à jour. Pour rappel, lors de mon précédent article sur MyOnlineSSH, je vous présentait ce service comme un client SSH Web: vous pouvez vous connecter sur un serveur SSH et utiliser votre navigateur comme terminal, ce qui est extrêmement pratique lorsque vous êtes à un endroit où vous pouvez pas utiliser le port 22 à l’exterieur de votre réseau, et que vous ne souhaitez pas mettre en place un tunnel HTTP par exemple.

Change-log

  • Le Flash Player n’est maintenant plus requis, seules des requêtes GET et POST sont envoyées.
  • Vous pouvez créer plusieurs terminaux simultanés
  • Rapidité beaucoup plus importante.

Si vous avez une quelconque suggestion ou question, n’hésitez pas à me contacter ou à laisser un commentaire sur cet article.

facebooktwittergoogle_plusredditpinterestlinkedinmail

HipHop pour PHP, qu’est-ce que c’est ?

Le nouveau projet Open Source pour PHP du moment, c’est bien HipHop, développé pour PHP, qui consiste à transformer le code PHP en C++ puis de le compiler en utilisant g++. Présenté dans l’article précédent Facebook & PHP II: HipHop et HPHPi, voici de nouvelles informations, issues de la conférence de cette nuit.

Facebook qui utilise déjà HipHop sur 90% de ses serveurs a constaté:

  • Sur les serveurs Web: 50% de consommation CPU en moins pour un même trafic, par rapport à PHP 5.2 avec APC
  • Sur les serveurs API: 30% de consommation CPU en moins pour deux fois plus de trafic

HipHop transforme le code en C++ et le compile avec g++ mais l’utilisateur n’a pas besoin de compiler à la main son code PHP avec un outils, tout reste comme avant, avec l’édition de fichiers PHP à la volée.

Néanmoins, les fonctionnalités qui ne seront pas disponibles:

  • La fonction eval
  • La fonction create_function, qui est du même acabit que eval
  • La fonction preg_replace, avec le paramètre e, qui permet l’application de eval sur le résultat
  • De manière plus générale, l’ordre des objets ne peu pas être respecté, du fait d’une exécution non-linéaire du code. Ainsi, la fonction function_exists retourne la valeur vraie dans ce code:

En plus de HipHop, l’équipe de Facebook a développé HPHPi, c’est un interpréteur PHP, il semblerait que ça soit grâce à lui qu’il ne sera pas nécessaire de compiler le code PHP. Il fait aussi des analyses du code pour y détecter des éventuelles erreurs dues à l’utilisation de HipHop et non de PHP.

HipHop embarque son propre serveur Web et n’est pas le moment pas compatible/prêt à fonctionner avec Apache ou un autre serveur. C’est pourquoi HipHop c’est un seul processus, contrairement à PHP mais qui utilise le principe de multi-thread, plus rapide que le multi-processus car créer un processus, c’est assez long par rapport aux threads. Comme HipHop utilise sont propre Web serveur allégé, il est plus rapide et permet de mieux gérer les ressources partagées entre les threads, il permet aussi de ne pas avoir de downtime, c’est-à-dire de temps d’inaccessibilité lors d’un redémarrage de HipHop.

HipHop est pour le moment basé sur PHP 5.2, et l’équipe de chez Facebook compte bien avancer encore plus sur ce projet et voici leur Roadmap, ou liste de choses à faire:

  • Apport des fonctionnalités de PHP 5.3
  • Utilisation possible avec Apache
  • …et plus généralement la réduction de l’écart entre HipHop et PHP

Le code source qui était sensé être mis en ligne cette nuit sera maintenant mis en ligne “soon” !

facebooktwittergoogle_plusredditpinterestlinkedinmail

Facebook & PHP II: HipHop et HPHPi

Apprenez en plus dans le nouvel article, HipHop pour PHP, qu’est-ce que c’est ?

Comme prévu et annoncé dans l’article précédent “Facebook + PHP = Hyper-PHP”, l’équipe de développement de Facebook a bien annoncer son projet de faire une sorte de compilateur pour PHP cet après-midi, vous pouvez la retrouver en anglais à cette adresse.

Ce n’est en fait pas sous le nom de Hyper-PHP que les développeurs de Facebook ont décider de sortir leur moteur, mais sous le nom de HipHop, accompagné de HPHPi.

Facebook n’a en réalité pas tout à fait réécrit PHP depuis le début, mais a décidé de créer une extension PHP qui transforme un code PHP en un code C++, puis qui le compile. HipHop, c’est le nom du module/programme/de l’extention PHP qui va transformer votre code PHP en code C++, puis le compiler en utilisant le traditionnel g++. HPHPi, lui, permet de ne pas avoir à mettre en place un système de compilation en plus, et d’avoir simplement a utiliser PHP comme avant, mais en beaucoup plus rapide.

Les chiffres ont néanmoins changer car on ne parle ici que d’une diminution de 50%contre 80% d’après les rumeurs précédentesde la consommation du CPU, sans même avancer de chiffres d’augmentation de performances, même si il est tout de même le sujet de tout l’article de Facebook, c’est donc sans douter que ça a très certainement un gros bénéfice, puisque Facebook.com l’utilise déjà sur près de 90% de ses serveurs!

À noter tout de même que dans l’article, il est précisé que des fonctions sont perdues, comme la fonction eval par exemple (ce n’est pas plus mal pour celle-ci) et que l’équipe de développement a réécrit de nombreuses extensions pour les adapter à leur HipHop PHP, ce qui fera sans aucun doute que cette innovation pour PHP ne sera pas ajoutée à PHP, contrairement aux caches OPCodes qui le seront pour PHP 6, et restera un projet distant externe à PHP pour un petit moment.

C’est donc à tester sans attendre, lorsque que les sources seront disponibles dans la nuit (fin d’après-midi chez nos amis américains) à cette adresse, qui ne marchera que lorsque les sources seront disponibles:

Dès possible je ferais des tests et des benchmarks, que je ne manquerait pas de diffuser ici.

facebooktwittergoogle_plusredditpinterestlinkedinmail

Facebook + PHP = Hyper-PHP

Lisez l’article plus récent: PHP & Facebook II: HipHop et HPHPi »

Voilà quelques temps que les rumeurs circulent, je vais donc faire un petit résumé de ce que l’on appelle Hyper-PHP, ou HPHP. Le site web de l’entreprise Facebook est composé à 90% de PHP, un langage de programmation tourné vers le Web, qui est ré-analysé depuis de début à chaque fois, c’est-à-dire qu’a chaque installation, le runtime PHP doit analyser toute la source pour faire tourner le script PHP, c’est ce qui lui confère une lenteur par rapport aux applications compilées.

Et bien Facebook aurait décidé, il y a 2 ans, de mettre un développeur à part entière sur ce projet, qui aurait pour but de créer une sorte de compilateur pour PHP. C’est en effet ce que ressort d’une interview anonyme recueilli par TheRumpus.net.

He is creating HPHP, Hyper-PHP, which means he’s literally rewriting the entire language. […] So this engineer is converting the site from one that runs on a scripted language to one that runs on a compiled language.

Alors que l’annonce doit avoir lieu aujourd’hui, le 2 février 2010, cette nouvelle mouture de PHP, si l’on peux l’appeler comme ça, va très certainement changer beaucoup de choses car d’après l’ingénieur Facebook chargé de ce projet, Hyper-PHP consommerait 80% de CPU en moins tout en ayant des performances augmentées de 80% ! Il sera de plus partagé en Open Source, comme un grand nombre de projets de Facebook.

A bientôt pour la suite! :-)

facebooktwittergoogle_plusredditpinterestlinkedinmail

MyOnlineSSH: Version anglaise

La version anglaise de MyOnlineSSH est mise en ligne permettant à tous les anglophones de se connecter en SSH depuis leur navigateur Internet, éditée avec PHP-Gettext-Edit, un outils permettant la gestion extrêmement facile des fichiers de traduction d’une application Internet (dont la version 2, avec gestion de comptes utilisateurs ne devrait pas tarder).

facebooktwittergoogle_plusredditpinterestlinkedinmail

I2C: Quatres nouvelles fonctions SOAP

Quatre nouvelles fonctions ont été ajoutées aujourd’hui au SOAP d’I2C:

  • getCountries() – Permet de récupérer la liste de tous les pays disponibles sous forme de leur code ISO séparés par des virgules
  • getCountryName($country_code, $langue) – Permet de récupérer le nom réel du pays en fonction de son code ISO dans la langue demandée
  • getContinent ($country_code) – Retourne le code du continent en fonction du code ISO du pays
  • getContinentName ($continent_code, $langue) – Retourne le nom réel du continent en fonction de son code dans la langue demandée

Lorsqu’il y a besoin de spécifier la langue, les langues disponibles sont:

  • fr_FR – Français
  • (par défaut)

  • en_US – English

Note: d’ici peu, d’autres langues vont arriver.

Vous pouvez dès à présent utiliser ces fonctions, sans même avoir un compte utilisateur, sans même utiliser la fonction login.

facebooktwittergoogle_plusredditpinterestlinkedinmail

Gettext: Utiliser plusieurs fichiers de traduction en même temps

Dans certains projets modulaires, certains modules utilisent l’internationalisation (avec gettext notamment). Le problème, c’est quand il y en a plusieurs, quel fichier gettext va-t-il être utilisé ? C’est assez difficile à répondre car gettext est très…très pauvre en fonctions de débugguage. En réalité c’est impossible de débugguer gettext sans procéder par tests.

Du coup, ça serait très pratique d’utiliser plusieurs fichiers compilés de langue. Pour ça, il y a la fonction ngettext qui permet de spécifier le nom du domaine à utiliser. Le nom du domaine c’est le premier paramètre de bindtextdomain qui vous avez dû appeler pour initialiser le fichier de texte à trouver dedans.

C’est très pratique, surtout, lisez la documentation de ngettext pour pouvoir utiliser plusieurs fichiers de traduction dans un même programme PHP !

facebooktwittergoogle_plusredditpinterestlinkedinmail

Une base de données d’IPv6 telles que les IPv4 d’ip-to-country

Vous connaissez peut-être différents services comme i2c permettant d’obtenir le pays d’un visiteur en fonction de son adresse IP, et bien il existe d’autres services, comme ip-to-country qui proposent des base de données à télécharger, qui contienent des groupes (blocs) d’adresses IPv4 associés à leurs pays. Néanmoins, je n’ai pas encore vu une chose pareil pour les IPv6, c’est ce que je suis en train de faire ! :-)

Le système est en place, la récolte des différents blocs et de ses pays est en cours, avec i2c. Si vous effectuez des requêtes pour des adresses IPv6 avec i2c, le bloc auquel il appartient sera automatiquement ajouter à une liste de la sorte. Petit à petit, ça va se remplir et je vais probablement pouvoir le proposer en téléchargement !

Note: Peut-être que d’ici peu de temps je vais créer un petit robot qui va partir à l’exploration de différents blocs, on va voir ! 😉

facebooktwittergoogle_plusredditpinterestlinkedinmail