éå»æ°å¹Žã«ããã£ãŠéçºãããŠãããããžã§ã¯ãã«ã€ããŠã話ããããšæããŸãã GeoPuzzleãšåŒã°ããäžçã®æ¿æ²»å°å³äžã®ããºã«ã²ãŒã ã§ãã ç®æšã¯ãåœã®æçããã®å Žæã«çœ®ãããšã§ãã ãã®ã¢ã€ãã¢ã¯ã ãå°çåŠã®å°é家åãã®ã¡ã«ã«ãã«ããºã«ããšããèšäºã§çºèŠãããåäŸæ代ã«ãåœïŒãŸã DOSã®äžïŒãããããªã¹ãæŒå¥ããŸããããããã°ã©ã ã®ååã¯èŠããŠããŸããã ç§ã¯ãå°åŠçã ãã§ãªãå°çåŠã®å°é家ã«ãšã£ãŠãèå³æ·±ãå®å šãªè£œåãäœããããšããã¢ã€ãã¢ã«ãšãŠãæéãåããŸããã ãããžã§ã¯ãã®éçºã¯GitHubã§ç¢ºèªã§ããŸãã
è©Šäœæ©
èšäºãå°çåŠã®å°é家åãããºã«ã¡ã«ã«ãã«ãã¯2013幎2æ8æ¥ã«å ¬éãããŸãããã4ãæåŸã«ãããã¿ã€ããå®æããäžçã®ãã¹ãŠã®åœã®ããªãŽã³ãçµã¿ç«ãŠãããŸããã å°ãåŸã«ããã·ã¢ãšç±³åœã®å·ã®å°åãè¿œå ããããªãŽã³ã®ãããäžã®åæäœçœ®ã®éžæãã©ã³ãã ã«ããŸããã ããã°ã§éçºããã»ã¹ã説æãã GitHubã«ãœãŒã¹ã³ãŒããæçš¿ããŸããã ãããŠããã¯ããã§ã-ç«ã¡åŸçã èªç±æéã¯ãã£ãšå°ãªããªããã¢ãããŒã·ã§ã³ã¯å€±ããïŒæ±ºå®ã¯è¡ãããŸããã§ããïŒãè€éããææ°é¢æ°çã«å¢å ããŸããã ããã¯ããããããžã§ã¯ãã§ãããäž»ãªä»äºã¯äœãæ°ããããšãåŠã¶ããšã§ããããã®ãããç§ã¯ãã¯ãããžãŒã«å°ãåããŸããã ã¯ã©ã€ã¢ã³ãã§ã¯ããã¡ãããjavascriptïŒç§ã¯ããŸã圹ã«ç«ããªãã£ãïŒã§ãã«ããŒã¹ã¯ãªããïŒåã³ãç§ã«ãšã£ãŠã¯æ°ããèšèªïŒãããŒã¿ã®æºåãæ åœããŸãããããµãŒããŒã§ã¯ã¢ãŒã©ã³ããããŸããïŒçŽç²ã«æ©èœçãªãã®ãè©ŠããŠã¿ãŸããïŒã ã³ã³ãã©ãŒããŸãŒã³ããå®å šã«æãåºããŸããPostGISãªããžã§ã¯ããçŽæ¥æäœããã®ã¯é£ãããæååãã¢ãŒã©ã³ã«å€æããèŠåŽãYAWSã®æ§æã¯ãŸã£ããå¥ã®åé¡ã§ãã...次ã®æ®µéã§ããã®åç©åãã¹ãŠã«å¯Ÿå¿ããŠæ¬æ Œçãªè£œåãäœãããšãã§ãããæ°å¹ŽéèããŸãã
ãžãªããºã«
ãã®ãµã€ãã¯ãããŸã§ãã£ãšæ©èœããŠããã人ã ãããã«è¡ããŸãããããã1ã€å°ããªè©³çŽ°ãè¿œå ãããã£ãã®ã§ããæ°ããçºèŠãããããªãŽã³ã«é¢ããå°ãªããšãããã€ãã®æ å ±ã衚瀺ããããã§ãã ãããã£ãŠãç§ã¯2017幎ã«å¹Žæ«å¹Žå§ãæçã«éããã€ããã§ããã ãããã¿ã€ãã®åé¡ã®ãããç§ã¯ãã¹ãŠãæžãçŽãã補åãDjangoã«éŠŽæã¿ã®ãããã®ã«ããããšã«ããŸããã ããã«äœ¿çšã§ãããã®ããããŸããããšãã°ã管çããã«ãORMãä»ããŠPostGISãæäœãããªã©ãç§ã®äººçãå€§å¹ ã«ç°¡çŽ åãããŠããŸãã ãããããŸãæåã«ããã§ã«æ©èœããŠããæ©èœãåäœæããå¿ èŠããããŸããã ã»ãã®æ°æ©ã§ãKMLãã¡ã€ã«ããããŒã¿ãããŒãããã®ã«ã»ãšãã©ã®æéãããããŸããã ã€ã³ããŒãããã»ã¹èªäœã§ã¯ãªããã€ã³ããŒãããã»ã¹ã®æºåãšããããã䜿çšããæ¹æ³ã«ã€ããŠã®ç§ã®ç¥èã®åŸ©å ã§ãã ãšããã§ãåœæç§ã¯gadm.orgããããªãŽã³ãååŸããŸããã ããã¯åœã«ãšã£ãŠã¯ããŸãæ©èœããŸããããå°åã®ç²ŸåºŠã«ç¹å®ã®åé¡ããã£ãããããã®åé¡ã«ã¿ã€ã ã¢ãŠããåããŸããã
ãžãªããŒã¿ã®ç®¡çã¬ãã«ïŒã¬ãã«ïŒã«ã€ããŠäžèšã
ãã¹ãŠã®åœã¯å€ãã®å°åã«åå²ãããããã«å°ããªéšåã«åå²ãããŠããŸãã ãã®ãããªéå±€ã«ã¯åèšã§12ã®å±€ããããŸãã
ããšãã°ããã·ã¢ã®å ŽåïŒ
ããŸããŸãªåœã®é ååäœã¯ç¬èªã®æ¹æ³ã§åŒã³åºãããŸãããç§ã¯ãã®åºåãæšæž¬ããŸããïŒåœïŒ2ïŒ->å°åïŒ4ïŒ->å°åºïŒ6ïŒã ç§ã¯åŸã®ç®¡çéšéãå»ããŸããã
ããšãã°ããã·ã¢ã®å ŽåïŒ
- ãã·ã¢ïŒ2ïŒ->åéšé£éŠå°åºïŒ3ïŒ->ã¯ã©ã¹ãããŒã«æºå·ïŒ4ïŒ->ãŽã£ã»ã«ã³ãã¹ããŒå°åºïŒ6ïŒ->ã¢ãŒãã å解ïŒ8ïŒ
- ãã·ã¢ïŒ2ïŒ->åéšé£éŠå°åºïŒ3ïŒ->ã¯ã©ã¹ãããŒã«æºå·ïŒ4ïŒ->ã¯ã©ã¹ãããŒã«ïŒ6ïŒ->ããªã¯ãã³ã¹ããŒå°åºïŒ9ïŒ->ã³ãã³ã¹ã«ã€ïŒ10ïŒ
- ãã©ã³ã¹ïŒ2ïŒ->ãã©ã³ã¹å€§éœåžåïŒ3ïŒ->ãã«ãã³ãã£ãŒå°æ¹ïŒ4ïŒ->ãªã«ãçïŒ6ïŒ->ãã³ããã³å·ïŒ7ïŒ->ãã³ããã³ã¢ã³ãã¯ã¬åžïŒ8ïŒ->ãã³ããã³ïŒ9ïŒ
ããŸããŸãªåœã®é ååäœã¯ç¬èªã®æ¹æ³ã§åŒã³åºãããŸãããç§ã¯ãã®åºåãæšæž¬ããŸããïŒåœïŒ2ïŒ->å°åïŒ4ïŒ->å°åºïŒ6ïŒã ç§ã¯åŸã®ç®¡çéšéãå»ããŸããã
ãããžã§ã¯ãéçº
åœæãã¢ããªã±ãŒã·ã§ã³ã¯æå°éã®CSSãåããHTMLããŒãžã®åãªãã³ã¬ã¯ã·ã§ã³ã§ããã ãã¶ã€ã³ãæ°ã«ãããã¢ã€ãã¢ããã°ãã確èªãããã£ãã®ã§ãã ã¢ã€ãã¢ã¯å®çŸå¯èœã§ããããšãå€æãããã®ããã®çŸããã·ã§ã«ãäœæããæãæ¥ãŸããã ãªããªã UIã«ã¯çŸããã¯ãããŸããããBootstrapã¯ç§ãå©ããŠãããŸãã ã€ã³ã¿ãŒãã§ãŒã¹ã¯ãããŸããããç»å Žããã¢ãã€ã«æ©åšã«ãé©åããŸããã ããããããã¯ããã³ããšã³ããæŽçããããã®æåã®ã¹ãããã«éããŸããã§ããã
2016幎ã«JavaScriptãåŠã¶ã®ã¯ã©ãã§ããïŒïŒ ã³ãŒããå¥ã®æ¹èšã«ã³ã³ãã€ã«ããããšããã³ãã¬ãŒãã«ãŸãšããããæ¥çãããŠæçã«åãåããããŸãã ç§ã¯ããã¯ãšã³ããšããŠæãã£ãŠããŸããããã¯ã©ã€ã¢ã³ãéšåã®è€éãã¯ååã«å€§ããèšç»ãããŠããããããã¬ãŒã ã¯ãŒã¯ãŸãã¯ã©ã€ãã©ãªã䜿çšããå¿ èŠããããŸããã Reactã«ã¯2ã€ã®çç±ããããŸãããSPAã¯å¿ èŠãããŸããã§ããããããŸããŸãªããŒãžã®ã³ã³ããŒãã³ãã»ãããå¿ èŠã ã£ããããããã«çµæã確èªãããã£ãããã§ãã ãã ããããã°ã©ãã³ã°ãéå§ããåã«ãç°å¢ãèšå®ããå¿ èŠããããŸããã ããã§ã2æ¥éWebpackãã»ããã¢ãããããšèšã£ããããç¥ãããããã³ããšã³ããããããŸããã åè«ã§ã¯ãªãã£ãããšãããããŸããã
ãã®ãšããç§ã¯èª¬åŸã«å±ããŠãReduxã䜿çšããŠã¢ããªã±ãŒã·ã§ã³ã®ããžãã¯ãå®è£ ããŸããã ããããããã¯ééãã§ã¯ãªãã£ãããªããªã ãããã¯ããã°ããå ¥åã§ããŸãã æ£åŒãªã«ãŒã«ã«ãããã³ãŒããèšè¿°ããå éšãèŠãããšãªãåäœããããšã確èªã§ããŸããã Reduxã¯ããã®ããã«ãŠã§ã¢ã䜿çšããŠããããã¯ãŒã¯ã€ã³ã¿ã©ã¯ã·ã§ã³ããç§ãåŒãé¢ãããµãŒããŒãžã®å¿çã確èªããããšãã§ããŸããã ã¯ãããããŸã§ãã¯ã©ã€ã¢ã³ãã¯ç¬èªã«äœæ¥ããŠããŸãããajaxãªã¯ãšã¹ããå¿ èŠãªãã¹ãŠã®ããŒã¿ãåŒãåºããåçãç¬èªã«ãã§ãã¯ããŸããã ãŠãŒã¶ãŒã¯ããµãŒããŒããéä¿¡ãããããŒã¿ãèŠãŠäžæ£è¡çºãè¡ãå¯èœæ§ããããŸãã ããã«ãããŒãæã«ãããŒã¿ã¯æ£ããåçã®åŸã§ã®ã¿å¿ èŠã«ãªããŸããã Webãœã±ãããä»ããŠæ€èšŒãå®è£ ããåŸãããã»ã¹ã¯ã€ããªãã®ãŒçã«ããæ£ç¢ºã«ãªããŸãã-çãã¯ãã¯ã©ã€ã¢ã³ããå©çšã§ããªãã³ãŒããæ€èšŒããŸãã ãŠãŒã¶ãŒã«ãšã£ãŠã¯ãããã¯å³åº§ã«èŠããŸãããããªãŽã³ã®æ¥µå€ããµãŒããŒã«éä¿¡ãããšã©ãŒãçºçããŠæ£æ¹åœ¢ã«å ¥ã£ããã©ããã確èªããæ å ±ããã¯ã¹ã®ããŒã¿ãšjsonã®è©³çŽ°ãªããªãŽã³ãããã¯ããŠãã¯ã©ã€ã¢ã³ãã«è»¢éããŸãã
javascriptã®ãã¹ãŠã®åãåŠãã ã®ã§ãæ¢ããã®ã¯é£ããã§ãã ããã«ãã¢ãã¡ãŒã·ã§ã³ãæãããã¿ãããã¯ããŸã°ãããã²ãŒã ã®æ°ããããŒãžã§ã³ãè¿œå ããã¢ã€ãã¢ããããŸããã ãããã®1ã€ã¯ãã¯ã€ãºãã§ãååãæãçŽç« ããŸãã¯éŠéœã§åœãæšæž¬ããå¿ èŠããããŸãã 確ãã«ããã¹ãããã»ã¹äžã«ããã©ã°ã®ãªãå°åãšéŠéœã®ãªãå°åãããããšãå€æãããããå©çšå¯èœãªåœã®ãªã¹ãããäžéšã®åœãé衚瀺ã«ããå¿ èŠããããŸããã åæã«ãã²ãŒã ã¢ãŒããäžçã®ç©ççãªå°å³ã«ç»å ŽããŸãã-å®éã®ããã®ããã«ãåœã®åœå¢ãªãã§ã
ãªãŒãã³ããŒã¿ãœãŒã¹
çŸåšãã²ãŒã ã«ã¯50,000åã®ããªãŽã³ããããWikipediaãOpen Street Mapãªã©ã®çŽ æŽããããããžã§ã¯ãã«æè¬ââããŸãã åºæ¬çãªèŠä»¶ã¯ããªãŒãã³ãœãŒã¹ããããŒã¿ãåä¿¡ããã³æŽæ°ããããšã§ãããã€ãŸããæåã§ç·šéããå¿ èŠã¯ãããŸããã§ããã è€éãªåæããžãã¯ãè¡ããããããŸããã ãã®çµæãæ å ±ããã¯ã¹ãšããªãŽã³ãæŽæ°ã§ãã2ã€ã®ã¹ã¯ãªãããå ¥æããŸããã
ãŠã£ãããã£ã¢ãšSPARQL
åœãšå°åã®æ倧ã®ããŒã¿ããŒã¹ã¯äœã§ããïŒ ãŠã£ãããã£ã¢ïŒ æåã¯ããŠãŒã¶ãŒã«æ å ±ããã¯ã¹å šäœã衚瀺ãããã£ãã®ã§ãããããã«ãã®èããæšãŠãŸããã ã¯ããååãæãéŠéœãªã©ã®éèŠãªãã®ããããŸãããããŽãããããããããŸããïŒé»è©±ã³ãŒããæ¿åºã®åœ¢æ ãGDPãªã©ïŒã ãã§ã«åéãããŠãããã®ã解æããããšããŸããããæ§é ãç°ãªãããšãããããŸããã ããã¯çœå®³ã§ããããšãå€æããŸãããå®è£ ã®äººä»¶è²»ãäœåãå¢å ããŸããã ç«ã¡æ¢ãŸã£ãŠèããæéã§ããã ç¿æ¥ãç¹å¥ãªã¯ãšãªèšèªã§ããSPARQLã®ååšã«ã€ããŠåŠã³ãŸããã å€èŠ³ã¯SQLã«äŒŒãŠãããããŒã¯ãŒã
SELECT
ã
WHERE
ã
ORDER BY
WHERE
ãã宣èšåã§ããããŸããããŸã£ããç°ãªãæ¹æ³ã§æ©èœããŸãã å·ã®ãªã¹ãã倧æåãšè±èªãšãã·ã¢èªã§è¿ãå°ããªäŸïŒ
SELECT DISTINCT ?country ?capital ?row WHERE { ?country wdt:P31 wd:Q3624078 . FILTER NOT EXISTS {?country wdt:P31 wd:Q3024240} OPTIONAL { ?country wdt:P36/rdfs:label ?capital } . BIND(lang(?capital) as ?row) filter (?row = 'ru' || ?row = 'en') } ORDER BY ?capital
ã¯ã€ã«ãã«èŠããŸãããïŒ ãã¡ããã芧ãã ãã ã ç§ã¯èªåã®çµéšãäœããã®åœ¢ã§æ§é åãããããã¯ã«å ¥ãã®ãå©ããããã«ãããã°ã«å°ããªã¡ã¢ãæžããŸããã ã€ã³ã¿ãŒãããã«ã¯è©³çŽ°ãªè³æã¯ããŸããããŸããã ãã®ãããªã¯ãšãªãéåžžã«ãã°ããèªãããšãåŠã¶ããšãã§ããŸãããæå³ã®ããäœããæžãã®ã«é±æ«å šäœãããããŸããã
wd:Q3624078
ããã®å€ãã®ãéæ³ã
wd:Q3624078
ããã³ãã®ä»ã®å±æ§ã
wdt:P31
ã¯ããšã³ãã£ãã£ãã§ããã
wd:Q3624078
ã¯ã䞻暩åœå®¶ãã§ããããšãç¥ã£ãŠããå¿ èŠããããŸãã äžæãªäººã¯çå笊ã§å§ãŸããèŠæ±ã®å®è¡ã¯ãæ¡ä»¶ãæºãããããªäºå®ã®ããªãã«ãæ€çŽ¢ããããšã«ãããŸãã ããšãã°
?country wdt:P31 wd:Q3024240
ãå±¥æŽç¶æ ã§ãããã¹ãŠã®ãªããžã§ã¯ããæ€çŽ¢ãããã ãããŠãåããªããžã§ã¯ããä»ã®ããªãã«ã«åå ã
?country wdt:P36/rdfs:label ?capital
-è³æ¬ã¯
?country wdt:P36/rdfs:label ?capital
ãã
?country wdt:P36/rdfs:label ?capital
ã
çŽ1é±éåŸãæåã®ããŒãžã§ã³ã®ã¹ã¯ãªãããçšæãããWikipediaããå°åæ å ±ãããŠã³ããŒããããŸããã ãããŠãããã§ãã1ã€ã®åé¡ãæããã«ãªããŸãããä»åã¯ããŒã¿ã«é¢ãããã®ã§ãã äžéšã®svgã¯
<?xml version="1.0" encoding="UTF-8"?>
å§ãŸã£ãŠããŸããã§ãã
<?xml version="1.0" encoding="UTF-8"?>
ãŸãããã©ãŠã¶ãŒã«ãã£ãŠæå¹ãªç»åãšããŠèªèãããŸããã§ããã 幞ããªããšã«ããœãŒã¹ãã¡ã€ã«ãç·šéã§ããŸãã wikipedia.orgã«ç»é²ããã®ã«è€éãªããšã¯ãããŸããããããã«1æ¥æµŽå Žã«ããããšã«æ°ã¥ããŸãã ããã«ããããã«å¯Ÿããä¿è·ããããŸãã ãã®ãããç¿æ¥ã®å€æ¹ãXMLãæ¯é ããXMLãã©ãã»ã©ã·ã³ãã«ã§ããã©ã°ãšãšã³ãã¬ã ããããã«è¡šç€ºãããããšãå¬ããæããŸããã
ããªãŽã³
äºå®ããŠã£ãããã£ã¢ã«ã次ã«å°çããŒã¿ã-Open Street Mapã«è¡ããšã ããŒã«ã«ã³ããŒãæã«åãã é«æ¶éè·¯ã®ãªã¯ãšã¹ãã®èšèªãç¿åŸããã®ã¯ã¯ãŒã«ã§ãããã©ããããæéãããããããæ³åã§ããŸããã ãŸããã©ããããéå±€ãååŸããå¿ èŠããããŸã...幞ããªããšã«ãããçš®ã®äººããã§ã«ãã®åé¡ã解決ããŠãããŸãã ã ãã®ãµãŒãã¹ã¯ãæ å ±ãååŸããããã®APIãæäŸããŸãã ç§ã¯ããããã¬ãã«6ãŸã§ã®ãã¹ãŠã®ããªãŽã³ïŒå°åºïŒãããŠã³ããŒãããPostgresã®ãã¹ãŠãåããããšãã§ããŸããã2Gb以äžãåºåãããŸããã åéºããªãã£ãããã§ã¯ãããŸãããäžéšã®ããªãŽã³ã¯éåžžã«å€§ããïŒããšãã°ãå§çž®ãããGeoJSONã§ã«ããã®ééã100 Mbãè¶ ããïŒããµãŒããŒãã¯ã©ãã·ã¥ããããå¿çããŸããã§ããã ãã®ãããªç¬éãæåã§ãã€ãã¹ããå¿ èŠããããŸããã ãã¹ãŠã®åãããŠã³ããŒãããQGISã«ããŒãžããŸããã ãšããã§ãããã¯ç§ã倧ãã«å©ããŠããããªãŒãã³ãœãŒã¹ãããžã§ã¯ãã®å¥ã®äŸã§ãã
ããã°ããŒã¿ã®åé¡
ã ãããç§ã¯ããŒã¿ãå«ãããŒã¿ããŒã¹ãæã£ãŠããŸããç§ã¯ã²ãŒã ãç«ã¡äžããŠ...ãããŠåŸ ã¡ãŸã...åã³åŸ ã¡ãŸã...ç»å ŽããŸããïŒ ããªãŽã³ããã©ãã°ããããšãã-圌ã¯æ»ãã ããžã ïŒ Chromeã¯ãã®ãããªãã€ã³ããåŠçã§ãããèœã¡ãŸããã é¡ã®æŠç¥ã¯ãã¯ãæ©èœããŸãããèããŠã¿ãŸãããã æãæçœãªã®ã¯ãããªãŽã³ã®è©³çŽ°ãæžããããšã§ãã å³ã®é¢ç©ã«äŸåããåŒãçµéšçã«å°ãåºãã-ããã¯è¯ããªã£ãã 皌åäžã®ã³ã³ãã¥ãŒã¿ãŒã§ã¯ãã¢ã«ãŽãªãºã ã¯ãã®å Žã§æ©èœããŸãããããµãŒããŒã®ãªãœãŒã¹ã¯å³ããå¶éãããŠããŸããã æ¥ç¶ãããredisã¯ããµãŒããŒäžã§æ¢ã«è¯ããªã£ãŠããŸãã ãã ããåãæšãŠãããããªãŽã³ã¯ãã©ãã°ã¢ã³ãããããã«é©ããŠããŸããé©åãªå Žæã«èšå®ãããšãå¢çç·ã¯Googleããããæç»ããå¢çç·ãšäžèŽããªããªããŸãã ãŸããããã¯ããŸãç©æ¥µçã§ãªãåŒãé©çšããŠè©³çŽ°ãæžããããšã§åé¿ã§ããŸãã ãã§ã«2ã€ã®ãã£ãã·ã¥ãããã®ã§ãå¯èœãªãã¹ãŠã®ãã®ããã£ãã·ã¥ããŠã¿ãŸãããïŒïŒ æ å ±ããã¯ã¹ïŒ2ã€ã®èšèªïŒã¯Redisã«é£ãã§ãããŸãããRedisã¯ãçããèšç®ããå¢çãããªãŽã³ã®äžå¿ãããã³ãµã€ãã®éçããŒãžã§ãã ãã®çµæãã²ãŒã ã¯ããéãåäœãå§ããå€ãã®ã¯ãŒã¯ããŒããPostgresããåé€ãããŸãããããã¯çè«çã«ã¯ããã«ããã¯ã«ãªãå¯èœæ§ããããŸãã ãã€ãã¹-ã¢ããªã±ãŒã·ã§ã³ã¯Redisãªãã§ã¯æ©èœããŸããã
æåã®å±é
ããã§ã¯ããã£ãŒãããã¯ã®ããã«ãããžã§ã¯ããå人ã«èŠããŸãããã ã»ãã®å°ãã ãïŒsitemap.xmlã®çæãrobots.txtã®è¿œå ãã¡ããªãã¯ã®æ¥ç¶ããœãŒã·ã£ã«ãã¿ã³ã®è¿œå ã ãããã¯ãŒã¯ãš...å±éïŒ ãã¹ãã£ã³ã°ãšããŠAWSãéžæããŸããã æäŸãããç¡æã®ãªãœãŒã¹ã«åãŸãããšãæã¿ãŸããã ãããŠãããã¯åå¿è ãããžã§ã¯ãã«ãšã£ãŠéåžžã«è¯ãã¹ã¿ãã¯ã§ãïŒ
- ã¢ããªã±ãŒã·ã§ã³ãµãŒããŒïŒt2.microïŒ1xCPUã1 Gb RAMã20Gb SSDïŒ
- ããŒã¿ããŒã¹ïŒdb.t2.microïŒ1xCPUã1 Gb RAMã20Gb SSDïŒ
- CDNã䜿çšãããã¡ã€ã«ã¹ãã¬ãŒãžïŒ5 Gb S3ã50 Gbã®ãã©ãã£ãã¯ïŒ
- ãã£ãã·ã³ã°ãµãŒããŒïŒcache.t2.microïŒ1xCPUã0.5 Gb RAMïŒ
- Elasticsearch + KibanaïŒt2.small.elasticsearchïŒ1xCPUã2 Gb RAMïŒ
ããã¯ãç§ãäœãšã䜿çšãããªã¹ãã§ãã éäžã§ã èšäºã®åœ¢ã§çæãäœæããããšã«ããŸããããããã«äº¡ããªããŸããã æéã¯ãã¡ããšéããŸãããã ããããããå¿ èŠãšããŠãããã©ããã¯æããã§ã¯ãããŸããã
ãã®çµæãå¥ä»ã®å¹Žã«ç§ã¯10ãã«ã®ãªãŒããŒãæ¯æããŸããã ããããããã§è©Šçšæéãçµäºããç§ã¯ç§»åããªããã°ãªããŸããã§ããã ãã®çµæžå šäœã®ææã³ã¹ãã¯æ°çŸãã«ã«è¿ã¥ãå§ããŸããã é¢çšãæ¯èŒããDigitalOceanã§è§£æ±ºããŸããã ä»ã®ãšããããã¹ãŠïŒã¢ããªã±ãŒã·ã§ã³ãµãŒããŒãããŒã¿ããŒã¹ããã£ãã·ã¥ïŒã«2 Gb RAMã®ååãªãã·ã³ããããŸãããAWSã«ã¯çµ±èšãšCDNãæ®ããŸããã ä»åºŠã¯ãDOãCDNãšã¹ãã¬ãŒãžã1ãæããã5ãã«ã§å ¥æã§ããããšãç¥ããŸããããããã£ãŠããã®éšåã移åããããšãæ€èšããã®ã¯çã«ããªã£ãŠããŸãã
ãªãŒãã³ãœãŒã¹ãžã®è»¢é
ãã®1æã®å€æ¹ããã³ããŒã¯ã®åŠæ ¡ããæçŽãåãåããŸããã ãã®æ¬è³ªã¯ã圌ãã100ãã«ãæã£ãŠãããšããäºå®ã«æ¥ãŠã圌ãã¯ç§ã«ããããäžããããšæã£ãŠããŸãã ãã ããæ¡ä»¶ããããŸã-ãããžã§ã¯ãã®ãœãŒã¹ã³ãŒããéããŠããå¿ èŠããããŸãã ãã®ç¬éãŸã§ãç§ã¯ãªãŒãã³ãœãŒã¹ã«ã€ããŠããèããŠããŸããã§ããã æ°æ©ãã©ã€ã»ã³ã¹ã®æ€èšãšéžæã«è¡ããŸããã ãã®çµæãGPLv3ã©ã€ã»ã³ã¹ã§Githubã«ãœãŒã¹ãã¢ããããŒãã ãçŽæããã100ãã«ãåãåããŸããã ããã«ãããã¢ãããŒã·ã§ã³ãå€§å¹ ã«åäžããŸãã-ç§ã®ãããžã§ã¯ãã¯æ¬åœã«åœ¹ã«ç«ã¡ãŸããïŒ ãããŠã次ã®ç®æšã§ããã²ãŒã ãšãã£ã¿ãŒã«æ¥ããŸããã 誰ããç¬èªã®ããºã«ãäœæã§ããããã«ã ããšãã°ãã第äºæ¬¡äžç倧æŠã«åå ããŠããåœãããã¯ã©ã¹ãããŒã«æºå·ã®å°åºãããåœåããªã©...ãããããã®ããã«ã¯ãç»é²ãšåå§çãªå人ã¢ã«ãŠã³ããå¿ èŠã§ããã ãã®çµæãéçºã¯3ãæãç¶ããã ãã®éãç§ã¯ajaxãä»ããŠããŒã¿ãååŸããããŒã«ã©ã€ãºãæ¥ç¶ãããã¬ãã¥ãŒãçæããããã®ç»åãšããŠgoogleããããä¿åããreduxãã«ããããé åã®ããªãŒãäœæããŸããã ã¯ãã圌ã¯æåããããŒã¿ã®åŠçãæäŒã£ãŠãããŸããããä»ã§ã¯å¹²æžããå¯èœæ§ãé«ããªã£ãŠããŸãã ã¬ãã¥ãŒãµãŒããã©ãã°ããŠããããäžã«ããªãŽã³ãæç»ãããããã®åããåŠçããã³ãŒããäœæããå¿ èŠããããŸãã 幞ããªããšã«ãã°ããŒãã«ã¹ããŒããžã®ãã€ã³ãã£ã³ã°ãåé€ããã®ã«æ°æ¥ãããããããã³ãŒããããŒã«ã«ã«ç§»åããã ãã§ã¢ããªã±ãŒã·ã§ã³ãç°¡çŽ åãããŸããã ãããŠãã¡ãããããã¯è¯ãçµéšã§ã:)
ãµãŒãã¹æ¥ç¶
å€ãã®ææãµãŒãã¹ã¯ããªãŒãã³ãœãŒã¹ãããžã§ã¯ãã«ç¡æã§ãµãŒãã¹ãæäŸããŠããããšãããããŸããã èªåãæ¥ç¶ãããã®ã ãããªã¹ãããŸãã
- ã»ã³ããªãŒ ã ãšã©ãŒããã£ããããããã®ãã®ãµãŒãã¹ã¯èª°ããç¥ã£ãŠãããšæããŸãã ãããžã§ã¯ãããããã€ããã°ããã®ãšãããã®ã³ã°ã¯ã¹ã¿ãã¯ãã¬ãŒã¹ãã¡ãŒã«ã«éä¿¡ããããšã§æ§æãããŠããŸããã ããã¯ããã¯ãšã³ãã§ã®ã¿æ©èœããŸããããããã³ããšã³ãã®ãã°ã远跡ãããã£ãã®ã§ãã ç¡é§ã§ã¯ãããŸãã-ããã2é±éã§ã¡ãã»ãŒãžã®ç¡æå¶éã䜿ãæãããŸããã ãšã©ãŒã®ã»ãšãã©ã¯Googleãããã©ã€ãã©ãªã®è žã«ãããäžèŠãããšéåžžã«å¥åŠã§ãã 調æ»äžãããã¯ãã¹ãŠç§ã®ããã§ããããšãå€æããŸããã ä¿®æ£ã¯1ãæ以äžç¶ããŸããããéåžžã«äŸ¿å©ãªjavascriptãšã©ãŒåŠçæ¹æ³ã§ããã
-crowdin.com-ããŒã«ã©ã€ãºã ãã®ãããžã§ã¯ãã«èª°ã§ãã¢ã¯ã»ã¹ã§ããããã«ããäºå®ã§ãã ã€ã³ãã©ããã¯ã¹ã圌ã®æ¯åœèªã§è¡šç€ºãããããšãå«ããŸãã ãŠã£ãããã£ã¢ããããããèšå ¥ããããšã¯åé¡ã§ã¯ãããŸããããäžè²«æ§ãä¿ã€ããã«ãåãèšèªã§ã€ã³ã¿ãŒãã§ãŒã¹ãæã¡ããã§ãããããŸã§ã®ãšããããã·ã¢èªãšè±èªã®ã¿ã«ç¿»èš³ãããŠããŸãã
-CircleCI ã CI / CDããã¹ããèªåå±éãªãã§ã¯ãææ°ã®ãããžã§ã¯ãã¯ã§ããŸããã Circledexãéžãã ã®ã¯ãYandex.Diskãæäœããããã®ã©ã€ãã©ãªãäœæãããšãã«ãã§ã«TravisCIãæäœããŠããããã§ã ã ã©ã€ãã©ãªã®ãã¹ãã«é©ããŠãããšããå°è±¡ãåããŸããã ã³ãŒãããã¹ãããç°å¢ã®ãããªãã¯ã¹ãèšå®ããã®ã¯ç°¡åã§ãã ãããããã¹ãèªäœã«ã¯åé¡ããããŸããã€ã³ãã©ã¹ãã©ã¯ãã£ã®æºåã¯ãã§ã«æŽã£ãŠããŸãããåžæããã»ã©å€ãã¯ãããŸããã
- ã€ãªãæ ã ã³ãŒãã«ãã¬ããžèŠèŠåãµãŒãã¹ã README.mdãããžã§ã¯ãã«æ¿å ¥ããã©ãã«ãä»ããããšãã§ããŸãã
-SonarQube ã ã³ãŒãå質管çã®ããã®ããŒãã¹ã¿ã å€ãã®ã«ãŒã«ã«åŸã£ãŠã³ãŒãããã§ãã¯ãã埪ç°çãªè€éããèæ ®ãããã¹ãã§ã«ãã¬ããžãç£èŠããããã«ã³ãŒãã®éè€ãèªèããŸãïŒ éåžžã«èå³æ·±ããµãŒãã¹ã§ããŸã å®å šã«ç解ããæéããããŸããã§ããã
-Githubãããã ãããŸã§ã®ãšãããäŸåé¢ä¿ãæŽæ°ããDependabotã®ã¿ãæ¥ç¶ãããŠããŸãã
ã³ã¡ã³ãã§ããããžã§ã¯ãã®ãµãŒãã¹ãšãããã®ãªã¹ããå ±æããããšããå§ãããŸãã
è«
ãã°ãšåé¡ã®åæã«ã¯ãå¥ã®èšäºãå¿ èŠã§ãã é¢çœããŠè€éã§ãä¿®æ£ãé£ãããã®ããããŸããïŒãããã£ãŠãChukotkaã¯åžžã«ãã®ä»£ããã«ãªããŸãïŒã çŸåšããŠãŒã¶ãŒãæ¬åœã«ç ©ããããã®ããããŸãã åçãåãåããšãããªãŽã³ã¯åé€ããïŒreact-google-mapsã©ã€ãã©ãªã§ïŒåäœæããããã®æç¹ã§ãŠãŒã¶ãŒããã©ãã°ããå ŽåãGoogleãããã¯ããã»ã¹ããŸã çµäºããŠããªããšæ³å®ãç¶ããŸãã ãã©ãã°ã¢ã³ãããããã®éçšã§ããªãŽã³ãæ¶ããŠãä»ã®ãã®ãã€ããããšãã§ããªããªã£ãããã«èŠããŸãã ãã¡ããããã©ãã°ã¢ã³ãããããããã»ã¹ã§å¿çåŠçãããã¯ããããšãã§ããŸãããããã«ãããçŸåšå®è£ ããŠãããã«ããã¬ã€ã€ãŒã²ãŒã ã匷å¶çµäºãããŸãã ããã°ã©ã ã§ãã©ãã°ã¢ã³ããããããäžæããæ¹æ³ãèŠã€ããããšããŸããããæçµçã«ã¯StackOverflowã«é¢ãã質åãšã Google Mapsã®ãã°ãæèµ·ããŸããã ãããŸã§ã圌ã¯ãã²ãŒã ãå£ããïŒããšãããã¿ã³ãè¿œå ããŸãããããã¯ãããå šäœãååæåããŸãããçµæã¯ãªã»ããããŸããã
次ã¯ïŒ
- ãã¶ã€ã³ã ç§ã¯ããã§ããã¹ãŠãå®å šã«æªãããšãèªããŸãã ç§èªèº«ã¯ã¬ã€ã¢ãŠããšã¬ã€ã¢ãŠãã®åéã§ã¯ãªãã®ã§ããã¶ã€ããŒãšã¬ã€ã¢ãŠããã¶ã€ããŒãéãå¿ èŠããããŸãã
- åçåã æåã¯äœãèšç»ããŠããŸããã§ããã ãã®ãããžã§ã¯ãã¯åºç€æè²ã«æ§ããããŠãããç§ã®æèŠã§ã¯èª°ã§ãã¢ã¯ã»ã¹ã§ããã¯ãã§ãã ç§ã¯ãã³ããŒã¯ã®åŠæ ¡ããã®æçŽã«éåžžã«è§ŠçºãããŸããããã»ãŒ1幎ãçµéãããã®éã«5ãã«ã®ééã¯1åã ãã§ããã ãŸããç§ã¯ããããµãŒããŒã®ä»£äŸ¡ãæãããšããã§ãããšã¯ä¿¡ããŠããŸããã§ããã ãããã圌ã¯ãšã«ããããã¬ãªã³ã§ãã£ã³ããŒã³ãéå§ããŸããã åæã«ãããããæåž«ãçµç¹ã«ææã®æ©äŒãå°å ¥ããããšãèããããšãã§ããŸãã ããšãã°ãç§ã¯åŠç¿ç®¡çã·ã¹ãã ãšçµ±åããçµéšããããŸããããã¯ãã³ãŒã¹ãäœæã§ãããã©ãããã©ãŒã ã®ã»ããã§ããããšãŒããããšã¢ã¡ãªã«ã§éåžžã«äººæ°ããããŸãã ç§ã®ç¥ãéãããœãŒã¹ã³ãŒãã¯Githubã®GPLã®äžã«ããããŸãããããã¯èè ãšããŠã䞊ååçšããŒãžã§ã³ã®éçºã劚ãããã®ã§ã¯ãããŸããã
- æºåž¯é»è©±ã iOS / Androidçšã®ã¢ããªã±ãŒã·ã§ã³ããªãªãŒã¹ãããã Yandexã®ææšããå€æãããšã4åã®1ã®ãŠãŒã¶ãŒãæºåž¯é»è©±ãã¿ãã¬ããã§ãã¬ã€ããããšããŠããŸãããå°é£ãæããŠããŸãã
- éçºã ãã¹ãŠã®äœæ¥ã¯GitHubã§è¡ãããŸã ã ç§ã¯ãããžã§ã¯ãã®éçºãç¶ããããšæã£ãŠããŸããããããäžäººã§è¡ãã®ã¯é£ããã§ãã èšç»ã«ã¯ããã«ããã¬ã€ã€ãŒã®è¿œå ãWorkshopã§ã®ã¿ã°ãè©äŸ¡ããã£ã«ã¿ãŒã®äœæãç©çãããïŒå±±ãæµ·ãå島ïŒã®ããªãŽã³ã®è¿œå ãå«ãŸããŸãã ãŸã é¢çœãããšãããããããã®ã§ãèšäºã®ç®æšã®1ã€ã¯ãå¿ãåãããã人ã ãèŠã€ããããšã§ãã ãã1ã€ã®ãªãã·ã§ã³ã¯ã Python Software Foundationãªã©ã®è²¡å£ã«è¡ã£ãŠå©æéãååŸããããšã§ãã
ãããçŸåšã®ç¶æ ã§ãã æåŸãŸã§èªãã§ãããŠããããšãïŒ ãã¡ãã§ãã¬ã€ã§ããŸã-geopuzzle.org㧠ã GitHubã®ãœãŒã¹ã³ãŒããã芧ãã ããã
UFOã±ã¢ãããã
ãã®è³æã¯çžåããææ ãåŒãèµ·ããå¯èœæ§ããããããã³ã¡ã³ããæžãåã«ãèšæ¶ã®äžã§éèŠãªäœããæŽæ°ããŠãã ããã
ã³ã¡ã³ããæžããŠçãæ®ãæ¹æ³
- äžå¿«ãªã³ã¡ã³ããæžããããå人çã«ãªããªãã§ãã ããã
- ãããã€ãªèšèé£ããäžæ¯è¡çºã¯é¿ããŠãã ããïŒããŒã«ã«å ãŸãã圢ã§ãïŒã
- ãµã€ãã®ã«ãŒã«ã«éåããã³ã¡ã³ããå ±åããã«ã¯ã[ã¬ããŒã]ãã¿ã³ïŒå©çšå¯èœãªå ŽåïŒãŸãã¯ãã£ãŒãããã¯ãã©ãŒã ã䜿çšããŸãã
察åŠæ¹æ³ ïŒ ãã€ãã¹ã«ã«ã | ãããã¯ãããã¢ã«ãŠã³ã
â èè ã®ã³ãŒãHabrãšhabraetiket
â ãµã€ãã«ãŒã«ã®å®å šç