photo of devloop

devloop :: blog

sécurité informatique, programmation, Linux et plus encore

Subscribe to RSS feed

Posts tagged with "web"

Google Street View à Orléans ?

, , , ...

Il y a quelques jours, alors que je marchais dans la rue, j'ai été dépassé par une voiture avec un dispositif étrange placé sur le toit. Une bloc carré sur une espèce de trépied.
J'ai assez rapidement pensé aux voitures "Street View" qui se chargent de prendre des photos à intégrer dans Google Maps. Bien que le dispositif ne ressemblait pas exactement à certaines photos trouvées sur Internet, je vois difficilement ce que ça pourrait être d'autre...

Dans ma mémoire, cela ressemblait plus à un trépied, avec des pieds en diagonale. La voiture utilisée avait un look bien européen, peut-être même une Renault ou une Citroën, berline, propablement 4 portes, couleur très fonçée mais pas noire. Elle roulait assez doucement sans doute pour éviter de balancer le dispositif.

Après vérification aujourd'hui, il semble que les voitures de Google circulent bien en France. D'après des commentaires sur Zorgloob, d'autres personnes auraient croisé ces voitures un peu partout en France, et notamment sur Orléans à la mi-mai et la semaine dernière... comme quoi ce n'était pas une hallucination p

Dans tous les cas j'ai vérifié sur Google Maps et aucune photo n'est présente pour le moment pour le lieu où j'ai croisé la famuse voiture p
Ca pourrait aussi être une société concurrente ou un petit malin qui a décidé de reprendre le principe... rien n'est sûr.

Dissection de Anywhere.FM

, , , ...

Il y a presque un an maintenant j'avais testé Anywhere.FM, un site permettant d'uploader sa musique en ligne pour pouvoir ensuite la réécouter depuis n'importe quel poste connecté à Internet et disposant du plugin Flash d'Adobe.
C'est très pratique et agréable... quand cela fonctionne. Et malheureusement sous Linux, ça ne fonctionne pas souvent. Premièrement la fonction d'upload ne fonctionne pas sous Linux avec Flash9 (je n'ai pas testé avec la version béta 10), la faute à Adobe qui semble moins pressé quand il s'agit de systèmes libres. Deuxièmement la lecture des titres (et c'est quand même l'utilité principale du site) semble fonctionner uniquement quand ça lui chante... et de toute évidence depuis des mois le site a décidé qu'il ne voulait pas lire les musiques sous Linux. Ainsi l'animation Flash reste bloquée sur "Loading..." mais ne charge rien du tout.

Bref dans mon raz-le-bol général j'ai décidé d'analyser le fonctionnement du site et de voir s'il est possible de développer un petit quelque chose qui me permettrait de pouvoir lire ma musique en ligne directement sur les serveurs sans avoir à passer par l'interface pompeuse existante p
A l'heure actuelle il n'y a pas encore de code, seulement mon analyse qui dévoile la grosse partie du fonctionnement du site.

Identification
Si vous rendez sur une des urls du site, vous serez redirigés automatiquement vers http://www.anywhere.fm/player/. Cette page est chargée dynamiquement et en fonction de la page que vous avez demandé en premier, différentes variables seront passées à l'animation Flash chargée dans le navigateur (par exemple pour indiquer qu'il faut aller chercher la librairie de tel utilisateur).
Durant ce premier contact avec le site, un identifiant de session PHP (variable PHPSESSID) vous sera attribué et vous n'en changerez normalement pas même si vous fermez/ouvrez une session sur le site.
Cette variable de session définie comme cookie est spécifique à l'hôte www du domaine anywhere.fm (d'autres hôtes entrent en jeu comme on le verra plus tard).

Tracking
La page chargée fait appel à différents scripts JavaScript dont un qui a sans doute un rôle de tracking (analyse pour étude commerciale etc) mais à l'heure de ces lignes je ne le jurerais pas.
Le script en question se situe à l'adresse http://edge.quantserve.com/quant.js et il déclare une variable nommée "dc" qui est générée aléatoirement par le serveur.
La fonction principale nommée quantserve() récupère différentes informations sur la configuration de l'internaute et construit une url vers un "pixel traqueur" qui est ensuite chargée par le client pour envoyer les données au serveur pixel.quantserve.com.

La partie qui nous intéresse dans ce script (mais qui est peut-être optionnelle) est la modification des cookies.
La variable dc qui était définie se retrouve dans les cookies sous le nom "__qca".
Une autre variable, générée aléatoirement en JavaScript (code : Math.round(Math.random()*2147483647) ) est aussi ajoutée au cookie et se nomme "__qcb".

Contrairement à PHPSESSID qui est propre à www, __qca et __qcb sont propres à l'ensemble du domaine.

Crossdomain
L'animation Flash étant chargée, elle a besoin de vérifier qu'elle a bien la permission de communiquer avec certains serveurs. Pour cela elle va demander pour chacun un fichier crossdomain.xml qui définie les règles d'accès.
Parmis les serveurs on trouve music, upload-XX (XX étant un nombre multiple de 5) et upload-full.

Authentification
L'animation ayant déterminée qu'elle pouvait dialoguer avec music.anywhere.fm, elle effectue une requête GET sur la page /account/get_current_user?_unique_request_id_=XXXXXXXXXXXXXX.
L'argument _unique_request_id_ a pour valeur un nombre probablement aléatoire mais toujours très grand. Cet "identifiant unique de requête" est incrémenté à chaque communication avec le serveur music.

Le serveur music donne ses réponses sous le format XML. En l'absence de la saisie de vos identifiants, les données renvoyées sont celles de l'utilisateur par défaut (user_id = 89, login = demo, fullname = Lux)

La page en profite pour définir trois nouvelles variables de cookie :
  • auth_token et auth_session_id ont pour restriction l'hôte music
  • _HotPot_session_id est défini sur tout le domaine anywhere.fm

Ces trois variables sont typiques des variables de session : 32 caractères sous l'alphabet hexadécimal.
Malgré leur nom différents, auth_session_id et _HotPot_session_id ont la même valeur.

L'opération suivante est un POST à l'adresse /account/create_login_tracker?_unique_request_id_=XXXXXXXXXXXXXX.
Les variables vues précédemment et concernant l'hôte music ou tout le domaine sont bien sûr renvoyés à nouveau au serveur.
Les données passées dans le corps de la requêtes sont session_id (correspondant à auth_session_id de tout à l'heure) et user_id (correspondant à celui renvoyé par la requête précédente soit 89 ici).
Cela renvoit une information très courte de la forme : <tracker_id>XXXXXXXXXX</tracker_id>

Introduction à AMF
Débutent alors les communications AMF avec le serveur www. Action Message Format est un format de données créé à l'origine par Macromedia puis conservé par Adobe.
Il est utilisé principalement par Flash pour des communications RPC.
L'avantage par rapport à un formatage XML sont son format binaire (on n'est pas resteint à des caractères imprimables) et son gain de place. Il utilise notemment un système de références qui permet de ne pas avoir à redéfinir des données déjà envoyées (pour le moment je n'ai pas étudié en détails ce sujet).
On pourrait comparer ce format au bencodage de BitTorrent mais en réalité il est bien plus complexe, voire carrément prise de tête (rien que le codage d'entiers sur 29 bits donne un aperçu)
De plus deux versions existent : AMF0 et AMF3. Il peut possible d'intégrer des données AMF3 dans du AMF0 par le biais d'un type particulier (0x11)
Les requêtes HTTP transportant des données AMF ont l'entête "Content-Type: application/x-amf"

Ce format n'étant pas le sujet de l'article, je n'en dirais pas plus pour le moment.

Connexion
Passons pour l'instant sur les échanges RPC qui ont été faits, et rentrons nos identifiants de connexion sur le site.
Cela génère une requête POST sur /account/login?_unique_request_id_=XXXXXXXXXXXXXX sur le serveur music. L'identifiant de requête a (ne l'oublions pas) été incrémenté à plusieurs reprises et cela ne changera pas.
Les données envoyées sont :
  • dans le header Cookie : __qca, __qcb, auth_token, auth_session_id et _HotPot_session_id
  • dans le body : "login" et "password"

auth_session_id et _HotPot_session_id ont toujours la même valeur.
La réponse du serveur nous informe d'une nouvelle valeur pour auth_token (qui définie donc notre session utilisateur sur le serveur music)
Sur le serveur www, aucun changement n'est à prendre en compte, les données du cookies n'ont pas changées.

Les deux requêtes effectuées avant connexion sont répétées sauf que get_current_user renverra notre user_id et create_login_tracker renverra une nouvelle valeur.

RPC et Flex
Les échanges RPC sont effectués uniquement avec le serveur www et à destination de la page
/amfphp/gateway.php?_unique_request_id_=XXXXXXXXXXXXXX
Les requêtes RPC sont toujours groupées par deux et ont le même _unique_request_id_. Anywhere.FM utilise les librairies Flex dans ses échanges.
On trouve ainsi deux types de messages :
  • flex.messaging.messages.CommandMessage : permet de faire un "ping" du serveur. C'est toujours la première requête du groupe
  • flex.messaging.messages.RemotingMessage : permet d'appeler une fonction RPC sur le serveur. C'est toujours la seconde requête

Ces fonctions Flex se basent toujours sur les mêmes arguments.
Concernant les fonctions RPC, l'argument source sera toujours fixé à "BlazingFast.DBQueries". L'argument operation contient le nom de la fonction à appeler sur le serveur et body est un tableau contenant les arguments à y passer.

Fonctions
Le premier argument de chacune des fonctions existante correspont au auth_session_id, permettant ainsi au serveur de vérifier les permissions d'accès aux données.

La première fonction qui nous intéresse est get_complete_profiles. Elle prend deux argument : le premier est (bien entendu) l'identifiant de session et le second est un tableau contenant une liste d'identifiants utilisateur.
Le résultat retourné est un tableau contenant des informations diverses sur les utilisateurs correspondant, notemment les liste de titres dont ils disposent.
Trois données importantes permettent de définir une playlist : playlist_type, playlist_id et playlist_name.
Le type d'une playlist aura la valeur 200 s'il s'agit de la collection entière de l'utilisateur et 300 s'il s'agit d'une librairie personnalisée.

La fonction get_songs_for_user_playlists pourrait se définir de cette façon :
get_songs_for_user_playlists(session_id, user_id, bool, [playlist_id], [playlist_type], ['0','0'...])
Le rôle du booléen en troisième argument m'échappe pour le moment ainsi que le tableau de chaines de caractères définie à '0'.
Cette fonction retourne un tableau qui peut être imposant définissant chaque titre d'une liste de lecture. En dehors des données "classiques" (name, artist, album), on trouve les données "master_id" et "song_ressource_id" qui permettent de récupérer une adresse valide pour un titre donné.

C'est la fonction get_song_url qui nous donne le sésame. On pourrait la déclarer de cette façon :
get_song_url(session_id, user_id, master_id, song_ressource_id)
Elle retourne une chaine de caractères correspondant à une url HTTP vers le fichier MP3 smile
Cette url dispose d'une clé d'accès ainsi qu'un temps de validation. Par conséquent il ne doit pas être possible d'utiliser deux fois la même url.

Conlusion
Il reste de nombreux points à éclaircir qui doivent pouvoir être déterminés par expérimentation comme :
  • _unique_request_id_ est-il généré aléatoirement au début ?
  • Les variables définies par quantserve() ont-elle une utilité autre que le tracking ?
  • Quelle utilité a la valeur tracker_id ?
  • A quoi sert le booléen et le tableau de chaines passé à get_songs_for_user_playlists ?

Netographie
Open Source Flash documentation
PyAMF (les codes sources m'ont bien aidé)
Charles Web Debugging Proxy : Un proxy qui comprend l'AMF smile Malheureusement en shareware sad

Ping Flex
Pour terminer un petit exemple de code utilisant l'API PyAMF qui réalisé un ping en Flex (merci aux développeurs de l'API pour leur aide ;-) ) :
import pyamf
from pyamf.remoting import client
from pyamf.flex import messaging
from pyamf import remoting

gw = client.RemotingService('http://127.0.0.1/',pyamf.AMF0,pyamf.ClientTypes.Flash9)
message = messaging.CommandMessage(body={},
    timestamp=0,
    destination='',
    clientId=None,
    headers={'DSId': u'nil'},
    timeToLive=0,
    messageId='7478D81C-65B4-EA4B-B52E-4689507A7241',
    operation=5,correlationId='',
    messageRefType='flex.messaging.messages.CommandMessage')
gw.addRequest('null', message)
gw.execute()

M6Replay Béta et Linux

, , , ...

Vous êtes peut-être au courant de l'existence d'une version béta de M6Replay qui permet aux utilisateurs de Linux et Mac de profiter des vidéos du site de M6.

Je m'étais déjà penché il y a quelques temps sur la version initiale (pour le moment toujours la version officielle) histoire de voir si il était possible de bricoler une "zapette" comme celle pour les émissions en clair de Canal+.
Après avoir pas mal fouillé, et trouvé assez facilement les urls des flux, il s'avérait que le protocole utilisait était du "RTSP-over-HTTP" (ou du moins quelque chose dans ces eaux là bigsmile ), qu'on pouvait normalement le lire en bidouillant les options de VLC ou en passant un simple "" au lieu du protocole dit officiel.
On final on avait bien de l'image et du son mais pas vraiment ce qu'on désirait. J'ai quand même cru discerner durant un dixième de seconde une paire d'yeux au milieu d'un artistique nuage jaune fluo et de taches oranges... à moins que ce soit l'effet du hazard p
En fait il semblerait qu'un codec propiétaire (DRM-powered) soit utilisé en plus, rendant impossible la lecture sur les systèmes libres sad

Avec la version béta les vidéos sont bien lisibles sous Linux, mais M6 s'est visiblement cresé la tête pour trouver une solution tout aussi imbuvable.
Ca fonctionne donc avec le lecteur Flash (qui rappelons le est propriétaire)... mais pas autre chose.

On a bien un flux XML dans lequel on retrouve des urls du style
mp4:production/live/DIFF_28072008/H264_UN_DINER_PRESQ__UN_DINER_PRESQ__280720080615__LIVE.mp4
et en observant le traffic réseau on sait que le flux vidéo est lu depuis le serveur fcds98.lon.llnw.net (le nom de machine n'est probablement pas fixe) mais à part ça difficile de retrouver un lien direct pour y pointer son lecteur multimédia préféré.

Après recherches le flux vidéo utiliserait le protocole RTMP (Real Time Messaging Protocol), un protocole (bien évidemment) propriétaire développé par Macromédia (avant rachat par Adobe).
Il existe différents outils closed-source pour capturer les vidéos des flux RTMP, la majorité se basant sur le même principe que cette source C++ à savoir utiliser la librairie pcap et surveiller tout ce qui communique avec le port TCP 1935.

Le protocole RTMP a aussi été analysé et est utilisé par le projet "Open Source Flash" par le biais du serveur Red5.
Comble du bonheur, les versions béta de VLC (>= 0.9.*) supportent le RTMP smile

Petit problème : M6Replay utilise à priori le RTMPE ("RTMPE is a version of RTMP which is an 128-bit encrypted protocol"), ce qui fait que ces outils se montrent inefficaces.

Bref pour le moment seulement le lecteur Flash peut lire ces vidéos sous Linux. Il reste à trouver les adresses exactes des flux et attendre que le RTMPE soit supporté par un logiciel libre pour pouvoir en profiter "pleinement".

Martine, le retour

, , ,

Il y a quelques temps, Pwet me faisait découvrir les fausses couvertures Martine qui ont maintenant disparues. Picasa a fait fermer les galeries, il est possible que Casterman y soit pour quelque chose...

Mais "Martine's not dead", elle revient plus forte avec le Martine cover generator.

On trouve aussi quelques détournements sur ce forum.

Personnellement, j'aime bien la référence à Queen dans celui-ci.

Un de moins !

, , , ...

Après m'y être repenché une n-ième fois, je suis finalement parvenu à corriger le bug d'affichage du menu (à droite) du blog (l'original sur lyua.org) qui apparaissait sous Firefox.
Techniquement, Firefox semble avoir du mal à digérer qu'un lien se trouve dans une liste "décorée" par une puce interne.

Auparavant j'avais ceci :
#sidebar ul {
    padding: 0 0 0 0;
    margin : 0 5px 0 5px;
}

#sidebar li {
    list-style : square inside url(pics/square.gif);
}

#sidebar li a {
    display: block;
    border-bottom: 1px solid black;
    text-decoration: none;
    color: white;
    background: #565656;
    font: bold 11px Arial;
}

#sidebar li a.two {
    background: #778;
}

Eventuellement, comme les balises "a" de liens sont affichés en "block", on peut comprendre la réaction de Firefox qui affichait deux lignes, la première vide avec seulement la puce et la seconde avec le liens html. Mais comme les autres navigateurs (Opera, Internet Explorer et (il me semble) Konqueror) affichait le blog sans problème, j'aurais tendance à dire que Firefox était le fautif.

Quoiqu'il en soit, j'ai déplacé le problème des balises "a" vers les balises "li". L'idée m'est venue en tombant sur un site qui donnait des exemples sur les listes et montrait comment y mettre un background.
Objectif : avoir deux backgrounds superposés, l'un pour l'entrée li de la liste, l'autre pour l'image de la puce (qui n'en est donc plus vraiment une).
Comme j'ai aussi intégré l'alternance des fonds pour les éléments du menu, ça donne une véritable gymnastique pour re-modifier les différents fichiers de Dotclear et ses plugins sad

Au final j'ai ceci :
#sidebar ul {
    list-style-type: none;
    padding: 0 0 0 0;
    margin : 0 5px 0 5px;
}

#sidebar li {
    background: #565656;
    padding: 6px 0 0 0;
}

#sidebar li.two {
    background-color: #778;
}

#sidebar li a {
    display: list-item;
    padding-left: 15px;
    background: url(pics/square.gif) left center no-repeat;
    border-bottom: 1px solid black;
    text-decoration: none;
    color: white;
    font: bold 11px Arial;
}

Mais comme souvent avec les CSS, il y a toujours un navigateur pour poser problème. Là ce fût IE7 qui fit des siennes en ne respectant pas le padding de 6 pixels pour la hauteur des entrées de liste "li". A la place il mettait un padding bien trop grand (12px ?).
Pour le corriger j'ai trouvé une technique appelée conditional comments, pas forcément très propre... mais qui fonctionne. Ca consiste à rajouter un code qui ne sera pris en compte que par Internet explorer :

Et là, comme par magie... on obtient un comportement normal. IE7 était censé avoir corrigé les problèmes de padding mais là j'ai des doutes.
Dans tous les cas le bug n'est plus là et le blog s'affiche correctement dans les différents navigateurs smile
Il reste quand même un bug : sous IE, le premier billet de la page s'affiche en orange... et là j'avoue manquer d'imagination :|

La Zapette de Canal+

, , , ...

Depuis quelques temps le site de Canal+ a changé les adresses des flux MMS pour certaines de ses émissions en clair, à savoir Les Guignols de l'info, le Zapping, le Service après vente des émissions, le Groland et compagnie.

Les petits scripts bash qui permettaient de regarder directement les émissions (sans passer par le site) ne fonctionnent plus car un nombre non-prédictible a été inséré dans les urls des flux.
Auparavant l'url pouvait être facilement générée à partir de la date, maintenant il faut aller sur le site pour trouver l'url correcte.

Pour résoudre le problème, j'ai développé une petite "Zapette" qui récupèrent les urls des dernières émissions en lisant quelques flux RSS et permet de lire les flux par un simple click sur un bouton.

La Zapette est destiné aux utilisateurs de Linux seulement et nécessite le lecteur mplayer, l'environnement de programmation python, et les librairies gtk et pygtk.

Quelques bugs sont présents, à savoir l'interface de la Zapette se fige quand une vidéo est en train d'être lue (les éléments disparaissent si on passe quelque chose devant) et un texte "Chargement..." est censé s'afficher au lancement du programme, mais ce n'est pas le cas.
C'est un de mes premiers codes en GTK donc j'ai pas fait dans la dentelle, mais si vous savez comment corriger les bugs, n'hésitez pas à poster en commentaire.

Télécharger zapette.py

Cofanifunebri n'y va pas de main morte

, , , ...

Je surfais sur le blog pages après pages pour récupérer les images afin de les sauvegarder dans un lieu sûr car la quasi-totalité sont hébergées sur des sites "spécialisés" mais dont on ne peut pas être sûr à 100% de la fiabilité. Par exemple j'avais une poignée d'images hébergées chez Image-Dream et qui ne sont plus accessibles car le site n'existe plus. La grande majorité sont sur ImageShack et depuis plus récemment sur xs.to.

Quoiqu'il en soit, en voyant les billets La mort vous va si bien et La mort est sexy sur les calendriers 2006 et 2007 de Cofanifunebri, je me suis dis que je devais absolument vous faire profiter de la sortie du calendrier 2008 de cette entreprise... de pompes funêbres.
Cette année, vous pouvez en être sûr, la mort ne vous laissera pas de marbre flirt

En plus ça me donne l'occasion de faire un titre avec un jeu de mot mortel (et hop j'en rajoute une couche !) p

J'ai testé Anywhere.FM

, , , ...

Quoique "testé" est peut-être un faible mot en comparaison de la quantité de données que j'ai pu envoyer sur ce nouveau service en ligne.

Anywhere.FM est, comme son nom peut le laisser deviner, un site web communautaire dédié à la musique.
Il vous propose de mettre en ligne votre discothèque afin que vous puissiez l'écouter de n'importe quel poste relié à Internet, le tout sans limite d'espace ni de taille de fichiers à l'upload.

La première réaction que l'on a est de chercher la petite bête et l'on s'attend à voir quelque part un nom de serveur dans le genre "all-your-music-is-belong-to-us.riaa.com".
Mais première surprise, on peut créer un compte le plus facilement du monde, seulement en choisissant un login et un mot de passe, sans être obligé de donner une adresse email ^_^
Après une petite analyse on découvre que la musique est uploadée sur des serveurs d'Amazon. On est sans doute plus proche d'une étude commerciale sur les gouts musicaux qu'un honeypot de la RIAA p

Le site est fait en Flash et est très simple d'utilisation mais un peu limité côté fonctionnalités. Plusieurs interfaces bien flashies sont proposées. Les boutons que l'on utilise le plus souvent sont "Upload" et la flèche de lecture.

Une fois que la musique est uploadée, il n'y a plus grand chose à faire : impossible de supprimer un titre ou de le retagger, cela oblige à avoir proprement taggé sa musique avant l'upload.
Le site est peu portable, la fonction principale (upload) ne fonctionne pas avec Firefox ou Opera. Si vous avez le trio perdant Flash/Linux/Opera, l'appli est carrèment impraticable. Cela oblige à utiliser un IE4Linux pour les amateurs d'OS libres sad
Ca pompe beaucoup de ressources mais ça fonctionne.
Difficile d'expliquer pourquoi l'upload ne se lance pas sur FF et Opera. J'ai d'abord pensé à l'utilisation d'un protocole non supporté (ça aurrait pû être intéressant de jouer avec du WebDAV) mais les fichiers sont en réalité envoyés par un bête POST.

Difficile aussi de dire à qui revient la faute (Opera et firefox, Macromedia ou Anywhere.FM ?) Je n'exclus pas non plus l'hypothèse que seul IE fonctionne à cause d'un bug que les autres n'ont pas (dans le genre non respect d'une "cross-domain policy" à tout hazard).

Le service est toujours en version Béta, c'est écrit blanc sur rouge sur le site. C'est déjà arrivé que le service soit indisponible ou que la playlist ne se mette pas à jour etc. J'ai aussi eu des erreurs plus ou moins abstraintes (erreur 429 et "no more files to upload"), mais à chaque fois le site est revenu assez vite.

Pour s'éviter des procès pour piratage, le site de permet pas le téléchargement des titres uploadés. Il propose à tous les visiteurs la lecture de morceaux gratuits en streaming.
Des titres non gratuits peuvent aussi être écoutés mais dans ce cas le visiteur ne peut pas les sélectionner lui-même.
La musique des membres peut en effet être écoutée en ligne par les visiteurs (par exemple ma musique est ici) mais la playlist ne s'affiche pas et les titres sont sélectionnés aléatoirement.
Si vous n'êtes pas membre, la lecture est bloquée au boût de 5 morceaux.

La relation avec last.fm est évidente : contrat avec Amazon, système communautaire qui calcule le taux de compatibilité musicale avec les autres membres, le nombre de titres joués et sans doute plus à venir.

Pour conclure, Anywhere.FM s'avère être quasi indispensable pour apporter votre musique avec vous (pour peut que vous ayez l'accès à Internet) ou simplement si vous avez peur de perdre votre musique dans un crash disque.
Malheureusement on regrettera l'utilisation de Flash qui pose problème avec certains navigateurs (et pas les moindres pourtant).

Testez votre addiction aux blogs

, , ,

Un questionnaire en anglais trouvé sur fylib...
72%
Comme quoi je suis pas mal atteint bigsmile
Cela dis, comme vous avez pu le remarquer, je manque de temps pour m'occuper du blog ces derniers temps pour différentes raisons (recherche d'appart + déménagement + vacances + plus d'accès internet + le nouveau Harry Potter) ce qui ne m'empèche pas d'accumuler les idées de projets smile
Donc revenez de temps en temps, on ne sait jamais.

PS: La divulgation d'une quelconque information sur le dernier épisode de HP sera punie d'une lapidation par les volumes complets de J.K. Rowling sur la grand place.
De toute façon tout a été révélé sur UserFriendly (vous pouvez aller sur cette page sans crainte, c'est de l'humour p )

Créez votre avatar Simpsons

, , , ...

Comme tout fan des Simpsons qui se respecte, je suis actuellement atteint de la Simpsons-mania à l'approche d'un film qui s'annonce énormissime, grandiose, fabuleux et autres superlatifs du même acabit smile

Pour l'occasion de la sortie du film le 25 juillet, le site officiel du film, www.simpsonsmovie.com, a été ouvert et est un bon moyen de passer le temps. En dehors de l'accès aux vidéos, fond d'écrans (j'ai déjà retapissé chez moi) et autres galleries on trouve une section vous permettant de créer votre vous-même en Simpsons.
Rendez-vous sur la version française du site wink


Pour l'occasion j'ai aussi rassemblé les liens vers les vidéos du film.

Bande annonce VO avec le lapin et le "hard-place" p
http://images.apple.com/movies/fox/the_simpsons_movie/the_simpsons_movie-tlr_h640w.mov

Trailer VO peu connu : le plus grand héro de l'histoire des Etats-Unis
http://images.apple.com/movies/fox/the_simpsons_movie/the_simpsons_movie-tsr_h640w.mov

Homer fait du bricolage (VO) bigsmile
http://images.apple.com/movies/fox/the_simpsons_movie/the_simpsons_movie-intl_tlre_h640w.mov
La version française :
http://video.premiere.fr/premiere/video/0000886/886861_WMVHD.wmv

Bande annonce où un tas de personnages sont présentés
http://images.apple.com/movies/fox/the_simpsons_movie/the_simpsons_movie-tlrk_h640w.mov

Dernière bande-annonce avec Spider Cochon
VO sur AlloCine
VF : http://video.premiere.fr/premiere/video/0000915/915025_WMVHD.wmv

Et une autre BA française : http://video.premiere.fr/premiere/video/0000888/888499_WMVHD.wmv

Comment peut-on humainement mettre autant de choses dans un film ? ^_^