ããã°ã©ãã³ã°ã®æ¥½ããããªã¼ãã³ã½ã¼ã¹ã¨ã®åºä¼ãã
ãåºçããããç§ã¨ Ruby ã¨æ·»åã¨ãã¨ããå 容ã§å¯ç¨¿ãã¾ãããç§ãã©ãããã°ã©ãã³ã°ã»ãªã¼ãã³ã½ã¼ã¹ã®æ¥½ãããç¥ã£ããã«ã¤ãã¦ã®æ話ã§ããå ¬éãã¦è¯ããã¨ã®ãã¨ãªã®ã§å ¬éãããã¾ãã
ãªããæç« ä¸ã«åºã¦ãã tdiarytimes.rb ã®ã³ã¼ãã¯ä»¥ä¸ã§ãã9å¹´åã«æ¸ããã³ã¼ããªã®ã§ä»èªã¿è¿ãã¨æ¥ãããããéãè¶ãã¦ãã¯ãå¾®ç¬ã¾ããã§ããï¼ï¼ï¼ããã§ãå½æã¯ãèªåãªãã«ã§ããã ã綺éºãªã³ã¼ãã«ãã¦å ¬éããè¨æ¶ãããã¾ãã
ç§ã¨ Ruby ã¨æ·»åã¨
ããã°ã©ãã³ã°æè¡ã®åä¸ãããã«ã¯ãã©ãããæ¹æ³ãããã§ãããããããã°ã©ãã³ã°ã«é¢ããæ¸ç±ãèªãããªã¼ãã³ã½ã¼ã¹ã§å ¬éããã¦ããã³ã¼ããèªããåªç§ãªååã¨åããã¡ã«ãã¯ããã¯ã身ã«ã¤ãã¦ããããªã©ãªã©æ§ã ãªæ¹æ³ãããã§ãããã
æ話ããã¾ããããç§ãããã°ã©ãã³ã°ã®æ¥½ãããç¥ããããã°ã©ãã³ã°ã«ã®ããè¾¼ãã§ãã£ãã®ã¯å¤§å¦ä¸å¹´çã®æã§ãããå½æããã°ã©ãã³ã°ããã¾ã好ãã§ç¡ããã»ã¨ãã©ã³ã¼ãããããªãã£ãç§ã¯ã大å¦ã®ç 究室ã§ã³ã¼ããæ¸ãå¿ è¦ã«è¿«ãããªãããã®æ¹æ³ã§ããã°ã©ãã³ã°ãç¿å¾ããå¿ è¦ãããã¾ããã
ããããªãããæ¼ ç¶ã¨ããã°ã©ãã³ã°ãè¦ãããã¨æã£ã¦ããã£ã¨ç¿å¾ã§ããããã§ã¯ããã¾ããã大å¦ã§ç¿ãããã°ã©ãã³ã°ã®è©±ã¯ãUML ã¢ããªã³ã°ããªãã¸ã§ã¯ãæèã®èãæ¹ã§ãã¢ããã«ã¯ã©ã¹ãç¶æ¿ãã¦ç¬ãç«ããã¨ãã£ãæ¦å¿µçãªè©±ã§ãã£ãããããããããããããã°ã©ãã³ã°ããã解ããªãç§ã«ã¨ã£ã¦ãã®ãããªé«ç´ãªã¬ã¤ã¤ã¼ã®è©±ã¯ãã£ã±ãã§ããã
ããã§èªåãä½ããããã®ããä½ã£ã¦ã¿ããã¨æããèªåã使ã£ã¦ããæ¥è¨ã·ã¹ãã ã«æ©è½ãå¢ããã¦ã¿ãããã¨èãã¾ããã幸ãã«ã使ã£ã¦ããæ¥è¨ã·ã¹ãã ãããã©ã°ã¤ã³ã§æ¡å¼µå¯è½ãª Ruby ã§æ¸ãããæ¥è¨ãtDiaryãã§ãã£ãããããã®ãã©ã°ã¤ã³ã試è¡é¯èª¤ããªããæ¸ãã¦ã¿ã¾ããã
å®éã«æ¸ãã¦ã¿ãã¨ã常æ¥é ãã使ã£ã¦ãããã®ãèªåãæãå ãããã¨ã«ããå¤åãããã¨ããä½ããåµé ãã¦ãããããªä¸è½æã楽ãããã¿ãã¿ããã¡ã«ããã°ã©ãã³ã°ã«åµã¾ã£ã¦ããã¾ããã
ãªãå½æ(2003å¹´) å¨ãã§ã¯ php ã Java ãæµè¡ã£ã¦ãã¾ããããå¨ãã¨éã£ããã¨ããããã¨æã£ã¦ããèªåã¯ãå½æã§ã¯ã¾ã ã¾ã ãã¤ãã¼ã ã£ã Ruby ãæ¸ããèªåã«ãã³ã¤ã¤çãªä¸äºç çãªæè¦ã«é ãããããã¨æã£ã¦å± ãã®ãè¯ãæãåºã§ãã
ãããªããã°ã©ãã³ã°ã®æ¥½ãããå¾ã ã«è§£ã£ã¦ããã¨ãã«ãMTBlogTimes ã¨ããæ稿ããæé帯ã«ãã£ã¦ãã¼ã³ã¼ãã®ãããªç»åã«ã©ã¤ã³ãå»ã(ç»åæ¤ç´¢ããã¨ã©ããªãã®ããã解ãã¨æãã¾ã) Movable Type ã®ãã©ã°ã¤ã³ãã·ã³ãã«ã§ãã£ãããã£ããããããã tDiary ã®ãã©ã°ã¤ã³ã¨ãã¦å®è£ ãã tdiarytimes.rb ã¨ããã©ã¤ãã©ãªãå ¬éããã¨ãããtDiary ä½è ã®ãã ãã ãããã®ç®ã«ã¨ã¾ããtDiary ã® CVS ã¬ãã¸ããªã®ä¸ã«å ¥ãã¦ãããã¾ããã
èªåãä½ã£ããã®ãæ¬å®¶ã®ã³ã¼ãã«å ¥ããªãã¦ï¼ã¨å¤§å¤åãã ã®ã§ããããã ãã§ã¯ããã¾ããã§ãããæ¬ç¨¿ã§æ¨è¦ãã¦ããæ¬ã®ä½è ãéæ¨å³°éããã tdiarytimes.rb ãã¯ã©ã¹åããç¶æ¿ããã¯ã©ã¹ãã¨ã«ç»åã®è¦ãæ¹ãå¤ãããªãã¸ã§ã¯ãæèã®å®è£ ãå ¥ããå¤§å¹ ã«ãªãã¡ã¯ã¿ãªã³ã°ãã¦ãã ãã£ãã®ã§ãããã®ãªãã¡ã¯ã¿ãªã³ã°ã«ãããã¯ã©ã¹ã®ä½¿ãæ¹ãç¶æ¿ã®æ¦å¿µãããã·ã³ãã«ãªã³ã¼ãã®æ¸ãæ¹ãªã©æ§ã ãªããã°ã©ãã³ã°ã®ã¨ãã»ã³ã¹ãå¦ã¶ãã¨ãã§ãã¾ããã
ã¾ããªã¼ãã³ã½ã¼ã¹ã§ã³ã¼ããå ¬éãããã¨ã®ã¡ãªããã楽ãããç¥ããã¨ãã§ããå¤ã«åºãã®ãæ¥ãããããããªã³ã¼ãã§ãã¨ããããå ¬éãã¦ããã¨ãèªåã«ã¨ã£ã¦ãå½¹ç«ã¤ãã誰ãã®ããã«ãã²ãã£ã¨ãããå½¹ã«ç«ã¤ãããã¨æãããã«ãªãã©ãã©ãã³ã¼ããå ¬éããããã«ãªãã¾ããã
ãã®å¾ãå¥ã®ã¤ãã³ãã§éæ¨ããã«ã¾ãã³ã¼ããæ·»åãã¦ããã ãæ©ä¼ã«æµã¾ãã¾ãããæããã¯ããã°ã©ãã³ã°ãã§ããããã«ãªã£ããã©ããã¾ãã¡ã©ããæ¹åãã¦è¯ãã®ã解ããªãã¨æã£ã¦ãããã¾ããããæ§ã ãªç®æã«ææãããããã¾ãããã°ã©ãã³ã°ã®ãã¯ããã¯ãå¦ã¶ãã¨ãã§ãã¾ããã
ãRubyist Magazine åºå¼µç æ£ããRubyã³ã¼ãã®æ¸ãæ¹è¬åº§ãã§ã¯ãç§ã®ã³ã¼ãæ¹åãå«ããç³»6æ¬ã®å ·ä½çãªãªãã¡ã¯ã¿ãªã³ã°ææ³ãè¼ã£ã¦ãã¾ããå®è·µçãªå 容ã«ãªã£ã¦ãããå®éã®ã©ã¤ãã©ãªãã©ãæ¹åãããã¨ããã®ãã¹ãã¼ãªã¼ã¨ãã¦æ¸ããã¦ãããèªã¿ç©ã¨ãã¦ãé¢ç½ãã§ãããªãã¡ã¯ã¿ãªã³ã°ã®ãã¤ã³ãããã³ã¼ãã£ã³ã°ã¹ã¿ã¤ã«ããããã°ã©ãã³ã°ä¸è¬ããRubyããã°ã©ãã³ã°ä¸è¬ãããªãã¸ã§ã¯ãæåããã°ã©ãã³ã°ãããªãã¬ã¯ã·ã§ã³(Ruby ã§ã¯ä»ã§ã¯ã¡ã¿ããã°ã©ãã³ã°ã¨ãã表è¨ãä¸è¬çã§ãããã)ãã¨æ§ã ãªè¦ç¹ãæ¸ããã¦ãããRuby ã®ã¿ãªããæ¨æºçãªããã°ã©ãã³ã°ã®èãæ¹ã«ã¤ãã¦ã解説ããã¦ãã¾ãã
ã¾ããåªç§ãªããã°ã©ãã¯ãããããããªã·ã¼ãæã£ã¦ã³ã¼ãæ¸ãã¦ããããã¨ãã°ç©ºç½ã¹ãã¼ã¹ãã¤ã³ãã³ããã¡ã½ããåã®ã¤ãæ¹ä¸ã¤ã¨ã£ã¦ãããªãã§ãã®ãããªã³ã¼ãã«ãªã£ã¦ãããä¸ã¤ä¸ã¤èª¬æã§ãããããªæå³ãæã£ã¦ã¤ãã¦ãã¾ããç§ãå°æ¬ãã¦ããããã°ã©ãã®ä¸äººã§ããéæ¨ããããã©ããªããªã·ã¼ãæã£ã¦ã³ã¼ããæ¸ãã¦ãããã解説ããã¦ããã®ãå¬ããã§ããã
ã³ã¼ããæ¸ããããã«ãªã£ãã¯è¯ããã©ãã©ããã£ããããè¯ãã³ã¼ãã«ãªãã解ããªãããããªããã°ã©ãã³ã°åå¿è ã¯æã«ã¨ã£ã¦èªãã§ã¿ãã¨ãæ°ããçºè¦ãããã¨æãã¾ããã¾ãæ¬ã®å 容ãé£ãããªãããªãã¡ã¯ã¿ãªã³ã°ã®æ¬ãèªãã§ã¿ããã©ãæ£ç´ãã解ããªãã£ãâ¦ãã¨ããæ¹ãèªãã§ã¿ã¦ã¯ãããã§ãããããæ¬èªä½ã¯ä»é¢¨ã§ã¯ãªãã§ãããããã°ã©ãã³ã°ã®ã¨ãã»ã³ã¹ã¯ååçãããå 容ã¨ãªã£ã¦ãã¾ãã
ããã°ã©ãã³ã°æè¡ãåä¸ãããã«ã¯æ§ã ãªæ¹æ³ãããã¾ããèªåã®å ´åã¯æ¸ç±ãèªãã ãå ¬éããã¦ããã³ã¼ããèªãã æã«ã確ãã«æè¡ãèãæ¹ã¯åä¸ããã¨æãã®ã§ãããä½ããã確å®ã«åä¸ããã¨æããã®ã誰ãã«ãæ·»åããããã¨ãã§ãããéæ¨ããã®æ·»åãããã§ãããååããã®ã³ã¼ãã¬ãã¥ã¼ãããã§ãããããªã¼ãã³ã½ã¼ã¹ã§å ¬éããã³ã¼ãããªãã¡ã¯ã¿ãªã³ã°ãããã¨ããããã§ããã
ä»ç¾å¨ã¯å½æã¨ã¯éããgithub ãä¸å¿ã¨ããã³ããã¥ãã£ãã¼ã¹ã§ã®ã½ã¼ã¹ã³ã¼ãã®å ¬éãæ·»åãæ¹åã®ãµã¤ã¯ã«ãçã¾ãã¦ãã¾ããããªãã®å ¬éããã³ã¼ããæãããããã«ãã誰ããæ¹åãã¦ãããããç°å¢ã«ãªã£ã¦ããã§ããããæ¸ããã³ã¼ããæå ã§ç ã£ã¦ãããªããããããããªãã¯ãªå ´æã§å ¬éãã¦ã¿ã¦ã¯ã©ãã§ããããããã®ã³ã¼ããæ·»åãã¦ããã誰ããç¾ããããããªãã®ããã°ã©ãã³ã°æè¡ãåä¸ããããããã¾ãããã
ã¡ãªã¿ã«æ¬ç¨¿ã®è©±ã«åºã¦ãã tdiarytimes.rbãéæ¨ããããªãã¡ã¯ã¿ãªã³ã°ããã tdiarytimes2.rb ã¯ç¾å¨ã tDiary ã® git ã¬ãã¸ããªã«å ¥ã£ã¦ãããgithub çããåå¾ãããã¨ãã§ãã¾ããä»è¦è¿ããã tdiaritymes.rb ã¯ã¡ã½ããã§ããªãã§ããªãç®æã«ããã¿ã§70è¡ä»¥ä¸ãã³ã¼ããæ¸ãã¦ããæ´å²ãæãããã¨ãã§ãã¾ããâ¦ã