Bonjour, C’est Gaëtan, Développeur web Freelance dans les Alpes.

Sep 01


—- english below —-

Bonjour,
Google Chrome vient de passer en 37.0.

google chrome v37google chrome v37

Depuis cette mise à jour, les images en lazyload (chargement différé) ne s’affichent plus dans certain cas.

lazy_load_images_not_working_chrome_v37

Pas de problème javascript. C’est simplement du CSS.
En effet, les premières images présentent dans le DOM sous la forme en généralement d’un petit gif transparent d’un pixel (dans mon cas 1x1trans.gif) se voient affecté d’une taille et hauteur de 1px.
Au remplacement de l’image par le plugin/script jquery.lazyload.js, la source est bien remplacée mais l’image reste en hauteur et largeur 1px.

lazyload_jquery_googlechrome_37.0_problem

Il suffit alors d’ajouter une hauteur et une largeur par default dans le css de la page:

img.lazy {
    height: auto;
    width: auto;
}

et tout rentre dans l’ordre.

—- english —-

Hi,
Google Chrome just upgrate to 37.0.
Since then lazyload images are not showing anymore (in some case).

This i not a javascript issue. It’s only CSS.
Indeed, on DOM first images are loaded as little transparent gif (in my case 1x1trans.gif) and are now (since v37) of 1px height and width.
When jQuery lazyload plugin execute, the new source is correct but the DOM element img still 1px height and width.

You just have to set height and width to auto in your CSS file:

img.lazy {
    height: auto;
    width: auto;
}

And everything should be all right again.

Mots clefs :
chrome, jquery, lazyload

Nov 17


Pour la deuxième fois, j’ai réçu cette semaine un email de free.fr:

———- Forwarded message ———-
From: pagesperso@corp.free.fr
Date: 2013/11/13
Subject: Suspension de la page personnelle gaetan.janssens
To: gaetan.janssens@free.fr

Bonjour,

Ce courrier électronique vous est adressé pour vous indiquer que votre compte Pages Perso gaetan.janssens a été suspendu pour la raisons suivante :

Base mysql polluée par du spam.
Nous avons renommé l’une de vos tables mysql.
Mettre en place des mesures de protection contre le spam.

Pour lever la suspension, vous devez vous rendre sur la console de gestion de votre compte Pages Perso : rendez-vous sur le portail de Free, suivez  « Mon compte », utilisez l’identifiant et le mot de passe de votre compte Pages Perso et suivez ensuite le lien « Réactiver mon compte Pages Perso ».

ATTENTION : en l’absence de réaction de votre part dans les deux mois, votre compte Pages Perso sera DETRUIT.

Si vous éprouvez des difficultés à réactiver votre compte, ou si vous souhaitez mieux comprendre les raisons de la suspension de votre compte, vous disposez du forum proxad.free.services.pagesperso ; la page d’assistance sur le site de Free vous donnera les informations nécessaires pour accéder à ce forum. Merci de ne pas répondre à cet email. Aucun support ne sera fait par email : consulter les newsgroups proxad.free.services.pagesperso.

Cordialement,
Le service Pages Perso.

Sans plus attendre, j’ai rapidement réactivé mon compte. Reactivation complète 72h plus tard (3 jours).
Aucune action n’est possible avant.

Un fois les 72h écoulées, visitez phpmyadmin.free.fr pour accéder à votre base de donnée. avec phpMyAdmin.

Repérez la base renommée pour SPAM:

Capture d’écran 2013-11-17 à 10.25.07

Dans notre cas il sagit de la table blog_comments qui contient, surprise, les commentaires du blog.

Pour se protéger du SPAM commentaires sur wordpress, il y a Askimet, installé par default.
Sur Free, souvent, il ne suffit pas (difficile à mettre à jour, vieilles versions de wp, …).
Je vous conseil: Cookies For Comments qui à le merite d’être une solution non invasive pour le visiteur et faible en ressource (important chez free).

Une fois votre solution antiSPAM dans les commentaire installée, vous vous croyez à l’abris des soucis? et bien NON!.
Vous pouvez aussi recevoir du spam via trackback ! et c’est mal.
J’ai choisi de désactiver les trackbacks pour être tranquille:

désactiver les trackback worpress spam free.fr

**Notez bien:** Ces réglages peuvent être modifiés pour chaque article.

donc un petite requête SQL pour virer tout les trackback autorisés sur les articles:

<pre lang="mysql">UPDATE wp_posts SET ping_status='closed' WHERE post_status = 'publish' AND post_type = 'post';
UPDATE wp_posts SET ping_status='closed' WHERE post_status = 'publish' AND post_type = 'page';

Et une pour virer les trackback existants (cause de ma suspension).

<pre lang="mysql">DELETE FROM wp_comments WHERE comment_type="trackback";

Enfin, il faut maintenant renommer la table. Dans notre cas:

<pre lang="mysql">RENAME TABLE wp_comments_SPAM TO wp_comments

Et voilà.

NB: Pensez à faire un backup de votre site, en cas de suspension définitive (3ème suspension) ce serrait dommage de tout perdre!

Apr 02


Bien souvent on doit lire un fichier ligne par ligne en PHP, pour traiter chacune d’elles indépendamment.
Or, dans certain cas, quand on récupère du contenu dans une base de donnée par exemple, le contenu à lire est stocké dans une variable et non dans un fichier.
Voila donc un snippet bien utile.

Jan 10


Salut à tous,
Dans la serie des packs wordpress pour free.fr je vous présente le tout nouveau pack 3.5!

Comment ça marche pour une nouvelle installation?
C’est tout simple, mais n’oubliez pas d’activer votre base Mysql.


1. On commence par mettre, à la racine de son FTP free, un fichier nommé « .htaccess » (le point dans le nom est important)
Dans ce fichier on met seulement une ligne:

<pre lang="php">php 1

 

2. On envoie le contenu de mon zip wordpress 3.5 pour free.fr sur ce FTP.
3. On visite le dossier, et on suit les instructions de wordpress.
4. Et voilà, c’est déjà fini

NB: Pour une mises à jour à partir des versions precedente, vous pouvez à priori utiliser ce pack comme si c’était une archive wordpress et suivre ce genre de tuto.

NB #2: La 3.5 est couteuse en mémoire, ce qui limite énormément nombre de plugins utilisables.

NB #3: J’utilise toujours upgradephp pour emuler les fonctions php manquantes dans le gap php 5.1 -> 5.2.
Je touche un minimum au coeur de WP:

  • wp-include/version.php pour faire croire qu’on a une version suffisamment élevée.
  • wp-admin/install.php pour inclure les fct manquantes pendant l’installation.
  • wp-include/functions.php pour inclure les fct manquantes pendant l’utilisation.
  • wp-include/pluggable.php pour enlever le 7eme param de setcookie() qui n’existe pas dans php 5.1
  • l’astuce de rodolphe via core.trac.wordpress.org  pour optimiser la mémoire.

    N’hésitez pas à commenter si vous avez un problème, j’ai pu oublier quelque chose.

Jun 21


Pour mes travaux web (PHP principalement) j’utilise une machine virtuelle (VM) virtualbox Ubuntu (version server).
Ayant une bonne machine, avec un jeu de VirtualHost et un dossier partagé intelligemment choisi, je peux facilement tester mes développements sur une config linux proche de celle utilisée en prod.
L’avantage c’est que je ne quitte pas mon OS préféré et que le déploiement en production est instantané.

Comme l’installation n’était pas tricky, voilà une petite aide pour vous aider à pouvoir débugger avec xdebug dans cet environnement un peu particulier (du remote debugging avec OS divers)

Il faut tout d’abord configurer l’interface réseau de la machine virtuel en sélectionner « Accès par pont ». On utilise alors l’adresse mac de la machine pour obtenir une IP fixe (voir config de votre box).

Sur Ubuntu, dans la VM donc, après avoir installé xdebug, on ajoute dans /etc/php5/apache2/php.ini (le php.ini de mod_php).

<pre lang="php">zend_extension=/usr/lib/php5/extensions/xdebug.so
xdebug.remote_enable=1
xdebug.idekey="netbeans-xdebug"
xdebug.remote_handler=dbgp
xdebug.extended_info=1
xdebug.remote_connect_back=1
xdebug.remote_port=9000
xdebug.remote_log=/var/log/xdebug.log

sur la machine mère, on crée un répertoire à la rachine C:/media/workspace, D:/media/workspace sur windows, ou /media/workspace/ sur Os X.
Il faut alors ajouter ce dossier à la VM, de manière permanente (utilisez workspace pour le nom):

Dans la machine virtuelle, je monte automatiquement ce dossier (il faut installer Guest Addition si vous utilisez VirtualBox).
Pour ce faire, plusieurs solutions: via le /etc/fstab ou, comme j’ai choisi, une ligne dans /etc/rc.local

<pre lang="batch">
mount -t vboxsf workspace /media/workspace
exit 0

Note: N’utilisez pas le montage automatique proposé par VirtualBox. En effet, il fonctionne mais ne montera pas votre dossier celon la même arborescence et Xdebug ne retrouvera pas ses petits (c’est la clef du process).

Dans vos VirtualHost, vous utiliserez donc les sous dossiers de /media/workspace comme DocumentRoot:

<pre lang="php"><virtualhost>
     DocumentRoot /media/workspace/VOTRE_SOUS_DOSSIER_PROJET
     ServerName NOM_DU_SERVEUR_PROD_FINAL
     <directory>
          Order allow,deny
          allow from all
          allowOverride all
     </directory>
     ErrorLog ${APACHE_LOG_DIR}/error_VOTRE_PROJET.log
</virtualhost>

Installez tout ce qui va bien sur netbeans, configurez correctement vos fichier hosts (sur les deux machine)

/etc/hosts de la VM

<pre lang="php">127.0.0.1     NOM_DU_SERVEUR_PROD_FINAL

C:/Windows/Systeme32/drivers/etc/hosts ou /etc/hosts pour respectivement windows et OS X mère.

<pre lang="php">IP_FIXE_VM     NOM_DU_SERVEUR_PROD_FINAL

voilà, maintenant en visitant NOM_DU_SERVEUR_PROD_FINAL, vous devriez avoir votre projet, et vous devriez aussi pouvoir le débugger correctement depuis NetBeans.

/!\ les chemins serveur (VM) et machine mère doivent être les mêmes. (surtout sur Windows apparemment).

Mes sources:

Mots clefs :
php, remote, xdebug, php, remote, xdebug

Feb 29


wordpress_3.3_free.fr wordpress_3.3.1_free.fr_by_Petit_Nuage.zip

Salut à tous,
Après le pack 3.2.1, le pack 3.3, on continu la série avec le pack 3.3.1!

Cliquez ici pour la dernière version supportée sur le site (3.5).

Comment ça marche pour une nouvelle installation?
C’est tout simple.
1. On commence par mettre, à la racine de son FTP free, un fichier nommé « .htaccess » (le point dans le nom est important)
Dans ce fichier on met seulement une ligne:

<pre lang="php">php 1

2. On envoie le contenu de mon zip wordpress 3.3.1 pour free.fr sur ce FTP.
3. On visite le dossier, et on suit les instructions de wordpress.
4. Et voilà, c’est déjà fini

NB: Pour une mises à jour à partir des versions precedente, vous pouvez à priori utiliser ce pack comme si c’était une archive wordpress et suivre ce genre de tuto.

NB #2: selon certains utilisateurs, la 3.3.1 est plus couteuse en mémoire que la 3.2.1, ce qui limite le nombre d’extensions utilisables.

NB #3: Grace à un très bon conseil de Gilbert j’ai changé de stratégie. Mon « hack » touche un minimum au coeur de WP et j’utilise upgradephp pour emuler les fonctions php manquantes.

Dec 17


Salut à tous,
Après le pack 3.2.1, voici le pack 3.3!

Cliquez ici pour la dernière version supportée sur le site (3.5).

Comment ça marche pour une nouvelle installation?
C’est tout simple.
1. On commence par mettre, à la racine de son FTP free, un fichier nommé « .htaccess » (le point dans le nom est important)
Dans ce fichier on met seulement une ligne:

<pre lang="php">php 1

2. On envoie le contenu de mon zip wordpress 3.3 pour free.fr sur ce FTP.
3. On visite le dossier, et on suit les instructions de wordpress.
4. Et voilà, c’est déjà fini

NB: Pour une mises à jour à partir des versions precedente, vous pouvez à priori utiliser ce pack comme si c’était une archive wordpress et suivre ce genre de tuto.

NB #2**:** selon certains utilisateurs, la 3.3 est plus couteuse en mémoire que la 3.2.1, ce qui limite le nombre d’extensions utilisables.

Sep 21


wordpress_3-2-3_free.fr_by_Petit_Nuage

Salut à tous,
Après mon tuto Mise à jour WordPress 3.2.1 chez free.fr qui a eu un franc succès, je vous propose aujourd’hui un pack pour les nouvelles installations.

Cliquez ici pour la dernière version supportée sur le site (3.5).

C’est une suggestion de coco dans les commentaires de mon post.
Cette solution devrait répondre au problème de Adeimantos par exemple.

Comment ça marche?
C’est tout simple.
1. On commence par mettre, à la racine de son FTP free, un fichier nommé « .htaccess » (le point dans le nom est important)
Dans ce fichier on met seulement une ligne:

<pre lang="php">php 1

2. On envoie le contenu de mon zip wordpress 3.2.1 pour free.fr sur ce FTP.
3. On visite le dossier, et on suit les instructions de wordpress.
step1 step2 step3 4. Et voilà, c’est déjà fini
wp3.2.3free.fr EDIT 14.11.2011: J’ai ajouté la class DateTimeZone à la main, ce qui doit lever les dernières erreurs.

Aug 25



Aujourd’hui j’ai décidé de partager avec vous une expérience réussie:
Construire un Hackintoch. Autrement dit, monter sûr mesure un ordinateur sur lequel on install Mac OS X.

Aillant besoin d’une nouvelle machine de travail, j’ai décidé de me lancer dans l’aventure.

Ce guide est assez général, mais certaines parties sont spécifiques au matériel listé ci dessous.
Si vous voulez essayer avec autre chose, verifiez que le matériel est compatible ou mieux, partez d’une config toute faite.

Voilà donc l’ensemble du matériel que j’ai commandé chez mon revendeur préféré.

Type Modèle Prix(pas à jour) Alimentation CORSAIR CMPSU-750HXEU 113.50 Processeur INTEL CORE I7-2600K 225.71 Carte mère GIGABYTE GA-P67A-UD7 279.95 Carte Graphique GAINWARD NVIDIA GTX560 2048 MB 192.27 Lecteur CD/DVD/Blu-Ray LITE-ON IHOS104-37 LECTEUR BLU-RAY ROM SATA 4X 41.80 Ventilateur pour Processeur NOCTUA NH-U12P 52.67 Disque Dur SSD OCZ SSD AGILITY 3 120GO SATA 6GB 165.52 Disque Dur SATA SEAGATE 2T 5900 64MO SATA 6GB/S 61.03 Mémoire Vive CRUCIAL BALLISTIX SPORT 12GB (3*4) DDR3-1600 68.26 Boîtié FRACTAL DESIGN DEFINE R3 ARTIC WHITE 91.93 Clavier ML DESIGN TOUCH USB MAC KEYBOARD 25.00 Souris STEELSERIES KINZU 27.51 TOTAL  1345.15Note matériel 1 : Il n’y a pas de moniteur, j’avais déjà un 24″ Samsung SyncMaster 2494HM à la maison.
Note matériel 2 : J’ai essayé de prendre le meilleurs rapport qualité prix, en choisissant souvent « de la marque ».

Une fois les pièce réunis, on monte la machine comme on assemble une boîte de légos (en lisant la notice de carte mère, même un newbie s’en sort)

c'est noël!

Ce dont vous aurez besoin pour l’installation du systeme:

*a mettre sur la clef USB.

/!\ respectez bien l’ordre des étapes, aucun changement n’est envisageable.

Les guides conseils en général de ne pas brancher toutes les barrettes de RAM avant la fin de l’installation.
Ne branchez rien d’autre que le clavier et la souris (pas de net, pas d’usb, pas de dd externe, …)

Allons-y:

  1. Il faut, en tout premier lieu, configurer le BIOS.
  • IDE devient AHCI partout
  • HPET en 64bits



pour cette carte mère, je vous conseil de mettre l’USB3 OFF.
Si vous en avez besoin ailleurs que sur OSX, il faudra enlever le fichier PXHCD.kext dans S/L/E plus tard.

  1. Insérez le cd iboot préalablement gravé dans votre lecteur et bootez dessus.
    Quand vous arrivez à l’écran de boot, retirez le CD, insérez Snow Leopart , attendez 5 secondes et rafraîchissez (F5).
    (Je n’ai personnellement pas réussi à utiliser iboot depuis le départ. Je pense qu’il y a un conflit avec la carte graphique? ou j’avais pris iboot et pas iboot legacy?
    Ma solution a été d’utilise « Andy Boot« , juste pour pouvoir booter au tout début et lancer l’installation de Snow Leopart. iBoot fonctionne ensuite.)

  2. Installez Snow Leopart comme vous savez sans doute très bien faire sans mon aide. Pensez à formater le disque dur avec Disk Utility.

 

  1. À la fin de l’installation, rebooter sur le iBoot.

  2. Branchez votre Clef USB à l’arrière de l’ordinateur.

6.Branchez le cable ethernet ,
Lancer DSDT autopatcher pour récupérer le DSDT de la carte mère sur le bureau.
Débranchez le cable ethernet.

  1. Installer Update Helper avant de redémarrer et de faire la mise à jour.

  2. Rebooter à nouveau sur le cd iBoot.

  3. Installer combo update 10.6.8 NE PAS REDEMARRER

  4. Lancer MultiBeast

Retirez le CD iboot et redémarrez.

  1. Suivre ce guide jusqu’à la fin de l’étape 3 pour installer OS X Lion.

  1. Rebootez sur « installer » avec l’option de boot

    -v PCIRootUID=1 npci=0x2000

  1. Pour fixer le son, relancez MultiBeast et selectionnez

  1. Pour la carte graphique,il faut remplacer

    IOPCIPrimaryMatch
    0x06c010de&0xffe0ffff
    0x0dc010de&0xffc0ffff
    0x0e2010de&0xffe0ffff
    0x0ee010de&0xffe0ffff
    0x0f0010de&0xffc0ffff
    0x104010de&0xffc0ffff
    0x124010de&0xffc0ffff
    0x120010de&0xffc0ffff
    

par

<pre lang="xml"><key>IOPCIMatch</key><string>0x120110de</string>

dans NVDAGF100Hal.kext > Contents > info.plist

(NB: la devise ID de la Nvidia Geforce GTX 560 non « Ti » est 1201 et pas 1200.)
Il faut utiliser OSX86Tool pour créer une EFI string.

merci jpa pour ce fix.

  1. Pour activer Trim sur votre SSD non apple, suivez cette astuce

et voilà le travail! :)