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

ã³ãŒããŒãžã®æ ç±ã«ãã£ãŠäžçãæ¯é ãããæ¯æ¥æ°ããã¿ã¹ã¯ãã©ãã«ãŒãç»å Žããç§ãã¡ã®æ代ã«æ©éãããŸãã ç¶æ³èªäœã¯ãªãã¡ã¯ã¿ãªã³ã°ãæ±ããŠããŸãã ãèå£ãåããããããå€ãããŸãã¯éã«åãããããã匷ãç· ãããµãŒã¢ã¹ã¿ããã亀æããèžæ°èª¿æŽåšãèšå®ããŠãæ°ã«å ¥ãã®é£²ã¿ç©ãäœãããšãã§ãããã©ãã«ãŒãæžãã®ã¯çã«ããªã£ãŠããŸãã ãŸãã«ãã®ãããª-ããã°ã©ã å¯èœãªã¿ã¹ã¯ãã©ãã«ãŒ-ã¯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 ïŒã®äŸé Œã§ç§ãçºè¡ãããã®ã§ãæ¬æå šäœãå®å šã«èè ã®ãã®ã§ãã