Amélioration des performances de WPML

Amélioration des performances de WPML

Je sais que vous êtes plusieurs à utiliser WPML pour vos sites multilingues sous WordPress. Je m’en sert moi même pour quelques sites de ma compagnie et de clients. Je dois avouer que la performance de WPML a toujours été un petit problème qui pouvait même se révéler très dérangeant dans certain cas comme avec WooCommerce.

C’est toujours appréciable de voir qu’une équipe, comme celle de WPML, prends au sérieux les gens qui paye pour leur plugin et écoute le feedback.

D’où viennent / venaient les problèmes de performances

Lorsque j’utilise WPML, j’installe presque dans tous les cas, ces plugins « compagnons » : WPML String translation et WPML Media. Lorsque tout cela est installé sur votre WordPress, il y a 20 nouvelles tables MySQL qui s’installent. Pour comparaison, WordPress ne possède que 12 tables à lors d’une nouvelle installation. Donc voilà, WPML est gourmand en ressource mémoire et CPU pour les requêtes SQL qu’il exécute pour afficher les pages. Plus vous avez de chaînes traduites, plus il exécute des requêtes.

Dans le cas de WooCommerce, si vous utilisez les variations de produits (comme couleurs ou tailles), WPML démultiplie le nombre de requêtes ce qui fait chauffer le processeur et gonfler la mémoire. Ceci provoque un vrai goulot d’étranglement lors du chargement de la page.

Comment la version 3.5 de WPML améliore les performances

Peu importe ce que vous avez entendu sur WPML, je vous conseille de lui donner une chance avec cette version 3.5 (et plus). D’après un article de WPML, qui explique leur processus d’optimisation, des efforts ont été déployé pour tester différentes solutions et ont réussi à améliorer les performances de façon très perceptibles. Voici un tableau donné par l’équipe elle même qui explique les performances gagnées.

PHP version Page Memory consumption saving CPU utilization saving
PHP 5.6 Home 60% 41%
Admin dashboard 41% 33%
PHP 7 Home 50% 16%
Admin dashboard 33% 15%

Autant dire que ça fait une différence lors du chargement de vos pages mais aussi de l’admin. Pour ceux qui ont l’habitude d’attendre que l’admin se charge, je peux vous dire que c’est un vent de fraicheur 🙂

Je n’ai pas encore pu tester avec PHP7, mais comme l’explique WPML, les anciennes versions de WPML sont beaucoup plus réactives sur PHP7 que PHP5. Cependant il semble y avoir un boost de performance dans les 2 cas.

Pour les développeurs de sites WordPress qui utilisent souvent WPML, je pense que de mettre à jour le(s) plugin(s) est un must. Si vous avez l’occasion de pouvoir avoir un hébergement PHP7, vos clients et les visiteurs de ces sites ne pourrons que mieux vous aimer.

Si vous avez des retour d’expérience avec WPML, n’hésitez pas à mettre un message plus bas.

 

PS : Si vous passez par une de mes liens pour acheter WPML, je touche une petite commission. Sachez que ça ne vous coûte pas plus cher et que ça m’aide à sponsoriser ce genre d’article.
Yeco, un controleur Ableton Live pour écrans tactiles

Yeco, un controleur Ableton Live pour écrans tactiles

Depuis quelques mois, je vis en Irlande à Kilkenny, une très belle petite ville agréable à vivre. Je travaille de là-bas sur ma compagnie et vais dans un co-working space quelques jours par semaine pour faire des connaissances.

Dans ce co-working space une startup qui se nomme ScreenForge vient de lancer un produit vraiment cool du nom de Yeco qui permet de contrôler le logiciel de musique électronique Ableton Live via un écran tactile. J’ai suivi un peu le développement dans les dernières semaines et je dois dire que je suis impressionné, l’application est très réussi. Le développement est fait en Python et le logiciel fonctionne sous Mac OS X ou Windows. Dans les 2 cas, il vous faudra Ableton Live. Vous pourrez aussi juger du très beau design mis en place.

Voici une vidéo du fonctionnement :

Pour les créateurs de musique électronique, Ableton Live est la référence, et il est maintenant possible d’utiliser un écran tactile d’un laptop par exemple. Ceci permet une utilisation ultra mobile d’Ableton Live. Il est aussi possible de se brancher sur un écran tactile externe pour profiter d’une surface tactile plus grande.

Yeco permet d’utiliser des drumpads, un keyboard, les XY pads et fonctionne aussi comme contrôleur MIDI. Le design et l’utilisation vraiment simple permettent de se concentrer sur la création tout en utilisant un outil agréable et précis.

Bravo donc à la compagnie éditrice de ce nouveau contrôleur ScreenForge, qui a pondu ce bijou d’innovation Yeco ! Congrats Graham & Martin!

Le prix est vraiment abordable à 45€ (environ 60$ CAD) et pour l’acheter, ça se passe sur le site de Yeco.

 

Calculer un pourcentage de différence entre 2 chiffres

Calculer un pourcentage de différence entre 2 chiffres

Un peu de mathématiques aujourd’hui. Il arrive souvent d’avoir à calculer un pourcentage d’augmentation ou simple de différence entre 2 chiffres ou 2 montants.

Voici la solution simple pour le faire avec comme exemple le chiffre de base 271 et le 2ème chiffre 462 :

(462 − 271) ÷ 271 × 100 = 70.48

Dans ce cas le 2ème chiffre représente une augmentation de 70.48% par rapport au premier chiffre. La formule à retenir est donc :

(montant2 - montant1) ÷ montant1 × 100 = pourcentage de la variation

Voilà, ce n’était pas bien compliqué au final 🙂

 

Tester PHP7 avec MAMP PRO 3

Tester PHP7 avec MAMP PRO 3

La dernière mouture de PHP est sortie en décembre 2015 dans un silence assez obscur, pourtant, si la version 6 de PHP est morte dans l’oeuf, PHP 7 semble très prometteur. Voici une liste de quelques nouveautés et améliorations de PHP 7 :

  • Performance améliorée : PHP 7 est jusqu’à 2 fois plus rapide que PHP 5.6
  • Réduction de l’utilisation mémoire
  • support du 64 bit plus consistant
  • Passage de beaucoup d’erreurs fatales en Exceptions
  • Générateur de nombre aléatoire sécuritaire
  • Classes anonymes

Tester votre code avec PHP 7 et d’autres versions de PHP grâce à MAMP PRO 3.

Si vous souhaitez tester votre code avec PHP 7 avant de passer en production, MAMP PRO 3 est solution vraiment simple. La version 3.5 propose nativement PHP7 et vous permet de faire un « virtual host » avec une version différente de PHP. Vous pourrez donc par exemple avoir un site en PHP 5.6, un autre en PHP 5.4.2 puis un dernier en PHP 7. MAMP PRO se révèle donc très pratique pour tester votre code sous différente version de PHP, une chose assez compliquée à mettre en place sur un serveur de production.

Capture d’écran 2016-02-17 à 22.03.36

MAMP PRO 3 se révèle donc très pratique pour tester votre code en local avec différentes versions de PHP. Avec l’évolution du paysage des hébergements dans les futurs mois, tester votre code dès maintenant pour se préparer à PHP7 semble être une bonne pratique. Étant donnée les gains de performance engendrés par PHP7, il se peut que beaucoup d’hébergeur passe à cette version pour faire quelques économies.

Si vous avez des questions, n’hésitez pas à les poser plus bas dans cette page. Ça me fera plaisir d’y répondre.

 

 

Prestashop – Bug sur la validation du code postal

Prestashop – Bug sur la validation du code postal

Plus j’utilise Prestashop, plus je le haïs … ce système est fourré de bug et est une vrai usine à gaz en Backend, c’est aussi un cauchemar pour les modules.

En parlant de cauchemar, sans transition, j’ai récemment eu un problème avec les codes postaux. Vous savez lorsque le client entre un code postal, il y a une validation sur le format de ce code postal. Eh bien, peu importe ce que mes visiteurs entraient, la validation retournait toujours une erreur. Autant dire pour l’expérience utilisateur en prend un vieux coup!

Comme j,ai passé un peu de temps à trouver la solution, je voulais faire ma part en partageant l’information. Pour résoudre ce problème si jamais vous l’avez, téléchargez la dernière installation de Prestashop sur leur site et remplacez le fichier suivant dans votre thème par celui de la nouvelle installation :

/Mon_Site/themes/default-bootstrap/js/tools/statesManagement.js

Je m’arrête là, j’espère que ce sera utile à certain qui aurait ce problème.

Paix et amour !