ããã«ã¡ã¯ãHabrïŒ
圌ããèšãããã«ãäŒçµ±ã«ãããšãç§ãã¡ã¯å¹Žã«äžåºŠYandex.Pogodã§äœãæ°ãããã®ãåºããŸãã æåã¯Meteum-æ©æ¢°åŠç¿ã䜿çšããäŒçµ±çãªå€©æ°äºå ±ã次ã«Scienceasting-æ°è±¡ã¬ãŒããŒãšãã¥ãŒã©ã«ãããã¯ãŒã¯ã«åºã¥ãéæ°Žã®çæäºå ±ã ãã®æçš¿ã§ã¯ãäžçã®å€©æ°äºå ±ãäœæããããã«åºã¥ããŠçŸãã倩æ°å³ãäœæããæ¹æ³ã«ã€ããŠèª¬æããŸãã
æåã«ã補åã«é¢ããããã€ãã®èšèã 倩æ°å³ã¯ã西éšã§ã¯éåžžã«äººæ°ãããããããŸã§ã®ãšãããã·ã¢ã§ã¯ããŸã人æ°ããªã倩æ°ã調ã¹ãæ¹æ³ã§ãã ãã®çç±ã¯ãå®éã«ã¯ã倩æ°ãã®ãã®ã§ãã æ°åã®ããã«ãç§ãã¡ã®åœã®æã人å£ã®å€ãå°åã¯çªç¶ã®æ°è±¡çœå®³ã®åœ±é¿ãåããŸããïŒãããŠããã¯è¯ãããšã§ãïŒã ãããã£ãŠããããã®å°åã®å± äœè ã®éã®å€©æ°ãžã®é¢å¿ã¯ã家åºã§ããå¯èœæ§ãé«ããªããŸãã ãã®ãããäŸãã°ãã·ã¢ã®é±æ«ã«ã¢ã¹ã¯ã¯ã®å€©æ°ãã©ããªãããæšææ¥ã«ãµã³ã¯ãããã«ãã«ã¯ã«éšãéããã©ãããç¥ãããšã¯ããã·ã¢äžå€®éšã®äººã ã«ãšã£ãŠéèŠã§ãã æ¥ä»ãæå»ã倩æ°ãã©ã¡ãŒã¿ã®ã»ãããããè¡šãããã®ãããªæ å ±ãèŠã€ããã®ãæãç°¡åã§ãã
äžæ¹ãç±³åœæ±æµ·å²žã®äœæ°ã«ãšã£ãŠã¯ãçŸãã女æ§ã®ååãæã€æ¬¡ã®ããªã±ãŒã³ã®è»è·¡ãç¥ãããšãããéèŠã§ããããã³ã¿ã®èŸ²å®¶ã«ãšã£ãŠã¯ãããŠã¢ãã³ã·ãçè²ããçã®hã®ååžãç£èŠããããšã§ãã ãã®ãããªæ å ±ã¯ãå€ãã®ããŒãã«ããããããããããåŠã¶æ¹ãã¯ããã«ç°¡åã§ãã ãããŠããã·ã¢ã®å€©æ°äºå ±ãµãŒãã¹ãããå¯èœæ§ã®é«ãããŒãã«ã§ããã西éšã§ã¯ããå¯èœæ§ã®é«ããããã§ããããšãããŸããŸèµ·ãããŸããã ãã ãããã·ã¢ã§ã¯ããŠãŒã¶ãŒãå¿ èŠãªå€©æ°ãã©ãã«ãããããŠãŒã¶ãŒãæ£ç¢ºã«ç¥ãå¿ èŠãããå Žåã倩æ°ã®æ¶è²»ãã¿ãŒã³ããããŸãããããã¯é±æ«ã«ãã¯ããã¯ã®å Žæãéžæãã人ã ãç¹ã«æ¥é èŸã颚ããšãkãããããŠæåŸã«å€ã®å± äœè ãæã€ã¢ã¹ãªãŒãã§ãã ãããã®ã«ããŽãªã®ãŠãŒã¶ãŒã®ããã«ãç§ãã¡ã¯è£œåãäœããŸããã ãããŠä»ãç§ã¯åœŒã®ããŒãã®äžã«ãããã®ã«ã€ããŠè©±ããŸãã
äºæž¬èšç®ïŒå人ããã³ã°ããŒãã«
ç§ãã¡ã¯ããã«ãå°å³ãäœæããããã«ãäºæž¬ãã°ããŒãã«ã«ãªãããšã決å®ããŸããã ãŸããå°çå šäœãã«ããŒããŠããªãã«ãŒããäžäžããé ãããŠãããããšããçç±ã ãã§ã ãããã£ãŠãMeteumãã°ããŒãã«ãªã«ãã¬ããžã«æ¡å€§ããå¿ èŠããããŸããã ãã ãã以åã®ã·ã¹ãã ã¢ãŒããã¯ãã£ã¯ãæ°Žå¹³ã¹ã±ãŒãªã³ã°ã«ã¯é©ããŠããŸããã§ããã
åã®ã·ãªãŒãºã®èŠçŽã ç±å¿ãªèªè ãèŠããŠããããã«ãMeteumã®æåã®å®è£ ã§ã¯ãå¿ èŠã«å¿ããŠå€©æ°äºå ±ãèšç®ããŸããã ãŠãŒã¶ãŒããµã€ãã«ã¢ã¯ã»ã¹ãããšããã«ã座æšã®èŠå ã®ãªã¹ããåéãããããèšç·ŽãããMatrixnetã¢ãã«ã«è»¢éããŸããã vector-apiãšåŒã°ãããã€ã¯ããµãŒãã¹ã¯ãèŠå ã®åéãæ åœããŸããã ãã€ã¯ããµãŒãã¹ã¯ã1ã€ãé€ããã¹ãŠã®äººã«é©ããŠããŸãããæ°ããèŠçŽ ãè¿œå ããããã«ãã¬ããžã®å°åãæ¡å€§ããããããšããã€ã¯ããµãŒãã¹ãæ©èœããç©çãã·ã³ã®ã¡ã¢ãªå¶éã«è¿ã¥ããŸããã ããã«ãæçµçãªå€©æ°APIèªäœã®å¿çã®åœ¢æã«ã¯ãMatrixnetã¢ãã«ã䜿çšããæéãšCPUã®è² è·ãšããç¹ã§é«äŸ¡ãªæäœãå«ãŸããŠããŸããã äž¡æ¹ã®èŠå ãã°ããŒãã«ãªäºæž¬ã®æ§ç¯ã匷ã劚ããŸããã ããã«ãããã¯ãã°ã«ã¯ãå®éšã®äºæž¬ã®ç²ŸåºŠãåäžãããèŠå ã®å®å šãªãã¥ãŒããããŸããããäžèšã®å¶éã®ããã«çç£ã«è¡ãããšãã§ããŸããã§ããã
ãŸããå€ãã®ãŠãŒã¶ãŒã«æãããŠããéæ°Žãããã®éžæãããã¢ãŒããã¯ãã£ã®æ¬ ç¹ã«çŽé¢ããŸããã éæ°Žæ å ±ã®æ§ç¯ã«å¿ èŠãªããŒã¿ãä¿åããã³åŠçããããã«ãPostGISæ¡åŒµæ©èœãåããPostgreSQL DBMSã䜿çšãããŸããã å€ã®é·éšã®éã1ç§ãããã®éããã³ãã«ãããã®ãªã¯ãšã¹ãæ°ã¯æ°çŸããæ°äžã«ç¬æã«å€ãããŸãããããã¯ãããŒã¿ããŒã¹ãµãŒããŒã®ããã»ããµãšãããã¯ãŒã¯ãã£ãã«ã®å€§éæ¶è²»ã䌎ããŸããã ãããã®ç¶æ³ã¯ããµãŒãã¹ã®å°æ¥ã«ã€ããŠèããæ°è±¡ããŒã¿ã®åŠçãšä¿åã«ç°ãªãã¢ãããŒããé©çšããè¿œå ã®ã€ã³ã»ã³ãã£ããšããŠæ©èœããŸããã
å®è¡æã«å€©æ°ãèšç®ãã代ããã«ãèŠå ãæŽæ°ããããšãã®åº§æšã®å€§ããªã»ããã®äºå ±ã®äºåèšç®ããããŸããã 2x2 kmã®è§£å床ã®åå°ãš10x10 kmã®è§£å床ã®æ°Žãã«ããŒããã°ããŒãã«ã°ãªããã«å®äœããŸããã ã°ãªããã¯3 x 3床ã®æ£æ¹åœ¢ã«åå²ãããŸã-ãããã®æ£æ¹åœ¢ã«ãããã¢ãã«ã®å åãåæã«æºåããçµæãåŠçã§ããŸãã ããã¯å°å³äžã§ã©ã®ããã«èŠãããã§ãã
éåžžã®ã°ãªããé åã®åå²
æ°è±¡ã®æºåããã»ã¹ã¯ãMeteoã¯ã©ã¹ã¿ãŒããå§ãŸããŸãã ååã«ããã°ããå€å žæ°è±¡åŠãã¯ãã®ã¯ã©ã¹ã¿ãŒã§è¡ãããŸãã ããã§ã¯ãã¢ãã«GFSïŒç±³åœïŒãECMWFïŒè±åœïŒãJMAïŒæ¥æ¬ïŒãCMCïŒã«ããïŒãEUMETSATïŒãã©ã³ã¹ïŒãEarth NetworksïŒç±³åœïŒããã³ãã®ä»å€ãã®ãµãã©ã€ã€ãŒã®èŠ³æž¬ããŒã¿ãšäºæž¬ãããŠã³ããŒãããŸãã ããã§ãWRF倩æ°ã¢ãã«ã¯ãç§ãã¡ã«ãšã£ãŠæãèå³æ·±ãå°åã«ã€ããŠèšç®ãããŠããŸãã ããŒãããŒããããŸãã¯èšç®ã®çµæãšããŠåä¿¡ããæ°è±¡ããŒã¿ã¯ãéåžžãç°ãªãå§çž®ã¬ãã«ã®GRIBãŸãã¯NetCDF圢åŒã§ããã±ãŒãžåãããŸãã ãµãã©ã€ã€ãŒãŸãã¯èšç®æ¹æ³ã«å¿ããŠããã®ããŒã¿ã¯ã¢ã¹ã¯ã¯å°åãŸãã¯å šäžçã察象ãšãã200MBãã7GBãŸã§ã®éãã§ãã
倩æ°ã¯ã©ã¹ã¿ãŒããã®å€©æ°äºå ±ãã¡ã€ã«ã¯ãæåã«MDSïŒã¡ãã£ã¢ã¹ãã¬ãŒãžã倧ããªãã€ããªæ å ±ã®ãªããžããªïŒã«è¡ãã次ã«YT ïŒYandex Map-Reduceã·ã¹ãã ïŒã«è¡ããŸãã YTã§ã®äœæ¥ã¯ãæ«å®çã«ãé ä¿¡ããšãã¢ããªã±ãŒã·ã§ã³ããšåŒã°ãã2ã€ã®æ®µéã«åããããŸãã é ä¿¡ãšã¯ããã¬ãŒãã³ã°ãããã¢ãã«ãåŸã§é©çšããããã®èŠçŽ ã®æºåã§ãã ãã¡ã¯ã¿ãŒã¯ãçµæã®ã°ãªããã«æ£ããåè£éãããåäžã®ãŠãããã«çž®å°ããã䞊ååŠçãšã¢ããªã±ãŒã·ã§ã³ã®ããã«3 x 3床ã®æ£æ¹åœ¢ã«ã«ãããããªããã°ãªããŸããã ããã§ã®æé ã®è€éãã¯ã倧éã®ããŒã¿ãšãä»»æã®ãšãªã¢ã®äºæž¬ã«é¢ããæ°ããããŒã¿ãæ¥ããã³ã«æŒç¿ãè¡ãå¿ èŠãããããšã«ãããŸãã
æåã®æ®µéãæ©èœããåŸãäºååŠç¿æžã¿ã®æ©æ¢°åŠç¿ã¢ãã«ã®é©çšãéå§ãããŸãã Meteumaã®æåã®å®è£ ã§ã¯ãæ©æ¢°åŠç¿ã䜿çšããŠæž©åºŠãšéæ°Žéã®2ã€ã®äž»èŠãªæ°è±¡ãã©ã¡ãŒã¿ãŒã®ã¿ãäºæž¬ã§ããŸããã æ°ããèšç®ã¹ããŒã ã«åãæ¿ããã®ã§ãæ®ãã®æ°è±¡ãã©ã¡ãŒã¿ãŒãèšç®ããããã«åãã¢ãããŒãã䜿çšã§ããŸãã æ©æ¢°åŠç¿ã䜿çšãããšãå§åã颚éã湿床ãªã©ã®æ°ãããã©ã¡ãŒã¿ãŒã®ç²ŸåºŠãæ確ã«åäžããŸãã 24æéåã«ãããã®ãã©ã¡ãŒã¿ãŒãäºæž¬ããéã®ãšã©ãŒã¯ãæ倧40ïŒ äœäžããŸãã å€ãã®ãŠãŒã¶ãŒã«ãšã£ãŠé¢šãšå§åã®æãæ£ç¢ºãªææšãéèŠã§ãããšããäºå®ã«å ããŠããã®æ¹åã«ãããå¥ã®äžè¬çãªãã©ã¡ãŒã¿ãŒã§ããæèŠã«å¿ãã枩床ãããæ£ç¢ºã«èšç®ããããšãã§ããŸãã ããã¯ãåžžæž©ã颚éã湿床ã§æ§æãããŠããŸãã ãã1ã€ã®æ³šç®ãã¹ãé©æ°ã¯ãæ°è±¡çŸè±¡ãèšç®ããæ°ããæ¹æ³ã§ããã çŸåšã§ã¯ãè€æ°ã®åé¡åŒã«åºã¥ããŠããŸã-éæ°Žã®æç¡ã ãã§ãªãããã®ã¿ã€ãïŒéšãéªãhïŒãããã³é²ã®ååšãšæãã決å®ããŸãã
ããããã¹ãŠã®ã¢ãã«ã¯ãéåžžã®ã°ãªããã®åãã€ã³ãã«éãããæéã§é©çšããå¿ èŠããããŸãã ã¢ãã«ãé©çšãããåŸãããŒã¿åŠçã®å¥ã®å±€-ããžãã¹ããžãã¯ããããŸãã ãã®ã»ã¯ã·ã§ã³ã§ã¯ãæ©æ¢°åŠç¿ã«ãã£ãŠäºæž¬ãããå€æ°ãå¿ èŠãªåäœã«çµã¿èŸŒã¿ãäºæž¬ã®äžè²«æ§ãä¿ã¡ãŸãã çŸåšãMLã¢ãã«ã¯ããã»ã¹ã®ç©çåŠã«ã€ããŠã»ãšãã©ç¥ãããäž»ã«æ°è±¡ã¢ãã«ãã掟çããèŠå ã«äŸåããŠãããããã-10ã®éšããªã©ã®äžè²«æ§ã®ãªãæ°è±¡ç¶æ ãååŸã§ããŸãã ãã®å Žæã§ããæ£ç¢ºã«è¡ãæ¹æ³ã«ã€ããŠã®ã¢ã€ãã¢ã¯ãããŸãããçŸåšã¯æ£åŒãªå¶éã«ãã解決ãããŠããŸãã
èšç·Žãããã¢ãã«ãé©çšããããšã®é£ããã¯ãäºæž¬ããšã«çŽ140åã®æäœãå®äºããå¿ èŠãããããšã§ãã åèšç®ã«ã¯äœçŸãã®èŠå ãå¿ èŠã§ããããããã®èŠå ã®ãªã¹ãã¯éåžžã«å¯åæ§ããããŸããç§ãã¡ã¯åžžã«ããããè©Šããæ°ãããã®ãè©Šããã°ã«ãŒãå šäœãè¿œå ãã匱ããã®ãæšãŠãŸãã ãã¹ãŠã®èŠå ããµãã©ã€ã€ãŒããçŽæ¥ãšãããããã§ã¯ãããŸããã ããã€ãã®ãã©ã¡ãŒã¿ãŒã®å åé¢æ°ãå®éšããŸãã ãã®ãããªå€æ°ã®æ©èœãçæããããã®ã«ãŒã«ã¯ãPythonã³ãŒãã®åœ¢ã§ç¶æããã®ãéåžžã«å°é£ã§ããé¢åã§ãé 延èšç®ãé£ãããåæã蚺æãå°é£ãªæ©èœïŒãŸãã¯æ©èœã®ãœãŒã¹ããŒã¿ïŒãäžèŠã«ãªããŸãã ãã®ãããLISPã®ã¢ããã°ãçºæããŸããã å³å¯ã«èšãã°ãããã¯LISPã§ã¯ãªãããã§ã«æºåãããASTã§ãããããŒã¿ã®è©³çŽ°ãèæ ®ããLISPã®æ¹èšã«éåžžã«äŒŒãŠããŸãã ãã®LISPã®ããã»ããµããå¿ èŠãªæ¹æ³ã§ããã¬ã€ãžãŒãšãã£ãã·ã³ã°ã«äœããŸããã ãããã£ãŠããŸããäžèŠã«ãªã£ãèŠå ãèšç®ããã2çªç®ã«å¿ èŠãªãã®ã2åèšç®ããŸããã ãããã®ã¡ã«ããºã ã¯ããã¹ãŠã®èšç®ã«èªåçã«é©çšãããŸãã ãããŠããããæ£åŒãªASTã§ãããšããäºå®ã«ãããå¿ èŠãªãã®ãšå¿ èŠã§ãªããã®ãç°¡åã«åæã§ããŸãã ããžãã¯ã®äžéšãåå¥ã«ã·ãªã¢ã«åããŠä¿åããããžãã¹ããŒãããã°ã«æžã蟌ã¿ãããžãã¯ã®å€§éšåãèªåçã«åœ¢æãïŒã³ãŒã圢åŒã§ãã¬ãŒã³ããŒã·ã§ã³ããã€ãã¹ïŒãå®éšçšã«ããŒãžã§ã³åããŸãã ãã¹ãŠã®æäœãè¡åã«å¯ŸããŠçŽã¡ã«å®è¡ãããããããªãŒããŒãããã¯ãŸã£ããéèŠã§ã¯ãããŸããã§ããã
APIã®äžè¬çãªããŒã¿é
ä¿¡ã¹ããŒã
äºæž¬ãèšç®ããåŸãäºæž¬ãç¹å¥ãªåœ¢åŒïŒForecastContainerïŒã§èšé²ãããããã®ã³ã³ãããŒãã¡ã¢ãªããã®ããŒã¿å埩ã®ãã€ã¯ããµãŒãã¹ã«ããŒãããŸãã å®éã0.02床ã®ã°ãªãããæã€å šäžçã§ã¯ãçŽ1,166,400,000ã®æµ®åå°æ°ç¹å€ãååŸããŸããããã¯ã1ã€ã®ãã©ã¡ãŒã¿ãŒã®ã¿ã§34GBã®ããŒã¿ã§ãã ãã®ãããªãã©ã¡ãŒã¿ãŒã¯50以äžãããŸãããããã£ãŠããã®ããŒã¿ã1å°ã®ç©çãã·ã³ã®ã¡ã¢ãªã«å®å šã«ä¿åããããšã¯ã§ããŸããã§ããã å§çž®ããŒã¿ã®é«éèªã¿åãããµããŒããã圢åŒãæ¢ãå§ããŸããã æåã®åè£ã¯HDF5ã§ãããããã¯ãããŒã¿ãã£ã³ã¯ã®æ©èœãšã¢ã³ããã¯ãã£ã³ã¯ãããã¡ãŒã®ãµããŒããåããŠããŸãã 2çªç®ã®åè£ã¯ãLZ4ã§å§çž®ããããã©ãããããã¡ãŒã«èšé²ããããèªå·±èšè¿°åœ¢åŒã®ç¬èªåœ¢åŒã®æµ®åå°æ°ç¹è¡åã§ãã ãã¹ãçµæãããäœæ¥çšã«ããŒã¿ãã¡ã€ã«ãéãã«ã¯ãHDF5ãããFlatbuffersã®ååã®æéããããããã£ãã·ã¥ããä»»æã®ãã€ã³ããèªã¿åãããšãããããŸããã ãã®çµæã50åã®å€æ°ã®ããŒã¿ã52.1GBãå ããããã«ãªããŸããã
åé¡ã®èšè¿°ä»¥æ¥ãã¡ã¢ãªæ¶è²»ãšå¿çæéã®èŠä»¶ã¯éåžžã«é«ããããPythonã§èšè¿°ãããå€ããã€ã¯ããµãŒãã¹ãC ++ã§æžãçŽãããšã«ããŸããã ããã«ããã99åäœã®ãµãŒãã¹å¿çæéã100ããªç§ãã10ããªç§ã«ççž®ãããŸããã
ãµãŒãã¹ãæ°ããããã¯ãšã³ãã¢ãŒããã¯ãã£ã«ç§»è¡ããããšã§ãå éšããã³å€éšã®ããŒãããŒã«å€©æ°äºå ±ãçŽæ¥æäŸããå®è¡æã«ãã£ãã·ã¥ãšã¢ãã«èšç®ããã€ãã¹ããç·æ¥ã®å Žåã¯ãYandexã¯ã©ãŠããã¯ãããžãŒã䜿çšããŠè² è·ãç°¡åã«ã¹ã±ãŒãªã³ã°ã§ããããã«ããŸããã
å šäœãšããŠãæ°ããã¢ãŒããã¯ãã£ã«ãããå¿çã®ã¿ã€ãã³ã°ãççž®ããããå€ãã®ã¯ãŒã¯ããŒããç¶æããç°ãªãããŒãããŒã«äžããããããŒã¿åæãåãé€ãããšãã§ããŸããã Yandex.WeatherããŒã¿ã¯ãYandexã¡ã€ã³ããŒãžãYandex.Browserã®å€©æ°ãã©ã°ã€ã³ãRamblerã®å€©æ°ãªã©ãå€ãã®YandexãµãŒãã¹ã§è¡šç€ºãããŸãã ãã®çµæã圌ãã¯å šå¡ã Yandex.Weatherã¡ã€ã³ããŒãžã®ãŠãŒã¶ãŒããã®ç¬éã«èŠãå€ãæ£ç¢ºã«äžããæ©äŒãåŸãŸããã
人ã«è¿ãïŒã¿ã€ã«ãµãŒããŒãšåé¢
æ°ãããããã«äºæž¬ãæç»ããã«ã¯ãå€ãã®è¿œå åŠçãå¿ èŠã§ãã æåã«ããã€ã¯ããµãŒãã¹ãšAPIã«ãã£ãŠæäŸãããåãããŒã¿ã§MapReduceæäœãå®è¡ãã解å床0.02床ã®éåžžã®ç·¯åºŠçµåºŠã°ãªããã§å šäžçã®ããŒã¿ãçæããŸãã åºåã§ã¯ãåãã©ã¡ãŒã¿ãŒïŒæž©åºŠãå§åã颚éã颚åãããã³åå°å¹³ç·ïŒå°æ¥ãŸã§ã®äºæž¬æéãŸãã¯éå»ãŸã§ã®äºå®æéã«ã€ããŠããµã€ãº9001 * 18000ã®ãããªãã¯ã¹ãååŸãããŸãã
ãã®åŸããã®ããŒã¿ã«åºã¥ããŠã¡ã«ã«ãã«å³æ³ãæ§ç¯ããYandex.Maps APIã®èŠä»¶ã«åŸã£ãŠã¿ã€ã«ã«ã«ããããŸãã ããã§ã倩æ°å³ã®äœæãã§ãŒã³ã§æã倧ããªåé¡ã®1ã€ã«ééããŸããæ°ããäºæž¬ãçæãããã³ã«ãããã«æŽæ°ããå¿ èŠãããã¿ã€ã«ã®æ°ã§ãã ãããã£ãŠããããã®æ¬¡ã®åãºãŒã ã¬ãã«ïŒãºãŒã ïŒã«ã¯ãåã®ã¿ã€ã«ã®4åã®ã¿ã€ã«ãå¿ èŠã§ãã 0ãã8ãŸã§ã®ãã¹ãŠã®è¿äŒŒã¬ãã«ã«ã€ããŠãæºåãå¿ èŠã§ãããšæšå®ããã®ã¯ç°¡åã§ãã
åçã åèšã§ã4ã€ã®ãã©ã¡ãŒã¿ãŒã®ããããã«ã€ããŠ25ã®å°å¹³ç·ã衚瀺ããããã®ãã¡ã®12ã®äºæž¬ã«ã¯å°æ¥ã®äºæž¬ããããŸãã
åçã®æºåãã§ããããé«åºŠãªäžŠååŠçã§Yandexãã¡ã€ã«ã®å éšãªããžããªã«ã¢ããããŒãããŸãã ãã¹ãŠã®ãºãŒã ã®ãããã¬ã€ã€ãŒå šäœãèªã¿èŸŒãŸããããã€ã³ããã¯ã¹å€ã眮ãæããŸããããã«ãããããã³ãã¯æ°ããã¿ã€ã«ã®å Žæãç解ã§ããŸãã ãããã£ãŠããããäžã®æ°ããäºæž¬ã®ååã«é«ãåºçŸçãšäºæž¬æéå ã®ããŒã¿ã®äžè²«æ§ãéæãããŸãã
æ¬æ Œçãªããã¯ãšã³ããã¬ãŒãã³ã°ãè¡ã£ããšããŠãã倩æ°å³ã®æç»ãšã¢ãã¡ãŒã·ã§ã³åãé£ããäœæ¥ã§ãã 1ã€ã®èšäºã§ãã¹ãŠãäŒããæ¹æ³ã¯ãªããããããã§ã¯æã泚ç®ãã¹ãæ©èœãã€ãŸã3çªç®ã®æ¹åã瀺ãã¢ãã¡ãŒã·ã§ã³åãããããŒãã£ã¯ã«ã®ã¬ã³ããªã³ã°ã«æ³šç®ããŸããã
ããã¯ã颚ã®ã¢ãã¡ãŒã·ã§ã³ã®ç²åã倩æ°å³ã§ã©ã®ããã«èŠãããã§ã
ã¯ã©ã€ã¢ã³ãããã€ã¹ã®ãªãœãŒã¹æ¶è²»ãæé©åããããã«ãWebGLã䜿çšããŠé¢šã®ã¢ãã¡ãŒã·ã§ã³ãå®è¡ãããŸãã WebGLã䜿çšãããšãã°ã©ãã£ãã¯ã¢ããã¿ãŒã®éèŠãªãªãœãŒã¹ã䜿çšããŠãã³ãŒãå®è¡ã®ããã»ããµãŒã¹ããªãŒã ããªãããŒãããããããªãŒæ¶è²»ãæé©åã§ããŸãã ãã®å Žåã®ããã»ããµã®ã¿ã¹ã¯ã¯ãã·ã§ãŒããŒããã°ã©ã ãå®è¡ããããã®åŒæ°ãèšå®ããããšã§ãã ç²åã移åããã«ã¯ãå軞ïŒx / yïŒã®ãã¯ã¹ãã£ã®2ã€ã®ã«ã©ãŒãã£ãã«ã«ç²åã®äœçœ®ãä¿åããã¢ãããŒãã䜿çšãããŸãã ãã®ãããªäœçœ®ãã¯ã¹ãã£ã¯2ã€ãããŸãã1ã€ã¯ããŒãã£ã¯ã«ã®çŸåšã®äœçœ®ãä¿åãã2ã€ç®ã¯æ°ããç¶æ ãä¿æããããã«èšèšãããŠããŸãã
ããŒãã£ã¯ã«ã¬ã³ããªã³ã°ã¯ãããã€ãã®WebGLããã°ã©ã ã«ãã£ãŠèšè¿°ãããŸãã äºææ§ãé«ããããã«ããã®æšæºã®æåã®ããŒãžã§ã³ã䜿çšãããŸããã ãã©ãŠã¶ãŒã§ã¯ãWebGLã®äœ¿çšã¯ã察å¿ãããã£ã³ãã¹èŠçŽ ã³ã³ããã¹ããä»ããŠè¡ãããŸãã ã°ã©ãã£ãã¯ã¢ã¯ã»ã©ã¬ãŒã¿ã¯ããã»ããµãä»ããŠæ°åã®äžŠåæäœãå®è¡ã§ãããããããŒãã£ã¯ã«ã®ç§»åã¯WebGLããã°ã©ã ãä»ããŠå®è¡ããå¿ èŠããããŸãã ãã®ãããªããã°ã©ã ã®åºåã¯ãæå®ããã空éå ã®ãã€ã³ãã®ã»ããã§ãã ãã®ããã©ã«ãã®ã¹ããŒã¹ã¯ããã£ã³ãã¹ã®è¡šç€ºé åãã€ãŸããŠãŒã¶ãŒã®ç»é¢ã§ãã ãã ãããã¬ãŒã ãããã¡ã䜿çšããŠæç»ãããã¯ã¹ãã£ãæå®ããããšã¯å¯èœã§ãã
颚ã®ã¬ã€ã€ãŒãéå§ããããšãããã»ããµã¯ç²åã®åæäœçœ®ãçæãã0ã255ã®ç¯å²ã§ïŒç²å*ã³ã³ããŒãã³ãïŒïŒRGBAïŒã®éã®èŠçŽ ã®åä»ãé åãäœæããŸãã ãã®é åãã2ã€ã®WebGLäœçœ®ãã¯ã¹ãã£ãäœæãããŸãã 颚éããŒã¿ããã¯ã¹ãã£ã«èšé²ãããããããããªã«ãŒãã¯ãããã«ã¢ã¯ã»ã¹ã§ããŸãã ãã®ãã¯ã¹ãã£ã®èµ€ãšç·ã®ãã£ã³ãã«ã«ã¯ãããããå¹³è¡é床ãšååç·é床ã®å€ãå«ãŸããŠããŸããããã«ã127ã®å€ã¯é¢šããªãããšã«å¯Ÿå¿ãã127æªæºã®å€ã¯è»žã«æ²¿ã£ãè² ã®æ¹åã®é¢šéãæå®ããæ£ã®æ¹åã®å€ãã倧ããå€ãæå®ããŸãã æºåããããã¯ã¹ãã£ã䜿çšããŠãããŒãã£ã¯ã«ã®çŸåšã®äœçœ®ãæç»ãããŸãã ã¬ã³ããªã³ã°åŸãçŸåšã®ç¶æ ã®ããŒã¿ãœãŒã¹ãšããŠ2çªç®ã®ãã¯ã¹ãã£ã䜿çšããŠãäœçœ®ãã¯ã¹ãã£ã®1ã€ãæŽæ°ãããŸãã 次ã®å¯èŠãã¬ãŒã ã¯ãéæ床ãé«ããŠç²åäœçœ®ã®åã®ç»åãæç»ããããšã«ãã圢æããããã®äžã«çŸåšã®ç²åäœçœ®ãé©çšãããŸãã ãããã£ãŠãå°Ÿãæžè¡°ããç²åãåŸãããŸãã
ãããã颚ã®ã¢ãã¡ãŒã·ã§ã³ã®ããŒãã£ã¯ã«ãäœæã®éçšã§ã©ã®ããã«èŠãããã§ãã
å€æããããã«ãé«å質ã®èŠèŠåã®ããã«ãã¯ã¹ãã£ãã¯ã»ã«ã®ç²åã®äœçœ®ããšã³ã³ãŒãããããã®çŸåšã®ã¢ã«ãŽãªãºã ã¯ããã¯ã¹ãã£èªäœã®é«ç²ŸåºŠèšç®ãšæµ®åå°æ°ç¹å€ã®ããŒããŠã§ã¢ãµããŒããå¿ èŠãšããŸãããããã¯ã¢ãã€ã«ããã€ã¹ã§ã¯å©çšã§ããªãããšãå€ããããã¢ã«ãŽãªãºã ã¯ä¿®æ£ãããæ¹åãããŸãã
çµè«ãšèšç»
Yandex.Weatherã®ã¢ãŒããã¯ãã£ã«ã€ããŠãäŒããããã£ãã®ã¯ããã ãã§ãã ä»å¹Žã¯ãå éšïŒäžèšã®ãšããïŒããã³å€éšïŒYaãååšããã»ãšãã©ãã¹ãŠã®ãã©ãããã©ãŒã ã倩æ°ã¯å€§å¹ ã«å€æŽãããŸããïŒãããµãŒãã¹ãå®å šã«åç·šéããŸããã ãããã®å€æŽã®æçµçµæã¯ãã€ã³ã¿ã©ã¯ãã£ããªå€©æ°å³ã§ãããããã¯ã åœç€Ÿã®ãµãŒãã¹ã§è©Šãããšãã§ããŸã ã
ããããç§ãã¡ã¯æ å ã«ãšã©ãŸãããšã¯ãããŸããã æ¥å¹Žã¯ãå°çã®ããŸããŸãªå°åã®æ°åãæ¢çŽ¢ããŠã人ã¯äœãåŒåžããã®ãããšãã質åã«çããããšãã§ãããµãŒãã¹ãããå€ãã®èå³æ·±ã補åãšæè¡ã®æŽæ°ãèŠã€ããã§ãããã ãããŠãããã¯ãã¡ããããã¹ãŠãšã¯çšé ããã®ã§ãã ç§ãã¡ãšäžç·ã«ã
ãã€ãããªãã®ãã®
Yandex倩æ°ããŒã