12æ¥éææ¥ãã¢ã¹ã¯ã¯ã§2010幎ã®Google Developers Dayã®ãããªéèŠãªã€ãã³ãããããŸããã ããã¯GDDã·ãªãŒãºã®æåŸãã2çªç®ã®ã€ãã³ãã§ã次ã¯11æ16æ¥ã«ãã©ãã§ãåã®ã€ãã³ãã¯æ±äº¬ããµã³ããŠãããã¥ã³ãã³ã§éå¬ãããŸããã GDDã¯ãã¹ãŠã®éçºè
ã«ãšã£ãŠéèŠãªã€ãã³ãã§ããã4,000人ãããã«è¡ããããšæã£ãŠããŸããã ããã1,500人ãåæ Œããç§ã¯å¹žéãªäººã®1人ã§ããã GDD 2010ãç§ã«ãšã£ãŠäœã§ãã£ããã«ã€ããŠãã話ãããããšæããŸãã
ã«ã³ãã¡ã¬ã³ã¹ã¯ã1ããã¢ã«1,500人ãç°¡åã«å容ã§ãã巚倧ãªå±ç€ºæœèšã§ããCrocus Expoã§éå¬ãããŸããã 誰ããã¯ã£ãããšãããæšèãå°äžéããåºãŠãæçµçã«3éã®åä»ã«è¡ããŸããã äºåã«éä¿¡ãããç»é²ã³ãŒãã®ãããã§ããã«åæ Œãããããªãªã³ã«è¡ããŸãããæ§ãããªé³æ¥œãå€ãã®æãããå Žæããœããããªã³ã¯ä»ãã®å·èµåº«ãèµ·ããã°ããã®äººã®ããã®ç±ããè¶ãšã³ãŒããŒãã²ãŒã ããšã³ã¿ãŒãã€ã¡ã³ã-ãã¡ã³ãwifiãç²åŸããããã«æ¥ã人ã®ããã«-ãããã§ãµãŒãã£ã³ããã人ã®ããã«ã ãããã誰ããäž»ãªãã®ãåŸ
ã£ãŠããŸãã-ã¬ããŒãã
äŒè°ã¯ã¢ã¹ã¯ã¯ã®éçºã»ã³ã¿ãŒé·ã§ãããšãã²ããŒã»ãœã³ãããšã補åéçºéšé·ã®ãšãªãã¯ã»ããã¡ã«ãã£ãŠéãããŸããã ãšãªãã¯ã¯ãã€ãã®ç±æã§ããã¹ãŠã®æ°ããGoogle補åã«ã€ããŠè©±ããããæ®å¿µãªããããã€ãã®ã¬ããŒãã®ãã¿ãã¬ã§ããããããã®å°è±¡ãå°ç¡ãã«ããã ãã®ãããªçµéšãç¹°ãè¿ããªãããã«ã圌ã®ã¹ããŒãã®èŠç¹ãç°¡åã«èª¬æããŸãã
ç§ãã¡ã«ãšã£ãŠæ°ããã®ã¯HTML5ã§ãïŒ
- 空éå
ã®ãžãªãã±ãŒã·ã§ã³ãšããžã·ã§ãã³ã°ã
- é³å£°èªè;
- WebGLã䜿çšãã2Dããã³3Dã°ã©ãã£ãã¯ã
- WebSockets
- çç£æ§ã®åäžã
ç§ãã¡ã«ãšã£ãŠæ°ããã®ã¯
App Engineã§ãïŒ
- ãã«ãããåæž
- ããŒã¿ã®ãšã¯ã¹ããŒã/ã€ã³ããŒã;
- ã»ãã¥ãªãã£ã®åŒ·åã
- ã¹ãã¬ãŒãžSQL
- OpenID + OAuth;
- ããžãã¹ã®ããã®ç¹å¥ãªãã¡ãŒã
ãã®åŸãGWTãš
Spring Rooãªã©ã®éçºã«è³ããŸããã Spring RooïŒSRïŒã¯Djangoã®é¡äŒŒç©ã§ãããJavaã§ã®ã¿äœ¿çšã§ããŸãã SRãããã¯ãšã³ããåŠçããGWTãããã³ããšã³ããåŠçããŸãã ç®ã®åã§ããšãªãã¯ãèªã£ããã¬ããã»ãœã¯ãŒã¯ãã³ãã³ãã©ã€ã³ããããšã³ãã£ãã£ã®ã»ããã䜿çšããŠåçŽãªã¢ããªã±ãŒã·ã§ã³ãäœæããããããHibernateã§æ§æããGWTã§UIãçæããæ¹æ³ã瀺ããŸããã ãã®åŸãFredã¯Eclipseãèµ·åããŸãããããã«ã¯ã
Eclipseçšã®ç¹å¥ãª
Googleãã©ã°ã€ã³ãã©ã°ã€ã³ããããå
¬éåã«ã¢ããªã±ãŒã·ã§ã³ãèµ·åããŸããã ïŒã¡ãªã¿ã«ããã¢ã«ã€ããŠã®å¥ã®èšè-ã»ãšãã©ãã¹ãŠããããŒã®FireFoxã§ãã¢ãããŸãããïŒãã¢ã¯å€§æåã§ããã ãã¬ããã¯ãŸããå¥ã®SRãããã瀺ããŸãã-æ¬è³ªãå€ããåŸãåã³ã åå¥ã®ã«ã¹ã¿ãã€ãºãªãã·ã§ã³-Google App Engineã«ãããã€ããããã®æ§æã
ãã¬ããã®ãããã§ããšãªãã¯ã¯ããã«ãã€ã¯ãã¬ãã»ã¡ã€ã€ãŒã«å€±ããŸãããã¬ãã»ã¡ã€ã€ãŒã¯Androidéçºã®èŠéãã«ã€ããŠååã«è©³ãã話ããŸããã 圌ã«ãããšãçŸåšãŸã§ã«ãAndroidãã©ãããã©ãŒã ã§å®è¡ãããŠãã90çš®é¡ã®ããã€ã¹ããªãªãŒã¹ãããŠããŸãã æè¡çãªè©³çŽ°ãæãäžããããšãªããRetoã¯Androidã¹ãã¢ãæäŸããæ©äŒã«ã€ããŠè©±ããŸããã
- éçºè
ã®ãµã€ããšã®çµ±å;
- ã¬ããŒããšã³ã¡ã³ãã®äŸ¿å©ãªã·ã¹ãã ã
- é²
- ç¹å¥ãªããžãã¹æ¡ä»¶ã
ãã®äŒè°ã§ã¯ããªãŒãã³ã宣èšããã5ã€ã®ã»ã¯ã·ã§ã³ãç²åŸãããŸããã
- Android
- ChromeïŒHTML5;
- åçå;
- ã¯ã©ãŠãã³ã³ãã¥ãŒãã£ã³ã°
- ãœãŒã·ã£ã«ãŠã§ãã
åã»ã¯ã·ã§ã³ã«ã¯6ã€ã®ã¬ããŒããããïŒåçåãšãœãŒã·ã£ã«Webã1ã€ã«çµåãããŠããå ŽåïŒãåèš24ã®ã¬ããŒããèªã¿èŸŒãŸããŸããã ããããæçµçã«ã¯äœãèµ·ãã£ãããå€æããŸããã é çªã«è¡ããŸãããã
Androidçšã®å£®å€§ãªã¢ããªã±ãŒã·ã§ã³ã®æžãæ¹
ã¬ãã»ãã€ã€ãŒ
Retoã¯4ã€ã®ããžã·ã§ã³ã«é¢ããã¬ããŒããäœæããŸããã
- æ¹æ³ã¯å¿
èŠãããŸããã
- ãããè¡ãæ¹æ³;
- çµæã®æž¬å®æ¹æ³ã
- ã¬ãã¹ã³ãåŠã¶æ¹æ³ã
ãããç§ãäœãšãèªåã§æœåºãããã®ã§ãã ãŸããããã©ãŒãã³ã¹ãšäœ¿çšã«å€ãã®äœæ¥ãè¡ãå¿
èŠããããŸããããšãã°ãThreads / AsyncThreadsã§ãã ãã®å Žåãã¢ããªã±ãŒã·ã§ã³ã§äœãèµ·ããŠããã®ãããŠãŒã¶ãŒã«å®å
šã«èªèãããå¿
èŠããããŸãã
ãã¡ãããã¢ããªã±ãŒã·ã§ã³ã¯äŸ¿å©ãªã¯ããªã®ã§ããŠãŒã¶ãŒãšã¯ã¹ããªãšã³ã¹ãå¿ããªãã§ãã ããã
- ãã©ãã¯ããŒã«ã«åãããªã©ã䟿å©ãªããã²ãŒã·ã§ã³ãäœæããŸãã
- ã¹ããŒã¿ã¹ããŒã¯é衚瀺ã«ããªãããšããå§ãããŸãã
- ãã€ãã£ãã¢ã€ã³ã³ã䜿çšããããšããå§ãããŸãã
- ãŠãŒã¶ãŒã®èšå®ãèæ
®ããŠèŠããŠãããŠãã ããã
ããã°ã©ãã³ã°ã¹ã¿ã€ã«ã«ã€ããŠïŒ
- ææžåãããŠããªãAPIã䜿çšããªãã§ãã ããïŒããããçå£ã«ïŒïŒã
- ã¢ããªã±ãŒã·ã§ã³ã®ã©ã€ããµã€ã¯ã«ãå¿ããªãã§ãã ããã
- ã©ã³ãã¹ã±ãŒã/ããŒãã¬ãŒã衚瀺ã¢ãŒãããµããŒãããŠãã ããã
- èããããããŸããŸãªç»é¢ãµã€ãºã«çæããŠãã ããã
æãæçœã«æããããã³ãã®1ã€ã¯ããã¶ã€ããŒãåŒã³åºãããšã§ããã 圌ã®ãã¹ãŠã®èšŒæ ã®ããã«ã圌ã¯ãã°ãã°å¿ããããŠããŸãã
Retoã¯ãã¢ããªã±ãŒã·ã§ã³ãšåæãçµ±åããŠæ¬¡ã®ããŒã¿ãååŸããããšã®éèŠæ§ã«ã€ããŠè©±ããŸããã
- 蚪åçµ±èš;
- ãŠãŒã¶ãŒã¬ãã¥ãŒ;
- ä»ã®ãã®ã
App Engineã®æ°æ©èœ
ãã¬ããã»ã¶ãŠã¢ãŒ
ãã£ãã«API
ãã®APIã¯ããµãŒããŒãšãã©ãŠã¶ãŒã¯ã©ã€ã¢ã³ãéã®çŽæ¥éä¿¡ãç®çãšããŠããŸãã
ä»äœãããïŒ
- éåæãµãŒããŒ-ã¯ã©ã€ã¢ã³ãïŒãã£ãã«ã¡ãã»ãŒãžã³ã°ã·ã¹ãã ãåæ¹åã·ã¹ãã ã«åºã¥ãïŒ
- ãµãŒããŒïŒäœæããããã£ãã«ãä»ããŠã¡ãã»ãŒãžãéåä¿¡ããŸãïŒ;
- ã¯ã©ã€ã¢ã³ãïŒJSã§äœæãããã¡ãã»ãŒãžããµãã¹ã¯ã©ã€ãããã³ãŒã«ããã¯ãä»ããŠã¡ãã»ãŒãžã«å¿çã§ããŸãïŒã
Mapreduce
MapReduceã¯ãã¯ã©ã¹ã¿ãŒãæ§æããå€æ°ã®ã³ã³ãã¥ãŒã¿ãŒã䜿çšããŠãããã€ãã®åæ£ã¿ã¹ã¯ã»ãããèšç®ããããã®ãã¬ãŒã ã¯ãŒã¯ã§ãã MapReduceã«ã€ããŠè©±ãéçšã§ããã¬ããã¯å®æçã«ãéæ³ïŒããšèšããŸããã MapReduceã®äžéšã¯ãMapper APIãå
¬éãããŠããMapã§ãã 圌ã«ã€ããŠã®ããã€ãã®èšèïŒ
- ã¬ããŒãçæãããŒã¿ãšã¯ã¹ããŒããã·ãŒã移è¡ã«äœ¿çšãããšäŸ¿å©ã§ãã
- å
éšã®TaskQueueã
- Apache 2ã©ã€ã»ã³ã¹ã
- python / javaãµããŒã;
- å
éšããã»ã¹ã®èªååã
åå空éAPI
ãã®APIã¯ãããŒã¿ã¹ãã¢ãšmemcachedã¹ãã¬ãŒãžã®éåžžã®äœæ¥ãå€æŽããŸããããŒãšå€ã®éã«åå空éãã£ãŒã«ããè¿œå ããŸãã æãããªçšéã®1ã€ã¯ãç°ãªãããŒãžã§ã³ã®ããã°ã©ã ã䜿çšããããšã§ãã
ãããã£ãŒAPI
ãããŸã§ã®ãšãããèå³æ·±ãã·ã¹ãã ã pythoneã«ã®ã¿å®è£
ãããŸãã ãšã³ãã£ãã£ã¯ãéžæããæ¡ä»¶ã«åŸã£ãŠãã£ãŒã«ããä»»æã®å€ã«äžèŽãããããšãã§ããŸãã 移è¡ãšã¬ããŒãã«é©çšãããŸãã
ãã¹ãããSQL
ãã®æ©èœã䜿çšãããšã1ã€ã®ãã¿ã³ãæŒãã ãã§èµ·åã§ããäžé£ã®SQLã¯ãšãªããµãŒããŒã«ä¿åã§ããŸãã ãã¢ããŒã¿ã®çæãšã¬ããŒãã®åä¿¡ã«äŸ¿å©ãªãã®ã
管çã³ã³ãœãŒã«
äžèšã®ã»ãšãã©ã®æ©èœã䜿çšã§ãã䟿å©ãªç®¡çããã«ã
éçã«æºè¶³ããç§ãã¡ã¯ç©è³ªçã«é£œåãå§ããŸãã-æŒé£ãå§ãŸããŸããã ç¹å¥ãªãžã£ãŒã¯ãšã©ã€ã³ããªãã£ãã®ã§ããã¹ãŠãéåžžã«ããŸãæŽçãããŸããã é£ã¹ç©ã¯ãããããŠååã§ããã å·èµåº«ã®ç¡æããªã³ã¯ã«ããšãŠãæºè¶³ããŠããŸãã
å°ãäŒãã§ãåã³æ¥ãã§æ°ãããã®ãèŠã€ããŠæ¥œãã¿ãŸããã
å®çšçãªHTML5
ãžã§ã¬ããŒã»ãªãŒããŠ
ãžã§ã¬ããŒã¯æåã«ã»ãã³ãã£ã¯ã¹ã®å€æŽã«ã€ããŠè©±ããŸããã
- æ°ããããŒãžã¬ã€ã¢ãŠãã¿ã°
- ãªã³ã¯ã¿ã°ã®relãã©ã¡ãŒã¿ãŒã®æ°ããå€ã
- microdataã®å€èŠ³;
- ARIAå±æ§ã
次ã«ããã£ã³ãã¹ã«è¡ããŸããã
- ç·ãšåœ¢ãæã;
- ç»åããŒã¿;
- Web GL;
- ã€ã³ã©ã€ã³SVGã
ãã®åŸããã¢ãšæ¬¡ã®ã¹ããŒãªãŒããããŸããã
- ãªãŒãã£ãªããã³ãããªã¿ã°ã
- ãã¡ã€ã«ã®ãã©ãã°ã¢ã³ãããããæ©èœã
- éç¥;
- 空éå
ã®ããã€ã¹ã®æ¹åã決å®ããŸãã
æåŸã«ãcss3ã«é²ã¿ãŸããã
- å€æ;
- é·ç§»
- ã¢ãã¡ãŒã·ã§ã³
- æè»ãªããã¯ã¹ã¢ãã«ã
ãžã§ã¬ããŒãšäžç·ã«ãpepelsbeyãšããŠãç¥ããã
Vadim Makeev㯠ã
ãç¹æ®å¹æã®ãããè¶ããšãããã¬ãŒã³ããŒã·ã§ã³ãè¡ããŸããã
App Engineã§ã®ãããŒãã¥ãŒãã£ããŒã¿åŠç
ãã€ã¯ã»ã¢ã€ã¶ãããŒ
ãšããã§ãããã¯ãã¹ãŠã®ã¬ããŒãã®äžã§æã波乱ã«å¯ãã ãã®ã§ããã App EngineãŠãŒã¶ãŒãçŽé¢ããŠããåé¡ã®èª¬æããå§ãŸããŸããã
- ãªã¯ãšã¹ãã®äœæ¥æéãå¶éãã;
- åãã¬ã³ãŒãã®é »ç¹ãªæŽæ°ã«é¢ããåé¡ã
- é
延ã®å¢å€§ã
- AppEngineã¯éãã¢ããªã±ãŒã·ã§ã³ã奜ã¿ãŸããã
ãã®åŸããã€ã¯ã¯ãLAMPã¢ãããŒãã®èŠæ
£ããå±æãå€ããããã€ãã®æŠå¿µã玹ä»ããŸããã
- èªã¿ãããããã«ããŒã¿ãæžã蟌ãå¿
èŠããããŸãã
- å€ãã®å ŽåãåãããŒã¿ã2ã€ã®ç°ãªãå Žæã«ä¿åã§ããŸãã
- ããã°ã©ãã³ã°ã¢ãã«ãå€æŽããå¿
èŠããããŸãã
ãããã®åé¡ã解決ããã«ã¯ãäœã¬ãã«ãšé«ã¬ãã«ã®2ã€ã®ã¢ãããŒããå¯èœã§ãã
äœã¬ãã«ã®ãã¯ããã¯
ååä»ãã¿ã¹ã¯ïŒ
- ãã¥ãŒã¯ã¿ã¹ã¯ã®äžææ§ãä¿èšŒããŸãã
- ååã¯å°ãªããšã7æ¥éä¿åãããŸãã
- ååä»ãã¿ã¹ã¯ã®äœæã¯ãåæ§ã®ããŒã¿ããŒã¹æäœãããé«éã§ãã
ã¿ã¹ã¯ãããïŒ
- ã¿ã¹ã¯ã®å
èš³;
- ä»ã®ã¿ã¹ã¯å
ã«ã¿ã¹ã¯ãäœæããŸãã
- ãã€ãã¹ã®-ã¿ã¹ã¯æ°ã®å¶åŸ¡äžèœãªå¢å ã
ãã©ã³ã¶ã¯ã·ã§ã³ã¿ã¹ã¯ïŒ
- ã¿ã¹ã¯ã¯ããã©ã³ã¶ã¯ã·ã§ã³ã®é©çšäžã«äœæãããŸãã
ã¬ã³ãŒãã°ã«ãŒãïŒ
- ãã©ã³ã¶ã¯ã·ã§ã³ãäœæããåäžã®æ¹æ³ã
- ã°ã«ãŒãã¯ããªãŒåœ¢åŒã§ç·šæãããŠããŸãã
- ããªãŒã®ãµã€ãºãšåœ¢ç¶ã«å¶éã¯ãããŸããã
- ã¬ã³ãŒãã¯ãã©ã³ã¶ã¯ã·ã§ã³ãäœæããŸãã
- ãããã¿ã¹ã¯ã¯ã¬ã³ãŒãã®ã°ã«ãŒããèªåçã«äœæããŸãã
ååä»ããšã³ããªãŒïŒ
- ããŒã§ãã°ããæ€çŽ¢ããæ©èœãæäŸããŸãã
- ãã§ã«ããŒã§ãœãŒããããŠããŸãã
- èªåããŒã®äœ¿çšã¯äœåãªã¹ããŒã¹ã®ç¡é§ã§ããããããšã³ãã£ãã£èªäœã®äžæã®ãã£ãŒã«ãã䜿çšããå¿
èŠããããŸãã
åæç¹æ§ïŒ
- ããããã£ã¯ãä»ã®ããããã£ã«åºã¥ããŠäœæãããŸãã
- ããé«éãªãã¹èŠæ±ã
é«ã¬ãã«ã®æè¡è
ãã®åŸããã€ã¯ã¯æ¬¡ã®ããšãææ¡ããŸããã
- ã€ã³ã¿ãŒãããäžã®åºçç©ãèªã;
- MapReduce
- å°ããªã©ã€ãã©ãªã®äœ¿çšã
- éçºè
éã®çµéšã®äº€æã
èšé²ã§ãããã®ãã¹ãŠã§ã¯ãªãã®ã§ããã®ãã¬ãŒã³ããŒã·ã§ã³ãèŠã€ããããšæã£ãŠããŸãã ãã®åŸãç§ã¯ééããªãäŒãŸãªããã°ãªããªãã£ãã®ã§ãäŒæ©ã¯éåžžã«äŸ¿å©ã«ãªããŸããã
Chrome WebStoreã®Webã¢ããªã±ãŒã·ã§ã³
ããŒã«ã»ãã³ã©ã³
ããŒã«ã¯ãçŸä»£ã®åªããã¢ããªã±ãŒã·ã§ã³ã«å¿
èŠãªãã®ã«ã€ããŠã®è©±ããå§ããŸããã
- ç°¡åãªç»é²ïŒé³¥å°å±ãšãã£ã¿ãŒïŒ;
- ç¶æ¿ã«ããç»é²ãã€ãŸããæ¢åã®ã¢ã«ãŠã³ãïŒdiary.comïŒã䜿çšããŸãã
- èªåé·æä¿åïŒiehtherpad.comïŒ;
- html5ããã³css3æ©èœã䜿çšãããªããã¢ãã¡ãŒã·ã§ã³ã
- AppCacheããã³LocalStorage / DBã«ãããªãã©ã€ã³ã¢ãŒãã®ãµããŒãã
- WebWorkersã§ã»ãšãã©ã®ã¿ã¹ã¯ãåŠçããŸãã
- ããŒããŠã§ã¢ã¢ã¯ã»ã©ã¬ãŒã·ã§ã³ã®ååšã
ãã®åŸãããŒã«ã¯ChromeãŠã§ãã¹ãã¢ãäœæãããçç±ãåæããŸããã
- 1ã€ã®ã·ã¹ãã ã§ç®çã®ã¢ããªã±ãŒã·ã§ã³ãç°¡åã«æ€çŽ¢ã§ããŸãã
- åäžã®çµ±åæ¯æãã·ã¹ãã ã
- å€æ°ã®ãŠãŒã¶ãŒãåŒãä»ããç°¡åãªã¹ããŒã ã
ãããŠã圌ã¯ã¬ããŒãå
šäœãå®æãããŸããã
ã¢ãã€ã«éçºïŒHTML5ãŸãã¯ãã€ãã£ãïŒ
ãã€ã±ã«ã»ããã¢ã ãã¬ãã»ãã€ã€ãŒ
ãŸããã¹ããŒã«ãŒã¯ããã®ã¢ããªã±ãŒã·ã§ã³ãŸãã¯ãã®ã¢ããªã±ãŒã·ã§ã³ããã€æžããã決å®ããŸããã
ãã€ãã£ãã¢ããªã±ãŒã·ã§ã³ã®åŒ·åºŠïŒ
- äœæ¥é床;
- ããŒããŠã§ã¢ã®ãµããŒãã
- ã·ã¹ãã ãšã®é«åºŠãªçµ±åã
html5ã¢ããªã±ãŒã·ã§ã³ã®åïŒ
- ããŸããŸãªãã©ãŒã ãã¡ã¯ã¿ã®ãµããŒãã
- éçºè
ããã®æå°éã®ã³ã¹ãã§ããŸããŸãªããã€ã¹ã§å®è¡ãããŸãã
- Webãã¯ãããžãŒãšãã®äœæ¥æéãè¿
éã«éçºããã
ããã§ããšããã§ããã€ã±ã«ã¯ãã©ãŒã ã®èå³æ·±ãã¹ã©ã€ãããããããŸããïŒ
jsã³ãŒãã®åŠçé床ïŒ
- FirefoxïŒ2004ïŒ-1800ããªç§
- ChromeïŒ2010ïŒ-10ããªç§
DOMåŠçé床ïŒ
- FirefoxïŒ2004ïŒ-118ããªç§
- ChromeïŒ2010ïŒ-2ããªç§
çŽ æŽãããæ¯èŒãç§ã¯æã=ïŒ
ããã«ãWebãã¯ãããžãŒã«ããããžãªãã±ãŒã·ã§ã³ããã®ä»ã®å€ãã®ããšãæäœã§ããããã«ãªãããã®ã¢ã¯ã»ã¹ã«ãããããŒããŠã§ã¢ããåŸãããŸãã
ã¬ããŒãã®çµæãçæ³ã¯ãã€ãã£ãã¢ããªã±ãŒã·ã§ã³ãšHTML5ã¢ããªã±ãŒã·ã§ã³ã®çµã¿åããã§ãããããšãã°
PhoneGapãš
Titaniumãå¯èœã«ãããšãã次ã®ã¢ã€ãã¢ãæå±ãããŸããã
ãã®GDDãã»ãŒçµäºããæåŸã®èšèãšãã¥ããã§ããŒãã«ã®ã¿ãããããã®çŽ æŽãããã波乱ã«æºã¡ãäžæ¥ãèŠçŽããŸããã
è¿œèšãšããŠïŒ
- Yandexã®é衚瀺åºå=ïŒ
- Google-èé¢å³