
UPDïŒ Youtubeã®èšäºã®ãããªããŒãžã§ã³ãæŽæ°ããŸããïŒè¬çŸ©ã¯ã ãããã°ã©ãã³ã°ã«é¢ãã100ã®ãããªè¬çŸ©ãã®äžç°ãšããŠã2019幎4æ18æ¥ã«ããšãå·¥ç§å€§åŠã§èšé²ãããŸããïŒã
ã¡ã¿ããã°ã©ãã³ã°ã®äžè¬çãªç解㯠ãéåžžéåžžã«ææ§ã§ãããå€ãã®å Žåã次ã®ãªãã·ã§ã³ã§çµãããŸãã
- ã³ã³ãã€ã«ãã³ãã¬ãŒããšãã¯ã
- èªåèªèº«ãå€æŽããããã°ã©ã
- å¥ã®ããã°ã©ã ãçæããããã°ã©ã
次ã®å®çŸ©ãææ¡ããŸãã
ã¡ã¿ããã°ã©ãã³ã°ã¯ãããã°ã©ã ã®æ§é ãšåäœã®ããã°ã©ã çãªå€æŽã«åºã¥ããŠæ§ç¯ãããããã°ã©ãã³ã°ãã©ãã€ã ã§ãã
ãããŠããããã©ã®ããã«æ©èœããã®ãããªããããå¿ èŠãªã®ãããããŠæçµçã«ã©ã®ãããªé·æãšçæãåŸãã®ããåæããŸãã
ã¢ããªã³ã°ãšã¯äœã§ããïŒ
ã¡ãœããèªäœã¯ã¢ãã«ããã¡ã¿ããŒã¿ãåé€ããããš ã§ã¢ãã«ã®æœè±¡åã¬ãã«ãäžããããšãå«ãããã ã¡ã¿ããã°ã©ãã³ã°ã®æŠå¿µã¯ã¢ããªã³ã°ãšå¯æ¥ã«é¢é£ããŠããŸã ã ãã®çµæã ã¡ã¿ã¢ãã«ãšã¡ã¿ããŒã¿ãååŸããŸãã ã¢ãŒãªãŒãã€ã³ãã£ã³ã°ãŸãã¯ã¬ã€ããã€ã³ãã£ã³ã°äžïŒã³ã³ãã€ã«ã翻蚳ããŸãã¯ããã°ã©ã æäœäžïŒã«ãã¡ã¿ã¢ãã«ãšã¡ã¿ããŒã¿ããèªåçãªããã°ã©ã æ¹æ³ã§ã¢ãã«ãå床ååŸããŸãã äœæãããã¢ãã«ã¯ãã¡ã¿ã¢ãã«ã®ããã°ã©ã ã³ãŒããå€æŽããããšãªããå€ãã®å Žåãããã°ã©ã ãåæ¢ããããšãªããäœåºŠãå€æŽã§ããŸãã
é©ãã¹ãããšã«ã人ã¯åé¡ã®è§£æ±ºã«æåããããšãã§ããŸãããã®è€éãã¯ã ã¢ãã«ãšæœè±¡æŠå¿µã®æ§ç¯ã䜿çšããŠãèšæ¶ãšæèã®èœåãè¶ ããŠããŸãã ãããã®ã¢ãã«ã®ç²ŸåºŠã«ãããææ決å®ããã³å¶åŸ¡ã¢ã¯ã·ã§ã³ã®éçºã«å¯Ÿããæçšæ§ã決ãŸããŸãã ã¢ãã«ã¯åžžã«äžæ£ç¢ºã§ãããçŸå®ã®ããäžéšã1ã€ä»¥äžã®åŽé¢ãŸãã¯åŽé¢ã®ã¿ã衚瀺ããŸãã ãã ããéããã䜿çšæ¡ä»¶ã§ã¯ãã¢ãã«ã¯ãµããžã§ã¯ãé åã®å®éã®ãªããžã§ã¯ããšåºå¥ã§ããªãå ŽåããããŸãã ç©çã¢ãã«ãæ°åŠã¢ãã«ãã·ãã¥ã¬ãŒã·ã§ã³ã¢ãã«ãªã©ã®ã¢ãã«ããããŸããããŸãã¯æ å ±ããŒã¿ã¢ãã«ãšããã°ã©ã ããžãã¯ã¢ãã«ã«èå³ããããŸãã ããã°ã©ãã³ã°ãã©ãã€ã ããããã¯ãããã°ã©ã ããžãã¯ã®ã¢ãã«ã§ããããšãã°ãåœä»€åã宣èšåãæ©èœçãã€ãã³ããã«ã§ãã ããã°ã©ããŒãšããŠã®ç§ãã¡ã®ä»äºã¯ãã³ãŒããæžãããšã§ã¯ãªãããŸãã¢ãã«ãšæœè±¡åãæ§ç¯ããããšã§ãã ãããã£ãŠãã¡ã¿ããã°ã©ãã³ã°ã䜿çšãããšãã¢ãã«ã®æœè±¡åã¬ãã«ãäžããŠãã¢ãã«ãããæ®éçã«ããããšãã§ããäœæ¥ãéåžžã«èå³æ·±ããã®ã«ãªããŸãã
ã¡ã¿ããã°ã©ãã³ã°ãšã¯äœã§ããïŒ
ã¡ã¿ããã°ã©ãã³ã°ã¯æ°ãããã®ã§ã¯ãããŸãããããããèšèªãå¿çšåéã§å®è·µçãªããã°ã©ãã³ã°ã®çµéšãããå Žåã¯åžžã«äœ¿çšããŠããŸãã å°ãªããšãFonneimannã¢ãŒããã¯ãã£ã®ã³ã³ãã¥ãŒã¿ãŒåãã®ãã¹ãŠã®ããã°ã©ãã³ã°ãã©ãã€ã ã¯ãäœããã®åœ¢ã§ãã®ã¢ãŒããã¯ãã£ããã¢ããªã³ã°ã®åºæ¬ååãç¶æ¿ããŠããŸãã ãã©ã³ãã€ãã³ã¢ãŒããã¯ãã£ã®æãéèŠãªååã¯ã1ã€ã®ãŠãããŒãµã«ã¡ã¢ãªã§ããŒã¿åŠçã®ããžãã¯ãå®çŸ©ããããŒã¿ãšåœä»€ã®æ··åã§ãã ã€ãŸããããã°ã©ã ãšããŒã¿ã®éã«æ ¹æ¬çãªéãããªãããšã§ã ã ããã«ã¯å€ãã®çµæããããŸããæåã«ããã·ã³ã¯ã³ãã³ããã©ãã«ãããã©ãã«çªå·ãããããããã®æ·±ããšã¿ã€ããäœã§ããããã©ããã¢ãã¬ã¹ãã©ããé åãã©ããæååãã©ãããã®æååã®é·ããã©ã®ãšã³ã³ãŒããæ瀺ãããŠããããªã©ãåºå¥ããå¿ èŠããããŸããããªããžã§ã¯ããå¯èŠé åãªã©ã®è€éãªæ§é ãŸã§ã ããã¯ãã¹ãŠã¡ã¿ããŒã¿ã«ãã£ãŠæ±ºå®ãããŸã;ã¡ã¿ããŒã¿ããªããã°ãFonneimannã¢ãŒããã¯ãã£ã®ããã°ã©ãã³ã°èšèªã§ã¯äœãèµ·ãããŸããã 第äºã«ãããã°ã©ã ã¯æ ŒçŽãããŠããã¡ã¢ãªãä»ã®ããã°ã©ã ããããã®ãœãŒã¹ã³ãŒãã«ã¢ã¯ã»ã¹ããã³ãŒããããŒã¿ãšããŠåŠçã§ããããã翻蚳ãšè§£éãèªåãã¹ããšæé©åãã€ã³ããã¹ãã¯ã·ã§ã³ãšãããã°ãåçãªã³ã¯ãªã©ãå¯èœã«ãªããŸãå¥ã®ã
å®çŸ©ïŒ
ã¡ã¿ããŒã¿ã¯ããŒã¿ã«é¢ããããŒã¿ã§ãã ããšãã°ãå€æ°ã®ã¿ã€ãã¯å€æ°ã®ã¡ã¿ããŒã¿ã§ãããé¢æ°ã®ãã©ã¡ãŒã¿ãŒã®ååãšã¿ã€ãã¯ãã®é¢æ°ã®ã¡ã¿ããŒã¿ã§ãã
ã€ã³ããã¹ãã¯ã·ã§ã³ã¯ãå€æ°ãšé¢æ°ãåãšãªããžã§ã¯ããã¯ã©ã¹ãšãããã¿ã€ãã«é¢ããã¡ã¿ããŒã¿ãå«ããæäœäžã«ããã°ã©ã ãã¡ã¢ãªæ§é ã«é¢ããã¡ã¿ããŒã¿ãååŸã§ããã¡ã«ããºã ã§ãã
åçãã€ã³ãã£ã³ã° ïŒãŸãã¯é 延ãã€ã³ãã£ã³ã°ïŒã¯ãèå¥åãä»ããé¢æ°ã®åŒã³åºãã§ãããå®è¡æ®µéã§ã®ã¿åŒã³åºãã¢ãã¬ã¹ã«ãªããŸãã
ã¡ã¿ã¢ãã«ã¯ãã¡ã¿ããŒã¿ã®æŽŸçå ã§ãããã¡ã¿ããŒã¿ã®åä¿¡æã«ç¹å®ã®ã¢ãã«ãåçã«çæããé«ã¬ãã«ã®æœè±¡æ§ã®ã¢ãã«ã§ãã
ã¡ã¿ããã°ã©ãã³ã°ã¯ãããã°ã©ã ã®æ§é ãšåäœã®ããã°ã©ã çãªå€æŽã«åºã¥ããŠæ§ç¯ãããããã°ã©ãã³ã°ãã©ãã€ã ã§ãã
ãããã£ãŠãä»æ¥ããã¡ã¿ããã°ã©ãã³ã°ã®äœ¿çšãéå§ããããšã¯ã§ããŸããããæèçã«ããŒã«ãåæãåæãããã³é©çšã§ããŸãã ããã¯é説çã§ãããå€ãã¯Fonneimannã¢ãŒããã¯ãã£ã䜿çšããŠããŒã¿ãšããžãã¯ãåé¢ããåŸåããããŸãã äžæ¹ããããã¯åé¢ãããã¹ãã§ã¯ãªããæ£ããæ¹æ³ã§çµåãããã¹ãã§ãã ä»ã®ã¢ãŒããã¯ãã£ãããšãã°ã¢ããã°ãœã«ããŒãããžã¿ã«ã·ã°ãã«ããã»ããµïŒDSPïŒãããã°ã©ããã«ããžãã¯éç©åè·¯ïŒFPGAïŒãªã©ããããŸãã ãããã®ã¢ãŒããã¯ãã£ã§ã¯ãèšç®ã¯åœä»€çã«å®è¡ãããŸãããã€ãŸããã¢ã«ãŽãªãºã ã§æå®ãããåŠçæäœã®ã·ãŒã±ã³ã¹ã§ã¯ãªãã䞊ååäœããããžã¿ã«ãŸãã¯ã¢ããã°èŠçŽ ã«ãã£ãŠå®è¡ããããªã¢ã«ã¿ã€ã ã§å€ãã®æ°åŠçããã³è«ççãªæäœãå®çŸãããã€ã§ãæ¢è£œã®çããæã£ãŠããŸãã ãããã¯ããªã¢ã¯ãã£ãããã³æ©èœããã°ã©ãã³ã°ã®é¡äŒŒç©ã§ãã FPGAã§ã¯ãåããã°ã©ãã³ã°äžã«åè·¯ã®åãæ¿ããè¡ãããŸãããDSPã§ã¯ãããžãã¯ãå°èŠæš¡ãªåè·¯ã®åãæ¿ãããªã¢ã«ã¿ã€ã ã§å¶åŸ¡ããŸãã ã¡ã¿ããã°ã©ãã³ã°ã¯ãéåœä»€ããžãã¯ãŸãã¯ãã€ããªããããžãã¯ãåããã·ã¹ãã ã§ãå¯èœã§ããããšãã°ãããFPGAãå¥ã®FPGAãåããã°ã©ã ã§ããªãçç±ã¯ããããŸããã
次ã«ããœãããŠã§ã¢ã¢ãžã¥ãŒã«ã®å³ã«ç€ºãããŠããäžè¬åãããã¢ãã«ãæ€èšããŸãã åã¢ãžã¥ãŒã«ã«ã¯å¿ ãå€éšã€ã³ã¿ãŒãã§ã€ã¹ãšãœãããŠã§ã¢ããžãã¯ããããŸãã ãŸããæ§æãç¶æ ãèªã¿åãå°çšã¡ã¢ãªãªã©ã®ã³ã³ããŒãã³ããååšããªãããäž»èŠãªåœ¹å²ãæããå¯èœæ§ããããŸãã ã¢ãžã¥ãŒã«ã¯ãã€ã³ã¿ãŒãã§ã€ã¹ãä»ããŠä»ã®ã¢ãžã¥ãŒã«ããèŠæ±ãåä¿¡ããç¹å®ã®ãããã³ã«ã§ããŒã¿ã亀æããããšã§ãããã«å¿çããŸãã ã¢ãžã¥ãŒã«ã¯ãããã°ã©ã ããžãã¯ã®ã©ãããã§ãä»ã®ã¢ãžã¥ãŒã«ã®ã€ã³ã¿ãŒãã§ã€ã¹ã«èŠæ±ãéä¿¡ãããããçä¿¡éä¿¡ã¯ã€ã³ã¿ãŒãã§ã€ã¹ã«ãã£ãŠæ¥ç¶ãããçºä¿¡éä¿¡ã¯ã¢ãžã¥ãŒã«å šäœã«æ£åšããŠããŸãã ã¢ãžã¥ãŒã«ã¯ããã倧ããªã¢ãžã¥ãŒã«ã®äžéšã§ãããããèªäœãããã€ããŸãã¯è€æ°ã®ãµãã¢ãžã¥ãŒã«ããæ§ç¯ãããŸãã äžè¬åã¢ãã«ã¯ãæ©èœããªããžã§ã¯ãããããã»ã¹ããµãŒããŒãã¯ã©ã¹ã¿ãŒã倧èŠæš¡ãªæ å ±ã·ã¹ãã ãŸã§ãããããèŠæš¡ã®ã¢ãžã¥ãŒã«ã«é©ããŠããŸãã ã¢ãžã¥ãŒã«ãçžäºäœçšããå ŽåãèŠæ±ãšå¿çã¯ããŒã¿ã§ãããã¢ãžã¥ãŒã«ãããŒã¿ãåŠçããæ¹æ³ããŸãã¯å¥ã®ã¢ãžã¥ãŒã«ã«ããŒã¿ãåŠçããããæ瀺ããæ¹æ³ã«åœ±é¿ããã¡ã¿ããŒã¿ãå¿ ãå«ãŸããŸãã

ã¡ã¿ããã°ã©ãã³ã°ã®ãã¯ããã¯ãšãã¯ããã¯ãæ€èšãå§ããåã«ãã¡ã¿ããã°ã©ãã³ã°ã«é¢ããŠã¯åžžã«äžèšåŒçšããããšæããŸãã ã¡ã¿ããã°ã©ãã³ã°ã¯ããã¹ãŠã®ãµã€ãããã£ãã¯ã·ã¹ãã ã®åºç€ãšãªããã®ãããªåºæ¬çãªæ³åŸãåæ ãããã®ã§ãããšããèãã瀺åããŠããŸãã ã€ãŸãããã£ãŒãããã¯ã䌎ãèŠå¶ã«ãã£ãŠãè¡åã®å¶åŸ¡ãä¿®æ£ãããã³æŽ»åã®ãã©ã¡ãŒã¿ãŒãçºçããããªãã³ã°ãã·ã¹ãã ã§ãã ããã«ãããã·ã¹ãã ã¯ããŸããŸãªæ¡ä»¶äžã§ããŸããŸãªå€æŽãå ããŠç¶æ ãšæ§é ãåçŸã§ããŸããããã®ããã®æŽŸçã·ã¹ãã ã®çæãªã©ãéèŠã§ããŸããŸãªåäœãç¶æã§ããŸãã
ãããã¯ãç§ãå¶äœäœåã§æå³ãããã®ããŸãã¯ååç§ãèšã£ãããã«ãããªãã©ã»ãªãã©ã³ãºãã§ããã å²åŠã§ã¯ããèªç¶ãªèªç¶ããšãèªç¶ãªèªç¶ããšãããèªç¶ãªèªç¶ããšãèªç¶ãªèªç¶ããåºå¥ãããŸãã é¡æšã«ããããcultura culturataããšãcultura culturansãã圢æã§ããŸãã ããšãã°ãã倱ãããæãæ±ããŠããšããå°èª¬ã¯ãäœåãšããŠã§ã¯ãªãããã«ã«ãã¥ã©ã«ã«ãã¥ã©ã³ããŸãã¯ããªãã©ãªãã©ããšããŠäœãããŠããŸãã ããã¯ã®ãªã·ã£äººãããŽãšåŒãã ãã®ã§ãã
// Merab Mamardashviliãå€ä»£å²åŠã«é¢ããè¬çŸ©ã
ã¡ã¿ããã°ã©ãã³ã°ã¯ã©ã®ããã«æ©èœããŸããïŒ
å®çŸ©ã«åºã¥ããŠã次ã®3ã€ã®è³ªåã解æããå¿ èŠããããŸãã
- å€æŽã¯ãã€çºçããŸããïŒ
- æ£ç¢ºã«äœãå€ãã£ãŠããŸããïŒ
- ã©ã®ãããªå€åãèµ·ãã£ãŠããŸããïŒ
å€æŽãçºçããå Žå ïŒããšãã°ãIDEãã³ãŒããããŒã¿ãšããŠåæããå€æŽãæ¯æŽãããªããžã§ã¯ããé¢æ°ã®ååããããã®ã¿ã€ããææ¡ãããã³ãã¬ãŒããçæãããããã€ã¢ã°ã©ã ãããžã¥ã¢ã«ã¢ããªã³ã°ããŒã«ããã³ãŒããããã¯ãèªåçã«æ§ç¯ãããããå Žåã®éçºæéã®ã¡ã¿ããã°ã©ãã³ã°ãŠãŒã¶ãŒã€ã³ã¿ãŒãã§ã€ã¹ãããŒã¿ããŒã¹ããã®ä»ã®CAD / CAMéçºããŒã«ã®ããžã¥ã¢ã«ãšãã£ã¿ãŒã§ã ã³ã³ãã€ã«æéã®å€æŽã®äŸïŒåä»ããããŠããªãã¢ã«ãŽãªãºã ããåä»ãã¢ã«ãŽãªãºã ãäœæããç¹å®ã®ç°å¢ã§å®è¡ãããèšèªãžã®æœè±¡åºŠã®é«ãèšèªããOSããã³ããŒããŠã§ã¢ãã©ãããã©ãŒã ãŸã§ã®ã³ãŒããçæããããã®ãã©ã³ã¹ã¬ãŒã¿ãŒã ããããããã°ã©ã ã®åäœäžã«ããã°ã©ã ã®åäœãå€æŽããããšã«ãã£ãšé¢å¿ããããŸããããã«ã€ããŠã¯ã以äžã§è©³ãã説æããŸãã
ããã§ãè¡åãšæ§é ã®å€åã®æéã«å¿ããŠãã¡ã¿ããã°ã©ãã³ã°ã®æ¬¡ã®åé¡ãææ¡ããŸãã
- éçºäžïŒèšèšæïŒ
- ã³ã³ãã€ã«æã«
- ã¢ããªã±ãŒã·ã§ã³ã®å®è¡äžïŒå®è¡æïŒ
- ã¿ã¹ã¯å®è¡äžïŒãžã£ã¹ãã€ã³ã¿ã€ã ïŒ
- ã¿ã¹ã¯éïŒã¬ã€ãžãŒïŒ
- æéå¥ïŒã¿ã€ããŒïŒ
- å€éšåŒã³åºãïŒãã«ïŒ
- ã€ãã³ãå¥ïŒããã·ã¥ïŒ
æ£ç¢ºã«äœãå€ãã£ãŠããŸããïŒ
- ããŒã¿åãšããŒã¿æ§é ã
- èå¥å ïŒã¢ãžã¥ãŒã«å ã®ã¯ã©ã¹ãã¿ã€ããå€æ°ã®ååãããã³ã¢ãžã¥ãŒã«ãä»ã®ã¢ãžã¥ãŒã«ãåç §ããååïŒ;
- åŒã³åºã ïŒé¢æ°ãšã¡ãœããã®ååãåçãã€ã³ãã£ã³ã°ãåäžã¢ãžã¥ãŒã«å ã§ããªã¢ãŒãã¢ãžã¥ãŒã«ã®ã¢ãã¬ã¹ç©ºéã«ãããªããžã§ã¯ããã¯ã©ã¹ããŸãã¯é¢æ°ãè¡šãã¹ã¿ããæ§ç¯ãããã¹ã¿ã/ã¹ã±ã«ãã³ãã¿ãŒã³ã®äœ¿çšãå«ãããããã¹ãŠã®ã¹ã¿ãåŒã³åºããªã¢ãŒãåŒã³åºããšåäžã§ããïŒ;
- ããŒã¿åŠçã¢ã«ãŽãªãºã ã®ãã©ã¡ãŒã¿ãŒãŸãã¯ç°ãªãå Žåãããã¢ãã«ã®ãã©ã¡ãŒã¿ãŒã
- åŒãåŒããã³è«çåŒãæ£èŠè¡šçŸãªã©ã®çœ®æ ã
- ã³ãŒãèªäœã¯åçã«è§£éãããŸã ïŒã¡ã¿ããŒã¿ã¯é垞宣èšåã§ãããããã¯å¿ é ã§ã¯ãããŸãããåœä»€åã§ããããåœä»€åã³ãŒãã®ãã©ã°ã¡ã³ããå«ãå ŽåããããŸãïŒã
- ããŒã¿ããªããžã§ã¯ããããã³ã¯ã©ã¹ã®ã·ãªã¢ã«å/éã·ãªã¢ã«åãããã³1ã€ã®ã¢ãžã¥ãŒã«ããå¥ã®ã¢ãžã¥ãŒã«ãžã®è»¢éæã®ã³ãŒãä¿®æ£ã«ããããŒã·ã£ãªã³ã° ïŒéåžžã¯ä¿®æ£ã«å¯ŸåŠããŸãããä»ã®ä¿®æ£ãããå ŽåããããŸãïŒã
ã©ã®ãããªå€åãèµ·ãã£ãŠããŸããïŒ
- æ§ææ§é ã®è§£æããã³å€æïŒæååæäœãŸãã¯æ£èŠè¡šçŸã«ãã解æã䜿çšïŒã
- ååãŸãã¯ã€ã³ããã¯ã¹ã«ããèå¥åãžã®ã¢ã¯ã»ã¹ïŒãªããžã§ã¯ããã©ã¡ãŒã¿ãé£æ³é åãªã©ãå«ãïŒã
- å®å šãªå 芳 ïŒæŠå¿µãç°åžžãªå Žåã¯äžèšã®å®çŸ©ãåç §ïŒã
- æåã®ã¯ã©ã¹ã®ãªããžã§ã¯ãã®åå¥å ïŒã¡ã€ã³ã¡ãœããïŒïŒ
- ã¯ããŒãžã£ãéããŠæ©èœããŸãã
- åçãªäœæãšäžçŽç©ã«ãããªããžã§ã¯ãã
- ããã°ã©ãã³ã°èšèªãæäŸãããèããããããšãèããããªãããšããã¹ãŠæå³ããŸãã
ãªãã¡ã¿ããã°ã©ãã³ã°ãå¿ èŠãªã®ã§ããïŒ
ã¡ã¿ããã°ã©ãã³ã°ã«ãã£ãŠå®è£ ãå€§å¹ ã«ç°¡çŽ åããããããœãªã¥ãŒã·ã§ã³ãå¯èœã«ãªãå Žåã®äž»ãªã¿ã¹ã¯ãšã±ãŒã¹ã匷調ã§ããŸãã
- æ©èœã®æ¡åŒµããœãããŠã§ã¢ã®æ±çšæ§ã®åäžã
- å€æŽãéåžžã¢ãŒãã®å Žåã®åçãµããžã§ã¯ããšãªã¢ã
- ã·ã¹ãã éçµ±åã®ç°¡çŽ åã¯å¥ã®åé¡ã§ãããããã¯éåžžã«åœ¹ç«ã¡ãŸãã
äŸ1
ã¢ãã«ããã¡ã¿ããŒã¿ãæœåºããŠã¡ã¿ã¢ãã«ãæ§ç¯ããæãåçŽãªäŸãèããŠãã ããïŒ githubã®äŸãåç §ïŒã æåã«äŸã®åé¡ãå®çŸ©ããŸãïŒè¡ã®é åããããç¹å®ã®ã«ãŒã«ã«åŸã£ãŠãããããã£ã«ã¿ãªã³ã°ããå¿ èŠããããŸãïŒäžèŽããè¡ã®é·ãã¯10ãã200æåãŸã§ã§ããå¿ èŠããããŸãããé·ãã¯50ãã65æåãŸã§ã®è¡ãé€å€ããŸãã è¡ã¯ãAbuãã§ã¯ãªããMichãã§å§ãŸãå¿ èŠããããŸãã è¡ã«ã¯ãVããå«ãŸããŠããå¿ èŠãããããLevãã¯å«ãŸããŠããŸããã è¡ã¯ãovãã§çµããå¿ èŠãããããiovãã§çµããããšã¯ã§ããŸããã äŸã®ããŒã¿ãå®çŸ©ããŸãã
let names = [ 'Marcus Aurelius Antoninus Augustus', 'Darth Vader', 'Victor Michailovich Glushkov', 'Gottfried Wilhelm von Leibniz', 'Mao Zedong', 'Vladimir Sergeevich Soloviov', 'Ibn Arabi', 'Lev Nikolayevich Tolstoy', 'Muammar Muhammad Abu Minyar al-Gaddafi', 'Rene Descartes', 'Fyodor Mikhailovich Dostoyevsky', 'Benedito de Espinosa' ];
ã¡ã¿ããã°ã©ãã³ã°ãªãã§ããžãã¯ãå®è£ ããŸãã
function filter(names) { let result = [], name; for (let i=0; i<names.length; i++) { name = names[i]; if ( name.length >= 10 && name.length <= 200 && name.indexOf('Mich') > -1 && name.indexOf('V') === 0 && name.slice(-2) === 'ov' && !( name.length >= 50 && name.length <= 65 && name.indexOf('Abu') > -1 && name.indexOf('Lev') === 0 && name.slice(-3) === 'iov' ) ) result.push(name); } return result; }
åé¡ã解決ããããã«ã¢ãã«ããã¡ã¿ããŒã¿ãéžæããããããå¥ã®æ§é ã«åœ¢æããŸãã
{ length: [10, 200], contains: 'Mich', starts: 'V', ends: 'ov', not: { length: [50, 65], contains: 'Abu', starts: 'Lev', ends: 'iov' } }
ã¡ã¿ã¢ãã«ãæ§ç¯ããŠããŸãïŒ
function filter(names, conditions) { let operations = { length: (s, v) => s.length >= v[0] && s.length <= v[1], contains: (s, v) => s.indexOf(v) > -1, starts: (s, v) => s.indexOf(v) === 0, ends: (s, v) => s.slice(-v.length) === v, not: (s, v) => !check(s,v) }; function check(s, conditions) { let valid = true; for (let key in conditions) valid &= operations[key](s, conditions[key]); return valid; } return names.filter(s => check(s, conditions)); }
ã¡ã¿ããã°ã©ãã³ã°ã®å©ããåããŠåé¡ã解決ããããšã®å©ç¹ã¯æããã§ãããæ§æå¯èœãªããžãã¯ãåãããŠãããŒãµã«ã©ã€ã³ãã£ã«ã¿ãŒãååŸããŸããã ãã£ã«ã¿ãªã³ã°ãåãã¡ã¿ããŒã¿æ§æã§äžåºŠã ãã§ã¯ãªãè€æ°åå®è¡ããå¿ èŠãããå Žåãã¡ã¿ã¢ãã«ãã¯ããŒãžã£ãŒã«ã©ããããåã ã®é¢æ°ã®ãã£ãã·ã¥ãååŸããŠäœæ¥ãé«éåã§ããŸãã
äŸ2
2çªç®ã®äŸã¯ãã¡ã¿ããã°ã©ãã³ã°ã䜿çšããŠããã«èšè¿°ããŸãïŒ githubã®äŸãåç §ïŒãgovnokodeã§ãã®ãµã€ãºãæ³åãããšãæããªãããã§ãã ã¿ã¹ã¯ã®èª¬æïŒç¹å®ã®URLããHTTP GET / POSTãªã¯ãšã¹ããè¡ããããã¡ã€ã«ããããŒã¿ãããŠã³ããŒãããåä¿¡ããããŒã¿ãHTTP PUT / POSTãä»ããŠä»ã®URLã«è»¢éãããããã¡ã€ã«ã«ä¿åãããããå¿ èŠããããŸãã ãã®ãããªæäœãããã€ããããç°ãªãæéééã§å®è¡ããå¿ èŠããããŸãã ã¿ã¹ã¯ã¯ã次ã®ããã«ã¡ã¿ããŒã¿ãšããŠèª¬æã§ããŸãã
[ { interval: 5000, get: 'http://127.0.0.1/api/method1.json', save: 'file1.json' }, { interval: '8s', get: 'http://127.0.0.1/api/method2.json', put: 'http://127.0.0.1/api/method4.json', save: 'file2.json' }, { interval: '7s', get: 'http://127.0.0.1/api/method3.json', post: 'http://127.0.0.1/api/method5.json' }, { interval: '4s', load: 'file1.json', put: 'http://127.0.0.1/api/method6.json' }, { interval: '9s', load: 'file2.json', post: 'http://127.0.0.1/api/method7.json', save: 'file1.json' }, { interval: '3s', load: 'file1.json', save: 'file3.json' }, ]
ã¡ã¿ããã°ã©ãã³ã°ã䜿çšããŠåé¡ã解決ããŸãã
function iterate(tasks) { function closureTask(task) { return () => { console.dir(task); let source; if (task.get) source = request.get(task.get); if (task.load) source = fs.createReadStream(task.load); if (task.save) source.pipe(fs.createWriteStream(task.save)); if (task.post) source.pipe(request.post(task.post)); if (task.put) source.pipe(request.put(task.put)); } }; for (let i = 0; i < tasks.length; i++) { setInterval(closureTask(tasks[i]), duration(tasks[i].interval)); } }
ãçŸããåããæžããããšãããããã¡ã¿ã¢ãã«å ã«æ¢ã«ããã¡ã¿ããŒã¿ãåãåºããŠãå¥ã®ç³ã¿èŸŒã¿ãäœæã§ããŸãã ã¡ã¿ããŒã¿ã«ãã£ãŠæ§æãããã¡ã¿ã¢ãã«ã¯æ¬¡ã®ããã«ãªããŸãã
function iterate(tasks) { // Metamodel configuration metadata // let sources = { get: request.get, load: fs.createReadStream }; let destinations = { save: fs.createWriteStream, post: request.post, put: request.put }; // Metamodel logic // function closureTask(task) { return () => { console.dir(task); let verb, source, destination; for (key in sources) if (task[key]) source = sources[key](task[key]); for (key in destinations) if (task[key]) source.pipe(destinations[key](task[key])); } } for (let i = 0; i < tasks.length; i++) { setInterval(closureTask(tasks[i]), duration(tasks[i].interval)); } }
ãã®äŸã§ã¯ãã¿ã¹ã¯ãåå¥åããããã«ã¯ããŒãžã£ãŒã䜿çšãããŠããããšã«æ³šæããŠãã ããã
äŸ3
2çªç®ã®äŸã§ã¯ãdurationé¢æ°ã䜿çšããŸãããã®é¢æ°ã¯ãèæ ®ããŠããªãããªç§åäœã®å€ãè¿ããŸãã ãã®é¢æ°ã¯ã次ã®åœ¢åŒã®æååãšããŠæå®ãããééå€ã解éããŸãããDd Hh Mm SsããäŸãã°ã1d 10h 7m 13sãããã®åã³ã³ããŒãã³ãã¯ãªãã·ã§ã³ãäŸãã°ã1d 25sããééãããªç§åäœã§çŽæ¥èšå®ããå Žåãã¡ã¿ããŒã¿ãæå®ããã®ã«äŸ¿å©ã§ãã
// Parse duration to seconds, example: duration('1d 10h 7m 13s') // Parse duration to seconds // Example: duration('1d 10h 7m 13s') // function duration(s) { let result = 0; if (typeof(s) === 'string') { let days = s.match(/(\d+)\s*d/), hours = s.match(/(\d+)\s*h/), minutes = s.match(/(\d+)\s*m/), seconds = s.match(/(\d+)\s*s/); if (days) result += parseInt(days[1]) * 86400; if (hours) result += parseInt(hours[1]) * 3600; if (minutes) result += parseInt(minutes[1]) * 60; if (seconds) result += parseInt(seconds[1]); result = result * 1000; } if (typeof(s) === 'number') result = s; return result; }
次ã«ãã¡ã¿ããŒã¿ã«ãã£ãŠæ§æããã解éãå®è£ ããŸãã
function duration(s) { if (typeof(s) === 'number') return s; let units = { days: { rx: /(\d+)\s*d/, mul: 86400 }, hours: { rx: /(\d+)\s*h/, mul: 3600 }, minutes: { rx: /(\d+)\s*m/, mul: 60 }, seconds: { rx: /(\d+)\s*s/, mul: 1 } }; let result = 0, unit, match; if (typeof(s) == ='string') for (let key in units) { unit = units[key]; match = s.match(unit.rx); if (match) result += parseInt(match[1]) * unit.mul; } return result * 1000; }
äŸ4
ããã§ãã¢ãžã¥ãŒã«ã®çµ±åã«äœ¿çšãããã€ã³ããã¹ãã¯ã·ã§ã³ã¡ã¿ããã°ã©ãã³ã°ãèŠãŠã¿ãŸãããã ãŸãããã®æ§é ã䜿çšããŠã¯ã©ã€ã¢ã³ãã§ãªã¢ãŒãã¡ãœãããå®çŸ©ããã¢ããªã±ãŒã·ã§ã³ããžãã¯ãèšè¿°ãããšãã«ãããã®åŒã³åºãã䜿çšããæ¹æ³ã瀺ããŸãã

let ds = wcl.AjaxDataSource({ read: { get: 'examples/person/read.json' }, insert: { post: 'examples/person/insert.json' }, update: { post: 'examples/person/update.json' }, delete: { post: 'examples/person/delete.json' }, find: { post: 'examples/person/find.json' }, metadata: { post: 'examples/person/metadata.json' } }); ds.read({ id: 5 }, (err, data) => { data.phone = '+0123456789'; ds.update(data, () => console.log('Data saved')); });
次ã«ãå¥ã®ã¢ãžã¥ãŒã«ããåãåã£ãã¡ã¿ããŒã¿ããåæåããã¢ããªã±ãŒã·ã§ã³ããžãã¯ãå€æŽãããŠããªãããšã瀺ããŸãã
let ds = wcl.AjaxDataSource({ introspect: { post: "examples/person/introspect.json" } }); ds.read({ id:3 }, (err, data) => { data.phone ="+0123456789"; ds.update(data, () => console.log('Data saved')); });
次ã®äŸã§ã¯ããªã¢ãŒããšåãã€ã³ã¿ãŒãã§ã€ã¹ãæã€ããŒã«ã«ããŒã¿ãœãŒã¹ãäœæããã¢ããªã±ãŒã·ã§ã³ããžãã¯ãå€æŽãããŠããªãããšã瀺ããŸãã
let ds = wcl.MemoryDataSource({ data: [ { id: 1, name: 'Person 1', phone: '+380501002011', emails: [ 'person1@domain.com' ], age: 25 }, { id: 2, name: 'Person 2', phone: '+380501002022', emails: [ 'person2@domain.com', 'person2@domain2.com' ], address: { city: 'Kiev', street: 'Khreschatit', building: '26' } }, { id: 3, name: 'Person 3', phone: '+380501002033', emails: [ 'person3@domain.com' ], tags: [ { tag: 'tag1', color: 'red' }, { tag: 'tag2', color: 'green' } ] }, ]}); ds.read({ id: 3 }, (err, data) => { data.phone ="+0123456789"; ds.update(data, () => console.log('Data saved')); });
çµè«
ã¡ã¿ããã°ã©ãã³ã°ã®ãã¯ããã¯
- ã¿ã¹ã¯èšè¿°ã¹ã¿ã€ã«ïŒå®£èšçïŒã¡ã¿ããŒã¿ïŒãåœä»€çããã³æ©èœçæ¿å ¥ã䜿çš
- ããã·ã¥ïŒé£æ³é åïŒã¯äºåã«ããŒãç¥ããŸããïŒlet a = {}; [ããŒ] =å€;
- æååã®è§£éãç¬èªã®æ§æã®çºæããŸãã¯äžè¬ã«åãå ¥ããããŠããæ§æïŒjsonãjsãregexp ...ïŒ
- äžçŽç©ïŒããã¯ã¹ã€ã³ïŒïŒé¢æ°mixinïŒaïŒ{a.fn =ïŒïŒ=> {...}}ãè¿œå ããå ŽæãããããŸãã
- ã¯ããŒãžã£ãŒïŒé¢æ°fn =ïŒa =>ïŒïŒ=> a * 2ïŒïŒvalueïŒãããŒãœãã©ã€ãºããŸã
- ã³ãŒããµã€ãºïŒå€ãã®å Žåæ¥æ¿ã«æžå°ããŸããããããã«å¢å ããå ŽåããããŸã
- ããã©ãŒãã³ã¹ïŒãããã«äœäžããŸãããé©åãªå®è£ ã§ã¯ã»ãŒåããŸãŸã§ã
- æè»æ§ïŒããã°ã©ã ã³ãŒãã¯ããæ®éçã«ãªãããœãããŠã§ã¢ã®ç¯å²ã¯æ¡å€§ããŠããŸã
- çµ±åïŒéåžžãå€§å¹ ã«ç°¡çŽ åãããå¿ èŠãªã³ãŒãã®å€æŽãå°ãªããªããŸãã
- ä»äºããã®åã³ïŒã¡ã¿ããã°ã©ãã³ã°ã¯ããèå³æ·±ããããããå€ãã®åã³ãšã¢ãããŒã·ã§ã³ããããŸã
- éçºé床ïŒéçºã«æéãããããã¡ã³ããã³ã¹ãã¯ããã«ç°¡åã«ãªããå€ãã®æéãç¯çŽãããŸã
é¢é£ãªã³ã¯
- Githubã®äŸã®å®å šãªãœãŒã¹ã³ãŒãïŒ https : //github.com/tshemsedinov/metaprogramming
- ã¬ããŒããžã®ã¹ã©ã€ãïŒ http : //www.slideshare.net/tshemsedinov/javascript-36636872
ã¢ã€ãã¢ã®éçºã远跡ããå€ãèšäº
- ã¡ã¿ããã°ã©ãã³ã°http://habrahabr.ru/post/137446/
- ã¡ã¿ã¢ãã«ã®åç解éhttp://habrahabr.ru/post/154891/
- æ¡åŒµåç解éã¹ããŒã http://blog.meta-systems.com.ua/2011/01/blog-post_28.html
- ããã€ãã®æœè±¡ã¬ã€ã€ãŒãæã€ããŒã¿ããŒã¹ã®èšèšã«ãããã¡ã¿ã¢ãã«ã®äœ¿çšïŒããŒã1 http://habrahabr.ru/post/119317/
- ããã€ãã®æœè±¡ã¬ã€ã€ãŒãæã€ããŒã¿ããŒã¹ã®èšèšã«ãããã¡ã¿ã¢ãã«ã®äœ¿çšïŒããŒã1 http://habrahabr.ru/post/119885/
- æ å ±ã·ã¹ãã ã®çµ±åhttp://habrahabr.ru/post/117468/
- ã¡ã¿ã¬ãã«ã®çŽ¹ä»http://blog.meta-systems.com.ua/2011/01/blog-post.html
- æ å ±ã·ã¹ãã ã®çµ±åã®åé¡ã«ãããã¡ã¿ã¢ãã«http://blog.meta-systems.com.ua/2010/07/blog-post.html
- é話ãŸãã¯ã¡ã¿ããŒã¿ã®çµ±åïŒ http://blog.meta-systems.com.ua/2009/10/blog-post_18.html
- ã¢ãã«ãšã¡ã¿ã¢ãã«http://blog.meta-systems.com.ua/2009/10/blog-post_05.html