ã·ã°ããã£ãŒã³ã¬ã¯ã·ã§ã³ã·ãªãŒãº
1. ã¯ããã«ããµã€ããBulk 20ïŒ8ããã³ã¬ã¯ã·ã§ã³ã®æºå
2. éãšãããã¯ãŒã¯ããããªç£èŠ
3. Reaper 2018ïŒçœ²åãåéããã·ã¹ãã
4. ãããžã§ã¯ã管ç
ããã¯ãNavalnyã®æ¬ç€Ÿã®ITã€ã³ãã©ã¹ãã©ã¯ãã£ã«é¢ããè³æã®3çªç®ã®éšåã§ãã åã®ç« ã§ã¯ãNavalny 20ïŒ8 Webãµã€ãã®éçºãæ¬ç€Ÿã®ãããã¯ãŒã¯ã®æ§æ ãããã¥ã¡ã³ãã¹ãã£ããŒã®è£œé ã«ã€ããŠèª¬æããŸããã
ãã®ç« ã§ã¯ã倧統é åè£ãšããŠNavalnyãæåããããã®çœ²åãåéããã·ã¹ãã ã®äœæã«ã€ããŠèª¬æããŸãã äœæ¥ã®æ®µéãšçµæã®ãœãªã¥ãŒã·ã§ã³ã説æãããŠããŸãã 眲åã·ãŒããç©ççã«ä¿ç®¡ããã·ã¹ãã ã«ã€ããŠèª¬æããŸãã
ã·ãŒããQRã³ãŒããããã³ãããã®æäœæ¹æ³
ãµãã¹ã¯ãªãã·ã§ã³ãªã¹ãã¯ãã·ã¹ãã ã®ã¡ã€ã³ããã¥ã¡ã³ãã§ãã ãªããžã§ã¯ãã®å€§èŠæš¡ãªã³ã¬ã¯ã·ã§ã³ãæäœããããã«æåã«è¡ãããšã¯ããªããžã§ã¯ãã«äžæã®èå¥åãå²ãåœãŠãŠãåãªããžã§ã¯ããããŒã¿ããŒã¹å ã®ã¬ã³ãŒãã«é¢é£ä»ããããšã§ãã ãã ãã眲åã·ãŒãã®åœ¢åŒã¯æ³åŸã§éåžžã«å³å¯ã«èŠå®ãããŠããŸããããã«éåãããšãäžè¬çã«ãã¹ãŠã®åè£è ã®çœ²åãæåŠãããŸãã éžæå§å¡äŒã«æåºãããã·ãŒãã§ã¯ãè¿œå ã®ããŒã¯ãèšå·ã¯èš±å¯ãããŠããŸããã
ããã·ãã«ã¹ã¯ã§çœ²åãåéãããšããåã·ãŒãããã«ããã©ã©ïŒéæãªããã¡ã€ã«ãïŒã«é 眮ããã·ãŒãIDãšãã¹ãŠã®å ¬åŒããŒããããŒã«ãŒã§èšé²ããŸããã ããã¯4,000æã®ã·ãŒãã§æ©èœããŸããããæ°åäžæã§ã¯æ©èœããŸããã ä»åã¯ãmultiforã®äœ¿çšãä¿¡é Œæ§ãäœãäžå¿«ãªãœãªã¥ãŒã·ã§ã³ãšèŠãªããŸããã
åŒè·å£«ã¯ãåã·ãŒããèå¥ãã眲åã·ãŒãã®ãã©ãŒã ãå£ããªãæ¹æ³ãèæ¡ããŸããã æ³åŸã¯ã眲åçšçŽã®ç©ççãªãµã€ãºã«ã€ããŠã¯äœãè¿°ã¹ãŠããŸããã ããã«ãããäžéšã«èå¥ã³ãŒããé©çšãããããã«ã·ãŒããèšèšããéžæå§å¡äŒã«æåºããåã«åæããããšãã§ããŸããã
ã·ãŒãã³ãŒãã¯6æåã§æ§æãããŠããŸãã ããªã«æåã®ã°ã©ãã£ãã¯ã¢ããã°ãæã€ã©ãã³ã¢ã«ãã¡ãããã®æ°åãšæåã䜿çšã§ããŸãïŒä»»æã®ã¬ã€ã¢ãŠãã§ãã©ãŒã ã«æžã蟌ãããšãã§ããŸãïŒã 䟿å®äžã91-X7-BAã®ãã£ãã€ããŒãè¿œå ããŸããã
åãèå¥åãQRã³ãŒãã®åœ¢åŒã§å°å·ãããããŸããŸãªäœæ¥æ®µéã§èªåèªèãããŸãã QRã³ãŒãã¯ãä¿¡é Œæ§ãšèªèé床ã®ç¹ã§ä»ã®ãã¹ãŠã®ã¿ã€ãã®ããŒã³ãŒããç²åŸããŸããã
æ¬éšã®ç掻ã¯å°é£ã«æºã¡ãŠãããããQRã³ãŒãã¯ã·ãŒãã®ããŸããŸãªã¹ãã¬ã¹ã®å€ãç¶æ³ã§æ éã«ãã¹ããããŸãã...
...ãããŠãã©ã€ãã·ãŒããåŠçããã«ã¯3ã€ã®ã³ãŒãã§ååã§ãããšå€æããŸããã
åŒè·å£«ãšãã¶ã€ããŒã¯ãã¬ã€ã¢ãŠããæ³åŸãšåžžèã®äž¡æ¹ã«æºæ ããããã«åªåããŸããã ã·ãŒãäžã®çœ²åã®æ°ãåå¥ã«ãã¹ãããŸããã 眲åãå°ãªã-ã·ãŒããå€ããããäžèŠãªèœæžãïŒã³ã¬ã¯ã¿ãŒãšãããã·ã®ããŒã¿ïŒãå€ããèªèšŒã©ãã«ã®ãšã©ãŒãå€ãã å€ãã®çœ²å-æ祚è ããŒã¿ãå ¥åããã®ã¯äžäŸ¿ã§ã眲åè¡ã«å€ãã®ãšã©ãŒããããŸãã ãããã¿ã€ããè©ŠããåŸã5ã€ã®çœ²åã«æ±ºããŸããã
åã·ãŒãïŒããæ£ç¢ºã«ã¯ãã·ãŒãèå¥åïŒãããŒã¿ããŒã¹ã«äœæãããåŸãA4çšçŽã«å°å·ã§ããŸãã ãã ããã·ãŒããåã蟌ãã§ãæãè¿ãããªã³ã¿ãŒã§å°å·ããããšã¯ã§ããŸããã æ³åŸã«ããã眲åçšçŽã®äœæã¯åè£è ã®éžæå£åº§ããæ¯æããªããã°ãªããŸããã éåžžããããã¯å€éšã®è«è² æ¥è ã«ãã£ãŠäœæãããŸãã ãã®ãããæè¡é¢ãå¯èœãªéã䜿ãããããæè»ã«ããŸããã ã·ãŒãã¯ããã©ãŠã¶ããçŽæ¥å°å·ããããã以åã«è€æ°ããŒãžã®PDFãã¡ã€ã«ã«ä¿åãããä»»æã®äŸ¿å©ãªæ¹æ³ã§è«è² æ¥è ã«è»¢éã§ããŸãã
ãã¯ããŠïŒçœ²åã®åéã®æºå
ãµãã¹ã¯ãªãã·ã§ã³ãªã¹ãå ã®ç©ç眲åã®åéã¯ãåè£è ã®æåãšç¹å¥éžæã¢ã«ãŠã³ãã®éèšåŸã«ã®ã¿éå§ã§ããŸãã æ³åŸã¯ããã«ã»ãšãã©æéãå²ããŠããŸããã ãã¹ãŠã®ããã»ã¹ããããã°ããéžæã®å ¬åŒçºè¡šåŸã§ããã ãæ©ãäœæ¥ãã¹ããŒãã¢ããããããã«ãã§ããã ãå€ãã®æäœãäºåã«è¡ãããšãéèŠã§ããã ãµããŒã¿ãŒã®ããŒã¿ãäºåã«æ€èšŒããã¹ã¿ãããèšç·Žããåéã¡ã«ããºã ããã¹ãããããã«ãæ€èšŒæé ãéå§ããŸããã
æ€èšŒã¯ã眲åã®ã³ã¬ã¯ã·ã§ã³ã®ããŒã¿çã§ããå®éã®æ¬ç€Ÿã§ã¯ãåãæ©åšã䜿çšããåãå³å¯ãªããã¥ã¡ã³ããã§ãã¯ãè¡ããŸãããçŽã«çœ²åãããŸããã æ€èšŒæžã¿ã®äººã ã®ããŒã¿ãåŠçããããã«ãOwlã¢ããªã±ãŒã·ã§ã³ãéçºãããŸããã
ãã¯ããŠã®æ§æ
RESTful APIããã¯ãšã³ãïŒPython 3.6ãaiohttpãaiohttp_adminãSQLAlchemyã
ããŒã¿ããŒã¹ïŒPostgreSQLãRedisã
éç¥ããŒã¢ã³ã
ãã¹ããŒãçªå·èªèããŒã¢ã³ã
åæãæ§ç¯ããããŒã¢ã³ã
çªå·ã«ãããã¹ããŒãæ€èšŒãµãŒãã¹ã
ã¢ãã¬ã¹ãæäœããããã®ããã¯ã¹çã®Kladre-API ïŒPHP 5.6 + MongoDBïŒã
Navalny 20ïŒ8 Webãµã€ããå«ãããã€ãã®ãµãŒãã¹ãšçµ±åããäºå®ã ã£ããããRESTful APIã䜿çšããŠOwlã®å¥ã®ããã¯ãšã³ããäœæããããšã«ããŸããã å¥åã®PostgreSQLããã³RedisããŒã¿ããŒã¹ããã£ãã·ã¥çšã®ã¹ãã¬ãŒãžãšããŠäœ¿çšãããŸããã ãŠãŒã¶ãŒã管çããããã«ãaiohttp_adminã©ã€ãã©ãªãç»å ŽããŸãããããã¯ããŒãºã«åãããŠå€æŽããŸããã
ãªãã¬ãŒã¿ãŒã®å éšã€ã³ã¿ãŒãã§ãŒã¹ã¯ããã¹ããŒããã¹ãã£ã³ããŠå人ããŒã¿ãå ¥åãã段éçãªåœ¢åŒã§ãã å€æ°ã®ç¶æ ãèããããããããã®ãã©ãŒã ã¯Reactã§äœæãããŸããã
ãµã€ããNavalny 20ïŒ8ããšã®å¯Ÿè©±ã¯ãããŒã¯ã³ã«ãã£ãŠä¿è·ãããä»®æ³ãã·ã³éã®ããŒã«ã«ãããã¯ãŒã¯äžã§ã®ã¿ã¢ã¯ã»ã¹å¯èœãªAPIãä»ããŠå®è¡ãããŸããã
æ€èšŒèšé²
æ¬ç€Ÿã®è² è·ãæéå ã«åçã«åæ£ããããã«ãæ€èšŒã®ããã®èšé²ãäœæããŸããã ãµã€ãã«ç»é²ããåŸã人ã¯é²é³ã€ã³ã¿ãŒãã§ãŒã¹ã«ã¢ã¯ã»ã¹ããããã§äŸ¿å©ãªæ¬éšãšæéãéžæããŸããã
ã¯ãŒã¯ããŒããå¶åŸ¡ããèšé²ãšã¹ã±ãžã¥ãŒã«ã管çããããã«ãå°åã®ãããŒãžã£ãŒãšæ¬ç€Ÿã®ã³ãŒãã£ããŒã¿ãŒãå©çšã§ããå¥ã®ã€ã³ã¿ãŒãã§ã€ã¹ãéçºããŸããã
æ¬ç€Ÿã§ç·æ¥äºæ ãçºçããå Žåãã³ãŒãã£ããŒã¿ãŒã¯ä»åŸã®ç¢ºèªãšã³ããªãå€§å¹ ã«ãã£ã³ã»ã«ã§ããŸãã ãã ãã圌ã¯èªåã§ãããè¡ãããšã¯ã§ããŸãããå°åãããŒãžã£ãŒã«ãã£ã³ã»ã«ç¢ºèªã³ãŒããèŠæ±ããå¿ èŠããããŸãã ãã®ãªãã·ã§ã³ãç¹°ãè¿ã䜿çšããå¿ èŠããããŸããã
éç¥
Sychaã§ã¯ãåå²éç¥ã·ã¹ãã ãå®è£ ãããŸããã 眲åè ã¯ã確èªã®ããã«ãµã€ã³ã¢ãããããšããèšé²ãåãæ¶ãããšããèšé²ã®åãæ¶ãã®1é±éåŸã確èªãæåããåŸãæ¬éšã«ããèšé²ã®åãæ¶ãã®åŸãããã³ä»ã®ããã€ãã®å Žåã«ãã¡ãŒã«ã§éç¥ãåãåãããšã«ãªã£ãŠããã
SMSéç¥ã¯ã3æéåŸã«èšé²ãæãåºãããæ¬éšãèšé²ããã£ã³ã»ã«ããããšãéç¥ããããã«éä¿¡ãããŸããã éç¥ãã¥ãŒã¯ãNavalny 20ïŒ8 Webãµã€ããšåãåçã«åŸã£ãŠäœæãããŸããïŒããŒã¿ããŒã¹å ã®ããŒãã«ãã°ã«ãŒãã¯ã¡ãŒã«ããã³SMSã²ãŒããŠã§ã€çµç±ã§ã¡ãã»ãŒãžãéä¿¡ããŸãã
ãã¹ããŒãèªèšŒ
ãªãã¬ãŒã¿ãŒã®äœæ¥ãè©äŸ¡ããããŒã¿å ¥åäžã®ãšã©ãŒã®å²åãå€æããããã«ãã¹ãã£ã³ãããã«èªèãããã£ãã®ã§ãã ãã¹ããŒãã¯å€æ§ã§ãããããä¿¡é Œã§ããèªåèªèãè¡ãããšã¯äžå¯èœã§ãã£ãããããŠãŒã¶ãŒãèªèã§ããããã«ã¹ãã£ã³ãYandex.Tolkaã«éä¿¡ãããããªãã£ã¹ã§ãããè¡ããã©ã³ãã£ã¢ã®ã°ã«ãŒãã«åå ãããšãã2ã€ã®ãªãã·ã§ã³ãæ€èšãããŸããã ããããå人ããŒã¿ã®ã»ãã¥ãªãã£ã®åé¡ã«ããäž¡æ¹ã®éžæè¢ã劚ãããããã¹ããŒãçªå·ã®ã¿ã®èªåèªèãæ®ããŸããã
ãã¯ããŠåæ
æ€èšŒäžã«ããµããŒã¿ãŒã®åºç€ãæ確ã«ããŠç¢ºèªããã ãã§ãªããæ¬ç€Ÿãã€ã³ãã©ã¹ãã©ã¯ãã£ãæ©åšã眲ååéã®ä»çµã¿ã®äœæ¥ããã¹ãããŸããã ããã»ã¹ã芳å¯ããŠèª¿æŽããããã«ãåçŽãªåæãè¡ããŸããã
æ¬ç€Ÿã«ã¯3ã€ã®ã¬ãã«ã®ããã»ã¹ç®¡çïŒæ¬ç€Ÿã³ãŒãã£ããŒã¿ãŒïŒ1ã€ã®æ¬ç€Ÿã®äœæ¥ãæ åœïŒïŒãå°åãããŒãžã£ãŒïŒè€æ°ã®å°åã®æ¬ç€Ÿã°ã«ãŒããç£èŠïŒãããã³é£éŠæ¬ç€Ÿç®¡çïŒãã¹ãŠããã³å šå¡ãç£èŠïŒããããããã·ã¹ãã ã¯ããŸããŸãªæ¹æ³ã§ããŒã¿ãã°ã«ãŒãåããŸãããŠãŒã¶ãŒã®ã«ããŽãªããšã
詳现ã®ã»ãšãã©ãæ¬éšã®ã³ãŒãã£ããŒã¿ãŒã«èŠããŸããã 圌ã¯ãã¹ãŠã®ãªãã¬ãŒã¿ãŒã®çµ±èšãšäž»èŠãªææšã®ãã€ããã¯ã¹ãèŠãŠããããã«åºã¥ããŠç®¡çäžã®æ±ºå®ãäžãããšãã§ããŸããïŒãªãã¬ãŒã¿ãŒã®ã»ããã¢ãããã¢ã©ãŒãã®åŒ·åãé±æ«ã®ä»äºã®ã¹ã±ãžã¥ãŒã«ã®å€æŽãããééããåŸæ¥å¡ã®è§£éãŸãã¯åæè²ãªã©ã
å°åãããŒãžã£ãŒãäžå¿ èŠãªè©³çŽ°ããä¿è·ããæåã®ç»é¢ã§ã圌ã¯æ¬éšã®ã°ã«ãŒãã§æãéèŠãªãã®ã ããèŠãŸããïŒäž»èŠãªææšãæ Œä»ããåé¡æ¬éšïŒèŠåèµ€ã§ç€ºãããŠããŸãïŒã ãåé¡ã®ããããã®ã¯ãââå¹³åãããNïŒ äœãæ¬ç€Ÿã«åé¡ãããæ ¢æ§çã«è² è·ãäœãïŒè¿œå ã®éç¥ãå¿ èŠïŒãã¬ã³ãŒãã®æ°ã§éè² è·ã«ãªããŸããïŒã€ãŸãããã¹ãŠã®äººããµã€ã³ã¢ããã§ããããã§ã¯ãªãããªãã¬ãŒã¿ãŒã®æ°ãå¢ããå¿ èŠããããŸããïŒã
æ€åºãããåé¡ãããé©åã«åŠçããããã«ãå°åãããŒãžã£ãŒã¯åæ¬ç€Ÿã®è©³çŽ°ãªçµ±èšãç°¡åã«ç¢ºèªããã³ãŒãã£ããŒã¿ãŒãå©çšã§ãããã¹ãŠã®ããŒã¿ã確èªã§ããŸãã
é£éŠæ¿åºæ¬éšãããã«å šäœåãèŠãããšãéèŠã ã£ãããã1ã€ã®ç»é¢ã§ãã£ã³ããŒã³ã®äž»èŠãªææšãåéããæ€èšŒãè¡ãããŠãããã¹ãŠã®éœåžã®ããããããŒãã«ãäœæããŸããã ããŒãã«ã§ãç®çã®æ¬ç€ŸãéžæããŠããã®äžã«ããããŒã¿ã®å®å šãªã»ããã衚瀺ã§ããŸãã
åæã§ã¯ãåèšã§50ãè¶ ããã€ã³ãžã±ãŒã¿ãŒã衚瀺ãããŸããã SQLAlchemyã®æè»æ§ã¯ãçŽç²ãªSQLã«æ±ºããŠåãæ¿ãããã³ãŒããèªã¿ãããããã®ã«ååã§ããã æãåŽåéçŽçãªã€ã³ãžã±ãŒã¿ãŒã®å Žåããã£ãã·ã¥ã¯æåã«Redisã§è¡ãããŸããããããã¯ã°ã©ãŠã³ãã§å®æçã«èšç®ããå¿ èŠã«å¿ããŠãã¡ã€ã«ããååŸããæ¹ãç°¡åã§ããããšãããããŸããã
Reaper 2018ïŒçœ²åãåéããã·ã¹ãã
æ€èšŒããã»ã¹ãšäžŠè¡ããŠã眲åãåéããã·ã¹ãã ãéçºãããŸããã åºç€ã¯ãããã·ãã«ã¹ã¯ã§äœ¿çšãããç©çãªããžã§ã¯ãïŒã·ãŒãããã³çœ²åïŒãæäœã§ããã·ã¹ãã ã®ã¢ãŒããã¯ãã£ã«åºã¥ããŠããŸãã
ããã¯ãšã³ãåŽããèŠããšãReaper 2018ã¯å€ãReaperã®åŸç¶è ã§ãããæ€èšŒã·ã¹ãã ãããªãã¬ãŒã¿ãŒã€ã³ã¿ãŒãã§ã€ã¹ãåãåããŸããã Owlã®äœæ¥ã«é¢ãããã£ãŒãããã¯ãåæããåŸãããã€ãã®ç»é¢ãå®æããŸããã ããã«ãããã€ãã®ã¬ãã«ã®ããŒã¿æ€èšŒããã³ã·ãŒãã®ç§»åãå¶åŸ¡ããããã®ã€ã³ã¿ãŒãã§ã€ã¹ãè¿œå ãããŸããã
ãªãã¬ãŒã¿ãŒã€ã³ã¿ãŒãã§ãŒã¹
眲åãååŸããããã»ã¹ã§ã¯ããªãã¬ãŒã¿ãŒã¯æ祚è ã®ãã¹ããŒããã¹ãã£ã³ããã¢ã³ã±ãŒãã«èšå ¥ããå¿ èŠããããŸãïŒç»é²ã¹ã¿ã³ãã«ç€ºãããŠããäœæãééã£ã圢åŒã§æžãããŠããå ŽåïŒãã·ã¹ãã ã®æ瀺ã«åŸã£ãŠããµãã¹ã¯ãªãã·ã§ã³ã·ãŒãã«ããŒã¿ãå ¥åããŸãã ãã ãããŸããæ祚è ã次ã®3ã€ã®éèŠãªæ¡ä»¶ãæºãããŠãããã©ããã確èªããå¿ èŠããããŸãã
1.éžæã®æç¹ã§ã圌ã¯18æ³ä»¥äžã§ãªããã°ãªããŸããã
2.æ祚è ã20æ³ãŸãã¯45æ³ã®å Žåãæ°ãããã¹ããŒããå¿ èŠã§ãã
3.ãã¹ããŒãã¯ç¡å¹ãšããŠãªã¹ããããã¹ãã§ã¯ãããŸããã
ç¡å¹ãªãã¹ããŒãã®ããŒã¿ããŒã¹ããã§ãã¯ããã®ã¯ç°¡åãªæäœã§ãããç¬èªã®åŸ®åŠãªç¹ããããŸãã ãã®åºå°ã¯ãå åçããã®ãŠã§ããµã€ãã§é åžããŠããŸãã éžæã®åã«ãäœããã®çç±ã§ãã®ããŒã¿ããŒã¹ãã¢ã³ããŒãããæ©èœããªãã«ãããããããŒã¿ããŒã¹ã®çŸåšã®ããŒãžã§ã³ãæ¯æ¥ããŠã³ããŒããå§ããŸããïŒå¿ããã«ãªãã«ããŠãã ããïŒã
çŸåšãããŒã¿ããŒã¹ã«ã¯1å1,000äžä»¶ãè¶ ããã¬ã³ãŒãïŒã·ãªãŒãºããã³ãã¹ããŒãçªå·ïŒããããŸãã å°ããªããŒã¿ããŒã¹ãšã€ã³ããã¯ã¹ããã°ããæ€çŽ¢ããããã«ã次ã®ã¹ããŒã ãçºæãããŸããïŒPostgreSQLã¯ã100äžã¬ã³ãŒãã®ããŒãã«ãäœæããŸãããã®äž»ããŒã¯ãã¹ããŒãçªå·ïŒ0ã999999ïŒã§ããã2çªç®ã®ãã£ãŒã«ãã«ã¯ãã®çªå·ã®äžé£ã®ç¡å¹ãªãã¹ããŒãããã¹ãŠå«ãŸããŸãã ã·ãªãŒãºã®ããªã¥ãŒã ãæžããããã«ããã€ããªåœ¢åŒïŒå2ãã€ãïŒã«å€æãããzlibã䜿çšããŠå§çž®ãããŸããïŒã¡ããã©ãããã£ãã§ãïŒã æåãããŒã¿ããŒã¹ã¯ã€ã³ããã¯ã¹ãé€ããšçŽ1 GBãå æããŸãã åŠçåŸãã€ã³ããã¯ã¹ãšãšãã«260 MBãååŸãããŸãã 1ã€ã®ã¬ã³ãŒãã¯ãå¹³åã§15ããªç§ãã§ãã¯ãããŸãã
æ€èšŒã«åæ Œãã人ã®ãã¹ããŒãã®0.6ïŒ ã¯ãç¡å¹ãªãã¹ããŒãã®ããŒã¿ããŒã¹ã§èŠã€ãããŸããã ããã¯ããã®ãããªæ€èšŒããªããã°ããã®ã¿ã€ãã®ãšã©ãŒã«å¯ŸããŠã®ã¿ç¡å¹ãªçœ²åã®å¶éã®12ïŒ ãè²»ãããŠããããšãæå³ããŸãã
åžæ°ã¯20æ³ãŸãã¯45æ³ã§ãã£ãããããã¹ããŒãã®0.88ïŒ ã¯ç§ãã¡ã«é©ããŠããŸããã§ãããããã¹ããŒãããŸã 亀æããŠããŸããã§ããã ãããŠãããã¯ç¡å¹ãªçœ²åã®å¶éã®å¥ã®18ïŒ ã§ãã
ãµãã¹ã¯ãªãã·ã§ã³ã·ãŒãã«ã¯ããªãã¬ãŒã¿ãŒãèšå ¥ãã4ã€ã®åããããŸããæ°åãç幎ææ¥ããã¹ããŒãçªå·ãããã³æ°žä¹ ç»é²ã®äœæã§ãã ãã®ããŒã¿ã¯ãã¹ãŠãReaperãééããŠãèãããããšã©ãŒãæ€èšŒããã³ä¿®æ£ããŸãã ããšãã°ãååãšæ称ã®ãã£ãŒã«ãã§ã¯ãã¿ã€ããã¹ã®æ€çŽ¢ãæ©èœããŸãã
ååã®ãã³ããšããŠãAPIã«ã¯å€ã倧ããªãªã¹ããšæ¯èŒãã3ã€ã®åçãªãã·ã§ã³ãè¿ãã¡ãœããããããŸãã
-ãã¹ãŠãOKã§ãããã®ãããªååããããŸãã
-åæ§ã®ååïŒãªã©ïŒããããŸãã
-äžæãªååïŒãŸããªååãŸãã¯é倧ãªã¹ãã«ãã¹ïŒã
å¥ã®è©±ã¯ãæåããã§ãã 䜿çšããããã¹ããŒãã¯ãããŸãããã»ãšãã©ã®å Žåããeãã«çœ®ãæããããŸãããã®ãããäžéšã®ãã¹ããŒãããŒã¿ãã£ãŒã«ãã«ãeããããå Žåã¯èŠåãçºè¡ããŸãã
ã·ã¹ãã ã¯ããèªäœãä¿®æ£ãããéç¥ããã ãã§ãã ãªãã¬ãŒã¿ãŒãšã¬ãã¥ã¢ãŒã¯ããã®ãããªå Žåã«æ³šæãæããæ£ãã決å®ãäžãã¹ãã§ãã
ææžã¹ãã£ã³
ããã¥ã¡ã³ãã®ç»åãååŸããã«ã¯ãç¬èªã®ã¹ãã£ããŒã䜿çšããRaspberry Piããªãã¬ãŒã¿ãŒã¹ããŒã·ã§ã³ãšããŠäœ¿çšããŸãã ããã«ã€ããŠã¯ã 第2ç« ã§è©³ãã説æããŸãã
ãã®ç»åã¯ãã¹ããŒãã®ã¹ãã£ã³ã§ã¯ãããŸããããã©ã³ãã ããŒã¿ããã°ã©ãã£ã«ã«ãšãã£ã¿ãŒã§åéãããŸãã
ç»åã¯ã¯ã©ã€ã¢ã³ãåŽã§HTML 5 Canvas APIããååŸãããJPEGãååšããbase64æååãšããŠãµãŒããŒã«éä¿¡ãããŸãã ããã³ããšã³ãã®èŠ³ç¹ãããã¹ãã£ããŒã¯USB Webã«ã¡ã©ãšã³ã³ãã¥ãŒã¿ãŒããããŒã«ã«ãµãããããžã®ã¹ããªãŒãã³ã°ãããªã®2ã€ã®ã¢ãŒãã§åäœã§ããŸãã Owlã¯USBã«ã¡ã©ã§ã®ã¿æ©èœããReaper-2018ã§ã¯ã¢ãŒããåãæ¿ããããšãã§ããŸãã ãªãã¬ãŒã¿ãŒã¯ã䜿çšããã¹ãã£ããŒãéžæããŸãã
è¿é£ã®ã³ã³ãã¥ãŒã¿ãŒã®ãããªã¹ããªãŒã ãéžæãããšãå°ããªåé¡ãçºçããŸãããããŒãã«ãšã¹ãã£ããŒã移åã§ãããªãã¬ãŒã¿ãŒã移æ€ã§ããŸãã 次åãªãã¬ãŒã¿ãŒã®é£ã«ã©ã®ã¹ãã£ããŒãé 眮ããããã¯ããããŸããã ç§ã¯æ¬ç€Ÿã®ãµãããããæŽçãããªãã¬ãŒã¿ãŒã«ã©ã€ãã¹ãã£ããŒã®ãããããéžæããæ©äŒãäžããªããã°ãªããŸããã§ããã ããããã¹ãã£ããŒã®ãããªãããŒããã£ã¹ããµãŒããŒã¯ãæ£ããCORSããããŒïŒAccess-Control-Allow-OriginïŒ*ïŒãèšå®ããŠããã«ãããããããOPTIONSãªã¯ãšã¹ãã«å¿çããªãã£ãããšãå€æããŸããã ãã©ãŠã¶ãŒã¯ãé£æ¥ãã¹ããžã®ajaxèŠæ±ãçŠæ¢ãããããéåžžã®jQuery.ajaxïŒïŒã䜿çšããŠæ€çŽ¢ããããšã¯ã§ããŸããã§ããã JSONPãªã¯ãšã¹ãã¯ãããã°ã©ã ã§ãã£ã³ã»ã«ã§ãããæ°åã®ä¿çäžã®ãªã¯ãšã¹ããããŒãžãå®å šã«ãããã¯ããããã圹ã«ç«ããªãã£ãã åçã¯åé¡ã®è§£æ±ºã«åœ¹ç«ã¡ãŸããã DOMã«ã¿ã°ãè¿œå ãããããªã¹ããªãŒã ã®srcãå²ãåœãŠãŸããã ã¹ããªãŒã ã®ãµã€ãºã«å¿ããŠç»åã®ãµã€ãºãå€æŽãããå Žåãã¹ããªãŒã ã¯ã©ã€ããšèŠãªããããªãã¬ãŒã¿ãŒã«è¡šç€ºãããŸããã
ãã©ãŠã¶ã§ãããªã¹ããªãŒã ã衚瀺ãããšãæ§ãããªRaspberry Piããã»ããµãé¡èã«ããŒããããããããã¹ã¯ãªãŒã³ã»ãŒããŒããäœæããå¿ èŠããããŸããã5åéæäœããªããšããã©ãŠã¶ã¯ãããŒããã£ã¹ããäžæåæ¢ããŸãã
ç»é²å Žæã«é¢ããææ°æ å ±ãéžæããããšãéèŠã§ãã ãã¹ããŒãã®ã¹ãã¬ããã«ã¯6ã€ã®ã¹ã¿ã³ãããããŸãããå¿ èŠãªã®ã¯1ã€ã ãã§ãã ã€ã³ã¿ãŒãã§ã€ã¹ã§ã¯ãããŒããŒãã®ç¢å°ã䜿çšãããããã¬ãã¥ãŒã§ç®çã®ã¹ã¿ã³ããã¯ãªãã¯ããŠéžæã§ããŸãã
ããã§ãç»é²ã¯ã§ããŸããã ãã®ãããªææš©è ã¯ã空ã®å°åãšäœæãå«ãå¥ã®ãµãã¹ã¯ãªãã·ã§ã³ã·ãŒãã«èšé²ãããç»é²ç»é²ã¯ã¹ããããããŸãã
ã¢ãã¬ã¹åŠç
ãµãã¹ã¯ãªãã·ã§ã³ã·ãŒãã®èšå ¥ã§æãé£ããéšåã¯ãæ祚è ã®äœæã§ãã 眲åãç¡å¹ã«ãããšã©ãŒã®åå以äžã¯ãã¢ãã¬ã¹ã«é¢é£ããŠããŸãã
ç»é²äœæã®æ³çèŠä»¶ã®å€§ããªãªã¹ãããããŸãã äŸïŒ
-FIASããŒã¿ããŒã¹ïŒé£éŠæ å ±äœæã·ã¹ãã ïŒã«åºã¥ãäœæã§ãªããã°ãªããŸããã
-ååãå€æŽãããéãã®å Žåããã¹ããŒããå€ãå Žåã§ããæ°ããååãæå®ããå¿ èŠããããŸãã
-æ³åŸã¯ãèšé²ããå¿ èŠãããäœæãªããžã§ã¯ãã®éå±€ã«ç¹å®ã®åœ¢åŒã確ç«ããŠããŸãïŒããšãã°ãéœåžéšãæå®ããããšã¯ã§ããŸããïŒã
ãããã¯åºæ¬çãªç¹ã«ãããŸããããå€ãã®äºçŽ°ãªããšãããããã®ãªã¹ãã¯éžæå§å¡äŒãšã®åããåãã®éã«è£å ãããŸããã ããããªèŠä»¶ã§ããéµå®ããªãããšã¯ãéžæå§å¡äŒã眲åãåãå ¥ããªãçç±ã§ãã
ããã·ãã«ã¹ã¯ã®çœ²åã®åéã§ã¯ããäœæããã£ãŒã«ãã®äž»åŒµã«ããã眲åã®çŽ3.5ïŒ ãç¡å¹ã§ãããšå®£èšãããŸããã ãããŠãããã¯å€§çµ±é åè£è ã®æåã®ããã®çœ²åã«èšå®ãããå¶éã®70ïŒ ã§ãã
ãã¹ãŠã®èŠä»¶ãæºããããã«ãæ£ãã圢åŒã圢æããã³ã¬ã¯ã¿ãŒã«ã·ã³ãã«ã®æ£ç¢ºãã§ããµãã¹ã¯ãªãã·ã§ã³ãªã¹ãã«å ¥åããå 容ã瀺ãããã«ãã³ã³ãã¥ãŒã¿ãŒã§ãã¹ãŠã®ã¢ãã¬ã¹ãå®è¡ããå¿ èŠããããŸãã
å¯èœãªéãããµãŒãããŒãã£ã®ãµãŒãã¹ã®APIã䜿çšããªãããã«ããŠããŠãŒã¶ãŒã«é¢ããããŒã¿ãæäŸããªãããã«ããæãéèŠãªç¬éã«APIãçªç¶ã·ã£ããããŠã³ãããããªç¶æ³ã«ãªããªãããã«ããŸãã ã¢ãã¬ã¹ã®æäœã¯çœ²åãåéããããã®éèŠãªæ©èœã§ãããããFIASããŒã¿ããŒã¹çšã®ç¬èªã®APIãäœæããå¿ èŠããããŸããã
FIASããŒã¿ããŒã¹ã«ã¯ãŸã 家ãã¢ããŒãã«é¢ããååãªé«å質ã§å®å šãªæ å ±ããªããããéãã®ã¬ãã«ã§åæ¢ããŸããã ãã®åœ¢åŒã§ã¯ããã¹ãŠã®è¿œå ãã«ããå«ãããŒã¿ããŒã¹ã®ééã¯çŽ2 GBã§ãããPostgreSQLã®åœ¢åŒã§éåžžã«å¿«é©ã«åäœããŸãã ã€ã³ããŒãã«ã¯ã fias2pgsqlãªããžããªããå€æŽãããã¹ã¯ãªããã䜿çšãããŸãã ã
äœæãå ¥åããäžåœå ±éã®åœ¢åŒã®å Žåãäœæã®åœ¢åŒãäœæãªããžã§ã¯ãã®çš®é¡ãå€ãããããã£ãŒã«ãããéœåžãããéãããã家ãã ãã«ããããšã¯ã§ããŸããã çãã圢åŒã®æåãªäŸã¯ãŒã¬ãã°ã©ãŒãã§ãéãã®ååã®ãªã家ããããŸãã ããããç§ãä¿¡ããŠãå šåœã§ããã¯ããªãäºçŽ°ãªã±ãŒã¹ã§ãã
äžé£ã®å®éšã®åŸã3ã€ã®ãã£ãŒã«ãã®åœ¢åŒã«èœã¡çããŸããã
-ãã·ã¢é£éŠã®äž»é¡-圌ã¯åžžã«ããã«ããŸããããã¯æãç解ããããåéã§ãã
-FIASã¢ãã¬ã¹-FIASå ã®ãã®å°åã®ã¢ãã¬ã¹ã§èªåè£å®ããããã£ãŒã«ãã
-家/建ç©/ã¢ããŒã-ããŒã¿ãæ°žä¹ ç»é²ã¹ã¿ã³ãã«åŸã£ãŠæ£ç¢ºã«ã³ããŒãããè¡ã
åŒè·å£«ã¯äœæã®å€æè¡šãäœæãããã®å©ããåããŠãéžæã«é¢ããæ³åŸã«æºæ ãã圢åŒã§FIASã®äœæãæåºããŸããã ã»ãšãã©ã®å ŽåãäœæèŠçŽ ã®1ã€ãé€å€ããå¿ èŠããããŸããã äžéšã®äœæã¯å®å šã«é€å€ãããŸããïŒã¬ã¬ãŒãžååçµåãäžåºãããã³ãã®ä»ã®åæ§ã®ãªããžã§ã¯ãïŒã ITéšéã¯ã«ãŒã«ãèšèŒãããããŒãã«ãåãåããæ³åéšéã¯44çš®é¡ã®äœæã®ããããã«ã€ããŠ10ã®äŸãåãåããŸããã
ãã®ãããªç¹°ãè¿ããæ°åè¡ã£ãåŸãããŒã¹ã®äœæ¥æºåãæŽããŸããã
ã¿ã¹ã¯ã®æè¡çãªéšåã¯ã1æ¥ããã100äžä»¶ã®ã¯ãšãªã®è² è·ã«èããããšãã§ããèªåè£å®æ©èœãåãã䟿å©ã§è¿ éãªæ€çŽ¢ãæŽçããããšã§ããã Sphinxã¯æ€çŽ¢ãšã³ãžã³ãšããŠäœ¿çšãããŸããã èŠæ±ããäžèŠãªæåãåé€ãããSphinxã«è»¢éãããæå®ãããã«ãŒã«ã«åŸã£ãŠã©ã³ã¯ä»ãããããªããžã§ã¯ãã®å®å šãªã¢ãã¬ã¹ãè¿ãããŸãã
Sphinxã¯ãXML圢åŒã§èšè¿°ãããäœæãã£ãŒã«ãã«ã€ã³ããã¯ã¹ãä»ããŸãã ãã®ã¹ãã¬ãŒãžåœ¢åŒã¯ãSphinxãæ€çŽ¢ã«äœ¿çšããªãXMLå±æ§ã§ãã¹ãŠã®ã¡ã¿ããŒã¿ãé衚瀺ã«ã§ãããšããç¹ã§äŸ¿å©ã§ããããšãå€æããŸããããããŒã¿ããŒã¹ã«è¿œå ã¢ã¯ã»ã¹ããã«ã¡ã¢ãªã«ä¿æããçµæãè¿ããŸãã ããã³ããšã³ãã®ã©ããã§ããããã®å±æ§ã¯çŸããã¢ãã¬ã¹ããŒã圢æããããã«äœ¿çšãããŸãã
ãœãªã¥ãŒã·ã§ã³ã¯äŸ¿å©ã§è¿ éã§ããã ãµãžã§ã¹ãAPIãžã®1ã€ã®ãªã¯ãšã¹ãã¯15ã20ããªç§ã§å®è¡ãããããã¯ãšã³ãã¯ããã»ã©åŒ·åã§ã¯ãªãä»®æ³ãã·ã³ã§300ã®åææ¥ç¶ãéãã«åŠçããŸãã
ãµãã¹ã¯ãªãã·ã§ã³ã·ãŒãã«èšå ¥ãã
眲åã¯ãåžæ°ã®æ°žä¹ ç»é²ã®äœæãå±ãããã·ã¢é£éŠã®äž»é¡ã®ã·ãŒãã«å ¥åããå¿ èŠããããŸãïŒãŸãã¯ãç»é²ããªãå Žåã¯å°åã®ãªãç¹å¥ãªã·ãŒãã«å ¥åããå¿ èŠããããŸãïŒã åãåãæ©ã¯ããªãã¬ãŒã¿ãŒã«ã©ã®é åã®ã©ã®ã·ãŒããåãããäŒããå¥ã®é åã®ã·ãŒãã«çœ²åããããšãèš±å¯ããŸããã
ã³ã³ãã¥ãŒã¿ãŒãªãã§ãã®ãããªåé¡ã解決ããããŸããŸãªå°åããå€ãã®äººã ãéãŸããå°åããšã«äžŠã¹ããã空ã®ã·ãŒãã®ãããã¡ã€ã«ãã£ããããããªãã¹ããŒã·ã§ã³ã§çœ²åãåéãããšããŸãã çŽ3åã®1ã®ãã¹ããŒãã§ã¯ãç»é²ã¹ã¿ã³ãã«å°åã®ååãå«ãŸããŠããããã©ã³ãã ãªéè¡äººã¯ã²ãŒã ã®ã«ãŒã«ãç¥ãããäœããç°¡åã«æ··ä¹±ãããå¯èœæ§ããããŸãã ããã¯å€æ°ã®ãšã©ãŒã®çºçæºã®ããã«èŠããŸãããæ³å®é床ã§ãã5ïŒ ã§ã¯èš±å®¹ã§ããŸããã
ãµãã¹ã¯ãªãã·ã§ã³ã·ãŒãã®èšå ¥ã¯è€éã§è²¬ä»»ã®ããæé ã§ãã ã·ãŒãã«ã¯ã眲åã®è¡ãã³ã¬ã¯ã¿ãŒã®èªèšŒã©ãã«ãåèšè ã®çœ²åããããŸãã ãããã®ãããã¯ã¯ãã¹ãŠãå³æ Œãªæ£åŒãªèŠä»¶ã«åŸã£ãŠèšå ¥ããå¿ èŠããããŸãã èšå ¥ã®å段éã§ãšã©ãŒãçºçããã·ãŒãå šäœãŸãã¯çœ²åã®äžéšãç¡å¹ã«ãªãå¯èœæ§ããããŸãã
å žåçãªãšã©ãŒã®å¯èœæ§ãæžãããªãã¬ãŒã¿ãŒã·ããªãªãéçºããŸããã ãããŒã ãå°åã®ã·ãŒãã®èªèšŒã©ãã«ïŒçœ²åã®çŽ80ïŒ ã¯æ¬ç€Ÿã®ããå°åããã®ãã®ã§ãïŒã¯ãèœã¡çããé°å²æ°ã®äžã§ã³ã¬ã¯ã¿ãŒã«ãã£ãŠäºåã«èšå ¥ãããŠããŸãã ã·ãŒãã®ãã¹ãŠã®ãããã¯ã«ã€ããŠãReaperã¯ããããã©ã®ãããæ£ç¢ºã«èšå ¥ãããã¹ããã瀺ããŸãã
å å¡«ã€ã³ã¿ãŒãã§ã€ã¹ã¯ãå®éã®ãµãã¹ã¯ãªãã·ã§ã³ã·ãŒããã·ãã¥ã¬ãŒãããŸããããã¯çŸåšããªãã¬ãŒã¿ãŒã®åã®ããŒãã«ã«ãããŸãã 䜿çšäžã®è¡ãèšå ¥çšã®åãã·ãŒãçªå·ã倧-å ¥åçšã®ããŒã¿ã衚瀺ããŸãã
å¡ãã€ã¶ãããè¡ã®å Žåããªãã¬ãŒã¿ãŒã¯ãã®ã¹ããŒã¿ã¹ã瀺ãå¿ èŠããããŸãïŒæåã«è¡ãæ£åžžã«å ¥åã§ãããšã¯éããŸããïŒã åä¿®æ£ãšåé€ã¯ãã·ãŒãäžã®ã³ã¬ã¯ã¿ãŒããã®ã¡ã¢ãšãããŒã¿ããŒã¹å ã®å¯Ÿå¿ããã¹ããŒã¿ã¹ã«å¯Ÿå¿ããå¿ èŠããããŸãã
ã·ãŒãå šäœã«èšå ¥ããåŸãã³ã¬ã¯ã¿ãŒã®æ¥ä»ãšçœ²åã貌ãä»ããããŸãã ã·ãŒãã¯æ€èšŒã®ããã«éä¿¡ãããŸãã
眲åã®æ€èšŒãæ¬ç€Ÿã§ã®ã·ãŒãã®äœ¿çš
åå¶æ¥æ¥ã®çµããã«ã眲åä»ãã®ãã¹ãŠã®ã·ãŒãã¯æ€èšŒã®å¯Ÿè±¡ãšãªããŸããæ€èšŒã¯å€é ããŸãã¯å€ã«è¡ãããŸãïŒæ¬ç€Ÿã¯å°ããããã¹ãŠã®ããã»ã¹ã䞊è¡ããŠå®è¡ããå Žæã¯ãããŸããïŒã 審æ»å®ïŒåè£è ã®èªå®ä»£ç人ïŒã¯ãåã·ãŒããšå眲åãèŠãŠããã¹ããŒãã®ã¹ãã£ã³ãããããŒãžã®æçãšæ¯èŒãããã¹ãŠã®éèŠãªèŠçŽ ã®ãã§ãã¯ãªã¹ãããã§ãã¯ããŸãã ãšã©ãŒãæ€åºãããå Žåãããã¯ç¹å¥ãªã€ã³ã¿ãŒãã§ãŒã¹ã«è¡šç€ºãããŸãã
æ€èšŒã¬ã³ãŒãã¯åå¥ã«ãã§ãã¯ãããŸãã èªå®ãšã©ãŒã¯ãã·ãŒãå šäœã«äžåºŠã«åœ±é¿ãããããç¹ã«å±éºã§ãã ãããã®ãšã©ãŒã¯ããã¹ãŠã®ç¡å¹ãªçœ²åã®çŽ9ïŒ ã®åå ã説æããŠããŸãã
äžéšã®ãšã©ãŒã¯ä¿®æ£ã§ããŸããã眲åè ãä¿®æ£ã§ããã®ã¯ã³ã¬ã¯ã¿ãŒã®ã¿ã§ãããå€æ¹/å€éã¯æ¬éšã«ããªããããä¿®æ£ã«å¿ èŠãªãã¹ãŠã®æ å ±ã¯é»å圢åŒã§éä¿¡ãããŸããã³ã³ããã¹ããç解ããã«ã¯ãåã®è¡ã§çºçãããã¹ãŠã確èªããå¿ èŠããããŸãããã®ãããã¬ãã¥ã¢ãŒããªãã¬ãŒã¿ãŒãåŒè·å£«ã®éã«ã¯ããã£ãããããããŸãããç»åå ã®ãã¹ãŠã®ååããã³ãã®ä»ã®ããŒã¿ã¯æ¶ç©ºã®ãã®ã§ããããšã©ãŒãèŽåœçã§ãããçãããå Žåãã·ãŒãã¯åŒè·å£«ã«éãããŸãã眲åã«ãšã©ãŒãå«ãŸããŠããªãå ŽåããŸãã¯ãã¹ãŠã®ä¿®æ£ãæ¢ã«è¡ãããŠããå Žåãæ€æ»å®ã¯åèšè ã®çœ²åãå ¥ããäžå€®æ¬ç€Ÿã«éä¿¡ããã·ãŒããéä¿¡ããŸãã
çµµæåãšå¹žçŠã®ç¥çµççåŠ
ãã§ãã¯ãããæååã®ã¹ããŒã¿ã¹ãè¿ éãã€ãšã©ãŒãªãã§éžæããããã«ãçµµæåã®åœ¢ã®ãã¿ã³ã䜿çšããŸãããæ·±ãç¥çµççåŠçåå ããããŸããè³ã®èŠèŠç³»ã«ã¯ãç¹å®ã®ç»åã«åå¿ããå€ä»£ã®äœã¬ãã«ã®ã¡ã«ããºã ããããŸããèŠèŠã·ã¹ãã ã¯ãããŸããŸãªæ¹åã®çŽç·ã®ã»ã°ã¡ã³ãã«æããã°ããåå¿ããŸããããã¯ãç·ãäžæ¬¡èŠèŠéã«ãã£ãŠç°¡åã«æ€åºãããããã§ããäºæ¬¡èŠèŠéã§ã¯ãåçŽãªå¹ŸäœåŠç圢ç¶ïŒãããåŠç¿ããå¿ èŠããããŸãïŒãšé¡ã®ãã¿ãŒã³ãèªèãããŸããããã«ãèªèãããã®ã¯é¡ã ãã§ã¯ãªããäž»èŠãªè¡šæ ã§ããã€ãŸããçµµæåãçŽç·èªèã®ããã«ãããã¯çæ¥ã®èœåã§ãããã®ãããªäœã¬ãã«ã®ã·ã¹ãã ã®ãããã§ãçµµæåã¯ããã¹ããããã¯ããã«é«éãã€æ£ç¢ºã«èªèãããŸãã
çµµæåã®åœ¢ã®ã¢ã€ã³ã³ã¯ã審æ»å®ã眲åãå²ãåœãŠãããšãã§ããã¹ããŒã¿ã¹ã®æå³ã«ãã察å¿ããŠããŸãïŒãè¯ããããåé¡ããããããæªããããåŒè·å£«ã«èŠããŠãã ãããã®çµµæåã«ã¯çåããããŸããããç§ãã¡ã¯ããã«å¯ŸåŠããŸããã
çµµæåã¯ã€ã³ã¿ãŒãã§ã€ã¹ã人éåããããããªãã¬ãŒã¿ãŒã®å¯¿åœããããã«åäžãããšããæèŠããŸã ãããŸããããã¯éèŠã§ã ãªãã¬ãŒã¿ãŒã¯ç§ãã¡ã®ã·ã¹ãã ãé·æé䜿çšããªããã°ãªãããèŠæå¿ã倱ãããšã¯ãããŸããã§ããã
ã·ãŒããéä¿¡ãã
å®æããã·ãŒãã¯ãæ¯æ¥æ¬éšã«éãããŸããã·ãŒãã¯å€æ°ãæ°çŸã«ãªããŸããã©ã®ã·ãŒããæºåãã§ããŠæ¬ç€Ÿãé¢ããããæ£ç¢ºã«ç¥ãããã®ã§ãããæåã§ç»é²ããã®ã¯é·ããŠä¿¡é Œæ§ããããŸãããéä¿¡ãããã·ãŒããèšé²ããã¢ãã€ã«ã¢ããªã±ãŒã·ã§ã³ãäœæãããŠããŸãã
æ¬éšã®åŠçã¹ãããããã¹ãŠééããŠããªããšãã«èª€ã£ãŠã·ãŒããéä¿¡ããããšããå Žåãæ°çŸæã®ã·ãŒããšã¬ããŒãã®ã³ãŒãããã°ããã¹ãã£ã³ã§ããã¢ãŒãããããŸãã1æã®ã·ãŒããã¹ãã£ã³ããã«ã¯1ã2ç§ããããŸãã
ã¹ãã£ã³åŸãã·ãŒãã¯ããã±ãŒãžåãããã¢ã¹ã¯ã¯ã«éãããŸãã
ãã©ãŒã ã®è©³çŽ°
ãã¹ãŠã®ãã¹ããŒãããŒã¿ã¯ãçå¹ ãã©ã³ãSource Code Pro Regularã§å ¥åããã³è¡šç€ºãããŸãããã®äžã§ããŒãã¯æåãOããšåºå¥ãããããæåã¯çŸä»£ã®ãã¹ããŒãã§äžè¬çã«äœ¿çšãããæåãšéåžžã«äŒŒãŠããŸãã
ãã¹ãŠã®ãã©ãŒã ã¯ããã£ãŒã«ããšã¡ã€ã³ãã¿ã³ã®éã§ã¿ããåãæ¿ããããšãã§ããããã«äœæãããŠããŸããå ¥åãã©ãŒã«ã¹ã¯ãããŒãžãããŒããããšãã ãã§ãªãããšã©ãŒã¡ãã»ãŒãžãéããåŸã§ãç®çã®ãã£ãŒã«ãã«ãããŸããã¢ãŒãã«ãã€ã¢ãã°ã¯ãã©ãŒã«ã¹ããã£ããã£ãããããã³ã³ãããŒã«éã§ã®ã¿åãæ¿ããè¡ãããŸãã
ãã¹ãŠã®ãã¿ã³ã¯ãæŒããããšãé·æã¡ãããã®ã§ãå€èŠ³ããã¹ãŠè¡šç€ºãããŸããå ¥åãã£ãŒã«ãã¯ãããŒã¿éä¿¡äžã¯ç¡å¹ã§ãããšã©ãŒã®å Žåã詳现ãªèª¬æã衚瀺ãããŸãã
ã·ãŒãã®ç©æµãšç©ççä¿ç®¡
çŽçã®ç§»åã¯ã人é¡ãä¿¡ããããªãã»ã©ã®æåãåãã掻åã®1ã€ã§ããææ¿å ·åºã«è¡ã£ãŠã眲åãåéããããã®ã»ãããFederalããè³Œå ¥ãã詳现ã«ã€ããŠã¯èããªãããã«æããŸããããããåé¡ããããŸãããã¹ãŠã®ãªãã£ã¹ãœãªã¥ãŒã·ã§ã³ã¯é«äŸ¡ãããŸããæ°äžã«ãŒãã«ã®ããã¥ã¡ã³ãã®ã¹ãã£ããŒãšã10äžã®åããã©ã«ããŒãåãããã£ãããããåæ¬ç€Ÿã«å±ããããšãã§ããªããããå段éã§å³èã®çŽ æããäœããçºæããäœæããå¿ èŠããããŸããã
ããã»ã¹ã®ç©çåŠã«é¢ããããã€ãã®äºå®
315åã®çœ²åãæž¡ãå¿ èŠããããŸãããããè¡ãã«ã¯ãå°åã®ã¯ã©ãŒã¿ãšããŸããŸãªãšã©ãŒã®ããŒãžã³ãèæ ®ããŠãçŽ100äžã®çœ²åãåéããŠåŠçããå¿ èŠããããŸããåã·ãŒãã«ã¯æ倧5ã€ã®çœ²åãå«ããããšãã§ããŸãããå®éã«ã¯çŽ3ã4ã«ãªããŸããããã«ãããããã30äžæã®ã·ãŒããåŸãããŸãã
A4çšçŽã®é¢ç©ã¯1/16m²ã§ãã
éåžžã®ãªãã£ã¹çšçŽã®å¯åºŠã¯80 g /m²ã§ãåã·ãŒãã®ééã¯5 gã§ã
ã500æã®ã¹ã¿ãã¯ã¯ã空çœã®ã·ãŒãã§4.5 cmãå å¡«æžã¿ã®ã·ãŒãã§6 cm以äžã§ãã
åéããããã¹ãŠã®ã·ãŒãã®ééã¯1.5ãã³ã§ã1ã€ã®ããã¯ã«æããããŸãããšãé«ãã¯çŽ36ã¡ãŒãã«ã«ãªããŸãã
ããããã¹ãŠä¿åããæ¹æ³ã¯ïŒ
眲åã·ãŒããå°å·ããã眲åãèšå ¥ããããã§ãã¯ãèªèšŒãããäžå€®æ¬ç€Ÿã«æ¯æ¥éä¿¡ãããŸãã 1ã€ã®æ¬ç€Ÿã1æ¥ã«æ°çŸæã®ã·ãŒããéä¿¡ããããããã®æ®µéã§åé¡ã¯çºçããŸããã
æãèå³æ·±ãã®ã¯ãäžå€®æ¬ç€Ÿããå§ãŸããŸããããã§ã¯ãå°åã®æ¬éšããã·ãŒããåãåºããŠãåéã®æåŸãŸã§ããããæäœãããããããããªã¹ãã¬ãŒãžã·ã¹ãã ãç·šæããå¿ èŠããããŸããåéãå®äºããããã·ãŒããå°åããšã«ã°ã«ãŒãåããéžæå§å¡äŒã®ãã©ã«ããŒã«çž«ãä»ããå¿ èŠããããŸãã
åŒè·å£«ã¯ãã€ã§ãç¹å®ã®ãµã³ãã«ã«å¿ããŠã·ãŒãã®äžéšãåé€ãããå Žåããããããã·ãŒããç¡éã«æããããšã¯ã§ããŸãããã·ãŒãããã°ããååŸããŠæ»ãã«ã¯ãåã·ãŒãã®æ£ç¢ºãªäœçœ®ãç¥ãå¿ èŠããããŸãã
ãã°ããã¢ã¯ã»ã¹ããããã«ãã·ãŒãã®ç©ççãªããŒã¹ã«ã€ã³ããã¯ã¹ãä»ããã·ã¹ãã ãçºæãããŸãããã€ã³ããã¯ã¹ã¯ãæ¬éšïŒããã¯ã¹ïŒãããã¯ã¹ããã©ã«ããŒã®ããã€ãã®ã¬ãã«ã§æ§æãããŠããŸããã¢ãŒã«ã€ãå ã®ãã©ã«ãã¢ãã¬ã¹ã¯ã77-1-15ã®ããã«ãªããŸããåãã©ã«ããŒå ã«ã¯25æã®ã·ãŒãããããŸãïŒã©ã³ãã ãªé åºïŒã
å·Šäžã®åçã«ã¯ãçŽã®ãã©ã«ããŒã«ãã500æã®çœ²åã·ãŒãã®ããã¯ã¹ããããŸãã
å³åŽã®åçã¯ãåããã©ã«ããŒã«ãã2000æã®åŒãåºãã§ãã
ã·ãŒãã®ååŸãšäžŠã¹æ¿ã
å°åããéãããŠãããã¹ãŠã®ã·ãŒãã¯ãèªåäž¡é¢ã¹ãã£ããŒã§ã¹ãã£ã³ãããŸãïŒåœŒã¯ãã§ã«ãªãã£ã¹ã«ããã®ã§ãã¬ãŽãšArduinoããèªåã§åéããå¿ èŠã¯ãããŸããã§ããïŒããã®ããã€ã¹ã¯ãSFTPãä»ããŠçµæããµãŒããŒã«ã¢ããããŒãã§ããŸããããã§ãã¹ãã£ã³ã¯Pythonã¹ã¯ãªãããä»ããŠå®è¡ãããæšæºã®å Žæã§QRã³ãŒããæ€çŽ¢ããèªèããŠãã¹ãã£ã³ãå ±éããŒã¿ããŒã¹ã«æ·»ä»ããŸãããã®ã¹ã¯ãªããã¯ãããã«ãªã£ãã·ãŒãã§ã確å®ã«åŠçããŸãã
ã¹ãã£ã³åŸãã·ãŒãããœãŒããããŸããåã·ãŒãã¯ãã¢ãã€ã«ã¢ããªã±ãŒã·ã§ã³ïŒãœãŒãã¢ãŒãïŒã䜿çšããŠã¹ãã£ã³ãããŸããã·ã¹ãã å ã§ã·ãŒããæ€åºããã¹ããŒã¿ã¹ããäžå€®æ¬ç€Ÿã«æ¥ãŸãããã«å€æŽããã·ãŒããé 眮ããå¿ èŠããããã©ã«ããŒã®åº§æšã衚瀺ããŸãããªãã¬ãŒã¿ãŒã¯ãæå®ããããã©ã«ããŒã«ã·ãŒããå ¥ããããšã確èªããŸãïŒãã©ã³ã¶ã¯ã·ã§ã³ãéããŸãïŒã
1ã€ã®ãªãŒãžã§ã³ã®ã·ãŒãã¯ãã¹ããŒã¹ã空ããŠããéã«ãã©ã«ããŒã«é çªã«é 眮ããããããããã»ã¹å šäœãéåžžã«è¿ éã«è¡ãããŸãã
ããã¯ãšã³ã
2018 Reaperã¯ãæšæºãã³ãã¬ãŒããšã³ãžã³ãšORMã䜿çšããŠDjangoã§äœæãããŠããŸããããŒã¿ããŒã¹ã¯PostgreSQLã§ããã·ã¹ãã ã®ãµãŒãã¹éšå-FIASããã¹ããŒãæ€èšŒãäºåç»é²ããŒã¿ã®æäœ-ã¯ãç¬èªã®ããŒã¿ããŒã¹ãåããå¥åã®ã¢ãžã¥ãŒã«ïŒdjangoã¢ããªïŒã«é 眮ãããŸãã
眲åã®ç©ççãªäžçã¯ããµãã¹ã¯ãªãã·ã§ã³ã·ãŒããã·ãŒãå ã®è¡ã眲åãšãããªããžã§ã¯ãã®ããã€ãã®ã¯ã©ã¹ã®åœ¢åŒã§è¡šç€ºãããŸãããããã®ã¯ã©ã¹ã®ãªããžã§ã¯ãã«ã¯ãå®äžçã®ãªããžã§ã¯ãã®ç¶æ ãåæ ããå±æ§ããããŸããç¶æ 管çã®ããã«ããæéç¶æ ãã·ã³ããã³ãã¬ãŒãïŒç¶æ ãã·ã³ãæéç¶æ ãã·ã³ïŒããã³django-fsmã©ã€ãã©ãªãŒã䜿çšãããŸãããç¶æ éã®ãã¹ãŠã®é·ç§»ã¯FSMãã©ã³ã¶ã¯ã·ã§ã³ã®åœ¢åŒã§ç»é²ããããã®äžã§å¿ èŠãªãã§ãã¯ãšãªããžã§ã¯ãã®è¿œå ã¢ã¯ã·ã§ã³ãå®è¡ãããŸãã
ç¶æ å³ã¯æ¬¡ã®ããã«ãªããŸãã
空éå ã®ã·ãŒãã®äœçœ®ã¯ãã·ãŒãã«å«ãŸããè¡ã®ç¶æ ã«ãã£ãŠæ±ºãŸããŸããåŒè·å£«ã確èªãã¹ãè¡ãããå Žåãã·ãŒãã¯ãåŒè·å£«ãã®ã¹ããŒã¿ã¹ãåãåããŸããåŒè·å£«ãã·ãŒããåãåããæ€èšŒã€ã³ã¿ãŒãã§ã€ã¹ã«ã³ãŒããå ¥åãããšããã«ãã·ãŒãã¯ãåŒè·å£«ããããšããã¹ããŒã¿ã¹ãåãåããŸãããããã£ãŠãæã ã¯åžžã«ãã¹ãŠã®ã·ãŒãã®æ£ç¢ºãªäœçœ®ãç¥ã£ãŠããããããã®å³æã®éåœãç解ããŠããŸãã
ãã¹ãäž
眲ååéã·ã¹ãã ã«ã¯ããŸããŸãªç¶æ ãšé·ç§»ããããããããæåã§ç¢ºèªããããšã¯ã§ããŸããããã§ãã¯ãèªååããããã«ããªãã¬ãŒã¿ãŒãšæ€èšŒè ã®äœæ¥ã«é¢é£ãããã¹ãŠã®ã¹ã¯ãªããã¯ãdjangoåŽã®ãã¹ãã§ã«ããŒãããŸãã
ãããã®çœ²åããªãå Žåã100äžåã®çœ²åãåéããã·ã¹ãã ã調ã¹ãããšã¯ç¡æå³ã§ããããŒã¿ããŒã¹ãæºããããã«ãåéããã»ã¹äžã«ããŒã¿ããŒã¹ã®äžè¬çãªç¶æ ãåæåããã¹ã¯ãªãããäœæããããããå®éã®ããŒã¿ã«äŒŒããã®ã§æºããããã·ã¹ãã ãèŠãããšãã§ããŸãã
眲åã®åéã¯éåžžã«éãããæéã§ããããã®æéã®å€§éšåã¯æ£æäŒã¿ã«ãªããŸããæ¬ç€Ÿãšåéã·ã¹ãã ã®è² è·ãäžåäžã«ãªããšäºæ³ããŠããŸãããã·ã¹ãã ã眲åã®çŸå®çãªã¹ããªãŒã ã«ç°¡åã«å¯ŸåŠã§ããããšãéèŠã§ãããããŒã¯æã«ã¯ã1æéãããæ倧10,000ã®çœ²åãäºæ³ãããŠããŸãããéåžžã®Webãµã€ãã®å Žåãããã¯æ·±å»ã«èŠããŸãããããã®å Žåãã蚪åè ãã®ãã®é åºã¯ãµãŒããŒã«å€§ããªè² è·ããããå¯èœæ§ããããŸããããã¯åãªã蚪åãŸãã¯ç»é²ã§ã¯ãããŸãããå眲åã®åä¿¡ã«ã¯ããµãŒããŒãžã®çŽ50件ã®èŠæ±ãšãããã€ãã®é«è§£å床ç»åã®åŠçãå«ãŸããŸãã
è² è·ãã¹ãã¯Locustã§è¡ãããŸããããããã¯ãPyPIããå ¥æã§ããã·ã³ãã«ãªããŒã«ã§ããã¹ã¯ãªããã¯ãDjangoã®åäœãã¹ãã«ãã䌌ãpythonã³ãŒããšããŠèšè¿°ãããŠããŸãã
ãã¹ãã¯ããªã¯ãšã¹ãã®é床ãã¯ã©ã€ã¢ã³ãæ°ããµãŒããŒå¿çæéã®ã°ã©ãã衚瀺ããWebã€ã³ã¿ãŒãã§ãŒã¹ãä»ããŠå®è¡ã§ããŸãã
ãããžã§ã¯ãã®å±éã¯ããµã€ããBulk 20ïŒ8ããšåãæ¹æ³ã§ç·šæãããŸãã
Reaper Webã¢ããªã±ãŒã·ã§ã³ã¯ãæ¬ç€Ÿã®VPNãä»ããŠã®ã¿ã¢ã¯ã»ã¹ã§ããŸãã
ã¢ãã¿ãªã³ã°
ããŸããŸãªããŒã«ã䜿çšããŠã眲ååéã·ã¹ãã ã«é¢ä¿ãããµãŒããŒãšã¢ããªã±ãŒã·ã§ã³ãç£èŠããŸãã
Zabbixã¯ããããžã§ã¯ãå ã®ãã¹ãŠã®ä»®æ³ãã·ã³ã®ã¹ããŒã¿ã¹ãç£èŠããŸãã
Elasticsearchã¯ãã¹ãŠã®ä»®æ³ãã·ã³ããnginxãã°ãåéããŸããKibanaã¯ãããã°ã©ãã§ç€ºããŸããSentryã§ã¯ãã¢ããªã±ãŒã·ã§ã³ããã³ããã³ããšã³ãããã®ãã¹ãŠã®ãšã©ãŒããµãã€ããŸããããã³ããšã³ãã¯å¥ã®ãçµç¹ãã«é 眮ããããããããã¯ãšã³ããšã©ãŒã®çµ±èšæ å ±ãæãªãããããšã¯ãããŸããã䟿å©ãªããšã§ãããSentryãè² è·ã®äžã§åäœãããããšã¯éåžžã«å°é£ã§ããã
ã¬ãã§ãŠ
ããã¯æ©èœçãªç£èŠã§ãããuptime.comã«äŒŒããã®ã§ãèªå®¶è£œã§ããããã¯ãšã³ãã¯djangoã§æ§ç¯ããããã¥ãŒã¯ã»ããªã§äœæãããããã¯ãšã³ãã¯redisã§äœæãããŸãã
ãããžã§ã¯ããã¡ã€ã³ãGooseã«è¿œå ãããŸããåãã¡ã€ã³ã«ã€ããŠãç£èŠããã¢ãã¬ã¹ãæ€èšŒã®ééãããã³æ€èšŒã®çš®é¡ã瀺ãããŸãã蚌ææžãã³ã³ãã³ããHTTPããããŒããªãã€ã¬ã¯ããããã³ãã®ä»ã®æçšãªãã®ã確èªã§ããŸãã
äœãåé¡ãçºçããå ŽåãGusã¯æ·±å€ã«æçŽãSMSãéä¿¡ããããé»è©±ãããããã人éã®å£°ã§ç¶æ³ã説æãããã§ããŸãïŒé話ãšé³å£°åæã«TwillioãµãŒãã¹ã䜿çšïŒã
Webã€ã³ã¿ãŒãã§ãŒã¹ã«ã¯ãã©ã®ãã¡ã€ã³ã«ãšã©ãŒãããããã§ãã¯ã®ãã¥ãŒãã©ã®ããã«æ©èœããããåžžã«è¡šç€ºãããŸããæ¯åã20ã25ã®ãã§ãã¯ãè¡ãããŸãã
Gusã§ããã¢ãã€ã«ã¢ããªã±ãŒã·ã§ã³ãããããããããä»ããåæ£ç£èŠããããŸããã¢ããªã±ãŒã·ã§ã³ã¯ãç£èŠããã¢ãã¬ã¹ã®ãªã¹ããåä¿¡ãããããããã§ãã¯ããŠïŒå¿çã¹ããŒã¿ã¹ãšæå®ãããã³ã³ãã³ãã®ååšïŒãçµæããµãŒããŒã«éä¿¡ããŸãããã®ãããªç£èŠã¯ãRoskomnadzorããã¯ãšæ»æãåããŠãããµãŒããŒã®ç¶æ ãç£èŠããã®ã«äŸ¿å©ã§ãã
次ã®æçµç« ã§ã¯ãITéšéã®ãããžã§ã¯ã管çã«ã€ããŠèª¬æããŸãã