Back from camden

Luchini sur Muray

Ce qui est étonnant c’est que personne n’aurait osé contester sur le papier cette doxa là. Qui oserait dire qu’un festival qui réunit des gens malheureux, désœuvrés, qui n’ont pas d’argent, qui oserait à part Muray, dire que ce qui apparaît comme l’Empire du Bien, un truc vraiment bien, comme tout animateur politique le souhaite, occuper les gens, les entraîner à ce qu’ils appellent la Culture, comment se fait-il qu’il y ait quelqu’un qui ose dire, je soupçonne derrière tout ça une aliénation hallucinante. Qui ne soit pas un raseur, qui ne soit pas un moraliste pénible, un réac épouvantable mais quelqu’un qui dit, voilà, cet Empire du Bien, ces intentions prodigieusement bonnes, ont derrière une dimension tragique. Et Muray le photographie, le met en scène, et met en scène que derrière le festif, derrière le sympa, derrière le global, il y a la mort du réel. C’est pas moral, la position de Muray, c’est pas “oh les gens s’amusent c’est chiant”, non ! Les gens s’amusent d’une certaine manière qui dénie la réalité et qui crée la mort de la vie et la mort de l’art.

Fabrice Luchini, Le rire libérateur de Philippe Muray (mp3)

Insert a delay on large Drop-Down Menu with Prototype

Large horizontal drop-down menus are quite popular these days, especially in e-commerce websites. However, they can cause ergonomic design troubles by launching on unintentional mouseovers. Which could be very irritating.

Fixing this problem by implementing a mouseover delay on the trigger (usually tabs of a menu) is therefore well-recommended.

For starters, using pure CSS2 solution with classic pseudo-class :hover is not in our situation a good solution, as you will have difficulties to put a delay on these events. Additionally, this pseudo-class isn’t supported on IE6. You would then have to find a hack in order to make :hover effective for IE6… yada yada.

CSS3 is coming out with a nice transition-delay property. I didn’t test it. Of course we all know that CSS3 is not by far yet the common standard. FYI, IE9 won’t be supported on Windows XP, and that’s not very helpful, to say the least.

You therefore have to use JavaScript to fix your little problem.

First, you can use jQuery, which comes with an excellent plugin, hoverIntent. Highly customizable, it’ll do everything you ask for.

If your website is powered by Prototype, you might not want to install jQuery only to fix this issue.
So is here below a bunch of code which, with a little customization depending of your HTML structure, can help.

Prototype 1.6.1 supports mouseenter/mouseleave events, and CSS nth-child pseudo-class. I’ll use them.

HTML layout example:

<ul id="menu">
	<li><span>Tab 1</span>
		<ul><li>Sub menu 1</li>
		</ul>
	</li>
	<li><span>Tab 2</span>
		<ul><li>Sub menu 2</li>
		</ul>
	</li>
	<li><span>Tab 3</span>
		<ul><li>Sub menu 3</li>
		</ul>
	</li>
	<li><span>Tab 4</span>
		<ul><li>Sub menu 4</li>
		</ul>
	</li>
</ul>

Now, JavaScript.
Set the lenght of the delay in the menutabdelay variable.


var menutabdelay = 500;

function visible(menutabnumber){
	$$('ul#menu > li:nth-child('+menutabnumber+') > ul').each(function(element){
		$(element).setStyle('visibility: visible;');
	});
}

function showsubmenu(element, menutabnumber){

	Event.observe(element, 'mouseenter', function(){
		timedelay = setTimeout(function(){visible(menutabnumber)}, menutabdelay);
	});

	Event.observe(element, 'mouseleave', function(){
		clearTimeout(timedelay);
		$$('ul#menu > li > ul').each(function(element){
			$(element).setStyle('visibility: hidden;');
		});
	});

}

function showsubmenutrigger() {
	var tabs = $$('ul#menu > li');
	for(numberoftabs=1; numberoftabs<=tabs.length; numberoftabs++){
		$$('ul#menu > li:nth-child('+numberoftabs+')').each(function(element){
			var menutabnumber = numberoftabs;
			showsubmenu(element, menutabnumber);
		});
	}
}

Event.observe(window, 'load', showsubmenutrigger);

View demo

If you use a Prototype version prior to 1.6.1, these versions don’t support mouseenter/mouseleave events, so you have some fix to apply.
For information, mouseenter/mouseleave events are naturally supported by IE but not by other browsers.
You could ask, why don’t you use mouseover/mouseout events, supported by all browsers. My answer would be, it’s impossible because these events naturally bubble inside the element, and it’s big problem here because of the delay.

Long story short, see how to implement the fix below:

Element.addMethods({
    onmouseenter: function(element,observer) {
        element = $(element);
        element.observe('mouseover',function(evt,currentTarget) {
            var relatedTarget = $(evt.relatedTarget || evt.fromElement);
            if( relatedTarget!=currentTarget && relatedTarget.childOf(currentTarget)==false ) {
                observer();
            }
        }.bindAsEventListener({},element));
        return element;
    },
    onmouseleave: function(element,observer) {
        element = $(element);
        element.observe('mouseout',function(evt,currentTarget) {
            var relatedTarget = $(evt.relatedTarget || evt.toElement);
            if( relatedTarget!=currentTarget && relatedTarget.childOf(currentTarget)==false ) {
                observer();
            }
        }.bindAsEventListener({},element));
        return element;
    }
});

var menutabdelay = 500;

function visible(menutabnumber){
	$$('ul#menu > li:nth-child('+menutabnumber+') > ul').each(function(element){
		$(element).setStyle('visibility: visible;');
	});
}

function showsubmenu(element, menutabnumber){

	Event.observe(element, 'mouseenter', function(){
		timedelayIE = setTimeout(function(){visible(menutabnumber)}, menutabdelay);
	});

	Element.onmouseenter(element,function(){ // No IE
		timedelay = setTimeout(function(){visible(menutabnumber)}, menutabdelay);
	});

	Event.observe(element, 'mouseleave', function(){
		clearTimeout(timedelayIE);
		$$('ul#menu > li > ul').each(function(element){
			$(element).setStyle('visibility: hidden;');
		});
	});

	Element.onmouseleave(element,function(){ // No IE
		clearTimeout(timedelay);
		$$('ul#menu > li > ul').each(function(element){
			$(element).setStyle('visibility: hidden;');
		});
	});

}

function showsubmenutrigger() {
	var tabs = $$('ul#menu > li');
	for(numberoftabs=1; numberoftabs<=tabs.length; numberoftabs++){
		$$('ul#menu > li:nth-child('+numberoftabs+')').each(function(element){
			var menutabnumber = numberoftabs;
			showsubmenu(element, menutabnumber);
		});
	}
}

Event.observe(window, 'load', showsubmenutrigger);

View demo (Prototype 1.6.0.3)

Google Weather API vs. Yahoo Weather API

Rapide comparaison des deux API météo les plus utilisées, celle de Google et celle de Yahoo.

Google API :
Il n’y a apparemment pas de page officielle sur l’API.
Mais on trouve beaucoup de pages présentant ses caractéristiques, comme celle-ci, précise et bien réalisée, proposant de plus au téléchargement une classe PHP pour pouvoir l’utiliser.

Quelques caractéristiques :

Langues :
On peut en changer facilement, en la précisant en variable dans l’URL.
http://www.google.com/ig/api?weather=ville&hl=fr

Unités de température :
Pour la météo en temps réel, le flux XML contient la température en Celcius et en Fahrenheit.
Pour ce qui est des prévisions, cela varie selon la langue choisie. Par exemple, si c’est le français, ce sera Celcius, en anglais Fahrenheit.

Mises à jour :
Le flux semble plus réactif et se met à jour plus fréquemment que celui de Yahoo.
Il contient jusqu’à trois jours de prévision.

Détermination du lieu souhaité :
En variable dans l’URL d’appel, on peut inscrire directement un nom de ville, de pays, un code postal… Le système est très flexible.
http://www.google.com/ig/api?weather=Paris,France

Illustrations du temps :
Pratique, l’URL de l’image est directement inclue dans le flux.
/ig/images/weather/partly_cloudy.gif

 
Yahoo API :

Page officielle : http://developer.yahoo.com/weather/

Langues :
J’ai un peu cherché, et apparemment on ne peut changer la langue du flux, bien qu’elle y soit référencée…

Unités de température :
On la précise en variable, dans l’URL d’appel.
http://weather.yahooapis.com/forecastrss?w=2442047&u=c

Détermination du lieu :
Il faut aller sur Yahoo Weather, choisir son lieu, repérer le code WOEID associé à ce lieu dans l’URL, puis passer ce code en variable dans l’URL d’appel.
http://weather.yahooapis.com/forecastrss?w=2442047

Illustrations du temps :
Non présentes dans le flux, on peut malgré tout facilement les retrouver en opérant un “Afficher image” dans un exemple de flux.

Voici donc le répertoire où l’on peut les trouver :
http://l.yimg.com/a/i/us/we/52/

Exemple : http://l.yimg.com/a/i/us/we/52/26.gif

Il y a 48 illustrations différentes, correspondant aux 48 différents codes de conditions météo répertoriés dans la documentation. Fort logiquement, elles possèdent le même nom (un nombre) que leur code associé, qui est présent dans le flux XML.

En conclusion…
Appâté par la documentation officielle et son statut apparent de leader sur le marché, je me suis d’abord orienté vers l’API de Yahoo.
Mais sa gestion des langues, et la relative difficulté avec laquelle s’opère la récupération des informations dans le flux XML m’a rapidement déçu.
Celle de Google est juste plus rapide et simple à mettre en œuvre, il n’y a pas de correspondances de langue à coder, ou d’illustrations de temps à mettre en place.

Plus sur le radjaïdjah

Je vois qu’il existe un domaine de la pensée qui relève de la démonstration logique ou de la preuve expérimentale. A l’intérieur de ce domaine, je ne sache pas que l’on puisse procéder autrement que de façon rationnelle. On peut ne pas s’y intéresser, mais, si l’on s’y aventure, on doit s’astreindre à la seule et unique méthode qui serve à y obtenir des résultats. Un même individu peut, d’ailleurs pratiquer cette méthode rationnelle à l’intérieur de sa discipline et se montrer irrationnel, fou, stupide quand il opine hors de cette discipline. Ce qui distingue le généraliste du spécialiste, c’est que le généraliste reste cohérent à peu près partout, tandis que le spécialiste, beaucoup plus rigoureux que l’autre devant son objet spécifique, peut se muer en un agité confusionnel dès qu’il s’en éloigne.
J’en ai, à point nommé, observé un cas aigu, le 23 mars 1994. Je venais d’assister à la leçon inaugurale d’Etienne Baulieu au Collège de France. Elle portait sur les « fondements et principes de la reproduction humaine ». Le soir, Etienne réunit au Ritz une quarantaine de personnalités scientifiques et et d’amis personnels en un dîner par petites tables. Le mécène en était le laboratoire Roussel-Uclaf, producteur de la pilule abortive RU486, pilule dite « du lendemain », dont Etienne Baulieu est l’inventeur. On m’avait placé à une table anglophone, en compagnie de chercheurs américains, qui avaient traversé l’Océan pour venir rendre hommage à leur collègue français. L’un de ces biologistes, illustre par ses travaux, et qui avait sans doute eu quelque vague écho de certains de mes livres, me demanda quelle était ma définition du totalitarisme. Occupé à savourer un honorable tartare de saumon aux herbes, accompagné de la cuvée exceptionnelle d’un champagne sans défaut, dont j’avais rêvé pendant toute la leçon inaugurale, je répondis avec laconisme. Je me bornai à citer les trois conditions constitutives du totalitarisme telles que les formule Youri Orlov dans un texte de référence, écrit en 1975. Ce sont les suivantes : monopolisation globale de l’initiative économique; monopolisation globale de l’initiative politique; monopolisation globale de l’initiative culturelle – avec création corrélative d’un appareil de répression dans les trois domaines. [...] Ce qu’ayant ouï, le biologiste, la fourchette suspendue, me demanda quel était le pays dont, selon moi, le régime actuel correspondait le mieux à cette définition. Après la décomposition de l’Union soviétique, répondis-je, et à part quelques fossiles comme la Corée du Nord et Cuba, il ne reste, comme pays importants qui soient encore totalitaires, que le Vietnam et la Chine. A cette nuance près, ajoutai-je, que le monopole économique de l’Etat, pour des raisons de pure survie matérielle, y a été entamé par le développement « libéral » d’activités plus ou moins capitalistes et plus ou moins tolérées. Apitoyé par mon ingénuité, le biologiste américain, après avoir à plusieurs reprises promené sa tête négativement de gauche à droite, laissa tomber ces paroles impérissables : « Non. Il subsiste un seul pays totalitaire aujourd’hui dans le monde, ce sont les Etats-Unis. » En 1994 j’avais devant moi un cas aigu de ce que j’appelle le caractère instransférable d’un certain type d’intelligence don la méthodologie est entièrement liée à un objet précis et à un seul. A l’intérieur de sa discipline, ce biologiste possédait une capacité d’observation exacte et de raisonnement rigoureux. Mais cette capacité l’abandonnait entièrement dès qu’il sortait de son domaine. Il endossait alors une autre personnalité. Ce dédoublement fait de nombreuses victimes parmi les scientifiques. Pas chez tous, puisque Youri Orlov, lui-même physicien, et bien d’autres, ne laissent pas à la porte l’esprit scientifique, le scrupule élémentaire, le simple bon sens, dès qu’ils pénètrent dans un sujet de sociologie, d’histoire ou de politique. La fréquence de cette coexistence de l’intelligence particulière et de l’aveuglement général, néanmoins, chez les spécialistes, démontre qu’une raison de survivre existe pour la réflexion philosophique et la pensée polyvalente. Ou, du moins, cette raison de survivre existerait, si les philosophes respectaient tous la rigueur et l’honnêteté intellectuelles auxquelles les engageait, à l’origine, ce que j’appellerai le « serment de Socrate ». Seules elles justifieraient qu’ils se perpétuent.

Jean-François Revel, Mémoires

Un changement de paradigme

La conséquence majeure de la sortie de l’iPad est la relégation de l’ordinateur classique – portable comme de bureau – à des fonctions purement professionnelles/techniques. Il change l’outil principal de l’utilisateur, auparavant un ordinateur, posé sur un bureau ou péniblement sur des genoux, que devient l’iPad. Parce que son utilisation est bien plus agréable qu’une configuration classique souris-clavier physique-écran. Il permet également de s’en servir comme support de livres, ce qui au passage fait passer le Kindle, outil pourtant consacré à cela, pour moyenâgeux.

Restera pour l’ordinateur classique, en premier lieu, une utilisation professionnelle, et l’usage de logiciels poussés, gourmands en ressources, du genre Photoshop.
En second lieu, il sera présent pour alimenter l’iPad en contenu, et fonctionner dans la maison comme station multimédia, connecté notamment à un écran de télévision.
L’iPad peut également servir de télécommande de luxe, pour gérer tout cet ensemble.

La vidéo sur l’iPad n’est pas fondamentalement intéressante pour des productions de loisir (films, séries TV). Le support reste trop petit et pas assez agréable par rapport à un grand écran de télévision. Elle sera néanmoins intéressante pour des podcasts, vidéos informatives, de courte durée, telles que trouvées sur YouTube ou autres Dailymotion.

Nul besoin, pour un usage basique quotidien à la maison, de logiciels professionnels lourds. C’est ainsi que l’iPad s’adresse d’abord au très grand public n’ayant qu’une utilisation basique d’un système informatique : photos, mails, websurf, facebook. Ensuite, il s’adresse aux utilisateurs forcenés d’informatique, qui y verront une seconde (ou troisième si on compte l’iPhone) machine pour leur domicile.

Evoquer l’iPhone et sa portabilité pour casser sans appel l’iPad est une stupidité. Il s’agit d’un nouveau marché qui s’ouvre, du moins tente de, mais certains ne possèdent apparemment pas les cellules neuronales nécessaires pour le saisir. L’iPad n’est pas un appareil fait pour passer des coups de téléphone.
Une autre critique souvent entendue est : “A quoi ça sert? Et où va t-on s’en servir?” Beaucoup ne saisissent pas qu’une nouvelle machine, et un nouveau marché, n’est pas nécessairement synonyme de nouvelles fonctionnalités. Il peut aussi s’agir de nouveaux usages, une remodulation de nos habitudes et du système préexistant. Far better at some key things : c’est le pari de l’iPad.

Concernant l’absence de Flash, c’est une très bonne chose, et même, pour ma part, un argument d’achat.

L’iPad a un défaut, son manque d’ouverture, de l’OS comme vers l’extérieur. Il s’agit d’un éco-système Apple, très satisfaisant, mais qui ne contentera pas les über-geeks et les gens pour qui une interopérabilité au moins correcte est nécessaire. Je comprends ces critiques, mais les avantages de l’iPad les dépassent, selon moi.

J’ai hâte de l’utiliser, pour naviguer avec sur Internet, mais, surtout, pour faire du webdesign et créer des versions de sites adaptées à cette nouvelle interface, dont les caractéristiques sont parfaitement adaptées au websurfing.
Parce que l’iPad a, et c’est aussi un des avantages de l’absence de Flash, le très bon goût de remettre l’écrit au centre du web.

Autres critiques de l’iPad : 1, 2, 3, 4

Rétrospective 2009

C’était stressant mentalement. Au départ de la dernière, je sais que je peux gagner mais que je peux aussi sortir alors que ça fait trois jours que je me bats. On est arrivé à 210 km/h sur un freinage pour une épingle droite, en 1ère. Du moment où j’ai tapé les freins jusqu’à l’épingle, il n’y avait pas un mètre de rab. Mais alors pas un mètre… Pendant 80% de mon freinage (ndlr : évalué à 180 mètres), j’ai pensé que je ne tournerai pas. En sortant de l’épingle, j’ai dit à Daniel [Elena] : ‘Là, il (Hirvonen) ne freinera pas plus tard !’
[source]

Sébastien Loeb, champion du monde WRC

Facedebouc status

Paris misses me

Some french girl on the social web.

Well, it might be Paris Hilton. Sounds interesting.

Une fléchette de radjaïdjah

Être touché par une fléchette de radjaïdjah, le poison qui rend fou :
Toute personne énonçant des propos raisonnables sur un sujet donné, tout en tenant des propos complètement absurdes dans un domaine différent.