Archive de l'auteur

On entend souvent sur le Web ou ailleurs que le Black SEO ou la Black Hattitude c’est le MAL, le SPAM de bas étage, celui qui laisse des centaines de commentaires ventant les bienfaits du viagra de contrefaçon sur votre blog chéri. Pour ne pas avoir cette image de spammeur, certains se sont même attribués le titre de Blue ou de Grey SEO histoire de dire qu’ils n’appartiennent pas à la Black Hattitude même s’ils en adopte les pratiques…

En ce qui me concerne je pense que la différence fondamentale entre Black et White tient à l’automatisation. Un partisan du White SEO obtiendra ses liens soit de façon manuelle, soit de façon semi-automatique, alors que pour le Black ça sera soit de façon semi-automatique soit de manière automatisée. Or je ne vois pas très bien en quoi le fait d’automatiser certaines tâches relègue l’individu de référenceur à Spammeur… (?). Automatiser de façon intelligente n’a jamais fait de mal à personne, or je crois que la principale qualité de la Black Hattitude est de se faire le plus discret possible, de se fondre dans le décors, d’avoir des liens, des commentaires, qui semblent le plus naturel possible. J’en connais un qui est assez balèze à ce niveau là c’est Mr Referencement, j’ai nommé Discodog. J’étudie souvent ses liens entrant et je suis stupéfait par la façon dont il les obtient. Il utilise souvent la même phrase dans ses commentaires (oui moi non plus je n’ai pas de bouton Twitter), qui est formulée de façon suffisamment intelligente pour ne pas passer pour du spam et bien souvent l’auteur du blog répond à son commentaire. Très sincèrement je ne vois pas où est le mal à partir du moment où la cible ne fait pas la différence.

Confondre Black SEO et « stupid spammer » est à mon avis une erreur grossière : il est tout a fait possible d’avoir la Black Hattitude tout en respectant les guidelines de Google et ne jamais se faire blacklisté.

Je vous incite à lire l’article de Black Melvyn « Black Hat, White Hat, la lutte finale ? » qui lui aussi s’étonne de l’amalgame.

SPIP Dofollow

Dur réveille ce matin. Comme d’habitude en sortant de mon lit je prend la première à gauche direction la cafetière. Je fais chauffer la bestiole, fait un demi-tour pour me diriger vers mon paquet de Lucky, quand soudain je m’aperçois que l’horloge du four clignote sur zéro. Horreur ! Il y a eu une panne de courant pendant la nuit !

Or je sais que ma Neufbox est très sensible aux pannes de courant. En général je suis obligé de lui faire un massage cardiaque pendant une vingtaine de minutes avant qu’elle revienne à la vie, mais je crains pour cette fois ci, car elle est au bout du rouleau. Donc me revoilà parti une nouvelle fois à faire des allers retours avec l’embout de l’adaptateur électrique dans l’orifice de ma Neufbox (n’y voyez rien de lubrique bande de détraqués) en espérant vainement que son voyant passe au rouge. Mais rien n’y fait, elle s’obstine à rester sur le blanc, le violet ou le bleu… RIP …

Que faire sachant que je n’ai pas de routeur en rab, pas d’adaptateur 12V 1,6A et pas de modem. J’ai bien ma fidèle Alfa AWUS036H, mais je n’ai pas Backtrack sous la main et aucune suite Aircrack-NG installée sous Ubuntu

Pourtant j’ai besoin de cette connexion :  je suis en pleine recherche de taff, je dois mailer mes profs pour mes mémoires, je dois effectuer la maintenance de mon serveur et de mes sites,  continuer de développer mon LFE-Like,  etc. bref que des occupations de branleur d’étudiant post-fac.

Direction une Boutique SFR : désolé on ne vend ni Neufbox ni accessoires, appelez le 1077. Ça commence bien …

Retour maison : je compose le 1077. Un érythréen diabétique me lit un script inutile et me dit qu’il peut m’envoyer une box d’ici 5 jours… mais bien sûr… et la marmotte elle met le chocolat dans le papier alu…

Il me reste une chance : si c’est  l’alimentation qui est morte je pourrai en trouver une sur Paris. J’enfourche ma bécane et file porte de St Ouen chez un copain qui a une Neufbox. Vingt minutes plus tard je branche le bidule et m’aperçois que c’est bien cette alim à la con qui est morte.

Je file rue Montgallet chez mes potes les Chinois, je rentre dans le premier magasin venu et 5 seconde plus tard ressort avec mon alim. Si Dieu existe, qu’il bénisse les chinois.

Je rentre chez moi, branche le matos, lis mes mails : je suis embauché pour un taff ! :)

C’était vraiment très intéressant…

Dur la vie sans internet

Quand on possède plusieurs blogs utilisant WordPress il serait parfois pratique de disposer d’une interface unique pour pouvoir publier ses articles. Or en ce moment je suis en train de me créer en PHP un petit LFE like qui me permet de gérer mes blogs,  publier des articles, scrapper des url,  etc.,  n’ayant pas 287$ sous la main… L’une des fonctions  est de pouvoir poster des articles sur mes blogs WordPress en utilisant le protocole XML-RPC via l’API metaWeblog que supporte WordPress. Voici la fonction en question :

function xmlrpc_post($title, $article, $category, $keywords, $allowcomments, $allowtrackbacks, $blogurl, $bloglogin, $blogpass){

require_once("lib/IXR_Library.php.inc"); // Bibliothèque requise
$client->debug = true; 

	// On ignore les guillemets
    $title = htmlentities($title,ENT_NOQUOTES,$encoding);
    $keywords = htmlentities($keywords,ENT_NOQUOTES,$encoding); 

	// On crée notre array
    $content = array(
        'title'=>$title,
        'description'=>$article,
        'mt_allow_comments'=>$allowcomments,
        'mt_allow_pings'=>$allowtrackbacks,
        'post_type'=>'post',
        'mt_keywords'=>$keywords,
        'categories'=>array($category)
    );

 	// On initialise la connexion
	$client = new IXR_Client($blogurl.'/xmlrpc.php');
	$params = array(0,$bloglogin,$blogpass,$content,true); // true pour publier immédiatement, false pour enregistrer en brouillon

 	// On envoie nos données et on affiche nos erreurs
	if (!$client->query('metaWeblog.newPost', $params)) {
    		die('Problème => '.$client->getErrorCode().' : '.$client->getErrorMessage());
	}
	else {
    		echo 'L\'article a été posté avec succes!';
	}

}

Vous pouvez télécharger la dernière version de IXR Library sur le site de l’auteur.

Pour les variables de la fonction rien de particulier si ce n’est que $category doit être l’ID d’une catégorie existante (ex: 01 pour « Non classé ») et si vous voulez publier dans plusieurs catégories il faut séparer par des virgules (ex: 01, 06, 07)

Pour les variables $allowcomments et $allowtrackbacks c’est soit 0 soit 1, en fonction qu’on les autorise ou pas.

Voili, voilou

Il est 23:35 heure de Paris et Google.fr vient à l’instant de lancer son nouveau système de recherche en temps réel. Il s’agit d’une sorte de système d’auto-complétion avancé où les SERP sont rafraichies automatiquement à chaque lettre tapée.

Je ne sais pour vous mais en ce qui me concerne ça ne va pas changer ma vie… Par contre pour le SEO ça risque d’être intéressant car l’on voit tout suite les mots clé sur lesquels il est possible de se positionner et ceux sur lesquels il est vain d’espérer (la page reste statique).

Google News est aussi passé en temps réel. A chaque rafraichissement de page ce ne sont pas les même articles qui sont affichés. Si on pouvait se positionner une demi journée sur Google News, maintenant il ne faudra compter que sur quelques secondes… Par exemple l’article « Iran : l’exécution de Sakineh suspendue » passe d’un rafraichissement à l’autre de « A la une » à « International » avec une position variable. Il faudra m’expliquer en quoi un quart de seconde peut il faire la moindre différence sur un positionnement, à moins qu’il ait gagné quelques backlinks entre temps, ou que des concurrents aient gagné quelques backlinks lui faisant perdre sa position avant ce quart de seconde…

Le Web va se transformer en poubelle d’ici peu… déjà que ce n’était pas brillant…

J’ai cherché pendant un moment la solution à cette requête SQL donc autant vous la faire partager.

Imaginons que vous ayez 3 tables sous MySQL :

  1. walk
  2. walk_photo
  3. photo

Dans votre table photo certaines photos n’ont pas de titre (title) ou celui-ci est en NULL. Vous voulez donc faire un UPDATE de la table photo en associant les titres de la table walk correspondant aux photos.

Problème : si vous n’aviez que 2 tables, cela ne poserait aucun problème car il suffirait de faire un UPDATE en joignant les 2 par un WHERE walk.id = photo.id . Or ici ce n’est pas possible car l’on a une table entre les deux (walk_photo) qui lie les 2 tables, les deux premières n’ayant pas de clé commune.

Donc voici la solution:

UPDATE photo
SET photo.title = walk.title
JOIN walk_photo ON walk_photo.photo = photo.id
JOIN walk ON walk.id = walk_photo.walk
WHERE photo.title IS NULL OR photo.title = ''

Je pense que la requête est assez claire pour être dispensé de commentaire, néanmoins pensez à mettre le SET avant la jointure! Sinon ça ne marchera pas! Au début j’avais commencé par faire ma jointure avant de faire le set et je ne comprenais pas pourquoi ça ne marchait pas….