NyroBlog
Banniere NyroBlog
Image de Nyro - ?
« août 2007 »
lunmarmerjeuvensamdim
12345
6789101112
13141516171819
20212223242526
2728293031

Escapade à Beverly Hills

Beverly HillsHistoire de ma vie de tous les jours à Los Angeles pendant mon stage.

Ce week-end, ma proie a été Beverly Hills. Ne sachant pas trop où et comment Beverly Hills commençait, je suis descendu du bus à Rodeo Drive, là où s'étaient arrêté d'autres jeunes touristes français la semaine dernière.

Il est 10h du matin, il n'y a pas grande monde dans les rues. Je traverse Wilshire Boulevard pour me rendre sur Rodéo Drive, qui présente un petit bout de rue piétonne en arc de cercle très atypique, dans le genre des villes du sud de la France ou de l'Italie peut-être. Quelques photos et je repars.

Comme les rues sont vides, je marche un peu plus loin pour arriver au quartier résidentiel de Berverly Hills, le long de Santa Monica Boulevard. Ca sent le fric, avec toutes ces grosses maisons et ces belles voitures, toutes avec leur petit écriteau Secured by .... Et puis j'arrive devant un poste de police : Police, city of Beverly Hills. Axel Foley, où es-tu ? Je n'ai pas pu m'empêcher d'y penser, cherchant désespérément un lieu que j'aurai vu dans le film. Juste derrière, un petit marché de produits locaux.

Petit détour au gré des rues si longues, sous le soleil de Californie, j'arrive au Beverly Center : 5 étages de parking, et au dessus, 3 étages de gallerie marchande. Sony et Apple sont là, je ne peux m'empêcher de rentrer par pur curiosité. Au dernier étage, j'arrive au Cafe LA, food court. Il s'agit en fait d'un grand hall rempli de tables et de chaises pour manger, avec tout autour des fast food.

Mon choix sera un Mongholian Grill (si mes souvenirs sont bons). Tu paies, on te donne un bol que tu remplis avec ce qui se trouve le long de la chaine à plateau : de la viande freezée, des légumes, des condiments, soja etc... Tout cela dans des bacs, avec des couleurs bien tranchée. Presque artistique. Et puis, pour les sauces, c'est la caissière qui revient et met des louchettes de sauces différentes dans votre bol, le recouvre de spaghetti (si s'en est réellement...) et passe ton bol au cuisinier. Il jette l'ensemble du bol sur une immense plaque et enlève les pseudo-spaghetti, pour ne laisser que la viande et les légumes. Le tout frît assez rapidement, avec l'agilité du cuisiner qui ne cesse de retourner ma future assiette, en rajoutant une sauce ou je ne sais quoi. A la fin, il remet les pâtes, pour les chauffer et qu'elles s'imprègnent de l'odeur. Il vous remet tout ceci dans un plat en polystyrène et vous remet ça. Absolument délicieux ! (papilles sensibles s'abstenir)

Après ce repas, retour vers Rodéo Drive, pour m'apercevoir que c'est LA rue touristique de Beverly Hills. Un genre de mini Champs Elysées avec toutes les boutiques de luxe : Gucci, Versace, Luis Vutton, Dior et tant d'autres. A chaque passage devant une porte ouverte, c'est un terrible courant d'air froid qui vous glace les jambes. Ca grouille de touristes en ce dimanche après-midi, tous avec leurs appareils pour se photographier devant les grandes boutiques, toutes aussi étincelantes les unes que les autres, rivalisant d'idées architecturales sublimes. Encore quelques photos de ces devantures et retour par le bus programmé.

Quelques gouttes de pluie arrivent, les premières depuis que je suis là. Mais pas longtemps, et ce fut même agréable; cette petite pluie fine qui rafraichit sans mouiller, en laissant une douce odeur, avec un arrière goût de bitume ici.

Comme d'habitude, les photos sont sur ma gallerie, 60 pour cette fois.

Au fait, y'a des gens qui lisent ce que j'écris ? Le style vous plaît ?
Parce que je n'ai eu que très peu de commentaires... N'hésitez pas !

Scriptaculous : Callbacks de l'effet Shake.

Comme j'ai oublié mes photos de ce week-end (à Beverly Hills), un petit poste programmation.

Je m'amuse avec Scriptaculous pour faire des retours d'informations intéressants aux utilisateurs. Durant mes tests, je me suis rendu compte que les callback que je donnai à l'effet Shake n'était jamais exécuter.

Un petit tour dans le fichier effects.js et je me rends compte que rien n'est fait pour le faire. En effet, l'effet Shake est simplement une combinaison de 6 effets Move les uns après les autres, dans des sens différents. Et les options de callback données à l'effet Shake ne sont pas retranscrit à chacun d'entre eux.

Qu'à cela ne tienne, voici le bout de code permettant de palier à ça (dont la modification de ce fameux effet) :

Effect.combinedOptions = function(options) {	
	var ret = {
		start:{},
		update:{},
		finish:{}
	};
	
	if (options.beforeStart)
		Object.extend(ret.start,{'beforeStart':options.beforeStart});
	
	if (options.beforeUpdate) {
		Object.extend(ret.start,{'beforeUpdate':options.beforeUpdate});
		Object.extend(ret.update,{'beforeUpdate':options.beforeUpdate});
		Object.extend(ret.finish,{'beforeUpdate':options.beforeUpdate});
	}
	if (options.afterUpdate) {
		Object.extend(ret.start,{'afterUpdate':options.afterUpdate});
		Object.extend(ret.update,{'afterUpdate':options.afterUpdate});
		Object.extend(ret.finish,{'afterUpdate':options.afterUpdate});
	}
	
	if (options.afterFinish)
		Object.extend(ret.finish,{'afterFinish':options.afterFinish});
	
	return ret;
}

Effect.Shake = function(element) {
  element = $(element);
  var options = Effect.combinedOptions(arguments[1] || {});
  var oldStyle = {
    top: element.getStyle('top'),
    left: element.getStyle('left') };
  return new Effect.Move(element, 
      Object.extend(options.start,{ x:  20, y: 0, duration: 0.05, afterFinishInternal: function(effect) {
    new Effect.Move(effect.element,
      Object.extend(options.update,{ x: -40, y: 0, duration: 0.1,  afterFinishInternal: function(effect) {
    new Effect.Move(effect.element,
      Object.extend(options.update,{ x:  40, y: 0, duration: 0.1,  afterFinishInternal: function(effect) {
    new Effect.Move(effect.element,
      Object.extend(options.update,{ x: -40, y: 0, duration: 0.1,  afterFinishInternal: function(effect) {
    new Effect.Move(effect.element,
      Object.extend(options.update,{ x:  40, y: 0, duration: 0.1,  afterFinishInternal: function(effect) {
    new Effect.Move(effect.element,
      Object.extend(options.finish,{ x: -20, y: 0, duration: 0.05, afterFinishInternal: function(effect) {
        effect.element.undoPositioned().setStyle(oldStyle);
  }})) }})) }})) }})) }})) }}));
}

Le combinedOptions prendra donc en paramètre l'objet option de l'effet Shake pour en ressortir un autre, dans lequel on aura inséré les callback nécessaires selon si l'effet Move est au début, au milieu ou à la fin de l'effet Shake.

Et voilà, c'est tout bon maintenant.

A mon avis ce bug existe pour beaucoup d'autres effets de combinaisons, vous pouvez employer la même technique (et la combinedOptions pour les corriger). J'ai soumis le code sur le wiki de scriptaculous.

Je n'avais jamais testé auparavant Scriptaculous et prototype. C'est une nouvelle façon de voir le javascript et c'est tellement agréable de coder avec ces framework que je crois que je ne pourrai plus m'en passer, après seulement quelques jours d'utilisation...