IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Actualités Discussion :

Flash vs. l'HTML5 : lequel est le plus performant ? Aucun, selon un expert américain

  1. #81
    En attente de confirmation mail

    Homme Profil pro
    Inscrit en
    Juillet 2006
    Messages
    766
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Juillet 2006
    Messages : 766
    Points : 1 267
    Points
    1 267
    Par défaut
    J'ai souvent utilisé Flash devant mes élèves pour faire un schéma animé d'une électrolyse ou le mouvement d'une orbite.
    Tu dessines 3 cercles, deux carrés et si tu veux faire le kéké tu rajoutes un bouton stop/play. En 10 minutes, tu as un outil qui économise une heure d'explication sur papier, mais pour le programmer en javascript, il me faudrait un bon moment - bien qu'on doit commencer à trouver des bibliothèques sympas.

  2. #82
    Expert éminent sénior
    Avatar de Paul TOTH
    Homme Profil pro
    Freelance
    Inscrit en
    Novembre 2002
    Messages
    8 964
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Freelance
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2002
    Messages : 8 964
    Points : 28 430
    Points
    28 430
    Par défaut
    bah, vu que IE6 à la vie dure, je me demande comment imposer le HTML5 face à un plugin aussi léger que celui de Flash
    Developpez.com: Mes articles, forum FlashPascal
    Entreprise: Execute SARL
    Le Store Excute Store

  3. #83
    En attente de confirmation mail

    Homme Profil pro
    Inscrit en
    Juillet 2006
    Messages
    766
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Juillet 2006
    Messages : 766
    Points : 1 267
    Points
    1 267
    Par défaut
    En fait si le logiciel Flash avait la bonne idée de généré du Javascript plutôt que de l'Action Script, tout le monde serait content

  4. #84
    Membre éprouvé

    Profil pro
    Inscrit en
    Novembre 2009
    Messages
    612
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2009
    Messages : 612
    Points : 1 226
    Points
    1 226
    Par défaut
    Citation Envoyé par nicorama Voir le message
    En fait si le logiciel Flash avait la bonne idée de généré du Javascript plutôt que de l'Action Script, tout le monde serait content
    D'une certaine manière ça aurait du être le cas, car JavaScript 2 devait avoir la même syntaxe qu'Action Script3. Car action script 3 à été fait en suivant l' ECMAScript Edition 4 (aujourd'hui obsolète et remplacée par ES3.5), (conforme à 100% avec la norme ECMA-262, révision 3, depuis ActionScript 3.0).
    Flash player ActionScript Virtual Machine 2 http://www.mozilla.org/projects/tamarin/
    fonctionnement de la machine virtuel : (ActionScript Virtual Machine 2 (AVM2)) :
    http://www.adobe.com/content/dam/Ado...m2overview.pdf

  5. #85
    Membre éprouvé

    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    733
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 733
    Points : 1 119
    Points
    1 119
    Par défaut
    Je suis tombé sur cette page : http://flashcrash.dempsky.org/

    Je vous laisse lire et tester. La page en question vous propose de tester une animation flash qui fera planter le plug-in (et éventuellement votre navigateur) sur les OS et navigateur les plus répandus.

    C'est dans ce genre de cas que l'on est content d'être sous chrome, ou safari 4 (version Snow leopard) et de ne pas voir tous le navigateur partir à cause d'un crash d'un plugin tiers.

  6. #86
    Expert éminent
    Avatar de smyley
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    6 270
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 6 270
    Points : 8 344
    Points
    8 344
    Par défaut
    Ah oui marrant, flash plante
    En plus, même si j'y connais rien en ActionScript, à priori le code serait "juste" ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    package {
        import flash.display.*;
        import flash.net.*;
    
        public class A extends MovieClip {
            public function A() {
                load();
                load();
            }
    
            private function load():void {
                var loader:Loader = new Loader();
                loader.load(new URLRequest('/b'));
                addChild(loader);
            }
        }
    }

  7. #87
    Expert éminent
    Avatar de Michaël
    Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Juillet 2003
    Messages
    3 497
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux

    Informations forums :
    Inscription : Juillet 2003
    Messages : 3 497
    Points : 8 237
    Points
    8 237
    Par défaut
    oui enfin on fait la même chose sous linux (un fork infini), ça plante aussi la machine... c'est pas spécifique à flash de crasher en lançant des processus de manière récursive

  8. #88
    Membre émérite
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    1 537
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Juillet 2006
    Messages : 1 537
    Points : 2 548
    Points
    2 548
    Par défaut
    Citation Envoyé par Michaël Voir le message
    oui enfin on fait la même chose sous linux (un fork infini), ça plante aussi la machine... c'est pas spécifique à flash de crasher en lançant des processus de manière récursive
    Et dieux inventa /etc/security/limits.conf pour linux. Ce dernier ne sais par contre toujours pas quoi faire de flash.

  9. #89
    Membre éprouvé
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Septembre 2006
    Messages
    519
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : Suisse

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Septembre 2006
    Messages : 519
    Points : 1 104
    Points
    1 104
    Par défaut
    Sauf qu'il ne s'agit pas d'un fork récursif.
    C'est juste que si on utilise un SWFLoader pour charger un SWF, puis qu'on le refait avec la même URL mais que le SWF renvoyé par le serveur n'est pas de la même version, ça plante.
    If a Flash 9 SWF loads the same URL twice with the first returning a Flash 7 SWF and the second time returning a Flash 8 SWF (or vice-versa), the Adobe Flash Player plug-in will attempt to dereference a null pointer, crashing the browser.
    Exemple :
    (animation) → requête → http://www.youpi.com/mon_fichier.swf
    (animation) ← fichier SWF 7 ← http://www.youpi.com/mon_fichier.swf
    ...
    (animation) → requête → http://www.youpi.com/mon_fichier.swf
    (animation) ← fichier SWF 8 ← http://www.youpi.com/mon_fichier.swf

    Crash !


    Même s'il est rare qu'une même URL renvoie tantôt un SWF d'une certaine version, tantôt d'une autre version ; ça reste une faille du Player qui ne devrait pas exister.

  10. #90
    Membre éprouvé

    Profil pro
    Inscrit en
    Novembre 2009
    Messages
    612
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2009
    Messages : 612
    Points : 1 226
    Points
    1 226
    Par défaut
    Citation Envoyé par smyley Voir le message
    Ah oui marrant, flash plante
    En plus, même si j'y connais rien en ActionScript, à priori le code serait "juste" ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    package {
        import flash.display.*;
        import flash.net.*;
    
        public class A extends MovieClip {
            public function A() {
                load();
                load();
            }
    
            private function load():void {
                var loader:Loader = new Loader();
                loader.load(new URLRequest('/b'));
                addChild(loader);
            }
        }
    }
    Ça serrait plutôt ça je dirais :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    package 
    {
        import flash.display.*;
        import flash.events.*;
        import flash.net.*;
        import flash.utils.*;
    
        public class A extends MovieClip
        {
    
            public function A()
            {
               var b:* = new Timer(250, 10);
               b.addEventListener(TimerEvent.TIMER, onTimer);
               b.start();
               return;
            }
            private function onTimer(event:TimerEvent) : void
            {
                var b:* = new Loader();
                b.load(new URLRequest("http://flashcrash.dempsky.org:30321/"));
                addChild(b);
                return;
            } 
    
        }
    }
    un timer qui charge une animation, toutes les 250 millisecondes c'est quand même rare.

    Je rajouterais que si on prend le temps d'améliorer le code, comme ci-dessous il ne plante plus le flash player

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    package 
    {
    	import flash.display.Loader;
    	import flash.display.Sprite;
    	import flash.events.Event;
    	import flash.events.TimerEvent;
    	import flash.net.URLRequest;
    	import flash.utils.Timer;
    	
    	/**
    	 * ...
    	 * @author ferber
    	 */
    	public class A extends Sprite 
    	{
    		
    		 
    		public function A()
         	 	 {
    			var b:* = new Timer(250, 10);
    			b.addEventListener(TimerEvent.TIMER, onTimer);
    			b.start();
    			return;
    		}
    
    		private function onTimer(event:TimerEvent) : void
    		{
    			var b:* = new Loader();
    			 b.load(new URLRequest("http://flashcrash.dempsky.org:30321/"+getDT()));
    			addChild(_loc_2);
    			return;
    		} 
    		public static function getDT ():String  {
    			var ss:String = "?dt=";
    			var d_date:Date = new Date();
    			ss += d_date.getFullYear()+""+d_date.getMonth()+""+d_date.getDay()+""+d_date.getHours()+""+d_date.getMinutes()+""+d_date.getMilliseconds();
    			return ss;
    		};		
    	}
    }
    Après, s'ils avaient cherché à faire marcher leur code, il aurait marché.

    A moins qu'ils n'aient pas le niveau pour comprendre leur code ce qui est possible, mais peu probable.

    A mon avis ce n'est pas un bug important. Les vraies bugs de l'histoire sont les développeurs qui ont pondu ce code.
    Flash player ActionScript Virtual Machine 2 http://www.mozilla.org/projects/tamarin/
    fonctionnement de la machine virtuel : (ActionScript Virtual Machine 2 (AVM2)) :
    http://www.adobe.com/content/dam/Ado...m2overview.pdf

  11. #91
    Expert éminent
    Avatar de smyley
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    6 270
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 6 270
    Points : 8 344
    Points
    8 344
    Par défaut
    Citation Envoyé par ferber Voir le message
    Ça serrait plutôt ça je dirais :
    heuu juste comme ça, j'ai fait un copy pasta à partir de la source ...

  12. #92
    Membre éprouvé

    Profil pro
    Inscrit en
    Novembre 2009
    Messages
    612
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2009
    Messages : 612
    Points : 1 226
    Points
    1 226
    Par défaut
    Citation Envoyé par smyley Voir le message
    heuu juste comme ça, j'ai fait un copy pasta à partir de la source ...
    hum en effet, j'ai directement dé-compilé l'animation présente en ligne sans lire la source.

    Cependant ça ne change pas le fait qu'avec quelques lignes de code de plus ça passe. En ajoutant getDt() a l'url "http://flashcrash.dempsky.org:30321/"+getDT()
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    public static function getDT ():String  {
    			var ss:String = "?dt=";
    			var d_date:Date = new Date();
    			ss += d_date.getFullYear()+""+d_date.getMonth()+""+d_date.getDay()+""+d_date.getHours()+""+d_date.getMinutes()+""+d_date.getMilliseconds();
    			return ss;
    		};
    Flash player ActionScript Virtual Machine 2 http://www.mozilla.org/projects/tamarin/
    fonctionnement de la machine virtuel : (ActionScript Virtual Machine 2 (AVM2)) :
    http://www.adobe.com/content/dam/Ado...m2overview.pdf

  13. #93
    Membre émérite
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    1 537
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Juillet 2006
    Messages : 1 537
    Points : 2 548
    Points
    2 548
    Par défaut
    Citation Envoyé par ferber Voir le message
    A mon avis ce n'est pas un bug important.
    Ce n'est pas un bug, c'est un crash de l'application. Et ça a de bonne chance d'embarquer le navigateur avec.

    Et ça, ce n'est pas admissible, ne serait que pour des raisons de sécurité (la disponibilité est partie intégrante de la sécurité, imaginez le DoS qu'on peut faire avec un truc pareil).

    De toute faço, les stats sont claires : une plantage de navigateur sur deux est du à flash. C'est sans appel : ce plugin est une poubelle.

  14. #94
    Membre éprouvé

    Profil pro
    Inscrit en
    Novembre 2009
    Messages
    612
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2009
    Messages : 612
    Points : 1 226
    Points
    1 226
    Par défaut
    Citation Envoyé par deadalnix Voir le message
    Ce n'est pas un bug, c'est un crash de l'application. Et ça a de bonne chance d'embarquer le navigateur avec.

    Et ça, ce n'est pas admissible, ne serait que pour des raisons de sécurité (la disponibilité est partie intégrante de la sécurité, imaginez le DoS qu'on peut faire avec un truc pareil).

    De toute faço, les stats sont claires : une plantage de navigateur sur deux est du à flash. C'est sans appel : ce plugin est une poubelle.
    Je regrette, une animation on la test avant de la mettre en ligne, comme un app. Il y'as des bugs dans toutes les technologies. Quand on en trouve un on s'en occupe ou pas.
    Une animation bien codée/préparée ne ferra pas planter un navigateur.
    une mauvaise utilisation d'un pointeur en c++ peut faire planter une appli, c'est pas pour ça qu'il faut arrêter de faire du c++.


    Après vue les capacités du duo html+javascript faut pas s'étonner de la rareté des plantages... pour cause : quasiment personne ne s'en sert pour faire des trucks aussi poussé qu'en flash.
    Le html5 est une bonne blague, alors en attendant : longue vie à flash.
    Flash player ActionScript Virtual Machine 2 http://www.mozilla.org/projects/tamarin/
    fonctionnement de la machine virtuel : (ActionScript Virtual Machine 2 (AVM2)) :
    http://www.adobe.com/content/dam/Ado...m2overview.pdf

  15. #95
    Membre éprouvé

    Profil pro
    Inscrit en
    Novembre 2009
    Messages
    612
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2009
    Messages : 612
    Points : 1 226
    Points
    1 226
    Par défaut
    Je rajouterais concernant le bug précité qu'il a été corrigé le 02/06/10 sur le Flash Player 10 - 10_1_51_66 .
    cf :https://bugs.adobe.com/jira/browse/FP-677
    Flash player ActionScript Virtual Machine 2 http://www.mozilla.org/projects/tamarin/
    fonctionnement de la machine virtuel : (ActionScript Virtual Machine 2 (AVM2)) :
    http://www.adobe.com/content/dam/Ado...m2overview.pdf

  16. #96
    Membre émérite
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    1 537
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Juillet 2006
    Messages : 1 537
    Points : 2 548
    Points
    2 548
    Par défaut
    Citation Envoyé par ferber Voir le message
    Je regrette, une animation on la test avant de la mettre en ligne, comme un app. Il y'as des bugs dans toutes les technologies. Quand on en trouve un on s'en occupe ou pas.
    Et si justement je souhaite faire planter le client parce que je suis malintentionné ? Ou bien si je suis fournisseur d'un appli en flash, pourquoi devrais-je subir (ou plutôt mes utilisateurs/clients) le plantage du plantage du plugin du à un autre site ? Faut se réveiller, on parle bien l'a d'un plantage sur deux de navigateur, pas d'un truc qui plante une fois tous les 36 du mois.

    En C++, quand tu fais de la merde avec tes pointeur, tu craches ton application, pas tout le système.

  17. #97
    Membre éprouvé

    Profil pro
    Inscrit en
    Novembre 2009
    Messages
    612
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2009
    Messages : 612
    Points : 1 226
    Points
    1 226
    Par défaut
    Citation Envoyé par deadalnix Voir le message
    Et si justement je souhaite faire planter le client parce que je suis malintentionné ?
    En effet, il n'y a pas que des personnes bien intentionnée sur le web. Il faut dans la mesure du possible éviter de visiter n'importe qu'elle site.
    un crash est toujours possible.
    Citation Envoyé par deadalnix Voir le message
    Ou bien si je suis fournisseur d'un appli en flash, pourquoi devrais-je subir (ou plutôt mes utilisateurs/clients) le plantage du plantage du plugin du à un autre site ?
    En effet, on ne peut pas forcer les autres développeurs à programmer correctement.
    Citation Envoyé par deadalnix Voir le message
    Faut se réveiller, on parle bien l'a d'un plantage sur deux de navigateur, pas d'un truc qui plante une fois tous les 36 du mois.
    hum, j'aimerais bien connaitre vos sources, pour ma culture général.
    Citation Envoyé par deadalnix Voir le message
    En C++, quand tu fais de la merde avec tes pointeur, tu craches ton application, pas tout le système.
    Ça dépend, un bug dans un driver de mirroring par exemple peut produire quelques beaux effets.
    Et si je me rappel bien, normalement un plug-in ou autre active X peut être codé en c++;
    Flash player ActionScript Virtual Machine 2 http://www.mozilla.org/projects/tamarin/
    fonctionnement de la machine virtuel : (ActionScript Virtual Machine 2 (AVM2)) :
    http://www.adobe.com/content/dam/Ado...m2overview.pdf

  18. #98
    Membre éprouvé

    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    733
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 733
    Points : 1 119
    Points
    1 119
    Par défaut
    Citation Envoyé par ferber Voir le message
    Je regrette, une animation on la test avant de la mettre en ligne, comme un app. Il y'as des bugs dans toutes les technologies. Quand on en trouve un on s'en occupe ou pas.
    Une animation bien codée/préparée ne ferra pas planter un navigateur.
    une mauvaise utilisation d'un pointeur en c++ peut faire planter une appli, c'est pas pour ça qu'il faut arrêter de faire du c++.
    Sauf que le bug introduit un potentiel problème de sécurité. Adobe reconnaît lui même d'avoir fait l'erreur de ne pas avoir considéré ce bug comme étant une faille.

    http://blogs.adobe.com/emmy/archives...bug_repor.html


    Ce qui est dommage, c'est que le seul correctif soit un lecteur flash qui est en béta. Et donc par essence instable pour les utilisateurs finaux. Point positif : adobe semble vouloir apprendre de ces erreurs à propos de cette affaire


    Petite application faite en javascript/html/css : http://mugtug.com/sketchpad/

  19. #99
    Membre éclairé
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    793
    Détails du profil
    Informations personnelles :
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Avril 2009
    Messages : 793
    Points : 894
    Points
    894
    Par défaut
    Petite application faite en javascript/html/css : http://mugtug.com/sketchpad/
    hummm... C'est pour démontrer que ça marche ou que ça marche pas ???

    (obligé de faire un resize du navigateur pour que les fenêtres s'affichent... etc..)
    jyl@xx
    "Simplicity does not precede complexity, but follows it." Alan Perlis

  20. #100
    Membre éclairé
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    793
    Détails du profil
    Informations personnelles :
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Avril 2009
    Messages : 793
    Points : 894
    Points
    894
    Par défaut
    Citation Envoyé par deadalnix Voir le message
    En C++, quand tu fais de la merde avec tes pointeur, tu craches ton application, pas tout le système.
    Si le plug-in Flash crash ton système c'est que le navigateur qui l'accueille est mal programmé !

    Visiblement le problème est assez spécifique à MacOS car en tant que développeur Flex sous Windows je n'ai jamais fait planté le Flash Player avec mes applications.

    Pourquoi tant de haine ? Pourquoi empécher l'utilisation d'applications parfaitement stables sous Flash à ceux qui le souhaitent. Personne ne demande à Jobs de faire ce genre de choix. Il n'a qu'à afficher un message d'avertissement avant le chargement du plug-in Flash : "Attention, à partir de maintenant si votre iPad/iPhone plante ce sera pas ma faute..."
    jyl@xx
    "Simplicity does not precede complexity, but follows it." Alan Perlis

Discussions similaires

  1. Antivirus gratuit, lequel est le plus performant?
    Par JeanMi_Hav dans le forum Sécurité
    Réponses: 4
    Dernier message: 26/09/2013, 11h35
  2. [XML] Lequel est le plus correct ?
    Par Sensei.f dans le forum XML/XSL et SOAP
    Réponses: 17
    Dernier message: 24/10/2006, 15h27
  3. Apache 1.3 et 2 , lequel est le plus rapide ?
    Par a028762 dans le forum Apache
    Réponses: 3
    Dernier message: 15/05/2006, 11h33
  4. [StringGrid - DrawGrid] Lequel est le plus performant ?
    Par xenos dans le forum Composants VCL
    Réponses: 3
    Dernier message: 01/01/2006, 18h09
  5. [Optimisation] Lequel est le plus rapide ?
    Par TOTO32 dans le forum Langage
    Réponses: 10
    Dernier message: 14/08/2005, 23h19

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo