Catégorie Technologie

Déçu par Snow Leopard 17 commentaires

Posté par Cedric, le 29/10/2009 - Technologie

T_5dc5b16911dd248c38ec57660153587cVoilà plusieurs mois que Snow Leopard trainait sur mon bureau. Précommandé à la hâte dès le mois d'Août, en bonne victime du marketing de la marque à la pomme, je ne l'ai jamais ouvert depuis. Comme si je sentais que quelque chose clochait. Les articles très critiques dans les forums, les tweets d'utilisateurs déplorant les cassures de compatibilité, les alertes reçues pour les différents* logiciels dont je possède la license (*bon, ok, les deux logiciels dont je possède la license), pour me proposer des patchs correctifs à la hâte. Bref, ça ne présageait rien de bon, et mon état d'esprit était assez bien résumé dans un de mes tweets, il n'y a pas si longtemps: "This DVD smells like Vista".

Disposant enfin d'un peu de temps libre ces derniers jours, j'ai tenté l'expérience. Et je suis malheureusement obligé de confirmer le pire commentaire que j'ai lu avant de franchir le pas: "It's the most expensive downgrade I've ever seen".

Quelques dyfonctionnements en vrac:

  • Les mouvements autrefois fluides, comme le passage de la souris dans un coin de l'écran pour activer Exposé sont désormais saccadés, passant de l'écran normal à Exposé, sans passer par le dégradé.

 

  • Quicktime X n'a plus de son.

 

  • VLC ferme inopinément, de même que Mail et Adium, ce qui me laisse croire que toutes les applications peuvent être concernées.

 

  • Lorsque vous avez sécurisé votre Mac par mot de passe, Leopard avait l'intelligence d'attendre 30 secondes environ après chaque période d'inactivité avant de vous redemander de confirmer votre accès. Snow Leopard le demande à la seconde près, ce qui vous oblige à bouger sans arrêt la souris pour vous assurer que l'écran ne va pas s'éteindre, et que vous n'allez pas taper votre p4$$w0rD pour la 12ème fois de la journée.
    EDIT: Ce point est un #fail, puisque cette option est finalement réglable dans les paramètres de sécurité.

 

  • Alors même que j'écris cet article sur mon éditeur de texte habituel, TextEdit, j'aperçois que la correction automatique d'orthographe est activée, et que chaque mot en anglais est transformé sans que je ne le demande dans un mot très étrange dans la langue de Molière. Pourquoi changer de réglages par défaut qu'on utilise depuis des années??


En bref, Snow Leopard introduit de l'instabilité dans ce qui marchait très bien, ce qui est une des pires expériences utilisateur qu'on puisse avoir. De plus, on doit ici souligner l'importance de la promesse non tenue. En effet, Apple nous a vendu cet OS comme "plus accompli, plus rapide, plus simple". Ces trois affirmations sont fausses. En particulier le "plus rapide". Je n'ai remarqué aucune amélioration de vitesse d'une manière générale (note: je dispose de 4GB de RAM), et je soupçonne les utilisateurs qui font part d'une amélioration à ce niveau là de s'en être eux-mêmes convaincus pour éviter de reconnaitre l'ampleur de ce qui convient quand même d'appeler une arnaque.

Quand on utilise autant le marketing en positionnement, distribution et communication, le tout avec autant d'assurance, voire d'arrogance, il faut vraiment être sur de son fait. Je doute qu'Apple puisse se permettre beaucoup de faux pas comme celui-là avant que la communauté ne se retourne, en particulier, la communauté des nerds qui sont venus à OSX pour Unix, et qui sont très volatiles.

La touche "anti-Spotify"

Mais il y a encore pire. La "fonctionnalité" qui m'a vraiment fait avaler de travers est la modification de la touche media "play/pause". Cette touche a été modifiée pour lancer iTunes si celui ne l'est pas encore. Ne tournons pas autour du pot, cette touche vous empêche purement et simplement d'utiliser un autre lecteur media que iTunes! (en gros, la musique d'iTunes se déclenche lorsque vous voulez stopper la musique de votre logiciel favori) Le premier visé est évidemment Spotify, qui représente une menace énorme pour iTunes, via son abonnement premium, ses innovations et son service très performant. Pour une société qui a encore le culot de dénigrer Microsoft dans ses fameux spots publicitaires, voici un "cheap shot" anticoncurrentiel du niveau de la firme de Redmond.

Pour ne pas dresser un bilan uniquement négatif, je relève une légère amélioration de la vitesse lors de l'arrêt de l'ordinateur, et surtout une amélioration assez significative des performances de Mail, mon logiciel de messagerie de choix que j'avais abandonné il y a quelques mois car il mettait beaucoup trop de temps à s'ouvrir. En revanche, il souffre également de fermetures impromptues.

Je reste très largement enthousiaste vis-à-vis des produits Apple, mais reprendrai mon ancienne routine: aller essayer le produit qui m'intéresse à l'Apple Store, attendre une vague de reviews, puis prendre une décision. Mon premier achat impulsif Apple a définitivement été un échec.

Quelle a été votre expérience avec Snow Leopard? Aussi négative ou beaucoup plus contrastée, voire plaisante?


Note: J'en profite pour dire à nos amis parisiens que l'Apple Store de Paris au carousel du Louvre devrait ouvrir ses portes le 7 Novembre prochain.

Note2: Pour contourner l'affaire de la touche play/pause, je fais un "click droit" sur l'icone d'iTunes dans le Dock, et coche "couper le son". Le problème est que la RAM attributée à iTunes est perdue, mais c'est déjà ça.

Notre dernier projet 15 commentaires

Posté par Cedric, le 20/10/2009 - Technologie

Ces dernières semaines, nous avons sorti un produit que nous préparons depuis pas mal de temps. Il s'agit de FatCap. Ce site, visible en francais sur www.fatcap.org, et initialement créé en 1998, est un des leaders mondiaux des magazines d'arts urbains en ligne. Pour cette nouvelle version, les objectifs à atteindre étaient multiples:

  • Bâtir une plateforme solide, basée sur le contenu des utilisateurs (photos, vidéos) ET sur le contenu produit par l'équipe éditoriale (vidéos maison, articles, interviews, reportages, mises en avant)

 

  • Rendre cette plateforme entièrement géolocalisée, afin de pouvoir suivre l'évolution de l'art dans une ville, dans un état américain, dans un pays, ou même dans un continent.

 

  • Tirer la plus grande valeur de chaque élément de contenu en créant une base intelligente et structurée censée représenter l'art urbain de manière exhaustive: Ainsi, chaque artiste devra avoir sa page, ainsi que chaque groupe d'artiste. De même, chaque photo pourra être multi-taggée avec une quinzaine de critères afin de répondre de manière complète à tout type de demande de la part des internautes.

 

  • L'ensemble de la plateforme devra être internationalisée, et mieux encore, localisée, c'est à dire que la couche éditoriale devra être différente sur les différents sites locaux. L'actualité de chaque version localisée étant adaptée au pays ciblé par la version, à l'inverse de sites internationalisés au contenu unique, traduit soit à la main soit par un traducteur automatique.

 

La conception


Nous sommes donc partis pour quatre mois de conception dès mi-2007, où il s'agissait d'abord de faire un état des lieux des technologies en présence. En effet, il fallait contourner par la technologie les problèmes suivants:

- Géolocalisation: Il était bien sûr hors de question de se baser sur des champs texte, qui laissent la part belle aux fautes en tout genre. Il fallait se baser sur une API (et donc sur des ID), et proposer un système souple et intelligent qui permettrait aux utilisateurs de renseigner les villes de manière intuitive. Côté API, elle devait être pérenne, et n'avoir aucun risque de cessation d'activité à court ou moyen terme. Nous avons opté pour les bases de Yahoo! Geoplanet (qui, hasard ou chance, sont sorties en plein milieu de notre phase de conception), car ce sont celles utilisées par Flickr et celles qui de loin présentent les fonctionnalités les plus puissantes et les meilleures garanties.

- Ce dernier point fut en outre à l'origine d'un problème plus global: ayant un contenu méta-taggée de manière très riche, il convenait d'adopter un système de tagging très simple à utiliser, très loin donc, des éléments de formulaires mis à notre disposition par le simple fruit de l'HTML (menu déroulants, boutons radio, etc..). Le JavaScript allait donc être intensivement utilisé sur certaines pages. En effet, plus vous rendez une information compliquée à rentrer, plus vous risquez d'avoir des informations lacunaires.

La solution à ces deux problèmes peuvent être illustrés au travers de l'exemple du tagging d'une ville. Voici à quoi ressemble le formulaire d'inscription, par exemple:

fig. 1

fig. 2

fig. 3

Comme vous le voyez sur le drapeau, on préselectionne automatiquement le pays dans lequel l'IP du visiteur se situe. S'il le souhaite, il peut évidemment changer ce pays. Cela nous permet de restreindre notre recherche de ville au pays sélectionné, évitant ainsi les multiples doublons constatés à l'échelle mondiale. Ensuite, la puissance de l'interactivité avec l'API se déploie lorsque la ville est inconnue en base (fig. 2). La, alors que l'utilisateur va taper entièrement le texte de sa ville, nous ne sommes pas encore en mesure de la relier à une ville issue de la base de données des villes Flickr, disponible à travers Yahoo! Geoplanet. Alors, une fois le texte rentré, nous effectuons par Ajax la bonne requete YQL, et sommes capables, s'il y a confusion, de proposer des options à sélectionner (fig. 3), ou, si nous avons un résultat unique, de simplement qualifier le texte tapé en une puce signalant la validation du contenu.

- Ensuite, il y a la spécificité d'un site au contenu localisé. Un tel site ne saurait abriter toutes ses différentes version sous un seul et même serveur. Au contraire, le contenu doit être servi au plus près des internautes, ce qui sous entend d'héberger chaque version dans le pays des visiteurs qu'il cible. Cela pose donc entre autres le problème de l'appel aux images, puisque des images sont chargées sur des serveurs distants de 7000 km, et que nous ne souhaitions pas utiliser de technologie de synchronisation des fichiers (même si unison a longuement été étudié), car technologie sujette aux lags, à la consommation frénétique de bande passante (qui n'est pas chère en France mais hors de prix aux Etats Unis), et sous-optimale en terme d'optimisation de l'espace disque.

Nous avons donc développé un système de gestion intelligent des assets, qui est capable de déterminer sur quel serveur du cluster une image a été chargée, et de l'afficher en conséquence, ainsi que de faire une copie permanente des assets sur le service de stockage tiers Amazon S3. Une fois une image répliquée (dans les 10mn de sa validation), c'est le chemin physique le plus court jusqu'au serveur qui est choisi, dans le but d'optimiser la vitesse et les couts.

Le design


Printemps - été 2008: Une fois les documents établis (specs fonctionnelles et techniques, wireframes détaillées, etc.), l'élaboration du design fut assez "simple". Déja, parce que nous travaillions avec une des meilleures agences de Paris (CubeDesigners), mais aussi parce que nous avions une idée très claire de ce que nous souhaitions, facilitant les allers retours. Ainsi, élaborer une page clé complexe ne prenait pas plus d'une journée, sans que nous n'ayons, jusqu'au dernier jour, besoin d'y retoucher le moindre pixel.

Le défi ergonomique de ce design était de bâtir des listes filtrables, sur un système d'entonnoir. Ainsi, une liste de photo peut être celle d'un artiste, comme C215, mais aussi la liste des photos de Paris, celle de tous les "personnages" apparaissant dans une oeuvre, celle de France, de Californie, etc... C'est là la puissance du site: structurer à l'extrême un contenu par ailleurs désorganisé, rendu simple par une utilisation de repères identiques à travers la visite.

Un bon exemple de ce souci de facilitation du parcours de visite est la page de vue d'une photo. Sur cette page finale (rien après ce niveau de navigation), il convenait de proposer aux visiteurs d'autres contenus reliés. Etant donnés nos multiples niveaux de classification d'une photo, nous avons opté pour un coverflow, grâce auquel on peut continuer sa visite sur des frises, toutes classées selon un des critères clés choisis à travers le site (timeline, artiste, ville, type, style, support).

Le développement


Beaucoup de travail nous attendait chez SeedWeb. Nous avons passé l'été 2008 à concevoir le design, et l'automne fut l'occasion pour notre équipe d'intégrateurs HTML d'intégrer toutes ces maquettes en XHTML selons nos critères très stricts, dans le but d'améliorer le référencement naturel, et en parallèle pour notre équipe de développeurs front, de développer la couche Javascript (avec jQuery), en particulier les interfaces de tagging. Le développement lourd a donc commencé à l'hiver 2008-2009, ce qui concordait avec la sortie de Symfony 1.2, qui intégrait enfin Doctrine comme un ORM de choix, ce qui tombait bien car vue la complexité de certaines requêtes du site et la puissance du DQL, nous aurions difficilement pu nous en passer.

De cette base Symfony, nous avons presque tout étendu: les classes de base bien sûr, le moteur lui même, puisque nous lui avons adjoint la puissance des composants Zend Framework, notamment pour la gestion des services tiers (FatCap est un site ouvert, interfacé avec Twitter, Youtube, Dailymotion, Vimeo, Flickr, etc..), nous avons également étendu les actions de manière à ce qu'elles héritent d'une classe mère par application, qui hérite elle même d'une action commune à l'ensemble du projet, afin de factoriser au maximum le code. Idem pour les composants. Toute notre gestion des images (redimensionnement, intégration à notre système de réplication) est le fruit d'une nouvelle classe de traitement de l'upload des fichiers (qui étend sfValidatedFile), et qui se base sur des fichiers de configuration puissants afin de déterminer la liste des miniatures à effectuer, des emplacements de stockage, etc... L'ensemble des modèles de données est étendu grâce à des templates doctrine, comme par exemple le choix du serveur pour afficher une image, ou encore la réplication S3, le tout en minimisant les requêtes et le temps d'affichage, et en rendant toutes les actions longues asynchrones.

L'ensemble de cette belle machine est surveillée par des milliers de tests fonctionnels et unitaires, et servie par un cluster de serveurs répartis dans le monde, avec des systèmes de réplications de bases de données complets, une utilisation intensive de memcache, et un accent fort mis sur la sécurité. La base de données est constamment "purifiée" par une cinquantaine de démons qui tournent à longueur de journées et de nuits, et qui s'appuient sur un logging statistique étendu pour garder une base de données propre, qualifiée, et à jour (qui sert aussi à produire les différents graphiques sur le site).

En bref, un très long projet, et une belle prouesse technologique pour SeedWeb, qui synthétise l'ensemble de nos champs d'expertise, et qui correspond à notre positionnement ambitieux de s'employer à produire des sites de très haute qualité, facilement extensibles et utilisant un éventail de technologies matures et professionnelles, en utilisant notre expertise en marketing internet et en ergonomie pour maximiser l'expérience utilisateur, et diminuer les couts d'acquisition.

Les nouveautés Apple (WWDC) 17 commentaires

Posté par Cedric, le 07/06/2009 - Technologie

T_7326fab98faa1d12a371359a028932b1Depuis hier, et la tenue à San Francisco du WWDC, tout l'écosystème Internet n'a d'yeux que pour le nouvel iPhone. Je ne pense pas que cette version soit une étape révolutionnaire pour l'évolution du téléphone, mais plutôt un palier nécessaire. En effet, les ingénieurs se sont appliqués à résoudre un certain nombre d'incohérences, qui, mises bout à bout, amènent presque à se demander si les premiers modèles n'avaient pas des carences volontaires, afin de pouvoir faire renouveller la même demande chaque année.

Des améliorations nécessaires

Ainsi, le dénommé 3GS (pour 3G Speed) a un nouveau processeur (et est donc plus rapide, indispensable et logique après 2 ans d'existence, mais pas une raison en soi d'upgrader), une nouvelle batterie (la dessus, il était temps de faire quelque chose. Mon iPhone n'a jamais tenu 24h sans recharge, même en airplane mode!), le copier coller et les MMS (c'est quand même des basiques, non?), la boussole (sympa mais pas révolutionnaire), et enfin, la caméra vidéo. La, ils pouvaient difficilement faire autrement, vu que les possesseurs d'iPhone jailbreakés en bénéficiaient déjà (ce qui laisse penser, encore une fois, que c'était un choix délibéré de ne pas l'embarqué dès la V1).

En bref, sur le volet iPhone, la stratégie d'Apple est limpide: créer un contenant superbe, technologiquement très avancé, et rendre la courbe de vente sinusoidale en créant des versions améliorées chaque année. C'est sûrement cette stratégie, et le talent avec lequel elle est marketée et communiquée qui est révolutionnaire, dans un secteur de la téléphonie où la demande s'affaisse naturellement dès qu'un nouveau produit sort sur le marché. Demandez à Ericsson ou Alcatel ce qu'ils en pensent..

Un nouveau SDK

L'autre pendant de la stratégie iPhone sont naturellement les applications, le contenu dans le contenant. Les applications sont à la fois garantes d'une marge immense pour Apple, de fidélité de la part de ses possesseurs (difficile de s'en passer), et d'un renouvellement matériel assuré car évidemment, Apple a également pensé à faire évoluer son SDK pour étendre à intervalle régulier le spectre de ce qu'il est possible de faire avec une application. Ces versions successives entraînent des nouvelles applications, donc des achats renouvelés. Exemple concret, dans l'iPhone 3GS, la boussole, qui ne chamboule pas notre vie de consommateur lambda, va permettre d'étendre les fonctionnalités du SDK pour permettre à une société comme TomTom d'avoir enfin son application de guidage routier. Résultat, entre un GPS à 300 euros ou une application TomTom dans mon iPhone à 1 ou 2 euros, je pense que le choix est vite fait. Il suffit de comprendre cela pour reconnaitre l'étendue du génie de Steve Jobs.

Nouvel OS, nouveau Macbook Pro

Mais au delà de l'iPhone, j'ai trouvé d'autres annonces très excitantes. Par exemple, Snow Leopard, la nouvel version de l'OS maison, OS X, va permettre de mieux exploiter les processeurs modernes, qui disposent très souvent de plusieurs coeurs. De plus, l'architecture répandue sur les Mac-Intel, de processeurs à 64 bits va également aboutir à des applications plus rapides. Et pour ne rien gâcher à la fête, le nouvel OS sera proposé à seulement 29 dollars / euros pour les possesseurs de Leopard. Tout le monde pourra donc bénéficier d'une expérience d'utilisation plus rapide, car les processeurs multi-core existent déjà depuis des années.

Enfin, un gros coup de coeur pour terminer. L'ordinateur que j'attendais depuis longtemps. Imaginez tous les avantages du Macbook Pro (processeur et carte graphiques plus puissants, batterie longue autonomie, slot pour cartes SD, clavier rétro-éclairé), sans les inconvénients (le prix prohibitif, la taille bien trop grande pour être pratique), et vous obtenez le nouveau Macbook Pro 13''. Il a la taille parfaite, des spécifications qui font rêver (à part cet écran brillant), et est disponible à partir de 1199 dollars (soit 860 euros si vous l'achetez aux US). Pour un ordinateur de ce calibre, ca devient extrêmement abordable, c'est LA bonne nouvelle du keynote à mon goût.

Je vous conseille d'ailleurs de prendre la version 2GB de RAM, et de compléter avec ce site: http://www.crucial.com/, l'upgrade vous coutera 50 euros pour passer à 4GB, au lieu de 300 euros à l'achat.

L'architecture décentralisée 21 commentaires

Posté par Cedric, le 27/04/2009 - Technologie

T_156c0713c4417db6e883f57a975e59acLorsqu'on réalise un projet web d'envergure, il convient de prendre en compte les éléments annexes au développement: le référencement naturel (c'est le cas pour de plus en plus de développeur), et, chose moins commune, le déploiement et l'évolutivité de l'hébergement.

Si vous êtes sur financement, cette question pourra être rapidement éludée en passant par des prestataires à obligation de résultats, qui se chargeront pour vous de monter la meilleure architecture possible, quel qu'en soit le prix.

En revanche si vous êtes en auto-financement, les solutions techniques vous permettant de construire une architecture évolutive à moindre coût vous intéresseront. A notre sens, il convient ainsi de canaliser les goulets d'étranglement du serveur (généralement, la RAM, le processeur, et les écritures simultanées sur le disque dur, hors swap) en séparant les tâches sur des serveurs différents, ce qui permet de monter des système extensibles et légers.

Ainsi, un site avec du PHP extensif, comme une application sous symfony sera réparti ainsi:

- Un serveur avec pas mal de RAM pour servir le frontend. Sur ce serveur, une partie de la RAM doit être allouée à un accélérateur d'opcode type APC (512 Mo dédié parait pas mal). Cela permet de garder en cache une version précompilée de vos fichiers PHP, très utile quand on utilise un framework, puisqu'un framework procède à des inclusions en série de milliers de fichiers PHP, ce qui créé une brèche de rapidité automatiquement.

- Un serveur avec pas mal de RAM/proc pour la base de données. Idéalement, cette base de données ne remplit qu'un seul des deux rôles clés: soit elle lit, soit elle écrit. Si elle écrit, elle doit être couplée à une base "esclave", elle même sur un serveur à part, avec encore moins de RAM. Si vous optez pour un tel système, sachez que cela implique pas mal de changement côté applicatif, puisque vous devez signaler à chaque action persistante la base de données à utiliser. Dans la théorie, des ORM avancés comme Doctrine et son fameux système de listeners permettent de faire cela. Dans la pratique, on a beaucoup de surprises.

- Un + qui fera toute la différence: si vous avez assez de RAM, et si vos serveurs de DB sont connectés à votre serveur de front en VLAN, profitez-en pour installer Memcache sur ce serveur, ouvrir le port adéquat, et stockez-y vos sessions utilisateurs. Memcache est infiniment plus rapide qu'un stockage sur disque dur, car les couples clés/valeurs sont stockés directement dans la mémoire vive.  Autre avantage, le fait d'avoir vos sessions stockées directement sur un serveur dédié à cette tâche rend votre serveur d'application encore plus indépendant, ce qui facilite, si besoin est, son extension par quelque méthode que ce soit (load balancing, failover heartbeat, round robin, etc...).

- Ensuite, nous vous recommandons de vous débarasser de la gestion des "assets" (éléments persistants uploadés par les administrateurs ou les utilisateurs, typiquement des images). En plus d'encombrer votre bande passante et de démultiplier vos lectures/écritures sur disque dur (ce qui augmente considérablement les risques de casse et pose le souci de la sauvegarde), vous rendez votre cluster de front plus difficile à mettre en place. En effet, pour que celui-ci soit efficace, il faut que chaque serveur contienne exactement la même chose. S'il existe des solutions de synchronisation comme rsync, ou mieux, unison, l'idéal est à notre sens de passer par un système de stockage tiers, comme Amazon S3 ou Mosso. Certes, l'implémentation côté applicatif sera plus complexe à gérer, mais vous vous débarrasserez des problèmes de sauvegarde, de sécurité, et surtout, vous allégerez considérablement votre/vos serveur(s)  applicatif(s).

- Pour finir, quelque chose de plus classique, débarrassez vous de la gestion des emails. Cela monopolise beaucoup de ressources (les AV et autres antispam sont TRES gourmands en RAM), et cela requiert énormément de maintenance pour conserver un système efficace. Optez pour une solution payante (vous transférez les MX et ne vous occupez plus de rien), ou optez au "pire" pour Google Apps qui vous permet également de faire ce genre de délocalisation, souvent pour le bonheur de vos utilisateurs.

Voilà, en ayant ce réflexe délocalisation, vous pouvez bâtir un serveur applicatif ultra light, extensible à l'infini, sécurisé à tous les niveaux (lancez un petit cron sur les serveurs de DB pour faire un dump et l'envoyer sur S3, ca prend 10 mn et 20mn pour faire le travail inverse), et très rapide à mettre en place. Côté installation, nous vous recommandons de travailler sur des box identiques, montées par exemple avec un Ubuntu LTS vide, et bloqués sur tous les ports qu'on utilisera pas avec iptable, ce qui rendra le tout encore plus sécurisé.

En conclusion, faire un système scalable, c'est également penser serveurs, et penser serveurs impose bien souvent de développer des spécificités au sein même de la couche applicative. Dans un prochain article, nous étudierons d'autres moyens d'accélérer l'exécution de son application.

iPhone x Music trick 26 commentaires

Posté par Cedric, le 13/04/2009 - Technologie

T_387892f215abaa15a56f79ee1cb9823eL'iphone est ce genre d'objet qui regorge de petites astuces qu'on découvre à travers le temps et qui embellissent notre expérience utilisateur sur le long cours.

En voici une, découverte par hasard (et certainement connue de longue date des véritables nerds de la marque à la pomme), mais qui s'avère combler un handicap d'utilisation colossal sur la partie musique / iPod.

En effet, il est possible de retrouver ses controles de lecture d'un simple double-click sur le bouton principal, à partir de l'écran vérouillé. Cela évite de le dévérouiller, et de devoir rentrer dans la partie iPod pour enfin pouvoir interrompre la lecture, par exemple.

 

iphone trick

 

Voilà! Vous pouvez savourer ce magnifique morceau de Nina Simone, et bien d'autres encore, dans des conditions encore plus optimales.

<< Page précédente  |  Page suivante >>