æ°å¹Žãè¿ã¥ããŠããŠãããæ°æ¥ããæ®ã£ãŠããŸããã åšåº«ã確èªããæãæ¥ãŸããã åèšã§ãä»å¹Žã¯åèš200件ã®æçš¿ïŒ198åç®ïŒã6912件ãåèš6,245件ã®ã³ã¡ã³ãã21,835件ã®ãæ°ã«å
¥ããžã®è¿œå ãçŽ300äžåã®èŠèŽãèšé²ããŸããã ç§ãã¡ã¯åº§ã£ãŠãåªãããšæãããã§ã2016幎ã®ããã°ã®æé«ã®æçš¿ãæãåºããŸããã ä»ããåå ãããïŒ
ãã®æçš¿ã§ã¯ãMail.Ru Cloudããã¯ãšã³ãããã°ã©ããŒããèå³æ·±ãè匱æ§ãèŠã€ããŠç»é²ããæ¹æ³ã«ã€ããŠè©±ããŸããã
ãã°ãæ¢ãå§ããã«ã¯ïŒ ãããå¯äžã®åå
¥æºã§ããããïŒ ã©ã®ãã°ããŠã³ãã£ã«åå ããŸããïŒ ãã°ãã³ã¿ãŒã¯ããã皌ãã§ããŸããïŒ ãããŠããªãå±æ©ã«ãããŠè匱æ§æ€çŽ¢ãç¹ã«æçãªã®ã§ããïŒ HackerOneãã©ãããã©ãŒã ã®ã©ã³ãã³ã°ã§æé«ã®ããã°ãã³ã¿ãŒã®1人ãšã®ã€ã³ã¿ãã¥ãŒã§ããããã®è³ªåããã®ä»ã®è³ªåã«å¯Ÿããçããèªãã§ãã ããã
2æ14æ¥ãŸã§ã«ãç§ãã¡ã¯äººãšã®ã³ãã¥ãã±ãŒã·ã§ã³ãšå¹žããªæ±æãæäŸã§ããã ãã§ãªãã人éã®è¡åãåæããããããããã£ãã¢ãçµã¿ç«ãŠãããšã«ããŸããã çµå±ãç¡æ°åã§åŒ·çãªãã°ã¯ãæ¬åœã®ææ
ãè£åããé ãããææ
ãæããã«ããããšãã§ããŸãã çªç¶ãåãæ¹æ³ã§ãäºããæ±ãç· ãã2人ã®äŒç€ŸããããŸããïŒ PHPããã°ã©ããŒãé·ãã¿ããã奜ã¿ã倧麊ããã©ã€ã·ã§ãŒãã³ã°ã«å¶éãããŠããå Žåã¯ã©ããªããŸããïŒ ããããã®å©ããåããŠãITã¹ã¿ããã®ç掻ããæãçããããŒã¿ãåéããããšãã§ããŸããã
C / C ++ã°ã«ãŒãã®è²¬ä»»è
-Mail.Ru Mailã®éçºãèŸä»»ãã圌ã®å°éåéãã©ã®ããã«çªç¶å€ãããã«ã€ããŠãçŒãããŠã®ã¢ãã€ã«éçºè
ã®è©±ã
Capã瀺åããããã«ããã®æçš¿ã§ã¯ãããã°ã©ããŒã®1人ããé床ãPython / Ruby
ããŒã¹ããŒããäžåããªãããã«C ++ã³ãŒããæé©åããããã®ãã³ããå
±æããŠããŸãã
mallocã®POSIXå®è£
ã¯ãã¹ãŠãããã€ãã®ç¹å®ã®æ©èœã«äœããã®åœ¢ã§äŸåããŠããŸãã åçŽã«ããŒãžã匷調衚瀺ããã³è§£æŸããå¿
èŠãªãµã€ãºãåãäžããããšã«æ¯ã¹ãŠãmallocã«ã¯å€ãã®å©ç¹ããããŸãã ãã®èšäºã§ã¯ãPOSIXäºæã®ãªãã¬ãŒãã£ã³ã°ã·ã¹ãã ïŒLinuxããã³OS XïŒã§mallocã䜿çšããŠ3ã€ã®å®éšãè¡ããŸããã
Microsoft Azureã§Tarantoolãä»ã®åæ§ã®ãªãã¡ãŒïŒAzure Redis CacheãBitnami MemcachedãAerospikeãVoltDBïŒãšæ¯èŒããŠã©ã®çšåºŠããŸãæ©èœãããã確èªããããšã«ããŸããã ãè¯ãããšããèšèã¯ããé«éããæå³ããŸããã€ãŸãã1ç§ãããã®åŠçæžã¿ãªã¯ãšã¹ãæ°ïŒã¹ã«ãŒããããRPSïŒãæ¯èŒããŸãã
ãã®èšäºã§ã¯ãMail.Ru Mailã«å±ãããã¹ãŠã®ãã¡ã€ã³ã§å³å¯ãªDMARCããªã·ãŒãæå¹ã«ããæè¡çãªè©³çŽ°ã説æãããµãŒãã¹ææè
ãã¡ãŒã«ãµãŒããŒãã¡ãŒãªã³ã°ãªã¹ãã«æšå¥šäºé
ã瀺ããŸããã
æéã®è©Šç·Žã«èããGoã®ãã¹ããã©ã¯ãã£ã¹ã«é¢ããè±å¯ãªè³æã ãããã®ã©ããæ代é
ãã§ããããå¹æããããŸãããïŒ æšå¹Žã®æ°æ©èœã¯ïŒ
ãã®ãã¥ãŒããªã¢ã«ã§ã¯ãReduxãšImmutable-jsã䜿çšããŠãã«ã¹ã¿ãã¯ã¢ããªã±ãŒã·ã§ã³ããŒãããäœæããæ¹æ³ã«ã€ããŠèª¬æããŸãã TDDã¢ãããŒãã䜿çšããŠãNode + Reduxããã¯ãšã³ãããã³React + Reduxããã³ããšã³ãã¢ããªã±ãŒã·ã§ã³ãæ§ç¯ãããã¹ãŠã®æ®µéãå®è¡ããŸãã ããã«ãES6ãBabelãSocket.ioãWebpackãMochaãªã©ã®ããŒã«ã®äœ¿çšã«ã€ããŠèª¬æããŸãã ã»ããã¯éåžžã«å¥œå¥å¿isçã§ãããã«ãã¹ã¿ãŒã§ããŸãïŒ
ãã®èšäºã§ã¯ãAndroidã¹ããŒããã©ã³ã§èªåãã¹ããå®è¡ããããã®æè»ã§æ¡åŒµå¯èœãªã·ã¹ãã ããŒãããæ§ç¯ããæ¹æ³ã«ã€ããŠèª¬æããŸãã çŸåšãMail.Ru Mailã¢ãã€ã«ã¢ããªã±ãŒã·ã§ã³ã®ååž°ãã¹ãã«çŽ60å°ã®ããã€ã¹ã䜿çšããŠããŸãã å¹³åããŠã圌ãã¯æ¯æ¥çŽ20ã®ã¢ããªã±ãŒã·ã§ã³ã®ãã«ãããã¹ãããŠããŸãã åã¢ã»ã³ããªã«å¯ŸããŠãçŽ600ã®UIãã¹ããš3,500ãè¶
ãããŠããããã¹ããå®è¡ãããŸãã
ããŸããŸãªèžè¡çã¹ã¿ã€ã«ã®åçã®ã¹ã¿ã€ãªã³ã°ã®ããŒããããããã®ã€ã³ã¿ãŒãããäžã§æŽ»çºã«è°è«ãããŠããããšã«ãæ°ã¥ãã§ãããã ãããã®äººæ°ã®ããèšäºããã¹ãŠèªããšããããã®ã¢ããªã±ãŒã·ã§ã³ã®è£ã§éæ³ãèµ·ãã£ãŠãããšæããããããŸããããããŠããã¥ãŒã©ã«ãããã¯ãŒã¯ã¯æ¬åœã«ã€ã¡ãŒãžã空æ³ãããŒãããåæç»ããŸãã å¶ç¶ã«ããç§ãã¡ã®ããŒã ãåæ§ã®ã¿ã¹ã¯ã«çŽé¢ããŸããã瀟å
ã®äŒæ¥ããã«ãœã³ã®äžç°ãšããŠããããªã®æ§åŒãäœæããŸããã åçã®ç³è«ã¯æ¢ã«ååšããŸãã ãã®èšäºã§ã¯ããã®ãããã¯ãŒã¯ãã©ã®ããã«ç»åããåæç»ãããããç解ãããããå¯èœã«ããèšäºãæ€èšããŸãã
Mail.Ru Cloudãã¹ã¯ãããã¯ã©ã€ã¢ã³ãã®äž»ãªæ©èœã®1ã€ã¯ãããŒã¿ã®åæã§ãã ãã®ç®çã¯ãPCäžã®ãã©ã«ããŒãšã¯ã©ãŠãã§ã®ãã¬ãŒã³ããŒã·ã§ã³ãåãç¶æ
ã«ããããšã§ãã ãã®ã¡ã«ããºã ãéçºããéãäžèŠãããšãããããŸããŸãªãã¡ã€ã«ããã³ãªãã¬ãŒãã£ã³ã°ã·ã¹ãã ã®ããªãæçœãªæ©èœã«åºäŒããŸããã ãã ãããããã«ã€ããŠç¥ããªãå Žåã¯ãããªãäžå¿«ãªçµæãçããå¯èœæ§ããããŸãïŒãã¡ã€ã«ã®ããŠã³ããŒããŸãã¯åé€ã¯æ©èœããŸããïŒã ãã®èšäºã§ã¯ããã£ã¹ã¯äžã®ããŒã¿ãæ£ããæäœããç·æ¥ã®ä¿®æ£ããã°ã©ã ã®å¿
èŠæ§ããããªããæãããšãã§ããç¥èãæã€æ©èœãåéããŸããã
ãã®èšäºã§ã¯ãPHP 7ã§ã®ããã·ã¥ããŒãã«ã®é
眮æ¹æ³ãšãCèšèªã®èŠ³ç¹ããããã·ã¥ããŒãã«ãæäœããæ¹æ³ãããã³PHPããŒã«ã管çããæ¹æ³ïŒé
åãšåŒã°ããæ§é ã䜿çšïŒã«ã€ããŠè©³ãã説æããŸãã ããã·ã¥ããŒãã«ã¯ã©ãã§ãïŒéåžžã¯èŸæžãšããŠïŒäœ¿çšããããšãå¿ããªãã§ãã ããããããã£ãŠãããã»ããµã§ãã°ããåŠçãããã¡ã¢ãªãã»ãšãã©æ¶è²»ããªãããã«èšèšããå¿
èŠããããŸãã ããã·ã¥ããŒãã«ã䜿çšãããå Žæã¯ããŒã«ã«é
åã ãã§ã¯ãªãããããããã®æ§é ã¯PHPã®å
šäœçãªããã©ãŒãã³ã¹ã«æ±ºå®çãªåœ±é¿ãåãŒããŸãã
PHPã®ã¬ããŒãžã³ã¬ã¯ã·ã§ã³ã¢ã«ãŽãªãºã ã«ããã2ã€ã®è§£æŸåŸäœ¿çšã®è匱æ§ã«é¢ããã¹ããŒãªãŒã 1ã€ã¯ãPHP 5â¥5.3ã®ãã¹ãŠã®ããŒãžã§ã³ã«ååšããŸãïŒPHP 5.6.23ã§ä¿®æ£æžã¿ïŒã 2ã€ç®ã¯ãPHP 7ã®ããŒãžã§ã³ïŒPHP 5.6.23ããã³PHP 7.0.8ã§ä¿®æ£æžã¿ïŒãå«ããPHPâ¥5.3ã®ãã¹ãŠã®ããŒãžã§ã³ã§ãã è匱æ§ã¯ãPHPã®éã·ãªã¢ã«åæ©èœãä»ããŠãªã¢ãŒãã§æªçšãããå¯èœæ§ããããŸãã ãããã䜿çšããŠãèšäºã®èè
ã¯pornhub.comã§RCEãèŠã€ããHackeroneã®Internet Bug Bountyå§å¡äŒãã2ã€ã®è匱æ§ã®ããããã«å¯ŸããŠ20,000ãã«ãš1,000ãã«ã®ããŒãã¹ãåãåããŸããã
PHPããã°ã©ãã³ã°ã®äžçã«ã¯å€ãã®åŸåããããŸãã äžéšã®äººã
ã¯ïŒæžç±ãWebãµã€ãã§ïŒãããããçŸä»£ã®PHPããšããŠç©æ¥µçã«å®£äŒããŸãããä»ã®ã¢ãããŒãã§ã¯ããããé³è
åãæãããŸãã¯åã«äžæ£ãšããŠå
¬éããŸãã ãããã®äººã
ã¯çãç²ããç¥ããã«ãå
šå¡ãé©åã§ãããšããã°ã©ã ããããã«åªããŠããããã§ãã ãã®èšäºã¯ãPHPããã°ã©ãã³ã°ã«é¢ããå®çšçãªå±æãå
±æããããã«æžãããŠããŸãã 人æ°ã®åŸåãçè«ããŸãã¯åŠåçãªæ矩ã§ã¯ãªããçµéšãšå®éçãªæå³ã«ãã£ãŠæ±ºå®ãããå€èŠ³ã
ããªããæ°ãããããžã§ã¯ãã«ç§»ããããšæ³åããŠã¿ãŸãããã ãŸãã¯ãä»äºãå€ããŠãããžã§ã¯ãã«ã€ããŠèããã ãã§ãã ããªãã¯è·å Žã«åº§ã£ãŠããããŒãžã£ãŒãããªãã®ãšããã«æ¥ãŠãæãæ¯ã£ãŠ...ããã«ããããžã§ã¯ãããŒãžãéããã¢ãã¿ãŒãæã§çªããŠããä»åŸã®ã€ãã³ãXã«ã€ããŠã®ã€ã³ãã©ãŒããŒããæ¿å
¥ããããã«èŠæ±ããŸãã ãã®äžã§ããªãã¯...äœããã¹ããïŒ ã©ãããå§ããŸããïŒ ãã€ã³ãã©ãŒããŒããäœæããã«ã¯ïŒ é©åãªãã³ãã¬ãŒãã¯ã©ãã«ãããŸããïŒ ãããŠãä»ã®åé¡ã®æµ·ã ããã¯ããããã®ããã»ã¹ãæŽçããããšããæ¹æ³ãSPAãæºåããããã«äœæããããŒã«ã«é¢ããã¹ããŒãªãŒã§ãã ããã«ãLive Coding / Hot Reloadã®å®è£
ã®æè¡çãªè©³çŽ°ãããã³VirtualDomãšReact with Angularã«ã€ããŠãå°ã説æããŸãã
3Dããã°ã©ã ãªãã§æ¬äŒŒããªã¥ãŒã ç»åãååŸããããšã¯å¯èœã§ããïŒ ããã¡ãããããªãã¯ãããåããç·åŒµããŠäžããæãããšèšããŸãã ãããŠããããªããåããããªãã¯ç·åŒµããŠæç»ãããã«ïŒ ãããŠãç¹å¥ãªç¥èããŸã£ãããªãå Žåã¯ã©ããªããŸããïŒ ã¬ã³ããªã³ã°ã«æéã浪費ããã«çå°ºæ§ãªããžã§ã¯ããååŸããããšã¯å¯èœã§ããïŒ éåžžã®ã°ã©ãã£ãã¯ããã°ã©ã 以å€ã«ããžã¿ã«ã€ã©ã¹ãã¬ãŒã·ã§ã³ã¯ãããŸããïŒ ãããã®è³ªåããã³ãã®ä»ã®è³ªåã¯ãããžã¿ã«ã€ã©ã¹ãã¬ãŒã·ã§ã³ãäœæããæ°ããæ¹æ³-ExcelArtãåãäžããèšäºã§åçãããŠããŸãã
ãã®æçš¿ã§ã¯ãHabrãŠãŒã¶ãŒå°çšã«èšèšãããããºã«ã玹ä»ããŸãã èªåã«ææŠãã解決ã§ããŸããïŒ
PHPã¯ãå®è¡ããå¿
èŠããããã¡ã€ã«ãããã©ã«ãã§ã³ã³ãã€ã«ããã¹ã¯ãªããèšèªã§ãã ã³ã³ãã€ã«äžã«ããªãã³ãŒããæœåºããŠå®è¡ããããã«ç Žæ£ããŸãã PHPã¯ãã®ããã«èšèšãããŸãããRãªã¯ãšã¹ãã®å®è¡ã«ç§»ããšãR-1ãªã¯ãšã¹ãäžã«å®è¡ããããã¹ãŠã®ããšããå¿ãããŸãã PHPã³ãŒããéçšèŠæ±éã§éçšãµãŒããŒéã§å€æŽãããããšã¯ã»ãšãã©ãããŸããã ãããã£ãŠãã³ã³ãã€ã«äžã¯åžžã«åããœãŒã¹ã³ãŒããèªã¿åãããããããªãã³ãŒãã¯ãŸã£ããåãã§ãããšæ³å®ã§ããŸãã ãŸããã¹ã¯ãªããããšã«æœåºãããšãæéãšãªãœãŒã¹ãç¡é§ã«ãªããŸãã
ã€ã³ã¿ãŒãããã«ã¯å€ãã®èšäºãšã»ãã¥ãªãã£ã¬ã€ãããããŸãã ãã®æ¬ã¯ãç°¡æœã§ç解ãããããã®ã®ãéåžžã«è©³çŽ°ã«èŠããŸããã æ°ããäœããåŠã³ããµã€ãã®ä¿¡é Œæ§ãšå®å
šæ§ãé«ããã®ã«åœ¹ç«ã€ããšãé¡ã£ãŠããŸãã
ãã®èšäºã§ã¯ãPHP 7ã®ä»®æ³ãã·ã³ïŒZendä»®æ³ãã·ã³ïŒã§ã®æé©åã«ã€ããŠè©³ãã説æããŸãã æåã«ãé¢æ°åŒã³åºãã®èžã¿å°ã®çè«ã«è§ŠããŠãããããããPHP 7ã§ã©ã®ããã«æ©èœããããåŠç¿ããŸãããã¹ãŠãå®å
šã«ç解ãããå Žåã¯ãZendä»®æ³ãã·ã³ã«ã€ããŠããç解ããããšããå§ãããŸãã PHP 5ã§VMãã©ã®ããã«æ©èœããããèªãã«ã¯ãPHP 7 VMã«ã€ããŠèª¬æããŸããåèšèšãããŠããŸãããPHP 7ãšã»ãŒåãããã«åäœããŸãããããã£ãŠãPHP 5 VMãç解ããŠããå Žåã¯ã PHP VM 7ã¯åé¡ãããŸããã
Technosphere Mail.Ruã«ããæ°ããè¬çŸ©ã³ã¬ã¯ã·ã§ã³ãä»åã¯ãåŠçãããŒã¿åæã®åéãåºæ¬çãªããŒã«ãã¿ã¹ã¯ãããã³ããŒã¿ç 究è
ã圌ã®ä»äºã§ééããæ¹æ³ã玹ä»ããã¹ããªã³ã°ã³ãŒã¹ãããŒã¿åæå
¥éãããããªãã¯ãã¡ã€ã³ã§çŽ¹ä»ããŸãã ãã®ã³ãŒã¹ã¯ãYevgeny ZavyalovïŒMail.Ru Searchãããžã§ã¯ãã®ã¢ããªã¹ããæ€çŽ¢ãšã³ãžã³ãšãã¹ã¯ãããã¢ããªã±ãŒã·ã§ã³ã«ãã£ãŠçæãããããŒã¿ããããžãã¹ã«åœ¹ç«ã€ç¥èãæœåºããããšã«åŸäºïŒãMikhail GrishinïŒããŒã¿åæéšéã®ããã°ã©ããŒç 究è
ïŒãSergey RybalkinïŒAllods Team studioã®ã·ãã¢ããã°ã©ããŒïŒã«ãã£ãŠæããããŸãã
ãã®èšäºã§ã¯ãBashããã°ã©ããŒã«ãããšã©ãŒã«ã€ããŠèª¬æããŸãã äžèšã®äŸã«ã¯ãã¹ãŠããã€ãã®æ¬ é¥ããããŸãã åžžã«åŒçšç¬Šã䜿çšããåèªåå²ã䜿çšããªãå Žåã¯ã以äžã§èª¬æãããšã©ãŒã®å€ããåé¿ã§ããŸãïŒ ã¯ãŒããã¬ã€ãã³ã°ã¯ãBourneã·ã§ã«ããç¶æ¿ãããæ¬ é¥ã®ããã¬ã¬ã·ãŒãã©ã¯ãã£ã¹ã§ãã å±éãåŒçšç¬Šã§å²ãŸãªãå Žåãããã©ã«ãã§äœ¿çšãããŸãã äžè¬ã«ãèœãšãç©Žã®å€§éšåã¯åŒçšç¬Šãªãã®çœ®æã«äœããã®åœ¢ã§é¢ä¿ããŠãããåèªã®åå²ãšçµæã®ã°ããã³ã°ã«ã€ãªãããŸãã
話ãããã¿ã€ãã«ã®ããèšäºã¯ãè¿œå ããªããæžå°ããªãã ãã¬ãŒãã³ã°ãåããèªè
åãã®è³æïŒãšã©ãŒã®éäŒæã¢ã«ãŽãªãºã ã«ãã§ã«ç²ŸéããŠãããç³ã¿èŸŒã¿ãã¥ãŒã©ã«ãããã¯ãŒã¯ã®åºæ¬çãªæ§æèŠçŽ ã§ããç³ã¿èŸŒã¿ãšããŒãªã³ã°ã®ä»çµã¿ãç解ããŠããããšãç解ããŠãã ããã
Mail.Ru Groupã®ãªãã£ã¹ã¯26é建ãŠã®å»ºç©ã§ãå€ãã®äººãåããŠããŸãã ããã¯ãéå»11幎éã§Wi-Fiãããã¯ãŒã¯ãã©ã®ããã«å€åãããããããŠä»æ¥ã®ç¶æ³ã«ã€ããŠã®ç©èªã§ãã
ãµãŒããŒã®ççŒãå£æ»
çãªãµãŒãã¹ã®äœäžãã³ã³ãã¥ãŒã¿ãŒã®åã«æ®ã£ã劻ã®å©ããåããããŒã¿ã«ã®è±éçãªæå©ã ããã¯çŽ æŽããããã¯ãããªã©ãŒãéå§ããå¯èœæ§ããããŸãããå®éã«ã¯ãã·ã¢ã®ã€ã³ã¿ãŒãããã®æŽå²ãå§ãŸãããã®äžéšã«ãªããŸããã äŒç€Ÿã®18åšå¹Žãèšå¿µããŠãæåã«Mail.Ruã°ã«ãŒãã®æ¬åœã®æŽå²ã«ã€ããŠè©±ããŸããã 人çã§æ°å¹Žã¶ãã«ãäŒç€Ÿèªäœã®äžã§ãç¥è©±ãäŒèª¬ã®ã¬ãã«ã§ãã£ããã®ãå
±æããŸãã äŒç€Ÿã§é·å¹ŽåããŠããããã¹ãŠã®ã€ãã³ãã«çŽæ¥é¢äžããŠãã人ã
ãšè©±ãããŸããã
Odnoklassnikiã5000å°ã®ãµãŒããŒãæåã§è¿œè·¡ããããšã«ããããããæ°ããç£èŠã·ã¹ãã ãäœæããçµç·¯ã çŸåšã1äžå°ã®ãµãŒããŒã䜿çšããŠã¢ã©ãŒããåŠçããã«ã¯ãé±ã«1ã2æéããããŸãã
JSONã¯ãïŒãïŒã·ãªã¢ã«åããããã¯ãŒã¯å
±æãããã³ã¢ãã€ã«éçºã«é¢ããŠã¯äºå®äžã®æšæºã§ãã ããããJSONã«ã©ãã ã粟éããŠããŸããïŒ ç§ãã¡ã¯çãä»æ§ãèªãã§ãã¹ããæžããå¿
èŠã«å¿ããŠäººæ°ã®ããJSONã©ã€ãã©ãªããã¹ãããŸãã ãã®èšäºã¯ãJSONãçæ³çãªåœ¢åŒã§ãããå€ãã®äººãããèããŠããçæ³çãªåœ¢åŒã§ã¯ãªãããšã瀺ããŠããŸãã åãããã«åäœããã©ã€ãã©ãªã¯2ã€ããããŸããã ããã«ãäž»ã«JSONã©ã€ãã©ãªã¯æéãšãšãã«é²åããä»æ§ã«åºã¥ããŠããããã極端ãªã±ãŒã¹ãæªæã®ãããã€ããŒãããã°ãã¯ã©ãã·ã¥ãDoSã«ã€ãªããå¯èœæ§ããããå€ãã®ããšãäžååã§ãããããŸã£ããææžåãããŠããŸããã
ãã®æçš¿ã§ã¯ããã·ã¢AIã«ãã2016ãã£ã³ããªã³ã·ããã®åå è
ã«ææ¡ãããåé¡ã«ã€ããŠè©³ãã説æããŸãã
Goã¯ã·ã³ãã«ã§æ¥œããèšèªã§ãã ããããä»ã®èšèªãšåæ§ã«ãããã«ã¯èœãšãç©ŽããããŸãã ãããŠããããã®å€ãã§ã¯ãå²Goã¯éé£ãããã¹ãã§ã¯ãããŸããã ä»ã®èšèªããã®ããã°ã©ããŒã®å°çã®èªç¶ãªçµæã§ãããã®ãããã°ã誀解ã詳现ã®æ¬ åŠã«ããçãããã®ããããŸãã æéãèŠã€ããŠå
¬åŒã®ä»æ§ãwikiãã¡ãŒãªã³ã°ãªã¹ããããã°ã®æçš¿ããœãŒã¹ã³ãŒããèªããšãèœãšãç©Žã®å€ããæããã«ãªããŸãã ãããã誰ãããã®ããã«å§ãŸãããã§ã¯ãªããããã§åé¡ãããŸããã GoãåããŠäœ¿çšããå Žåã¯ããã®èšäºã§ã³ãŒãã®ãããã°ã«è²»ããæéã倧å¹
ã«ç¯çŽã§ããŸãã Go 1.5以äžã®ããŒãžã§ã³ãæ€èšããŸãã
æè¿ãŸã§ããªãªãŒã¹ãããªãªãŒã¹ãŸã§ãICQãæŽåœ¢æè¡ãšãªããã£ã³ã°ãè¡ã£ãŠããæ¹æ³ãæãåºããŸããã ãããŠãèšå¿µæ¥ã«-ICQã20æ³ã«ãªã£ã-ç§ãã¡ã¯20幎ã«ããã£ãŠICQã§äœ¿çšãããŠããæè¡ãæ¯ãè¿ã£ãŠã¿ãããšã«ããŸããã
CSSããã¯ã¯ããã¥ãŒããŒãã®çŸåšã®ãµã€ãºã«å¿ããŠãããå€ããå¥ã®å€ã«ãžã£ã³ãããã®ã§ã¯ãªããã¹ã ãŒãºã«ç§»åã§ããããã«ããé©å¿åWebãã¶ã€ã³ã®ææ³ã§ãã ãã®ã¢ã€ãã¢ãšå®è£
ã®1ã€ã¯ãTim Brownã®èšäºãCSSããã¯ã«ããæè»ãªã¿ã€ãã°ã©ãã£ãã§ææ¡ãããŸããã ãã®èšäºã§ã¯ãææ³èªäœããã®å¶éãããã³åºç€ãšãªãæ°åŠã«ã€ããŠèª¬æããŸãã å¿é
ããªãã§ãã ããïŒäž»ã«å ç®ãšæžç®ããããŸãã ããã«ããã¹ãŠãã¹ããŒãžã«åå²ãããã°ã©ãã§è£
食ãããŠããŸãã
ãã®èšäºã§ã¯ãLinuxã«ãŒãã«ãå®è¡ããŠããã³ã³ãã¥ãŒã¿ãŒã§ãã±ãããåä¿¡ããæ¹æ³ã«ã€ããŠèª¬æãããã±ããããããã¯ãŒã¯ãããŠãŒã¶ãŒç©ºéã¢ããªã±ãŒã·ã§ã³ã«ç§»åããéã®ãããã¯ãŒã¯ã¹ã¿ãã¯ã®åã³ã³ããŒãã³ãã®ç£èŠãšæ§æã®åé¡ã«ã€ããŠèª¬æããŸãã ããã«ã¯å€ãã®ãœãŒã¹ã³ãŒãããããŸããããã»ã¹ãæ·±ãç解ããªããšãLinuxãããã¯ãŒã¯ã¹ã¿ãã¯ãæ§æããã³ç£èŠã§ããªãããã§ãã
圌ãã¯ãã·ã¹ãã ã®èª€åäœãç解ãããŸã§ãã·ã¹ãã ãå®å
šã«ç解ã§ããªããšèšããŸãã ãã®èšäºã§ã¯ãTCPãšã©ãŒã¯ãã«ãŒããŒã¯ãŸãã¯å€ãJavaããºã«ã®ã¹ã¿ã€ã«ã®ããºã«ãšããŠæ瀺ãããŸãã ä»ã®åªããããºã«ãšåæ§ã«ããããã¯éåžžã«ç°¡åã«åçŸã§ããŸããã解決çã¯éåžžé©ãã¹ããã®ã§ãã ãããŠãç¥ç§çãªè©³çŽ°ã«æ³šæãåãã代ããã«ããããã®ããºã«ã¯ãTCPã®åºæ¬åçã®ããã€ããåŠã¶ã®ã«åœ¹ç«ã¡ãŸãã
ãã®ã³ãŒã¹ã®ç®çã¯ããœãããŠã§ã¢éçºã«äœ¿çšãããåºæ¬çãªã¢ã«ãŽãªãºã ãçåŸã«çŽ¹ä»ããããšã§ãã æ°ããªã¿ã¹ã¯ã®å®è£
ã«é©ããããŒã¿æ§é ãšã¢ã«ãŽãªãºã ãéžæããæ¹æ³ãåŠã³ãC / C ++èšèªã䜿çšããŠã¢ã«ãŽãªãºã ãå®è£
ããæ¹æ³ãåŠã³ãŸãã
2幎åã®ã«ãŒãã«çºæ¿ã¬ãŒãã®å€åã«ãããMail.Ru Mailã®éã®ã³ã¹ããåæžããæ¹æ³ã«ã€ããŠèããããããŸããã 賌å
¥ããããŒããŠã§ã¢ã®éãšãã¹ãã£ã³ã°ã®äŸ¡æ Œãåæžããå¿
èŠããããŸããã ã¡ãŒã«ã®æ§æïŒããªã¥ãŒã ã®15ïŒ
ããã¡ã€ã«ã®ã€ã³ããã¯ã¹ãšæ¬æã85ïŒ
ã æé©åã®ããã®å Žæããã¡ã€ã«ïŒæåã®æ·»ä»ãã¡ã€ã«ïŒã§æ¢ãå¿
èŠããããŸãã åœæããã¡ã€ã«ã®éè€æé€ã¯å®è£
ãããŠããŸããã§ããã èŠç©ããã«ãããšãã¡ãŒã«ã®ç·éã®36ïŒ
ãç¯çŽã§ããŸããåãæçŽãå€ãã®ãŠãŒã¶ãŒã«å±ããŸãïŒåçä»ãã®ãœãŒã·ã£ã«ãããã¯ãŒã¯ãäŸ¡æ Œè¡šä»ãã®ã·ã§ãããªã©ïŒã ãã®æçš¿ã§ã¯ãPSIAltã®ãªãŒããŒã·ããã®äžã§è¡ããããã®ãããªã·ã¹ãã ã®å®è£
ã«ã€ããŠèª¬æããŸãã
ããã°ã©ããŒããPHPãªã©ã®é«æ°Žæºèšèªã®ã¿ã«ç²ŸéããŠããå Žåãäœæ°Žæºèšèªã®ç¹åŸŽã§ãããæ
å ±ããã³ã³ã³ãã¥ãŒãã£ã³ã°ããã»ã¹ã®æ©èœãç解ããããã«éèŠãªããã€ãã®ã¢ã€ãã¢ãç¿åŸããããšã¯å®¹æã§ã¯ãããŸããã ã»ãšãã©ã®å Žåããã®çç±ã¯ãäœã¬ãã«èšèªãšé«ã¬ãã«èšèªã§ã¯ããŸããŸãªåé¡ã解決ããããã§ãã ããããããã»ããµãã©ã®ããã«æ©èœããèšç®ãå®è¡ããã®ããå¹ççãªæ¹æ³ã§ããç¥ããªãå Žåãã©ã®ããã«ïŒé«çŽïŒèšèªã®èªåããããã§ãã·ã§ãã«ãšèããããšãã§ããŸããïŒ ä»æ¥ãèªåã¡ã¢ãªç®¡çã¯ã»ãšãã©ã®é«æ°Žæºèšèªã®äž»ãªåé¡ã«ãªãã€ã€ãããå€ãã®ããã°ã©ããŒã¯ååãªçè«çåºç€ãªãã«ãã®è§£æ±ºçãæ±ããŠããŸãã äœã¬ãã«ã®ããã»ã¹ã«é¢ããç¥èã¯ãå¹æçãªé«ã¬ãã«ã®ããã°ã©ã ã®éçºã«å€§ãã«åœ¹ç«ã¡ãŸãã
ãããªãã¯å¥³ã®åã§ãããªããããå¿
èŠãªã®ã§ããïŒããŸãã¯ã女æ§ã®è³ã¯ããã°ã©ãã³ã°ã«é©å¿ããŠããŸãããã ãããã§ããžãã¹ãè¡ããŸããããªãã¯ããŒã ã®è£
食ã§ããã 確ãã«ããã¹ãŠã®å¥³æ§ããã°ã©ããŒã¯åœŒå¥³ã®äœæã§ãããäœåºŠãèããŠããŸãã ããã¯ãåŸæ¥å¡ãããã°ã©ããŒã®è·æ¥ã«å°±ããçµç·¯ã«ã€ããŠã®è©±ã§ãã
äžèŠãããšãããç®ç«ããªããã°ã¬ããŒããLinuxã¡ã¢ãªå²ãåœãŠã·ã¹ãã ã®å
šäœçãªèª¿æ»ã«ã€ãªãã£ããšãã話ã
ããã°ã©ãã³ã°èšèªãã³ã³ãã€ã©ãŒãããã³ä»®æ³ãã·ã³ãç 究ããå€ãã®äººã
ã«ãšã£ãŠãJavaScriptèšèªã®æ§é ãšãã芳ç¹ããèŠããã¹ãŠã®åªé
ãã«å¯ŸããŠãã³ã³ãã€ã«ã«é¢ããŠãŸã ååã«æé©åãããŠããããçŽ æŽãããæšæºã©ã€ãã©ãªãŒãèªãããšãã§ããªããšããäºå®ã¯äŸç¶ãšããŠé©ãã¹ãããšã§ãã 察話è
ã誰ã§ãããã«å¿ããŠãJavaScriptã®æ¬ é¥ãæ°é±éã«ããã£ãŠãªã¹ãããŠããèããããšããªããããªå¥åŠãªãã®ãèŠã€ããããšãã§ããŸãã ããããæãããªæ¬ é¥ã«ãããããããä»æ¥JavaScriptã¯Webã®éèŠãªãã¯ãããžãŒã§ããããµãŒããŒ/ã¯ã©ãŠãé åã§ã®åªäœæ§ã«åãã£ãŠããŸãïŒNode.jsã®ãããïŒããŸããã¢ãã®ã€ã³ã¿ãŒãããã«ã浞éããŠããŸãã
ç§ãã¡ãèªãã§ã³ã¡ã³ãããè³åŠäž¡è«ãè¿°ã¹ãŠããããã¹ãŠã®äººã«æè¬ããŸãã æ¥å¹Žãæçš¿ãããã«èå³æ·±ããã®ã«ãªãããšãé¡ã£ãŠããŸãã æããŸããŠããã§ãšãããããŸãïŒ