æ¬ç€Œãããã«ïŒ
çµ±èšã«ãããšãæ°ããã¿ã¹ã¯ãã©ãã«ãŒã¯2é±éã«1å衚瀺ãããŸãã ãã§ããã«ãããŒãã®éžé æ¹æ³ã¯ããã£ãŠããŸãïŒã-éçºè
ãæããŠãããŸãã ããããŠãä»ã®ãã©ãã«ãŒã¯ãã¢ã¹ã¯ã¯-ã²ã¬ã³ãžãŒã¯åè»ã®ææ®è
ãšåãå質ã®ãè¶ãäœãããã³ãã«ãŽã¡ã¯ã ããéžé ãããŸããã ã«ãããŒãã泚ãããã«èå£ãåãããšãã§ããããæ°ããã¿ã¹ã¯ãã©ãã«ãŒãäœæããŸãããïŒ ããã¡ããïŒ ã«ãããŒãã¯ç§ã®ãæ°ã«å
¥ãã®é£²ã¿ç©ã§ã...
ã³ãŒããŒã¡ãŒã«ãŒãšOptimus Primeã®å
±éç¹ã«ã€ããŠã¯ããªãããã°ã©ã å¯èœãªã¿ã¹ã¯ãã©ãã«ãŒãå¿
èŠãªã®ããèå£ãåãæ¹æ³ã«ã€ããŠã¯ãã¡ããã芧ãã ããã

1969幎ã«ãè¶
å°ååè·¯ã®ç¶æ³ã¯ããã©ãã«ãŒã®çŸåšã®ç¶æ³ãšã»ãŒåãã«èŠããŸããã èšç®æ©ããªãªãŒã¹ãããã§ããïŒ ããããå°å·ããŸãã 1000ã§ä¹ç®ããæ©èœãåããé»åããªãªãŒã¹ãããã§ããïŒãã©ãžã«ã®äŒèšå£«åãïŒïŒ å¥ã®ããããå°å·ããŸãã æ¥æ¬äººãèšç®æ©çšã«æ倧12åã®ãããã泚æããã®ã¯ããã®ããžãã¯ã§ããã å瀟ã®ãã«ã¿ã€ã ããã¯ã¹ã¿ãŒã§ãããããããã¯ãèšèšå³ãå°é家ã«èŠãŠããªãã¡ã¯ã¿ãªã³ã°ãææ¡ããŸããã ãããããããã¯ã¹ã¿ãŒã«ãµããããã®ã§ã圌ã¯ããã»ã¹èªäœãã¹ãããããŠãã¢ã€ãã¢ã®å®è£
ããã§ããªã³ã»ãã¡ã®ã³ã«ä»»ããŸããã ãã®æç¹ã§å®å
šã«ç°ãªãæ¹åãççã«ççã«çºå±ããããã§ãã³ãã¬ãŒã§ãéã皌ãããšãã§ãããããçµå¶é£ã¯ãããžã§ã¯ãã§å®å
šã«æ¡ç¹ããŸããã ããã«ããéçºã倧å¹
ã«å éãããã§ã«1971幎
ã«é»æ°å·¥åŠã®
ããã°ã©ããŒããã¹ããå®äº
ããçç£ã®ããã«å±éããã·ãªãŒãº
ãéå§ããŸããã ãã¡ã³ãã¡ãŒã¬ãæã€ã€ã³ãã«ã¯ãæ¥æ¬äººã®æ³šæãå®äºããéãã«æ°ããäºæ¥ãéå§ããŸããã æ°å¹ŽåŸããã€ã¯ãããã»ããµåžå Žã¯
çªç¶éåžžã«åçæ§ãé«ããªãããã§ã«Bentleyã§å©çãäžããŸããã
ã³ãŒããŒãžã®æ
ç±ã«ãã£ãŠäžçãæ¯é
ãããæ¯æ¥æ°ããã¿ã¹ã¯ãã©ãã«ãŒãç»å Žããç§ãã¡ã®æ代ã«æ©éãããŸãã ç¶æ³èªäœã¯
ãªãã¡ã¯ã¿ãªã³ã°ãæ±ããŠããŸãã ãèå£ãåããããããå€ãããŸãã¯éã«åãããããã匷ãç· ãããµãŒã¢ã¹ã¿ããã亀æããèžæ°èª¿æŽåšãèšå®ããŠãæ°ã«å
¥ãã®é£²ã¿ç©ãäœãããšãã§ãããã©ãã«ãŒãæžãã®ã¯çã«ããªã£ãŠããŸãã ãŸãã«ãã®ãããª-ããã°ã©ã å¯èœãªã¿ã¹ã¯ãã©ãã«ãŒ-ã¯
Pintaskã§ãã
å°ãé
管
æ£çŽãªãšããããã€ã¯ãããã»ããµã®åºçŸã¯ãéç©åè·¯ã倧éçç£ããå§ãã1960幎代åé ã«çè«çã«å¯èœã§ããã ãã ããéäžã®è¥ãé»æ°æåž«ã¯ã80ã¬ãã«ã®æè¡çé害ã«ãããã€ããŠããŸããã ãã§ããªã³ã»ãã¡ã®ã³ã¯åœŒãã«ã€ããŠçŽæ¥ç¥ã£ãŠããŸããã ãããã圌ã¯ã¢ã¹ã¯ã¯å°äžéã®éè·¯ã§ã¯ãªãããããŽã¡å€§åŠã§ç©çåŠã®å士å·ãååŸããŸããã§ããã ãããã£ãŠã1968幎ã«ãFedericoã¯æåã®ã·ãªã³ã³ããŒã¹ã®é»çå¹æãã©ã³ãžã¹ã¿ãäœæããŸãããããã¯ãä»ã®ãã€ããŒã©ãããé«éã«åäœããã¹ããŒã¹ãåããŸããã ä»ã§ã¯
ããã€ã¬ã®ç
§æãæ¶ããã«ããã€ã¯ãåè·¯ã®æé©æ§ãå¿é
ããããšãã§ã
ãŸããã§ãã ããã€ã¯ãããã»ããµã®èšç®æ©ã¯ãé»çå¹æãã©ã³ãžã¹ã¿ãŒã§åäœãããããåäžä»£ãããéãå ç®ããã³ä¹ç®ãããŸããã ãŸãã圌ãã®å€æã¯äœãããã¹ãŠã®ãã©ãžã«ã®äŒèšçšã«ããã€ã¹ã賌å
¥ãããšãã«éåžžã«éåžžã«é¡èã§ãã
ç¶æ³ãè©äŸ¡ããããã«ãã€ãããŒã·ã§ã³ã«é¢ããã°ããŒãã«ãšãã¹ããŒãã«ç®ãåããŸãã
-ãã©ãŒãæ°ã¯ãããªãã®æèŠã§ã¯ããã€ã¯ãããã»ããµæè¡ã¯ããã«çºå±ããã®ã§ããããããããšããã€ããŒã©ãã©ã³ãžã¹ã¿ã®ã¡ãŒã«ãŒã¯ã¯ããã¯ãæ»ãæ¹æ³ãèŠã€ããŸããïŒ
-ç§ã¯ãããäœãã¬ãã«ã§ã®é©æ°ãæ¢åã®ç£æ¥ãå€ããããšãã§ãããšç¢ºä¿¡ããŠããŸãã ç§ã®æèŠã§ã¯ãããã¯ãŸãã«ãããäœã§ãããã§ãã
-ã³ã¡ã³ãããããšãããããŸãã ãããŠä»ãç§åŠã®äžçããã®ãã¥ãŒã¹ãžã 倩æåŠè
ã¯çããå®å®èæ¯ãå ±åããŸã...
Pintask㯠Meteor ã§æžãããŠããŸãã ãã®ãã¬ãŒã ã¯ãŒã¯ã¯ããã§ã«JavaScriptã®éã¿ã«ããŽãªã§Githubã®æã人æ°ã®ãããªããžããªã®1ã€ã§ããããã¯å
¬åŒãªãªãŒã¹ïŒçŸåšã®ããŒãžã§ã³ïŒ0.8ïŒããåã§ãã ããã«ãŒãã¥ãŒã¹ã§ã®çºè¡šã ãã§1362祚ãéããŸããã ã³ã¡ã³ãããã®æç²ïŒãããã¯ç£æ¥é©åœã®ãããªãã®ã§ããããç§ã¯ãããååã«æ¯æããããšã¯ã§ããŸããã-ããŠãããªãã¯ãã€ã³ããåŸãã æçè«è
ã®åããã¯ãé£ã¹ãåŸã§ããMeteorã¯ãŠã§ãéçºã®æ°ããããŒãžãéãããšå®å
šã«èšãããšãã§ããŸãã ããã«ããã®ããŒãžã®HTMLã³ãŒãã¯ãã©ã€ããã§ãããµãŒããŒããæ°ããããŒã¿ãåä¿¡ãããšããã³ãã¬ãŒããèªåçã«æŽæ°ããããããããã«åŸãå¿
èŠã¯ãããŸããã ãããAjaxãªã¯ãšã¹ãã¯å¿ããŠãã ãããããŒã¿ã¯ãå®å
šãªMongoDB APIãä»ããŠJavaScriptã«å€æŽããããã©ãŠã¶ã§çŽæ¥å©çšã§ããŸãã ãã®çµæãèšç®ã®90ïŒ
ãã¯ã©ã€ã¢ã³ãã§å®è¡ãããŸãã Meteorã³ãŒã
ã¯ã䜿çšããã¹ããŒã¹ãå°ãªããããªã¥ãŒã ãå°ãªãã
ã³ã¹ããäœããæžã蟌ã¿ãéãã
ãšãã«ã®ãŒãç¯çŽãã転éãããããŒã¿ã®éãåæžããŸãã ããŒãã£ãåã³ãã«ãããŠã ã§éãã ïŒ
äœãèµ·ãããèŠãŠã¿ãŸãããã ä»åã¯ãããŒã¿ããŒã¹ãžã®ã¢ã¯ã»ã¹ã¯ãã©ãŠã¶å
ã§è¡ãããŸãã ãã³ãã¬ãŒãããã©ãŠã¶ã«ãããŸãããããã¯2ã€ã§ãã ãã¹ãŠãJS + HTMLã§æ©èœããŸãããããã¯3ã€ã§ãã ãããããŠãŒã¶ãŒã«
ã¹ã¯ãªããã
æ¥ç¶ããæ©äŒãäžãããšã©ããªããŸããïŒ çµå±ã®ãšããã圌ãã®å©ããåããŠãããªãã¯ãã³ã°ããŠãªã¹ããŒãäœãããã³ãã¬ãŒããåå®çŸ©ããããŒã¿ãæžãçããããšãã§ããŸã...ãããŠã¿ãããéããŠèŠãŸããã ãããŠãããããç· ããŸãã ãããŠããµãŒã¢ã¹ã¿ããã眮ããŸãã
ãã¹ãŠã®ã«ãããŒã
Pintaskã¯ãMeteorã§æžãããæåã®ã¿ã¹ã¯ãã©ãã«ãŒã§ãã ãŸããæ¡åŒµæ©èœããã©ãŠã¶ã«çŽæ¥ããŠã³ããŒãããŠãããŒã¿ããŒã¹APIãšãã³ãã¬ãŒããžã®å®å
šãªã¢ã¯ã»ã¹ãå¯èœã«ããæåã®ã¿ã¹ã¯ãã©ãã«ãŒã
ãã®ãããªæ¡åŒµæ©èœã®
äŸã次ã«ç€ºããŸãã
if !Cards throw "Hey, where are my Cards?" if !Comments throw "Look, I need those Comments, too!" Comments.after.insert (userId, comment) -> cardId = comment.cardId card = Cards.findOne(cardId) if userId not in card.memberIds Cards.update(cardId, {$addToSet: {memberIds: userId}})
æè¿ãç§ã¯CoffeeScriptã«ã¯ãŸã£ãŠããŸãããã¡ãããäž»æµã§ã¯ãããŸããããéçºãã¹ããŒãã¢ããããŸãããã®åçŽãªèªååã¯ãç®é ãã§çµã¿ç«ãŠãå解ã§ããŸãã æåã«ãæ žæŠäºã®ãã§ãã¯ãããã€ããããŸãïŒã¹ã¯ãªãããå¥ã®ãµã€ãã«åŒã³åºãããå ŽåïŒã 次ã«ãã³ã¡ã³ããæ¿å
¥ãããšæ©èœããæéç匟ãã€ã³ã¹ããŒã«ãããŸãã éåè
ãã«ãŒãã®ã¡ã³ããŒã§ãªãå Žåã圌ã¯è¡ææ³¢ã«ãã£ãŠããã«æããããŸãã
ãã³ãã¬ãŒãã®åäœã確èªãããã§ããïŒ
ç§ã¯ããããæã£ãŠããŸã ã ããã§ã¯jQueryãé¢ä¿ããŠããŸããäžèŠãã³ãŒãã¯ã€ã¿ãªã¢æçã«äŒŒãŠããŸãã ããããåºãããããåžåãå§ãããšãå³ããã調åçã«æããã«ãªãããã®åŸ...ãåŸ
ã£ãŠãç¹°ãè¿ããŠïŒã
ãããšã¯å¥ã«ãå€éšããŒã¿ãœãŒã¹ã®æ¥ç¶ã«èšåãã䟡å€ããããŸãã ãã¯ã€ãããžãã¯ã䜿çšãããšãGoogleã¹ãã¬ããã·ãŒãã®æååããã¿ã¹ã¯ãäœæã§ããŸãã ãããŠãå¥äžçã®APIã®å©ããåãããã©ãã¯ããžãã¯ã«ãããPintaskã§çŽæ¥Github IssuesãåŒã³åºããå
éšãã©ãã«ãŒãšå€éšãã©ãã«ãŒã®ã³ã¡ã³ãéã®åæ¹åéä¿¡ã»ãã·ã§ã³ã調æŽããããšãã§ããŸãã ããã¯ãã¹ãŠãMongoDBã³ã¬ã¯ã·ã§ã³ãéããŠè¡ãããŸãã å®éããã®æ¡åŒµæ©èœã¯ãç¹å¥ãªã¹ã¯ãªããã䜿çšããŠPintaskã«ããŒã¿ãèªã¿èŸŒãå¥åã®ã¢ããªã±ãŒã·ã§ã³ã§ãã
ããŒã®åŸã
ãšããã§ãåãGithubãä»ããŠç¬èªã®æ¡åŒµæ©èœãæ¥ç¶ã§ããŸãã æãåçŽãªã±ãŒã¹ã§ã¯ãGithub Pagesã§ãªããžããªãå
¬éããjsãã¡ã€ã«ãžã®çŽæ¥ãªã³ã¯ãååŸããŠãPintaskã«è²Œãä»ããŸãã ãã©ã€ã§å¿«é©ã§ããããšãããããŸããïŒãããŠãã³ããããå°çãããšæŽæ°ãããŸãïŒã
ãŸããã¢ããªã±ãŒã·ã§ã³å
šäœããã©ãã¯ãžã£ãã¯ã«æ¥ç¶ããå¿
èŠãããå Žåã¯ãåãMeteorã®ç¡æãã¹ãã£ã³ã°ã«é
眮ãããªã³ã¯ãæ¿å
¥ã§ããŸãã
ãŠãŒã¶ãŒã«ãšã£ãŠã¯ããã¹ãŠãããã«ç°¡åã«èŠããŸãã
Extensions Storeã«è¡ããå¿
èŠãªãã®ãéžæããŠãéæ³ã®ãã¿ã³ãæŒããŸãããããŠãæéŠã軜ãããããšãã³ãŒããŒã¡ãŒã«ãŒãOptimus Primeã«å€ãããŸãã
ããã°ã©ããŒã¯å¯å€§ãªäººã
ãªã®ã§ãèšãã®ã¯å®å
šã§ããã»ãšãã©ã®ã¢ããªã±ãŒã·ã§ã³ã¯ç¡æã§ãã ããããããã¬ãšã«ãéŠãçµããããããå€ãã®æšãå¿
èŠãªå ŽåïŒããªã¥ãŒã ãã¡ã€ã«ã¹ãã¬ãŒãžãSMSã²ãŒããŠã§ã€ïŒããŠãŒã¶ãŒãæåŠã§ããªãã¢ããªã±ãŒã·ã§ã³ã«ããããšãã§ããŸãã èªåã§çšŒãã§ããŸãã
æèšã確èªãã
ããïŒ ããã«ãææã¢ããªã±ãŒã·ã§ã³ããããŸãïŒ
autopilotã§ã®æé远跡 ã ããã°ã©ããŒãæéã远跡ããã®ãã©ãã»ã©é£ãããã¯èª°ããç¥ã£ãŠããŸãã ç§ãã¡ã®å¿ã®ç³ã¿èŸŒã¿ãããŸããåŸãããªãã¯åæ§ã®å
éšå¯Ÿè©±ã«äŒãããšãã§ããŸãïŒ
-ã¡ãã£ãšæèïŒ Yandex.Marketãšã®çµ±åã«ã€ããŠèããŠã¿ãŸãããã
-åŸ
ã£ãŠãåŸ
ã£ãŠ...ãã¹ã¿ãŒãããã¿ã³ãæŒãã®ãå¿ããŠããŸãããïŒ
-ããã確ãã«ã ããã§ã¯ãªãã¯ããŸããã
-ãããã£ãã ããã§ãããã³ã€ã³ã«ã€ããŠäœã話ããŸãããïŒ
-ãããã³ã€ã³ãšã¯äœã§ããïŒ Yandex.Marketã«ã€ããŠè©±ããŸããã
ããããã¯ã...åŸ
ã£ãŠãåã®ã¿ã¹ã¯ã®éå§ãã¿ã³ãæŒããŸãããïŒã
ãã¯ããããã§ããã ãã©ããã ä»ãã確èªããŸãã
-確èªããŸãããã ããã§ãœãªãã£ã¢ãã¬ã€ã¢ãŠãããŸãã
粟ç¥åæå»ã«è¡ããªãããã«ãæé远跡ã®éåžžã®ã¡ã«ããºã ãå€æŽããããšã決å®ãããéå§ããã¿ã³ãæŸæ£ããŸããã 代ããã«ãåãªã¹ãã®ããããŒã«ãæé远跡ãæå¹ã«ãããã¢ã€ã³ã³ãé
眮ããŸãã ã·ã¹ãã ã«ãã°ã€ã³ãããšãæéã®è¿œè·¡ãèªåçã«éå§ãããããŒã¯ããããªã¹ãã®æåã®ã¿ã¹ã¯ã®è¿œè·¡ãéå§ãããŸãã ã¿ã¹ã¯ãã¢ãŒã«ã€ããããããå¥ã®ãªã¹ãã«è»¢éããããšãæé远跡ã¯ã¯ãªããã«åºã¥ããŠæ¬¡ã®ã¿ã¹ã¯ã«åãæ¿ãããŸãã ãã®çµæãããã°ã©ããŒã¯æé远跡ã«ã€ããŠãèããŸããã ããã¯ã¡ããã©ãã®ä»äºãããã·ã¹ãã ã¯æéééãèªåçã«ãã£ããã£ããŸãã
æè¡çãªå®è£
ã§ã¯ãæšæºã®Meteorã¡ã«ããºã ãšãŠãŒã¶ãŒã¹ããŒã¿ã¹ããã±ãŒãžã䜿çšããŠã¢ã¯ãã£ããã£ãç£èŠããŸãã MongoDBã³ã¬ã¯ã·ã§ã³ã®äœ¿ãæ
£ãããªã¹ããŒã䜿çšãããšã远跡ããã¿ã¹ã¯ãå®çŸ©ã§ããŸãã ãã®ã³ãŒãã¯ãsetTimeoutïŒholyãholyïŒã䜿çšãããã€ãã³ãã®ã¿ã䜿çšããŸãã ãã®çµæããµãŒããŒãåèµ·åããŠããå±¥æŽãäžæããããšã¯ãããŸããã
æ£ç¢ºãªã¬ããŒããååŸãããã§ããïŒ
å
¥ã£ãŠãæ¥ããããããªãã§ãã ãã ã
ãã¶ãŒãçš
åºæ¬ãã©ãããã©ãŒã ã®äŸ¡æ Œã¯ãããã§ããïŒ ãã³ã¿ã¹ã¯ã¯å®å
šã«ç¡æã§ãã æ©èœå¶éãåºåãæé¡æéã¯ãããŸããã ããããããã¯ã°ã©ãŠã³ãã«ã¯
ãªãŒãã³ãªãŠã£ã ã
èª å®ãªãµããŒã ãåçŸãããŸãã
æåŸã«ãPintaskã¯Trelloã®å®å
šãªä»£æ¿åã«ãªãããåªããŠããŸãïŒãããããã€ã³äº€æãïŒã æµ·å€ãµãŒãã¹ã®ãã¹ãŠã®åºæ¬æ©èœã¯ãã§ã«å®è£
ãããŠããŸãã
Trelloããã®å³æ
ã€ã³ããŒãããããŸãã ãŸãã
åæ¹ååæãå®è¡ããŠãTrelloã®ã¢ãã€ã«ã¢ããªãä»ããŠPintaskãžã®ã¢ã¯ã»ã¹ãæäŸããŸãïŒç¬èªã«äœæããåã«ïŒã
ä»åŸã®èšäºã§ã¯ã補åéçºããã»ã¹ãšå
éšAPIã®äœ¿çšã®åŸ®åŠãªéãã«ã€ããŠèª¬æããäºå®ã§ãã ããã§ã«ãŒãã³ãã§ããŸãããã¢ã³ã³ãŒã«ã«åºãããå¿
èŠããããã©ããã¯ããªã次第ã§ãã
æçµãªã³ã¯ïŒ
Pintask ãããã°ã©ã å¯èœãªã¿ã¹ã¯ãã©ãã«ãŒã
ãã®èšäºã¯ãããã¹ãŽã«ããã§ãïŒ starfall ïŒã®äŸé Œã§ç§ãçºè¡ãããã®ã§ãæ¬æå
šäœãå®å
šã«èè
ã®ãã®ã§ãã