Archives mensuelles : septembre 2005

Trackbacks équitables

La concept de Trackback décrit un échange d’information entre serveur web via le protocole [acronym]HTTP[/acronym]. Très largement utilisé dans les weblogs il permet de notifier depuis son blog l’existence d’un billet lambda à un billet zeta d’un autre blog. Ce dernier reçoit une requête HTTP contenant des informations sur le billet lambda qu’il pourra stocker en base de données. En retour il renvoit un fichier [acronym]XML[/acronym] qui fait office d’accusé réception et qui indique si l’opération s’est bien déroulé.

Voici les structures correspondant aux deux cas possible :

  • Opération réussie : success.xml
  • Opération échouée, il manque un paramètre obligatoire : error.xml

Les informations stockées vont être affichés sur la page du billet zeta et constituer un lien vers le billet lambda.

Mécanisme de fonctionnement des trackbacks

Donnant donnant

Ce blog utilise une gestion de trackbacks équitable. Ce qui signifie qu’il affiche un extrait du billet vers lequel il aura été fait un trackback.

Comment obtenir les informations à partir de l’URL de trackback?

La méthode manuelle

Pour les blogs qui n’intègre pas d’informations dans le fichier XML de retour je procède via un formulaire qui se présente ainsi : Formulaire de Trackback Je n’ai qu’à copier/coller les informations du billet distant vers lequel je fais un trackback. Et ce n’est que si la transaction a abouti que je stocke les données saisies.

La méthode automatique

Pour assurer un fonctionnement automatique, le fichier retourné doit avoir une structure semblable à celle-ci :

<response>
	<error>0</error>
	<title>[Titre du billet]</title>
	<excerpt>[Résumé]</excerpt>
	<url>[URL du billet/ de la page]</url>
	<blog_name>[Nom du Blog/Site]<blog_name>
</response>

Il suffit simplement ensuite de stocker ces données.

Vers un système équitable

L’implémantation de ces fonctionnalités nouvelles doit être totalement transparente et la compatibilité avec les systèmes de soumissions des blogs actuels (WordPress, Dotclear) doit être assurée… Comme mon compère Ludovic Laly, je travaille sur deux classes génériques disponibles prochainement.

Si vous n’êtes pas familier avec le concept des trackbacks je vous recommande ces quelques lectures :

Note : Le Blog de Ludovic Laly intègre également la gestion des trackbacks équitables et la communication entre nos deux billets a pu se faire de manière automatique.

Google.search(‘blog’)

A ce rythme je vais devoir faire une catégorie dédiée à la société aux multiples « O ». Voici donc le dernier service en ligne de Google, un moteur de recherche qui cherche dans les blogs. Comme d’habitude, c’est une beta.

Google.glob(« *blog* »)

Le service est accessible depuis deux URLs, dont une spécifiques à Blogger :

Référez-vous à la FAQ (fr) pour exploiter au mieux ce nouvel outil.

Bon, je ne suis pas encore dans leur base de données et Sébastien Billard non plus apparemment.

A noter qu’en plus des opérateurs existants, l’interface en intégre 4 nouveaux :

  • inblogtitle:
  • inposttitle:
  • inpostauthor:
  • blogurl:

Olé!

Hier soir, les Lyonnais accueillaient les Galactiques en match d’ouverture de la Ligue des Champions 2005-2006. Pour la première fois depuis longtemps je me suis rendu à Gerland pour assister à la rencontre qui a opposé deux équipes adeptes du jeu offensif. Pour le plus grand plaisir des supporters, l’OL s’est largement imposé 3 buts à 0 contre des Madrilènes qui n’ont pas démérité et qui regrettent encore surement les absences de Zidane et Ronaldo.

Lyon marque son territoire… trois fois

Le début de la rencontre est à l’avantage des visiteurs qui monopolisent le ballon. Mais Lyon a acquis une certaine assurance et une fois la tempête passée, l’OL se réveille sur coup de pied arrêté grâce à son maitre artificier : Juninho. Il offre tout d’abord une passe décisive à Carew (21ème) avant de tromper le portier espagnol d’un super coup franc des 25 mètres (26ème). Mais le meilleur restait à venir lorsque les Lyonnais enchainent à trois sur le coté droit une action conclue par un Wiltord déchainé (31ème) et qui justifie sa titularisation en lieu et place de Govou. A n’en pas douter, le mouvement collectif du match. En seconde période, les locaux ont su mettre en avant toutes leurs expériences en gérant et en exercant par contre attaque.

Pour conclure, il faut signaler les prestations remarquables de Cris et de Coupet qui ont su contenir les assauts adverses. Une bien belle soirée donc. Merci l’OL.

Singleton et Javascript

Jusqu’à présent j’utilisais un pointeur global pour réaliser un singleton en Javascript. Il existe cependant une manière plus élégante de faire.

Objectifs

Nous allons réaliser une classe comprenant trois propriétés et une méthode. Le but sera de pouvoir, à chaque appel du constructeur, vérifier l’existence d’une occurence pour soit créer une instance soit renvoyer la référence à l’objet existant. Dans ce dernier cas on incrémentera également la valeur d’une propriété.

Méthode avec un pointeur global

var p = null;
function makeSingleton() {
	// Si l'objet n'existe pas on le crée
	if (p == null) {
		p = new function() {
			// Déclaration des propriétés
			this.constante = new Number(123); // Constante
			this.val = new Number(0);
			this.chaine = new String();
			// Déclaration de la méthode
			this.appendString =  function(val) {
				p.chaine += val;
			}
		}		
	}
	else {
		// L'objet existe, on incrémente la propriété statique
		p.val++;
	}
	return p;
}

Méthode avec un pointeur de classe

function makeSingleton() {
	pClass = this.constructor;
	
	if(pClass.pSingleton == undefined){
		pClass.pSingleton = this;
		// Déclaration des propriétés
		pClass.pSingleton.constante = new Number(123); // Constante
		pClass.pSingleton.val = new Number(0);
		pClass.pSingleton.chaine = new String();
		// Déclaration de la méthode
		pClass.pSingleton.appendString =  function(val) {
				pClass.pSingleton.chaine += val;
			}
	}		
	else {
		pClass.pSingleton.val++;
		return pClass.pSingleton;
	}
}

A l’usage, le script suivant fournira le même résultat dans les deux cas :

a = new makeSingleton();
a.chaine += 'Bonjour je \'appelle Thanh';

b = new makeSingleton();
// Concaténation sans méthode
b.chaine += ', j\'ai 28 ans';

c = new makeSingleton();
// Concaténation avec la méthode
c.appendString(', et je suis l\'auteur de ce blog.');

d = new makeSingleton();
// Concaténation avec la méthode
d.appendString(' Bonne lecture !');

// Affichage du résultat
alert('La chaine vaut : ' + d.chaine + '\nval est égal à ' + d.val + '\nconstante est égal à ' + d.constante);

Vous pouvez tester l’exemple dans le labo.

ps : Merci Ahmed.

Gigablast aime vraiment les blogs

Je ne sais pas si vous avez remarqué l’intérêt que portait Gigabot ces derniers jours aux pages de votre blog. La première fois que le robot de Gigablast était venu scanner mon site c’était le jour de mon inscription sur le moteur (435 pages le 8 Juillet 2005 puis 3 pages le jour suivant). Depuis je n’avais pas eu le plaisir de le revoir jusqu’à il y a trois jours …

Les compteurs explosent

A l’heure où j’écris voici le nombre de pages scannées par le robot depuis ces trois derniers jours :

  • Le 09/09/05 : 92 pages
  • Le 10/09/05 : 2327 pages
  • Le 11/09/05 : 3875 pages
  • Le 12/09/05 : 2313 pages

Mais je vous rassure j’ai eu le temps de voir les numéros des responsables :
64.62.168.55, 64.62.168.56, 64.62.168.73, 64.62.168.74, 64.62.168.76, 64.62.168.77, 64.62.168.79, 64.62.168.80. Restez sur vos gardes!

Debian, Game Over

Mauvaise nouvelle pour les utilisateurs de Photo Pif, mon serveur Linux et down depuis hier suite à une coupure de courant. Le système de fichiers ne s’en est pas remis. Je vais essayer de remettre ça sur pied rapidement.

<edit 04/09/05 à 16h00>Le serveur a été réinstallé et le service Photo Pif est accessible de nouveau. Cependant, il redémarre à zéro et il faudra se réinscrire. Encore désolé pour la gêne occasionnée.</edit>

Mise en route de la rubrique mémo (FAQ)

Le rubrique mémo est mise en ligne. Elle consiste en fait en une FAQs avec une gestion de Tags communs aux tagMarks. A l’heure actuelle je ne sais pas encore si je vais basculer également les billets vers ce type de classement et abandonner les catégories. A étudier …

Pour accéder aux mémos, cliquez sur le lien du menu ci-dessus.