¤³¤³¿ôÆü¤Î¥é¥Ã¥·¥å¤¬½ª¤ï¤Ã¤Æ¡¢ ¤µ¤Æ²¿¤ò¤·¤è¤¦¤Ê¤¢¡Ä¡Ä¤Èµ¤³Ú¤Êµ¤»ý¤Á¤Ç ToDo ¤òÀ°Íý¤·¤Æ¤¤¤¿¡¢¤Î¡¢¤À¤¬¡Ä¡Ä
¤ë¤Ó¤ÞËܤκƹ»¤¬Íè¤Æ¤ë¤¸¤ã¤ó (Äù¤áÀÚ¤ê 3/5 Æâ)¡£ ¤¼¤ó¤¼¤óµ¤³Ú¤¸¤ã¤Ê¤¤¤Ã¡£
¤·¤«¤·¤³¤ì¤¬½ª¤ï¤ì¤ÐËÜÅö¤Ë³Ú¤Ë¡Ä¡Ä¤Ê¤é¤Í¤¨¡£ ¤Õ¤Ä¤Ñ¤¤¤é¤ò 3 ·îÃæ¤ËÌÜÅӤĤ±¤Ê¤¤¤È¤¤¤±¤Ê¤¤¤ó¤À¤Ã¤¿¡£ ½ô¡¹¤Î»ö¾ð¤Ç¤«¤Ê¤êÊüÃÖ¤·¤Æ¤·¤Þ¤Ã¤¿¤«¤é¡¢ 3 ·îÆ⤯¤é¤¤¤ÏËܳÊŪ¤Ë¤ä¤í¤¦¡£
(23:27)
¤½¤¦¤¤¤¨¤Ð¡¢3/31 ¤Þ¤Ç¤Ë 450KB ½ñ¤¯¤Î¤¬ÌÜɸ¤À¤Ã¤¿¤è¤¦¤Êµ¤¤¬¤¹¤ë¡£
µ¤¤¬¤¹¤ë¡¢¤È¤«¸À¤Ã¤Æ¤ë»þÅÀ¤Ç¥À¥á¤Ç¤¹¡£¤¢¤ê¤¬¤È¤¦¤´¤¶¤¤¤Þ¤·¤¿¡£
(00:43)
¤¤¤Þ MacBook ¤Ë 15 Ë祦¥£¥ó¥É¥¦¤ò½Ð¤·¤Æ¤ë¤ó¤À¤±¤É¡¢ ¤³¤Î¾õÂÖ¤Ç expose ¤ò»È¤¦¤È¤¹¤²¡¼É½¼¨¤¬¥«¥¯¥«¥¯¤¹¤ë¡£ ¤É¤¦¤ä¤é 10 Ë礯¤é¤¤¤¬¤¤ì¤¤¤Ë¥¢¥Ë¥á¡¼¥·¥ç¥ó¤Ç¤¤ë¸Â³¦¤Ã¤Ý¤¤¡£ ¤¿¤Ö¤ó¥Á¥Ã¥×¥»¥Ã¥ÈÅý¹ç¥°¥é¥Õ¥£¥Ã¥¯ (Intel GMA950 ¤À¤Ã¤±) ¤¬¤Ø¤Ü¤¤¤»¤¤¤À¤í¤¦¡£ ¥á¥â¥ê¤â¤«¤Ê¤ê¤ê¤Æ¤Ê¤µ¤²¤À¤±¤É¡£
³Î¤« MacBook Pro ¤Ï¥Á¥Ã¥×¥»¥Ã¥ÈÊÌΩ¤Æ¤Î¥°¥é¥Õ¥£¥Ã¥¯¥Á¥Ã¥×¤¬ºÜ¤Ã¤Æ¤ë¤ó¤À¤è¤Ê¡£ ¥â¥Ë¥¿¤â¤â¤¦¤Á¤ç¤Ã¤È¹¤¤¤Î¤¬Íߤ·¤¤¤·¡¢ ¼¡¤Î MacBook ¤âÅý¹ç·¿¤À¤Ã¤¿¤éº£ÅÙ¤Ï Pro ¤òÇ㤪¤¦¤«¤Ê¡£
(23:16)
¤ª¤ì¤ÏÈ뤫¤Ë fcgi.rb ¤Î¥á¥ó¥Æ¥Ê¤Ç¤â¤¢¤Ã¤¿¤Î¤À¡¼¡£¤Ï¤Ï¤Ï¤Ï¤Ï¤Ï
¡Ä¡Ä¥á¥ó¥Æ¤¹¤ë¥×¥í¥°¥é¥à¿¤¹¤®¤À¤Ã¤Æ¡¢¥Þ¥¸¤Ç¡£
fcgi.rb ¤ò¥Þ¥ë¥Á¥¹¥ì¥Ã¥ÉÂбþ¤¹¤ó¤Î¤Ï¡¢³Î¤«¤¹¤²¡¼´Êñ¤Ê¤ó¤À¤è¡£ @default_parameters['FCGI_MAX_REQS'] ¤Ë 1 °Ê¾å¤ÎÃͤòÆþ¤ì¤Æ¡¢ FCGI#each_request ¤Î yield ¤Ç¥¹¥ì¥Ã¥É¤òµ¯¤³¤»¤Ð¤¤¤¤¡£
¤È»×¤Ã¤Æ¥³¡¼¥É¤òį¤á¤Æ¤¿¤é¡¢ ¥Þ¥ë¥Á¥¹¥ì¥Ã¥É¤ÎÏäϤ½¤ÎÄ̤ê¤À¤Ã¤¿¤¬¡¢ graceful exit ¤Î¾ò·ï¤¬´°àú¤Ë´Ö°ã¤Ã¤Æ¤¿¤³¤È¤Ëµ¤ÉÕ¤¤¤¿¡£ ¤³¤ì¤Ç¤ÏÁ´Á³ graceful ¤¸¤ã¤Ê¤¤¡£
¤Þ¤¢¤½¤ì¤Ï¤¢¤È¤Çľ¤¹¤È¤·¤Æ¡¢¥¹¥ì¥Ã¥É¤Î¤Û¤¦¤Ë¤Ä¤¤¤Æ¹Í¤¨¤ë¡£ #each ¤ò»È¤¦¤Î¤ò¤¢¤¤é¤á¤Æ #finish ¤òÉü³è¤µ¤»¤ë¤È ¥¹¥ì¥Ã¥Éµ¯Æ°Éôʬ¤ò³°¤Ë½Ð¤»¤ë¤Ê¡£ ¤½¤Î¤Û¤¦¤¬¤¤¤¤¤è¤¦¤Êµ¤¤â¤¹¤ë¡£ YARV ¸å¤À¤È¥¹¥ì¥Ã¥É¥×¡¼¥ë¤ò»È¤¤¤¿¤¤¤³¤È¤â¤¢¤ë¤À¤í¤¦¤·¡£ ¤è¤·¡¢»×¤¤¤¿¤Ã¤¿¤¬µÈÆü¤Ç¨ƳÆþ¡£
(02:49)
¤¤¤ä¡¢±³¤À¤Ã¤¿¡£²¶¤¬±³¤À¤Ã¤¿¡£ ¤ä¤Ã¤Ñ¥·¥ó¥°¥ë¥¹¥ì¥Ã¥É¤Î graceful exit ¤Ï¤³¤ì¤Ç¤¤¤¤¤ó¤À¡£ ¥Þ¥ë¥Á¥¹¥ì¥Ã¥É¤Ë¤Ê¤ë¤È¤Á¤ç¤Ã¤ÈÊѤ¨¤ëɬÍפ¬¤¢¤ë¤Ã¤Æ¤À¤±¤À¡£
(02:53)
¤¢¤¢¤½¤¦¤¤¤¨¤Ð¡¢²¶¤¬¥á¥ó¥Æ¤·¤Æ¤ë¤Î¤Ï pure Ruby ¤Êfcgi.rb ¤À¤±¤Í¡£ fcgi.so ¤ÏÊ̤ÎÏᣠgem ¤¬¤É¤¦¤Ê¤Ã¤Æ¤ë¤Î¤«ÃΤé¤ó¤Î¤À¤±¤É¡¢¤É¤Ã¤Á¤Ê¤ó¤À¤í¤¦¤Í¡£
(03:32)
¤¢¤ì¡© libfcgi 2.4.0 ¤Ï MAX_CONNS=1, MAX_REQS=1 ¤Ë¸ÇÄꤵ¤ì¤Æ¤ë¤Ê¡£ ¤â¤·¤«¤·¤Æ¥Í¥¤¥Æ¥£¥Ö¤Î libfcgi ¤Ã¤Æ¥Þ¥ë¥Á¥¹¥ì¥Ã¥ÉÂбþ¤·¤Æ¤Ê¤¤¤Î¤«¡© ¤Ê¤ó¤«¤½¤ì¤â¤Á¤ç¤Ã¤È¹Í¤¨¤Å¤é¤¤¤Î¤À¤¬¡£ ¤É¤Ã¤«Ê̤ΤȤ³¤í¤Ë¥½¡¼¥¹¤¬¤¢¤Ã¤¿¤ê¤¹¤ë¡©
(04:10)
¥¯¥é¥¤¥¢¥ó¥È¦¤Ç¥Þ¥ë¥Á¥¹¥ì¥Ã¥É¤ò¼ÂÁõ¤·¤Æ¤¤¤ë¥é¥¤¥Ö¥é¥ê¤¬¸«ÉÕ¤«¤é¤Ê¤¤¡£
Perl ¤Ï¤¿¤Ö¤ó libfcgi ¤ÎÃæ¤Ë¤¢¤ë¤ä¤Ä¤À¤è¤Ê¡£ ¤³¤ì¤Ï libfcgi ¤½¤Î¤Þ¤Þ¤Ê¤Î¤Ç¡¢¥·¥ó¥°¥ë¥¹¥ì¥Ã¥É¡£ ɸ½àźÉդΠCGI::Fast.pm ¤â¤¤¤Á¤ª¤¦¸«¤¿¤±¤ÉƱ¤¸¡£
Python ¤Î FastCGI ¼ÂÁõ¤ÎºÇ¿·ÈǤϤɤ³¤Ë¤¢¤ë¤ó¤À¡£ http://alldunn.com/python/fcgi.py ¤Ç¤¤¤¤¤Î¤«¤Ê¤¢¡£ last-modified ¤¬ 2000 ǯ¤Ê¤Î¤¬¤¹¤´¤¤µ¤¤Ë¤Ê¤ë¤Î¤À¤¬¡£ ¾¯¤Ê¤¯¤È¤â¤³¤Î¥Õ¥¡¥¤¥ë¤Ç¤Ï MAX_CONN=1, MAX_REQS=1 ¤Ê¤Î¤Ç¡¢ ¥·¥ó¥°¥ë¥¹¥ì¥Ã¥É¤À¤Ê¡£
Java ¤â libfcgi ¤ÎÃæ¤Ë¤¢¤ë¤ä¤Ä¤Ï¥·¥ó¥°¥ë¥¹¥ì¥Ã¥É¡£
¤¨¤¨¤¨¤¨¤¨¡© ¤â¤·¤«¤·¤ÆËÜÅö¤Ë¥Þ¥ë¥Á¥¹¥ì¥Ã¥É¥¯¥é¥¤¥¢¥ó¥È¤Ê¥é¥¤¥Ö¥é¥ê¤Ã¤Æ¸ºß¤·¤Ê¤¤¤Î¡© ¥Þ¥¸¤«¡¼¡£¤Á¤ç¤Ã¤È¿®¤¸¤é¤ì¤Ê¤¤¤ó¤À¤±¤É¡£ 狼¥Þ¥ë¥Á¥¹¥ì¥Ã¥É¤Ê FastCGI ¥¯¥é¥¤¥¢¥ó¥È¥é¥¤¥Ö¥é¥ê¤òÃΤäƤ¿¤é¶µ¤¨¤Æ¤¯¤À¤µ¤¤¡£
(05:21)
¤Ê¤ó¤Ç¤³¤¦¤¤¤¦¤³¤È¤Ë¤Ê¤Ã¤¿¤ó¤À¤«¤è¤¯¤ï¤«¤é¤Ê¤¤¤Î¤À¤¬¡¢ net/smtp ¤Ç¼«Æ° STARTTLS ¤ò¥µ¥Ý¡¼¥È¤·¤¿¡£¤³¤ó¤Ê´¶¤¸¤Ç¡£
require 'net/smtp' ¡¡ s = Net::SMTP.new(host) s.enable_starttls_auto s.start(helo, user, pass) { s.open_message_stream(from, to) {|f| .... } }
TLS ·Ï¤Î¥á¥½¥Ã¥É¤Ï¥¬¥Ã¥Ä¥êÊѤ¨¤Þ¤·¤¿¡£ ¤³¤Î¤Ø¤ó¤Ï¤É¤ì¤â 1.9 ¤«¤éÄɲ䵤줿¥á¥½¥Ã¥É¤Ê¤Î¤Ç¡¢ ¸åÊý¸ß´¹À¤Ï¤¤¤Ã¤µ¤¤Êݤ¿¤ì¤Æ¤¤¤Þ¤»¤ó¡£ ¤³¤ì¤¬ 1.9 ¤Î½ÉÌ¿¤Ê¤Î¤Ç¤¢¤¤é¤á¤Æ¤Í¡£
¤Ê¤ª net/pop ¤âƱÍͤËÊѹ¹Í½Äê¡£
(09:34)
ʸ»úÎó str ¤Î 2 ¹ÔÌܰʹߤò¼è¤í¤¦¤È¤·¤Æ str.lines[1..-1] ¤È½ñ¤¤¤¿¤é NoMethodError ¤ò¿©¤é¤Ã¤¿¡£ ¤¢¤¢¡¢enumerator ¤À¤«¤é¤«¡£ ¤³¤ì¤Ï¤Á¤ç¤Ã¤È¡¢¤É¤¦¤Ê¤Î¤è¡£
¤È¤¤¤¦¤³¤È¤Ç ruby-dev ¤Ë¥á¡¼¥ë¤òÅꤲ¤ë¡£
Åꤲ¤Æ¤«¤é¹Í¤¨¤Ä¤¤¤¿¤ó¤À¤±¤É¡¢ str.lines.drop(1) ¤È¤¤¤¦Æ¨¤²¤Ï¤¢¤ê¤¦¤ë¤Ê¡£ ¤·¤«¤·¡¢¤À¤«¤é aref ¤¬¤¤¤é¤Ê¤¤¤«¤È¤¤¤¦¤È¡¢¤¦¡¼¤à¡£
¤ä¤Ã¤Ñ¤ê¡¢ËÜÅö¤Î¹ÔÇÛÎó¤òÆÀ¤ëÊýË¡¤âɬÍפʤΤǤϤʤ«¤í¤¦¤«¡£
(10:06)
º£²ó¤Ï [1..-1] ¤À¤Ã¤¿¤«¤é drop ¤Ç¤â¤è¤¤¤¬¡¢ [0..-2] ¤È¤«¤À¤È rdrop ¤¬¤Ê¤¤¤È¤¦¤Þ¤¯¤Ê¤¤¡£ ¤ä¤Ã¤Ñ rdrop ¤ÏÍߤ·¤¤¤Ê¡£
lines[1..-2] ¤ß¤¿¤¤¤Ê¾ì¹ç¤Ã¤Æ¤É¤ì¤¯¤é¤¤¤¢¤ë¤À¤í¤¦¡£ ¹Ô»Ø¸þ¤Îʸˡ¤Ç¡¢¥¿¡¼¥ß¥Í¡¼¥¿¤¬Á°¸å¤Ë¤¢¤ë¾ì¹ç¤«¡£ ¤¤¤«¤Ë¤âɬÍפˤʤꤽ¤¦¤À¤Ê¤¢¡£ ¤ä¤Ï¤ê drop_both ¤âÆþ¤ì¤È¤¤¤¿¤Û¤¦¤¬¤è¤¤¤ä¤â¤·¤ì¤ó¡£
¤¢¡¢drop_both ¤Î¥á¥½¥Ã¥É̾¤Ï¡¢lrdrop ¤È¤¤¤¦¤Î¤Ï¤É¤¦¤À¤í¤¦¤Ê¡£ ¸«¤Ë¤¯¤¤¤«¡£
(10:16)
Á°²ó¤Î½ñ¤¤«¤¿¤Ï¤Á¤ç¤Ã¤È¸í²ò¤ò¾·¤¯¤Ê¤¢¡£
¤¤¤ÞÌäÂê¤Ë¤·¤Æ¤¤¤ë fcgi.rb ¤Î¥Þ¥ë¥Á¥¹¥ì¥Ã¥É²½¤È¤¤¤¦¤Î¤Ï¡¢ ñ¤Ë¥é¥¤¥Ö¥é¥ê¤Î¥³¡¼¥É¤ò¥Þ¥ë¥Á¥¹¥ì¥Ã¥É¥»¡¼¥Õ¤Ë¤¹¤ë¤È¤¤¤¦ÏäǤϤʤ¤¡£ ¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤Ë¡¢Ê£¿ô¤Î FastCGI ¥ê¥¯¥¨¥¹¥È¤òÊÂÎó¤Ë½èÍý¤µ¤»¤ëÏäǤ¢¤ë¡£ ¤Þ¤¢¡¢¤½¤Î·ë²Ì¤È¤·¤ÆÊÂÎó¤Ë¥ì¥¹¥Ý¥ó¥¹¤òÁ÷¤êÊÖ¤¹É¬Íפ¬½Ð¤Æ¤¯¤ë¤Î¤Ç¡¢ ·ë¶É¥Þ¥ë¥Á¥¹¥ì¥Ã¥É¥»¡¼¥Õ¤Ë¤â¤·¤Ê¤¤¤È¤¤¤±¤Ê¤¤¤ó¤À¤±¤É¤â¡£
¤Ç¡¢²¶¤¬°ìÈÖº¤¤Ã¤Æ¤ë¤Î¤Ï¼ÂÁõ¤Ç¤Ï¤Ê¤¯¡¢ ÊÂÎóȯ¹Ô¤ò¥ª¥ó¥ª¥Õ¤¹¤ë¥¤¥ó¥¿¡¼¥Õ¥§¥¤¥¹¤Ç¤¢¤ë¡£ ¤â¤·Á°Î㤬¤¢¤ë¤ó¤Ê¤é¤½¤ì¤Î¿¿»÷¤·¤ÆºÑ¤Þ¤½¤¦¤È»×¤Ã¤¿¤ó¤À¤±¤É¤â¡¢ ¤½¤ì¤¬¤Ê¤¤¤ß¤¿¤¤¤Ê¤Î¤Ç¤É¤¦¤·¤è¤¦¤«¤Ê¤È¡£
¤Ç¤â¤Þ¤¢¡¢¤Ê¤¤¤ó¤Ê¤é¤Ê¤¤¤Ç¾¡¼ê¤ËÅÔ¹ç¤Î¤¤¤¤¥¤¥ó¥¿¡¼¥Õ¥§¥¤¥¹¤ò ºî¤Ã¤Á¤Þ¤¨¤Ð¤¤¤¤¤ï¤±¤À¤«¤é¡¢¤½¤ì¤Ï¤½¤ì¤Ç³Ú¤À (¤½¤ì¤Ç¼Â¤ÏÁ°Î㤬¤¢¤Ã¤¿¡¢¤È¤¤¤¦¤³¤È¤Ë¤Ê¤ë¤Èº¤¤ë¤ó¤À¤±¤É)¡£ ¤¤¤Þ¤ó¤È¤³¤í Hash °ú¿ô¤ò»È¤ª¤Ã¤«¤Ê¡¼¤È¤¤¤¦µ¤Ê¬¤Ë¤Ê¤Ã¤Æ¤¤¤ë¡£ ¤³¤¦¤Í¡£
FCGI.each_request(multithreads: true) do |req| .... end
¤³¤Î¾ì¹ç¡¢FCGI_MAX_CONNS ¤È FCGI_MAX_REQS ¤ÏŬÅö¤Ê¥Ç¥Õ¥©¥ë¥ÈÃͤˤʤ롣 ¥Ñ¥é¥á¡¼¥¿¤òºÙ¤«¤¯À©¸æ¤·¤¿¤¤¤È¤¤ÏƱÍͤË
FCGI.each_request(multithreads: true, max_connections: 10,max_requests: 50) do |req| .... end
¤È¤¹¤ë¡£MPXS ¤Ï¥Ç¥Õ¥©¥ë¥È¤Ç true ¤Ê¤Î¤ÇɬÍפʤ¤¡£¤È»×¤¦¡£
(07:19)
¥ê¥Õ¥¡¥ì¥ó¥¹¥Þ¥Ë¥å¥¢¥ë¤Ç¤ÎÊÖ¤êÃͤε½Ò¤Ë¤Ä¤¤¤Æ¿¿ÌÌÌܤ˹ͤ¨¤ë¡£
ÊÖ¤êÃͤˤĤ¤¤Æ¡¢²¿¤ò½ñ¤¯¤Ù¤¤À¤í¤¦¤«¡£
¡Ä¡Ä¤¦¤ó¡¢¤Þ¤¢¡¢¤³¤ó¤Ê¤â¤ó¤Ç¤·¤ç¤¦¡£ ·¿¤Ï°ÕÌ£¤¸¤ã¤Ê¤¤¤Î¤«¤ÈÌä¤ï¤ì¤ë¤Èº¤¤ë¤¬¡£
¤Ç¤Ï¡¢¤É¤Î¤è¤¦¤Ëµ½Ò¤¹¤ë¤«¡£ ´ðËÜŪ¤Ë¡¢°ÕÌ£¤ÏÆüËܸì¤ÇÀâÌÀ¤·¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ ¤Ç¡¢¤½¤ì¤ò¤É¤³¤Ë½ñ¤¯¤«¤À¡£
¤¦¡¼¤ó¡£²¶¤È¤·¤Æ¤Ï¡¢¤¢¤ó¤Þ @return »È¤¤¤¿¤¯¤Ê¤¤¤ó¤À¤è¤Ê¡£ ´û¸¤Î¥É¥¥å¥á¥ó¥È¤ò¸«¤ë¤«¤®¤ê¡¢ @return ¤òƳÆþ¤·¤Æ¤â¤¢¤ó¤Þ¤ê¤¦¤Þ¤¯Ê¸¾Ï¤òʬ¤±¤é¤ì¤½¤¦¤Ë¤Ê¤¤¡£
Î㤨¤Ð String#index ¤Î¤è¤¦¤ËÊÖ¤êÃͤ¬½ÅÍפʥ᥽¥Ã¥É¤Î¾ì¹ç (function Ū¤Ê¥á¥½¥Ã¥É¤È¸Æ¤ó¤Ç¤ª¤¯)¡¢ Âè°ìÃÊÍî (¥á¥½¥Ã¥É¤ÎÍ×Ìó) ¤Ë½ñ¤¯¤Ù¤¤À¤í¤¦¡£ ¡Ö¥Ñ¥¿¡¼¥ó pattern ¤òʸ»úÎ󤫤鸡º÷¤·¡¢¤½¤Î¥¤¥ó¥Ç¥Ã¥¯¥¹¤òÊÖ¤¹¡£ ¥Ñ¥¿¡¼¥ó¤¬¸«ÉÕ¤«¤é¤Ê¤«¤Ã¤¿¤é nil ¤òÊÖ¤¹¡× ¤Ç½½Ê¬¤ËÊÖ¤êÃͤÎÀâÌÀ¤Ë¤Ê¤Ã¤Æ¤¤¤ë¤È»×¤¦¡£
¤Þ¤¿ Array#each ¤Î¤è¤¦¤ËÊÖ¤êÃͤʤó¤Æ¤É¡¼¤Ç¤â¤¤¤¤¥á¥½¥Ã¥É¤Î¾ì¹ç (procedure Ū¤Ê¥á¥½¥Ã¥É¤È¸Æ¤ó¤Ç¤ª¤¯)¡¢ ¤½¤ó¤Ê¤â¤ó¤Ï¤É¡¼¤Ç¤â¤¤¤¤¤Î¤Ç°ú¿ô¤ÎÀâÌÀ¤Î¤¢¤È¤Ë¤Ç¤â ¡Öself ¤òÊÖ¤·¤Þ¤¹¡×¤È°ì¸À½ñ¤¤¤Æ¤ª¤±¤Ð½½Ê¬¤À¤í¤¦¡£
¤½¤ì¤ËÂФ·¤Æ°ú¿ô¤ÎÀâÌÀ¤Ï¤±¤Ã¤³¤¦ÈË»¨¤Ç¤¢¤ë¤·¡¢ °ú¿ô¤È°ã¤Ã¤ÆÊ£¿ô¤¢¤ê¤¦¤ë¤Î¤Ç¡¢ @param ¤òƳÆþ¤¹¤ë°ÕÌ£¤Ï¤¢¤ë¤È¹Í¤¨¤ë¡£ Î㤨¤Ð String#index ¤ÎÂè°ì°ú¿ô pattern ¤Ë¤Ä¤¤¤Æ ¾ò·ï¤ò¾Ü¤·¤¯ÀâÌÀ¤·¤¿¤Û¤¦¤¬¤è¤¤¤À¤í¤¦¡£
¤È¤¤¤¦¤³¤È¤Ç¡¢²¶¤È¤·¤Æ¤Ï @return ¤ÏƳÆþ¤»¤º¡¢ °ú¿ô¤Î°ÕÌ£¤¬½ÅÍפʤȤ¤À¤±Âè°ìÃÊÍî¤Ë½ñ¤¯¡¢ ¤È¤¤¤¦¤Î¤¬¤è¤¤¤Î¤Ç¤Ï¤Ê¤¤¤«¤È»×¤¦¡£
(20:10)
ÊÖ¤êÃͤη¿¤ò½ñ¤¯¤Ù¤¤À¤í¤¦¤«¡£ ¤Þ¤¿¡¢½ñ¤¯¤È¤¹¤ì¤Ð¤É¤¦½ñ¤¯¤Ù¤¤À¤í¤¦¤«¡£
¤¦¡¼¤ó¡£¤É¤¦¤Ê¤ó¤Ç¤¹¤«¤Í¤¨¡£½ñ¤¯¾ì¹ç¤Î¥Ç¥á¥ê¥Ã¥È¤òµó¤²¤ë¤È¡¢
¤¦¤¦¡¢¤Ê¤ó¤«¤¹¤Ç¤Ë¤³¤Î»þÅÀ¤Ç¥ä¥Ð¤¤¤è¤¦¤Êµ¤¤¬¤·¤Æ¤¤¿¡£ ML ¤Ë¤Ï¤¤¤Á¤ª¤¦·¿¤Îµ½ÒÊýË¡¤ÎÄó°Æ¤ò½Ð¤·¤Æ¤Ï¤ß¤¿¤±¤É¡¢ ¤ä¤Ã¤Ñ¤ä¤á¤è¤Ã¤«¤Ê¤¢¡£
(20:15)
@param ¤òƳÆþ¤·¤¿¼ç¤ÊÍýͳ¤Ï¡¢ ¥Á¥§¥Ã¥¯¤ò¼«Æ°²½¤·¡¢½ñ¤Ëº¤ì¤òËɤ°¤³¤È¤Ç¤¢¤ë¡£ ¼Â¤Ï¤¢¤ó¤Þ¤êºÆÍøÍѤˤĤ¤¤Æ¤Ï¹Íθ¤·¤Æ¤¤¤Ê¤¤¡£ ¤·¤¿¤¬¤Ã¤Æ @return ¤Ë¤Ä¤¤¤Æ¤â @param ¤ÈƱÍͤ嬽à¤Ç¹Í¤¨¤Æ¤ß¤è¤¦¡£
@return ¤òƳÆþ¤¹¤ë¤È¥Á¥§¥Ã¥¯¤¬¼«Æ°²½¤Ç¤¤ë¤«¡£ ¤ó¡¼¡¢¤Þ¤¢¡¢¤Ç¤¤ë¤è¤Ê¡£½ñ¤¤¤Æ¤¢¤ë¤«¤É¤¦¤«¤Ï¤ï¤«¤ë¡£
¤·¤«¤·¡¢@return ¤¬¤Ê¤«¤Ã¤¿¤éÊÖ¤êÃͤˤĤ¤¤Æ½ñ¤Ëº¤ì¤ë¤«¤È¤¤¤¦¤È¡¢ ¤½¤ì¤Ï¤É¤¦¤Ê¤ó¤À¤í¤¦¡£ function Ū¤Ê¥á¥½¥Ã¥É¤ÇÊÖ¤êÃͤòÌÌÅݤÀ¤«¤é¤È¤«¡¢ ¤¦¤Ã¤«¤ê¤È¤«¤Ç½ñ¤Ëº¤ì¤ë¤³¤È¤Ã¤Æ¤¢¤ë¤Î¤À¤í¤¦¤«¡£ procedure Ū¤Ê¥á¥½¥Ã¥É¤Ç˺¤ì¤ë¤³¤È¤Ê¤é¤¢¤ê¤½¤¦¤À¤±¤É¡£
¤¦¡¼¤ó¡¢¤½¤¦¤«¡Ä¡Ä¡£ procedure ¤Ç½ñ¤Ëº¤ì¤ë¤Î¤òËɻߤ¹¤ë¤¿¤á¤Ë @return ¤òƳÆþ¤¹¤ë¡¢ ¤È¤¤¤¦¤Î¤Ï°ÕÌ£¤¬¤¢¤ë¤Ê¡£ ¤Ç¤â¤Ã¤Æ¡¢½ñ¤Ëº¤ì¤Î¤Ê¤¤¤è¤¦¤Ë¤¹¤ë¤¿¤á¤Ë @return ¤òƳÆþ¤¹¤ë¤Ê¤é ¤¹¤Ù¤Æ¤Î¥á¥½¥Ã¥É¤Ë¤Ä¤±¤ë¤³¤È¤Ë¤·¤Ê¤¤¤È¤Þ¤º¤¤¡£
ÉÕ¤±¤¿¤Û¤¦¤¬¤¤¤¤¤È¤¤¤¦·ëÏÀ¤Ë·¹¤¤¤Æ¤Þ¤¤¤ê¤Þ¤·¤¿¡£
(20:27)
¢£
Siena. [procedure Ū¤Ê¥á¥½¥Ã¥É¤À¤È¡¢»ö¼Â¾å̤ÄêµÁ¡¢¤È¤¤¤¦¤³¤È¤â¤¢¤ê¤Þ¤¹¤è¤Í¡£
self ¤òÊÖ¤¹¤Î¤«¡¢ºÇ¸å¤Ëɾ²Á¤·¤¿¼°¤òÊÖ¤¹¤Î¤«¡¢°Õ¼±¤·¤Æ¤Ê¤¤¥³¡¼¥É¤È¤«¡£
¸åÉÕ¤±¤Ç self ¤òÊÖ¤¹¤³¤È¤Ë¤¹¤ë¡¢¤È·è¤Þ¤Ã¤¿¤ê¡£
¤È¤¤¤¦¤ï¤±¤Ç¡¢@return ̤ÄêµÁ¡¢¤âµöÍƤ¹¤ë¤Î´õ˾¡£
¤¢¤È¡¢¤É¤ó¤ÊÎã³°¤¬¾å¤¬¤ë²ÄǽÀ¤¬¤¢¤ë¤Î¤«¤¬¥ê¥Õ¥¡¥Þ¤Ë½ñ¤¤¤Æ¤Ê¤¯¤Æ¡¢ÉÔÊؤ˻פ¦¤³¤È¤¬¤·¤Ð¤·¤Ð¡£
¤¤¤í¤¤¤í¥Æ¥¹¥È¤·¤ÆÂç¾æÉפÀ¤í¤¦¤È»×¤Ã¤¿¥³¡¼¥É¤Ç¡¢¸å¤Ë¤Ê¤Ã¤Æ¤«¤é»×¤¤¤â¤è¤é¤Ì¥á¥½¥Ã¥É¤«¤é»×¤ï¤ÌÎã³°¤¬È¯À¸¤·¤Æ¡¢¤¢¤Á¤³¤ÁÂн褷¤Ê¤¯¤Á¤ã¤Ê¤é¤Ê¤¯¤Ê¤Ã¤¿¤ê¡£
¤¹¤´¤ì¤ó¤¹¤Þ¤Ë¤å¤¢¤ë¤Ç¤â¡¢Îã³°¤Îµ½Ò¤ÏÊѤï¤ê¤Þ¤»¤ó?]
¢£
ÀÄÌÚ [¤³¤Î¥ë¡¼¥ë¤Ïɸ½àźÉե饤¥Ö¥é¥ê¤Þ¤Ç¤ÎÈϰϤÎÏäʤΤǡ¢ÊÖ¤êÃͤϤ¹¤Ù¤Æ·è¤Þ¤Ã¤Æ¤ë (·è¤á¤Æ¤â¤é¤¦) ¤â¤Î¤È¹Í¤¨¤Æ¤Þ¤¹¡£½ñ¤¤¤Æ¤Ê¤¯¤Æ¤â·ë¶É»È¤¦¿Í¤¬¤¤¤ë¤ó¤À¤â¤ó¡£
Îã³°¤Ï @raise ¤Ç½ñ¤¤Þ¤¹¡£]
¢£
Siena. [¤Ê¤ë¡£@return ¤Ï¡¢¤½¤ì¤Ï¤½¤ì¤ÇǼÆÀ¤Ç¤¹¡£
½ñ¤¤¤Æ¤Ê¤¯¤Æ¤â»È¤¦¤Ò¤ÈÂкö¤Ç¡¢¡Ö̤ÄêµÁ¡×¤È¤·¤Æ·èÄê¤òÀèÁ÷¤ê¤¹¤ë¡¢¤È¤¤¤¦¤Î¤Ï̵¤·¤È¤¤¤¦¤³¤È¤Ç¤¹¤Í¡£
¤¨¤È¡¢@raise ¤Ç½ñ¤±¤ë¤Î¤Ïʬ¤«¤ë¤Î¤Ç¤¹¤¬¡£
²Ì¤¿¤·¤Æ¡¢È¯À¸¤¹¤ë²ÄǽÀ¤Î¤¢¤ëÎã³°¤òϳ¤ì¤Ê¤¯ÌÖÍ夹¤ë¤È¤¤¤¦Êý¿Ë¤Ê¤Î¤«¤·¤é¡¢¤È¤¤¤¦¤³¤È¤Ç¤·¤Æ¡£]
¢£ ÀÄÌÚ [¤â¤Á¤í¤ó¡¢Á´Éô½ñ¤¯¤Î¤¬Á°Äó¤Ç¤¹¡£¤¿¤À¡¢SystemCallError ¤Î²¼°Ì¥¯¥é¥¹¤È¤«¤Ï¸½¼ÂŪ¤Ë̵Íý¤Ê¤è¤¦¤Êµ¤¤â¤·¤Æ¤¤¤Þ¤¹¡£¤¢¤È¡¢ArgumentError ¤È¤« TypeError ¤âÉÑÅÙ¤¬¹â¤¹¤®¤ë¤Î¤Ç¤¿¤Ö¤ó¾Êά¤¹¤ë¤³¤È¤Ë¤Ê¤ë¤Ç¤·¤ç¤¦¤Í¡£¥Õ¥Ä¡¼µ¯¤¤ë¡¢¤Ã¤Æ¤³¤È¤Ç¡£]
¢£
Siena. [¤¿¤Ó¤¿¤Ó¤É¤¦¤â¤Ç¤¹¡£ArgumentError ¤ä TypeError ¤Ë¤Ä¤¤¤Æ¤Ï¸æ°Õ¡£
ÀµÄ¾¤Ê¤È¤³¤í¡¢¥³¡¼¥Ç¥£¥ó¥°¤ÎºÝ¤Ë Errno::* ¤¬Ìñ²ð¤Ë´¶¤¸¤Æ¤Þ¤¹¡£
¤É¤Î¥á¥½¥Ã¥É¤Ç¤É¤ó¤Ê¥·¥¹¥Æ¥à¥³¡¼¥ë¤ò¸Æ¤ó¤Ç¤¤¤Æ¡¢¤É¤Î¥·¥¹¥Æ¥à¥³¡¼¥ë¤¬¤É¤ó¤Ê¥¨¥é¡¼ÈÖ¹æ¤òÊÖ¤¹²ÄǽÀ¤¬¤¢¤ë¤Î¤«¤òÇÄ°®¤·¤Æ¤Ê¤¤¤ÈÎã³°°ÂÁ´¤Ê¥³¡¼¥É¤ò½ñ¤±¤Ê¤¤¤Î¤Ï¡¢Äã¿å½à¤ÇÂçÊѤǤ¹¤è¤Í¡£
»×θ¤¬Â¤ê¤Ê¤¤¿Í¤Ê¤Î¤Ç¡¢¥Æ¥¹¥È¤Ç¥«¥Ð¡¼¤·¤¤ì¤Ê¤¯¤Æ¡¢»×¤ï¤Ì¤È¤³¤í¤Ç»×¤ï¤ÌÎã³°¤¬¾å¤¬¤Ã¤Æ¤·¤Þ¤¤¡£¤Ê¤«¤Ê¤«¥³¡¼¥É¤¬°ÂÄꤷ¤¿¤È¤¤¤¦°Â¿´´¶¤òÆÀ¤é¤ì¤º¡¢²¿¤«Àø¤ó¤Ç¤¤¤¤¤Ê¤¤¤«¤ÈÉ԰¤¬¤Ä¤¤Þ¤È¤¤¤Þ¤¹¡£
Ruby ¤òÊѤ¨¤Æ SystemCallError °Ê²¼¤òÃê¾Ý²½¤¹¤ë¤Ê¤É¤Ïº£²ó¤ÎËܻݤǤʤ¤¤Î¤Ç¡¢¥ê¥Õ¥¡¥ì¥ó¥¹¥Þ¥Ë¥å¥¢¥ë¤È¤·¤Æ¤Ï¡¢(´°àú¤Ç¤Ê¤¯¤Æ¤â) ¤Ç¤¤ë¤À¤±Ê¸½ñ²½¤µ¤ì¤Æ¤¤¤ÆÍߤ·¤¤¤È»×¤¦¤Î¤Ç¤¹¡£¤»¤á¤Æ°Í¸¤¹¤ë¥·¥¹¥Æ¥à¥³¡¼¥ë¤Î°ìÍ÷¤¯¤é¤¤¤Ê¤¤¤È¡¢man ¤·¤Æ¤È¤â¸À¤¤¤Ë¤¯¤¤¤Ç¤¹¡£]
¢£ ÀÄÌÚ [½ñ¤«¤Ê¤¤¤È¤Ï¸À¤Ã¤Æ¤Þ¤»¤ó¡£¡Ö(OS¤´¤È¤Ë°ã¤¦Ê¬¤Þ¤Ç) Á´Éô½ñ¤¯¤³¤È¤Ï¤Ç¤¤Ê¤¤¡×¤Ã¤Æ¤À¤±¤Ç¤¹¡£POSIX¤Ç·è¤Þ¤Ã¤Æ¤ëʬ¤¯¤é¤¤¤Ï¤¿¤Ö¤ó½ñ¤±¤ë¤Ç¤·¤ç¤¦¡£]
¢£
Siena. [¤È¤Æ¤â¼ê´Ö¤¬¤«¤«¤ê²á¤®¤ë¤Î¤ÇÁ±½è¤¹¤ë¤±¤ì¤É¥«¥Ð¡¼¤·¤¤ì¤Ê¤¤¡¢¤È¤¤¤¦¤³¤È¤È¸í²ò¤·¤Æ¤¤¤Þ¤·¤¿¡£¼ºÎ餷¤Þ¤·¤¿¡£¼ÂºÝ¡¢¤½¤ì¤â»ÅÊý¤Ê¤¤ºî¶ÈÎ̤«¤â¤·¤ì¤Þ¤»¤ó¤¬¡¢¤Ç¤¤ëÈϰϤǤǤ⸡Ƥ¤·¤Æ¤¤¤¿¤À¤±¤ì¤Ð¤È¤Æ¤â¿´¶¯¤¯»×¤¤¤Þ¤¹¡£
¤·¤Ä¤³¤¯¤Ê¤Ã¤Æ¤·¤Þ¤Ã¤Æ¤´¤á¤ó¤Ê¤µ¤¤¡£¤³¤³¤é¤ÇÂà¾ì¤µ¤»¤Æ¤¤¤¿¤À¤¤Þ¤¹¡£]
¤µ¤Ã¤¥µ¡¼¥Ð¤Ë ssh ¥í¥°¥¤¥ó¤·¤¿¤é SSHKeyChain ¤¬ÆÍÁ³»à¤·¤¿¡£ ¤³¤ì¤Ï¤ï¤ê¤È¤è¤¯¤¢¤ë¤³¤È¤Ê¤Î¤À¤¬¡¢º£²ó¤Ï¤½¤Î¤¢¤È¤¬¤¢¤ë¡£
¡ÖApple¤Ë¥ì¥Ý¡¼¥È¤òÁ÷¿®¤·¤Þ¤¹¤«¡×¤Î¥À¥¤¥¢¥í¥°¤¬½Ð¤ë¤¬¡¢ ¤³¤Î¥À¥¤¥¢¥í¥°¤Ë¥«¡¼¥½¥ë¤ò¹ç¤ï¤»¤ë¤È¤º¤Ã¤È¥ì¥¤¥ó¥Ü¡¼¤Ë¤Ê¤Ã¤Æ¤Æ¥Ü¥¿¥ó¤¬²¡¤»¤Ê¤¤¡£ ²¿¤¬µ¯¤¤Æ¤ó¤Î¤«¤È»×¤Ã¤Æ¥¢¥¯¥Æ¥£¥Ó¥Æ¥£¥â¥Ë¥¿¡¼¤òµ¯Æ°¤·¤¿¤ê ¥À¥Ã¥·¥å¥Ü¡¼¥É¤ò¸Æ¤ó¤À¤ê¤·¤¿ (¥×¥í¥»¥¹¥â¥Ë¥¿¤¬Æ°¤¤¤Æ¤ë¤«¤é) ¤Î¤À¤¬¡¢ ¤É¤Ã¤Á¤âÆ°¤¤¤Æ¤Ê¤¤¡£ ¤½¤ì¤É¤³¤í¤«¡¢¥¦¥£¥ó¥É¥¦¤òÀÚ¤êÂؤ¨¤Æ¤·¤Þ¤¦¤È ¤½¤Î¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤¬Ï¢º¿Åª¤Ë¤Þ¤¤¾¤¨¤¯¤é¤Ã¤Æ»ß¤Þ¤Ã¤Æ¤¤¤¯¤è¤¦¤À¡£
¤ä¤à¤ò¤¨¤ºÅŸ»¥Ü¥¿¥ó¤ò²¡¤¹¤È ¡ÖºÆµ¯Æ°¤·¤Þ¤¹¤«¡×¤Î¥À¥¤¥¢¥í¥°¤¬½Ð¤¿¤¬¡¢ ¤³¤Î¥À¥¤¥¢¥í¥°¤â¤º¤Ã¤È¥ì¥¤¥ó¥Ü¡¼¤Ë¤Ê¤Ã¤Æ¤Æ¥Ü¥¿¥ó¤¬²¡¤»¤Ê¤¤¡£ ¤ä¤à¤ò¤¨¤ºÊ̤Υޥ·¥ó¤«¤é ssh ¤ÇÆþ¤Ã¤Æ sudo shutdown -h now ¤Ç¤è¤¦¤ä¤¯»ß¤á¤é¤ì¤¿¡£
ssh ¤ÇÆþ¤ì¤ë¤È¤¤¤¦¤³¤È¤Ï¥«¡¼¥Í¥ë¤Ï¤Á¤ã¤ó¤ÈÆ°¤¤¤Æ¤ë¤È¤¤¤¦¤³¤È¤À¡£ ¥¦¥£¥ó¥É¥¦¥·¥¹¥Æ¥à¤¬¤É¤Ã¤«¤ª¤«¤·¤¯¤Ê¤Ã¤Æ¤¿¤Ý¤¤¤Ê¡£ ¥¦¥£¥ó¥É¥¦¥·¥¹¥Æ¥à¤À¤±ºÆµ¯Æ°¤Ã¤Æ¤Ç¤¤ë¤ó¤À¤í¤¦¤«¡£ launchd ¤Ë¤Ê¤ó¤«¥·¥°¥Ê¥ëÁ÷¤ì¤Ð¤¤¤±¤ë¤«¡©
(17:18)
·ã¤·¤¯ less.
¤Á¤Ê¤ß¤Ë¡¢¤â¤Î¤¹¤´¤¤Àª¤¤¤Ç¥Õ¥¡¥¤¥ë¤òÆɤ߹þ¤à less ¥³¥Þ¥ó¥É¤Î¤³¤È¤Ç¤Ï¤Ê¤¤¡£
¤Á¤Ê¤ß¤Ë¡¢ÉáÃÊ¤Ï le ¤Ë alias ¤·¤Æ¤¤¤ë¡£
¤á¤É¤¤¡£
¸½¾õ¤Ç¤â Ruby ¤Ç 4000 ¹Ô¤À¤«¤é Java ¤À¤È1 Ëü¹Ô¤Ï±Û¤¨¤ë¤è¤Ê¤¢¡Ä¡Ä¡£ ¤«¤Ã¤¿¤ë¤¤¤Ê¤¢¡Ä¡Ä¡£
Ķµ×¤·¤Ö¤ê¤Ë Java ½ñ¤¤¤¿¤é try ¡Á catch ¤Îʸˡ¤ò˺¤ì¤Æ¤¤¤¿¡£
²¶Åª¤Ë¤Ï MacBook ¤Ç¤â¥Þ¥¦¥¹¤Ç¤¢¤ë¡£ ³Î¤«¤Ë¥È¥é¥Ã¥¯¥Ñ¥Ã¥É¤â°Õ³°¤È»È¤¤¤ä¤¹¤¤¤ó¤À¤±¤É¤â¡¢ Ĺ»þ´Ö»È¤¦¤Ê¤é¤ä¤Ã¤Ñ¤ê¥Þ¥¦¥¹¤¬¤¤¤¤¡£ Mighty Mouse ¤Ï¥·¥ó¥×¥ë¤Ê³°¸«¤ËÈ¿¤·¤Æ¼Â¤Ï 4 ¤Ä¥Ü¥¿¥ó¤¬¤¢¤ê¡¢ ±¦¥¯¥ê¥Ã¥¯¤â¤Ç¤¤ë¤· expose ¤â¸Æ¤Ó½Ð¤»¤ë¤·¥À¥Ã¥·¥å¥Ü¡¼¥É¤âµ¯Æ°¤Ç¤¤ë¡£ ¤«¤Ê¤êÊØÍø¡£
¥¹¥¯¥í¡¼¥ë¥Ü¥¿¥ó¤È¥µ¥¤¥É¥Ü¥¿¥ó¤Î³ä¤êÅö¤Æ¤Ï ¡Öexpose - ¤¹¤Ù¤Æ¤Î¥¦¥£¥ó¥É¥¦¡×¤È ¡Öexpose - ¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¥¦¥£¥ó¥É¥¦¡×¤Î ÁȤ߹ç¤ï¤»¤¬µ¤¤ËÆþ¤Ã¤Æ¤¤¤ë¡£
¤³¤Ê¤¤¤ÀÃÓÂÞ BIC ¤Ç Mac ¸«¤Æ¤¿¤é F9 ¤¬ÀڤäƤ¢¤Ã¤ÆسÁ³¤È¤·¤¿¡£ F12 ¤ÏÆ°¤¯¤Î¤Ë¡£Á´Á³¥¦¥ê¤¬¤ï¤«¤Ã¤Æ¤Ê¤¤¤ó¤À¤Ê¤¢¤È»×¤Ã¤¿¡£ ¤·¤«¤â°ìÈ֤Ǥ«¤¤¥â¥Ë¥¿¤Î iMac ¤Ç¤Ï Windows XP ¤òµ¯Æ°¤·¤Æ¤¤¤¿¡£ ËÜÅö¤Ë²¿¤ò¹Í¤¨¤Æ¤¤¤ë¤ó¤À¡£ ¤½¤ó¤Ê¤â¤ó¡¢¾®¤µ¤¤¥â¥Ë¥¿¤Î¥Þ¥·¥ó¤Ç¤³¤Ã¤½¤êÆ°¤«¤·¤È¤±¡£
expose ¤Ç¤±¤Ã¤³¤¦Ëþ¤·¤Æ¤ë¤ó¤À¤±¤É¤â¡¢ ¤ä¤Ã¤Ñ¤ê¥¦¥£¥ó¥É¥¦ÀÚ¤êÂؤ¨¤Ï¥¡¼¥Ü¡¼¥É¤À¤±¤Ç¤ä¤ê¤¿¤¤¤È¤¤â¤¢¤ë¡£ ¤½¤ó¤Ê¤ï¤±¤Ç QuickSilver ¤È¤¤¤¦¤Î¤È witch ¤È¤¤¤¦¤Î¤òÆþ¤ì¤Æ¤ß¤¿¡£ ¡Ä¡Ä¤±¤É¡¢¤±¤Ã¤¤ç¤¯»È¤Ã¤Æ¤Ê¤«¤Ã¤¿¤ê¤·¤Æ¡£
ÊØÍø¤À¤È¤Ï»×¤¦¤Î¤À¤¬¡¢¤Ê¤ó¤«¤á¤É¤¤¡£ ¤É¤¦¤âÍÑÅӤ˹ç¤ï¤Ê¤¤¡£
(16:01)
¤è¤¦¤ä¤¯ NTLM ǧ¾Ú¥Ñ¥Ã¥Á¤È¤ä¤é¤ò¥Þ¡¼¥¸¤·¤¿¡£ ext/Win32API/lib/win32/sspi.rb ¤¬Áý¤¨¤¿¡£ ¥¨¥é¡¼¤¬Á´Éô RuntimeError ¤Ç rescue ¤Ç¤¤ó¤Î¤Ç Îã³°¥¯¥é¥¹¤òÁý¤ä¤·¤Æ¤¯¤ì¤È¥ê¥¯¥¨¥¹¥È¤·¤Æ¤ª¤¤¤¿¡£ ¤¢¤È¤Ï net/http ¦¤Ç¾¤Îǧ¾Ú¤â¹ç¤ï¤»¤Æ ¤â¤¦¤Á¤ç¤¤¤¦¤Þ¤¯¥Þ¡¼¥¸¤·¤¿¤¤¤È¤³¤í¤À¤Ê¡£
(22:29)
Ť¯¤Ê¤Ã¤¿¤ó¤Ç¤³¤Ã¤Á¤Ë¡£
F4 ¤È¤«¤Ï¤À¤¤¤¿¤¤»î¤·¤Æ¤ß¤¿¤ó¤Ç¤¹¤¬¡¢ ¤Ê¤ó¤«Èù̯¤Ë˾¤à¤â¤Î¤È°ã¤¦¤ó¤Ç¤¹¤è¡£ ÉáÃÊ¤Ï expose ¤Ç¤¤¤¤¤ó¤À¤±¤É¤â¡¢ ¸¶¹Æ½ñ¤¤Î¤È¤¤À¤± Emacs ¤ÈÆÃÄê¤ÎüËö¤À¤±¤ò¹Ô¤Í褷¤¿¤¤¤ó¤Ç¤¹¡£ ¤Ç¤â Cmd+Tab ¤À¤ÈüËö¤¬Ê£¿ô¤¢¤ë¤È¤¤ËÁ´Éô¾å¤¬¤Ã¤Æ¤¤Á¤ã¤¦¤Î¤Çº¤¤ë¡£ witch ¤À¤È option ¥¡¼¤¬¾®¤µ¤¹¤®¤ë¤·±¦¤Ë¤Ê¤¤¤Î¤Çº¤¤ë¡£ ¾¤Î¤Ï¼ê¿ô¤¬Â¿¤¹¤®¡£
¤è¤¦¤¹¤ë¤Ë Windows ¤Î Alt+Tab ¤¬Íߤ·¤¤¤Ã¤Æ¤³¤È¤«¡£ witch ¤ò Cmd+Tab ¤Ë³ä¤êÅö¤Æ¤é¤ì¤ì¤Ð¤¤¤¤¤ó¤À¤±¤É¤â¡¢ ¤½¤ÎÀßÄêÊýË¡¤¬¤ï¤«¤é¤ó¤Î¤Ç¤¹¡£ ÉáÄ̤ËÀßÄꤷ¤è¤¦¤È¤¹¤ë¤È Cmd+Tab ¤¬½¦¤ï¤ì¤Á¤ã¤¦¤·¡¢ ¤«¤È¤¤¤Ã¤Æ Cmd+Tab ¤òÀÚ¤ëÊýË¡¤â¤ï¤«¤é¤Ê¤¤¡£ ~/Library °Ê²¼¤ò¤¤¤¸¤ë¤È¤É¤¦¤Ë¤«¤Ç¤¤¿¤ê¤¹¤ë¤Î¤«¤Ê¤¢¡£
(23:47)
Á´Éô»È¤Ã¤Æ¤ß¤ì¤Ð¤¤¤¤¤¸¤ã¤ó¡£ ¿ÍÀ¸¤º¤Ã¤ÈÉÏ˳¤¬Â³¤¯¤ï¤±¤Ç¤â¤Ê¤·¡£
(00:38)
¢£
Takayama Fumihiko [Cmd + Tab ¤¬²¡¤µ¤ì¤¿¤È¤¤ÏŬÅö¤Ê¥¡¼¥³¡¼¥É (Cmd + Shift + Option + Tab ¤È¤«) ¤òÅǤ¯¤è¤¦¤Ë
KeyRemap4MacBook ¤ò¤¤¤¸¤ë¤Î¤Ï¤É¤¦¤Ç¤·¤ç¤¦¤«¡£]
¢£ ÀÄÌÚ [¤¦¤¦¡¢¤ä¤Ã¤Ñ¤½¤¦¤Ê¤Ã¤Á¤ã¤¤¤Þ¤¹¤«¤Í¡£ºÇ¸å¤Î¼êÃʤϤ½¤ì¤«¤Ê¤¢¡£]
¢£
¤ê¤ó¤´¤Á¤ã¤ó [http://www.youtube.com/watch?v=sWa3iuZnHJs
¤³¤³¤Ç¡¢¥³¥Þ¥ó¥É¡Ü¥¿¥Ö¤Ë³ä¤êÅö¤Æ¤ëÊýË¡¤ä¤Ã¤Æ¤Þ¤¹¤è¡£]
¢£
¤µ¤¯ [¤ï¤¿¤·¤ÏPullTab¤ÇCmd+Tab¤ò¥«¥¹¥¿¥Þ¥¤¥º²Äǽ¤Ë¤·¤ÆWitch¤Ë³ä¤êÅö¤Æ¤Æ¤Þ¤·¤¿¡£
¤È½ñ¤¤Ä¤Ä¤ê¤ó¤´¤Á¤ã¤ó¤µ¤ó¤Î¥ê¥ó¥¯¤ò¸«¤¿¤é¤Þ¤µ¤Ë¤½¤ì¤Ç¤¹¤Í¡£]
¥Þ¥ó¥¬¤Îñ¹ÔËܤ¬¤¤¤Ä½Ð¤ë¤«ÃΤ餻¤Æ¤¯¤ì¤ë RSS ¥Õ¥£¡¼¥É¤Ã¤Æ¤Ê¤¤¤ó¤«¤Ê¡£ ¼«Ê¬¤ÎÇã¤Ã¤Æ¤ë¥·¥ê¡¼¥º¤À¤±¸ÂÄê¤ÇÇÛ¿®¤µ¤ì¤ë¤è¤¦¤Ê¤ä¤Ä¡£ ¤³¤¦¤¤¤¦¤Î¤Ï plagger ¤Ç¤Ç¤¤ë¤ó¤À¤í¤¦¤«¡£
http://plagger.g.hatena.ne.jp/SweetPotato/20061119/1163938121
¤¢¤ë¤é¤·¤¤¡£ ¤³¤ì¤ÏÊØÍø¤½¤¦¤À¤Ê¤¢¡£
(11:37)
> ¢£ ¤ê¤ó¤´¤Á¤ã¤ó [http://www.youtube.com/watch?v=sWa3iuZnHJs > ¤³¤³¤Ç¡¢¥³¥Þ¥ó¥É¡Ü¥¿¥Ö¤Ë³ä¤êÅö¤Æ¤ëÊýË¡¤ä¤Ã¤Æ¤Þ¤¹¤è¡£] > > ¢£ ¤µ¤¯ [¤ï¤¿¤·¤ÏPullTab¤ÇCmd+Tab¤ò¥«¥¹¥¿¥Þ¥¤¥º²Äǽ¤Ë¤·¤ÆWitch¤Ë³ä¤êÅö¤Æ¤Æ¤Þ¤·¤¿¡£ > ¤È½ñ¤¤Ä¤Ä¤ê¤ó¤´¤Á¤ã¤ó¤µ¤ó¤Î¥ê¥ó¥¯¤ò¸«¤¿¤é¤Þ¤µ¤Ë¤½¤ì¤Ç¤¹¤Í¡£]
¤½¤Ã¤«¡¢PullTab ¤È¤¤¤¦¤Î¤ò»È¤¦¤È¤Ç¤¤ë¤ó¤Ç¤¹¤Í¡£ ¤¢¤ê¤¬¤È¤¦¤´¤¶¤¤¤Þ¤¹¡£¤³¤ì¤«¡£
http://www.ragingmenace.com/software/pulltab/index.html
Dock ¤Î¥í¡¼¥É¤ò¥Õ¥Ã¥¯¤·¤Æ Cmd+Tab ¤ò¼è¤é¤»¤Ê¤¤¤è¤¦¤Ë¤¹¤ë¤Î¤«¡£ APE ¤Æ¤Î¤¬É¬Íפ餷¤¤¤±¤É¡¢ Cmd+Tab ¤À¤±¤Î¤¿¤á¤Ë 3 ¤Ä¤â¥½¥Õ¥È¥¦¥§¥¢¤òÆþ¤ì¤ë¤Ã¤Æ·ù¤À¤Ê¡£ ¤â¤Ã¤Èñ½ã¤Ë¤Ç¤¤Ê¤¤¤Î¤«¤Ê¤³¤ì¡£
¼êÈ´¤¥×¥í¥°¥é¥à¤ÇºÑ¤Þ¤»¤é¤ì¤Ê¤¤¤«¹Í¤¨¤Æ¤ß¤è¤¦¡£ APE + PullTab ¤ò¥Ñ¥é¥á¡¼¥¿·è¤áÂǤÁ¤Ç½ñ¤¤¤¿¤éû¤«¤¯¤Ê¤é¤Ê¤¤¤À¤í¤¦¤«¡£ ¤È¤ê¤¢¤¨¤º APE ¤Î¥½¡¼¥¹¥³¡¼¥É¤ò¸«¤Æ¤ß¤è¡£
¡Ä¡Ä¥ª¡¼¥×¥ó¥½¡¼¥¹¤¸¤ã¤Ê¤¤¤Î¤«¡£º¤¤Ã¤¿¤Ê¡£
¤Ç¤â¤Þ¤¢¡¢¤¢¤ì¤À¡¢¤è¤¦¤¹¤ë¤Ë Dock ¤Îµ¯Æ°¤ò¥Õ¥Ã¥¯¤¹¤ê¤ã¤¤¤¤¤ó¤À¤«¤é¡¢ ¤Ê¤ó¤«¼ê¤Ï¤¢¤ê¤½¤¦¤Êµ¤¤¬¤¹¤ë¡£ DYLD_INSERT_LIBRARIES ¤¢¤¿¤ê¤ò»È¤¨¤Ð¤¤¤¤¤ó¤«¤Ê¡£
(17:44)
¤½¤¦¤¤¤¨¤Ð¥µ¥¬ 2 ¤Ç¥á¥«¤ÎÉð´ï¤Ë ¡Ö¥ì¥ª¥Ñ¥ë¥É 2¡×¤È¤¤¤¦¤Î¤¬¤¢¤Ã¤¿¤è¤¦¤Êµ¤¤¬¤¹¤ë¡£ ¤É¤¦¤ä¤Ã¤ÆÀï¼Ö¤òÁõÈ÷¤¹¤ë¤Î¤À¤È¤¤¤¦¥Ä¥Ã¥³¥ß¤¬¤ªÌó«¡£
(18:01)
¤½¡¼¤¤¤¨¤Ð BitClust ¤Ï YARV ¤ÇÆ°¤¯¤ó¤À¤í¤¦¤«¡¼¡¢ ¤È»×¤Ã¤Æ»î¤·¤Æ¤ß¤¿¤é¤¢¤Ã¤µ¤êÆ°¤¤¤¿¡£ ¤·¤«¤·Èù̯¤ËÃÙ¤¯¤Ê¤Ã¤Æ¤¤¤ë¡£0.03 É䯤餤¡£
~/c/bitclust % time ruby bin/refe.rb -d tmpdb strin index >/dev/null method expand: 0.055 (n_methods:3) class expand: 0.008 (n_classes:1) type expand: 0.009 ruby bin/refe.rb -d tmpdb strin index > /dev/null 0.19s user 0.07ssystem 68% cpu 0.368 total ¡¡ ~/c/bitclust % time ruby-yarv bin/refe.rb -d tmpdb strin index >/dev/null method expand: 0.062 (n_methods:3) class expand: 0.007 (n_classes:1) type expand: 0.008 ruby-yarv bin/refe.rb -d tmpdb strin index > /dev/null 0.22s user0.07s system 72% cpu 0.392 total
¤ó¡¼¡¢¤Ç¤â¡¢µ¯Æ°¤¬ÃÙ¤¯¤Ê¤Ã¤Æ¤¤¤ë¤³¤È¤â¹Í¤¨¤ë¤È¡¢ ¼Â¹Ô¼«ÂΤϤ½¤ì¤Ê¤ê¤Ë®¤¯¤Ê¤Ã¤Æ¤ë¤ó¤À¤í¤¦¤Ê¡£ ¤ä¤Ï¤ê¤â¤¦¤Á¤ç¤Ã¤È»þ´Ö¤Î¤«¤«¤ë¥×¥í¥°¥é¥à¤Ç¤Ê¤¤¤È¤¢¤Þ¤ê°ÕÌ£¤¬¤Ê¤¤¡£
¥Ñ¡¼¥¹¤Î¤Û¤¦¤ò·×¬¤¹¤ì¤Ð®ÅÙº¹¤¬½Ð¤ë¤«¤â¤Ê¡£ ¥Ç¥£¥¹¥¯½ñ¤¹þ¤ßľÁ°¤Þ¤Ç¤Î¼Â¹Ô»þ´Ö¤ò·×¬¤·¤Æ¤ß¤è¤¦¡£
~/c/bitclust % time ruby =bitclust -d ./tmpdb3 update --stdlibtree=../rubydoc/refm/api/src ruby =bitclust -d ./tmpdb3 update --stdlibtree=../rubydoc/refm/api/src 6.04s user 0.18s system 98% cpu 6.333 total ¡¡ ~/c/bitclust % time ruby-yarv =bitclust -d ./tmpdb4 update --stdlibtree=../rubydoc/refm/api/src ruby-yarv =bitclust -d ./tmpdb4 update --stdlibtree=../rubydoc/refm/api/src 5.95s user 0.20s system 99% cpu 6.161 total
¤ä¤Ã¤ÑÈù̯¤Ë®¤¤¤Ê¡£0.1 É䯤餤¡£ BitClust ¤Ï I/O ¤È (C ¥ì¥Ù¥ë¤Î) ʸ»úÎó½èÍý¤Î¤«¤¿¤Þ¤ê¤À¤«¤é¡¢ ¤³¤ó¤Ê¤â¤ó¤À¤í¤¦¤Í¡£
(17:05)
¤·¤Ð¤é¤¯²æËý¤·¤Æ¤¤¤¿¤¬¤Ä¤¤¤Ë Mac ¤Ë GNU ls ¤òÆþ¤ì¤Æ¤·¤Þ¤Ã¤¿¡£ ls filename -s ¤Ã¤Æ¤ä¤ë¤³¤È¤¬Â¿¤¤¤ó¤À¤è¤Í²¶¡Ä¡Ä¡£
(11:21)
·Þ·â¡£¥Õ¥é¥ó¥¹¤À¤â¤ó¤Ê¤¢¡£¥Õ¥é¥ó¥¹¤Ç¤¹¤è¡£ µ¤¤ò¤Ä¤±¤Æ¹Ô¤Ã¤Æ¤¤Æ¤¯¤À¤µ¤¤¡£
º£²ó¤Ï¡¢¤«¤º¤Ò¤³¤µ¤ó¤ÎÁÔÂç¤Ë¤·¤Æ¼Ù¤Ê¤ë·×²è¤¬ÌÀ¤é¤«¤Ë¤Ê¤Ã¤¿¡£ ¤ï¤ì¤ï¤ì¤Ï¤¤¤«¤Ë¤·¤Æ¤³¤Î¶¯Âç¤ÊÎϤ˹³¤¨¤Ð¤è¤¤¤Î¤Ç¤¢¤í¤¦¤«¡£
akr ¤µ¤ó¤«¤é net/http ¤¬ÃÙ¤§¡¼¡¢ ¤È¤Î¤ªÃ£¤·¤¬¤¢¤Ã¤¿¤Î¤Ç¼êÈ´¤¥³¥ß¥Ã¥È¡£ ¤È¤ê¤¢¤¨¤º¥Ð¥Ã¥Õ¥¡¥µ¥¤¥º¤ò 1KB ¢ª 16KB ¤Ë¤·¤Æ¤ß¤¿¡£ ¤Ê¤ó¤Ç select ¤ä¤á¤¿¤Î¤«Ä´¤Ù¤Æ¡¢ÌäÂê¤Ê¤µ¤½¤¦¤Ê¤éselect ¤ËÌ᤹¤«¤Ê¡£
¥â¥Æ¤Ø¤ÎÆ»¡§ºÇ½é¤Î°û¤ß²ñ¤Ç¥×¥í¥Ý¡¼¥º¤·¤Æ¤Ï¤¤¤±¤Ê¤¤¡£
(11:56)
ruby-reference-manual-diff ¤Ã¤Æ ML ̾¤Ï¤É¤¦¹Í¤¨¤Æ¤âŤ¹¤®¤ë¡£ refm ¤È refm-diff ¤Ç¤¤¤¤¤è¡£
(23:01)
¥ê¥Õ¥¡¥ì¥ó¥¹¥Þ¥Ë¥å¥¢¥ë·×²è¡£ @param ¤È¤«¤Î»ÅÍͤò·è¤á¤¿¤Þ¤Þ¼ÂÁõ¤·¤Æ¤Ê¤«¤Ã¤¿¤Î¤Ç ¥µ¥¯¥Ã¤È¼ÂÁõ¤·¤Þ¤¹¤«¡¢¤È»×¤Ã¤¿¤Î¤À¤¬¡¢ refe s i ¤È¤«¤ä¤ë¤È̵¸Â¥ë¡¼¥×¤«¤è¡¢ ¤Ã¤Æ¤Û¤É»þ´Ö¤¬¤«¤«¤ë¤³¤È¤Ëµ¤ÉÕ¤¤¤Æ¤·¤Þ¤Ã¤¿¡£
s ¤Ç»Ï¤Þ¤ë¥¯¥é¥¹¤Ï¤¹¤´¤¤Â¿¤¤¤·¡¢ i ¤Ï Object ¤Î¥á¥½¥Ã¥É¤Ë¤Ò¤Ã¤«¤«¤ë¤Î¤Ç¡¢ ÁȤ߹ç¤ï¤»¤Ç¤â¤Î¤¹¤´¤¤¤¿¤¯¤µ¤ó¤Î¥á¥½¥Ã¥É¤Ë¥Þ¥Ã¥Á¤¹¤ë¡£ ¤Ç¡¢¤½¤Î¤â¤Î¤¹¤´¤¤¤¿¤¯¤µ¤ó¤Î¥á¥½¥Ã¥É¤ò Á´Éô¥í¡¼¥É¤·¤ÆÀþ·¿¥Þ¥Ã¥Á¤¹¤ë¤Î¤ÇÃÙ¤¤¡¢ ¤È¤¤¤¦¤³¤È¤é¤·¤¤¡£¤É¤Á¤é¤«¤È¸À¤¨¤ÐÆÃ¤Ë¥í¡¼¥É¤¬ÃÙ¤¤¡£ ¿· ReFe ¤Ç¤Ï¡¢¤È¤Ë¤«¤¯¥í¡¼¥É¤¹¤ë¥¨¥ó¥È¥ê¿ô¤ò²¡¤µ¤¨¤ë¤³¤È¤¬¾¡Íø¤Ø¤Î¸°¤Ç¤¢¤ë¡£
¤³¤ì¤Ç¸½¾õ¸«ÉÕ¤«¤Ã¤Æ¤¤¤ëºÇ°¤Î¥±¡¼¥¹¤Ç¤³¤Î¤¯¤é¤¤¤Þ¤ÇÍÞ¤¨¤¿¡£
~/c/bitclust % time refe2 -d db.big s i >/dev/null refe2 -d db.big s i > /dev/null 0.24s user 0.05s system 98% cpu0.290 total
ÉáÄ̤Ϥâ¤Ã¤È¸õÊ䤬¾¯¤Ê¤¤¤Î¤Ç¡¢¤â¤¦¤Á¤ç¤¤Â®¤¤¡£
~/c/bitclust % time refe2 -d db.big arr map >/dev/null refe2 -d db.big arr map > /dev/null 0.13s user 0.05s system 97% cpu0.181 total
¤³¤Î®Å٤Ϥ«¤Ê¤ê¸Â³¦¤Ã¤Ý¤¤¤è¡£
(02:54)
http://doc.loveruby.net/refm/api/view/class/Array
Á´ÂÎŪ¤Ë¸«¤¿¤á¤òÊѤ¨¤Æ¡¢°ìÍ÷¥Ú¡¼¥¸¤Ç¤ÏÍ×Ìó¤À¤±½Ð¤¹¤è¤¦¤Ë¤·¤Æ¤ß¤¿¡£
·Ñ¾µ¤·¤¿¥á¥½¥Ã¥É¤â¤¤¤Á¤ª¤¦É½¼¨¤·¤Æ¤Ï¤ß¤¿¤±¤É¡¢ private ¥á¥½¥Ã¥É¤òºï¤Ã¤Æ¤Ê¤¤¤»¤¤¤Ç¥¨¥ó¥È¥ê¤¬ÌµÂ̤Ë¿¤¤¡£ system ¤È¤«½Ð¤Æ¤ë¤·¡£ ¥³¡¼¥É¤ò²þÁ±¤¹¤ë¤Þ¤Ç¤Ï̾Á°¤À¤±¤Ë¤·¤Æ¤ª¤³¤¦¡£
¡Ä¡Ä¤È¤¤¤¦¤«¡¢Æ±¤¸¥¯¥é¥¹¤Î¥á¥½¥Ã¥É¤Þ¤Ç½Ð¤Æ¤ë¤Ê¤³¤ì¡£ ¤Ê¤ó¤Ç¤À¡£
Object ¤Î¥á¥½¥Ã¥É¤¬¤¨¤ó¤¨¤ó·Ñ¾µ¤µ¤ì¤ë¤Î¤âÈù̯¤ËÉÔÊؤÀ¤Ê¤¢¡£ ¤·¤«¤·¤Ê¤±¤ì¤Ð¤Ê¤¤¤Çº¤¤ë¤è¤¦¤Êµ¤¤â¤¹¤ë¡£
¥¯¥é¥¹¤´¤È¤Ë¤Þ¤È¤á¤ë¤«¤Ê¤¢¡£
̾Á°¤ò¥¡¼¤Ë¤·¤Æ·Ñ¾µ¤·¤¿¥á¥½¥Ã¥É¤ò Á´ÉôƱÎó¤Ëʤ٤륪¥×¥·¥ç¥ó¤âÍߤ·¤¤¤È¤³¤í¤À¡£
·ë¾ë¤µ¤ó¤Î¿·ºî¤¬È¯É½¤µ¤ì¤Þ¤·¤¿¤Í¡£ ¤È¤¤É¤·ë¾ë¤µ¤ó¤ÎÆüµ¤ÇÏ¢ºÜ¤µ¤ì¤Æ¤¤¤¿¤ä¤Ä¤Î½ñÀÒ²½¤Ç¤¹¡£ ¼Â¤Ï¥ì¥Ó¥å¡¼¤µ¤»¤Æ¤â¤é¤Ã¤Æ¤¿¤ó¤Ç¤¹¤¬¡¢ °ì¸À¤Ç´¶ÁÛ¤ò¸À¤¦¤Î¤ÏÆñ¤·¤¤¤Î¤Ç°õ¾Ý¤Ë»Ä¤Ã¤¿¤È¤³¤í¤ò¥Ô¥Ã¥¯¥¢¥Ã¥×¤·¤Æ¤ß¤¿¤¤¡£
½³¤ê¤¿¤¤¤Î¤ÏÇØÃæ¤À¤±¤Ç¤Ï¤Ê¤«¤Ã¤¿¡£ ¡Ö¤è¡©¡×(nil)¡£¥ß¥ë¥«¤µ¤ó¤Î¥Ä¥ó¥Ç¥ìÈæΨ 9:1 (Åö¼Ò·×¬)¡£ ¥Õ¥£¥Ü¥Ê¥Ã¥Á¡¦¥µ¥¤¥ó (¤Ê¤¼¤« ONE PIECE ¤ò»×¤¤½Ð¤·¤¿)¡£ ¤Ç¡¢24 ¾èº¬¡£
¤Æ¤³¤È¤Ç²¶¤âÇ㤦¤«¤é·¯¤âÇ㤨¡£
(15:02)
¥Ñ¡¼¥µ¥¸¥§¥Í¥ì¡¼¥¿¤ÏǺ¤ó¤À¤¹¤¨¤Ë JavaCC + jjtree ¤ò»È¤¦¤³¤È¤Ë¤·¤¿¡£
¤³¤Îµ½Ò¤Î¾éŤµ¤Ï¤É¤¦¤Ë¤«¤·¤Æ¤Û¤·¤¤¡£ ¤Ê¤ó¤Ç nonterminal ¤Ë¥«¥Ã¥³¤Ä¤±¤ë¤ó¤À¤è¡©¡ª "AST" + nonterminal ̾¤¬¥Î¡¼¥É̾¤Ã¤Æ¤¤¤¦ jjtree ¤Î¥Ç¥Õ¥©¥ë¥È¤âµ¤¤ËÆþ¤é¤Í¤¨¤·¡£ nonterminal ¤Î¥·¥ó¥Ü¥ë¤Ï¾®Ê¸»ú¤Ç»Ï¤á¤µ¤»¤Æ¤¯¤ì¡£
Ãͤò¤È¤ë¤È¤¤Ë val =
<TERM> <TERM> <TERM> a b c
¤Ã¤Æ½ñ¤¯¤Î¤¬¤¤¤¤¤È»×¤¦¤ó¤À¡£
LL(k) ¤Ï¤ï¤ê¤ÈÊØÍø¡£ ¤Ç¤â¤ä¤Ã¤Ñ±é»»»ÒÍ¥Àè½ç°Ì¤Î½èÍý¤¬ÌÌÅݤÀ¤Ê¡£
(12:44)
~/c/stdcompiler/src % cat test1.cb int main(int argc, char **argv) { printf("Hello, World!\n"); return 0; } ~/c/stdcompiler/src % java -classpath build/classes Compiler --dump-ast test1.cb ToplevelNode ListNode ListNode DefunNode TypeNode FixedParamsNode SlotNode TypeNode SlotNode TypeNode ScopeNode ListNode BlockNode FuncallNode VariableNode ListNode StringLiteralNode ReturnNode IntegerLiteralNode
¢« ¤¤¤Þ¥³¥³
(16:26)
¤·¤Þ¤Ã¤¿¡ª ¸¶¹Æ¥ì¥Ý¥¸¥È¥ê¤Î²¼¤ËÆþ¤ì¤Æ¤·¤Þ¤Ã¤¿¡£ cflat ¥ì¥Ý¥¸¥È¥ê¤ËÆþ¤ì¤ë¤Ù¤¤À¤Ã¤¿¤Ê¡£
(16:28)
¢£
¤ß¤º¤·¤Þ [¤³¤ó¤Ë¤Á¤Ï¡£
> ¤Ê¤ó¤Ç nonterminal ¤Ë¥«¥Ã¥³¤Ä¤±¤ë¤ó¤À¤è¡©¡ª
°ì±þÍýͳ¤Ï¤¢¤Ã¤Æ¡¢nonterminal¤Î¸Æ¤Ó½Ð¤·»þ¤Ë°ú¿ô¤òÅϤ¹¤¿¤á¤Ê¤ó¤Ç¤¹¤¬¡¢
¤Û¤È¤ó¤É¤Î¾ì¹ç¡¢°ú¿ô¤Ê¤ó¤«ÅϤµ¤Ê¤¤¤ó¤À¤«¤é³ç¸Ì¤Ï¾Êά¤µ¤»¤Æ¤¯¤ì¤è¡ª¤È
»×¤Ã¤¿¤³¤È¤Ï¤¢¤ê¤Þ¤¹¡£
> Æ󼡸µÅª¤Ë
> <TERM> <TERM> <TERM>
> a b c
> ¤Ã¤Æ½ñ¤¯¤Î¤¬¤¤¤¤¤È»×¤¦¤ó¤À¡£
¤³¤ì¤À¤ÈµÕ¤Ë¡¢nonterminal¤ÎÄêµÁ¤òÊѹ¹¤·¤Æ¡¢TERM¤òÄɲä·¤¿¤ê¤·¤¿¤È¤¡¢
<TERM> <NEWTERM> <TERM> <TERM>
a b c d
¤Î¤è¤¦¤Ë¤¤¤Á¤¤¤Á¤½¤ì¤Ë¤¢¤ï¤»¤Æ̾Á°¤Î°ÌÃÖ¤ò¤º¤é¤µ¤Ê¤¤ã¤Ê¤é¤Ê¤¤¤È¤¤¤¦
¥Ç¥á¥ê¥Ã¥È¤¬¤¢¤ë¤Î¤Ç¡¢¤É¤Ã¤Á¤¬¤¤¤¤¤«¤Ï°ì³µ¤Ë¤Ï¸À¤¨¤Ê¤¤¤è¤¦¤Ê¡£]
¢£ ÀÄÌÚ [½ñ¤¯¤Û¤¦¤Î¼ê´Ö¤ò¤È¤ë¤«¡¢Æɤà¤Û¤¦¤Î¼ê´Ö¤ò¤È¤ë¤«¤Ë¤è¤ë¤Ç¤·¤ç¤¦¤Í¡£¤ï¤¿¤·¤ÏÆɤߤ䤹¤±¤ì¤Ð¤Á¤ç¤Ã¤È¤¯¤é¤¤½ñ¤¯¼ê´Ö¤¬Áý¤¨¤Æ¤â¤¤¤¤¤È»×¤¤¤Þ¤¹¡£¤½¤ì¤Ë¡¢µ¬Â§¤òÊѤ¨¤¿¤é¤É¤¦¤»¥¢¥¯¥·¥ç¥ó¤È¤«¤âÊѤï¤ë¤ó¤À¤í¤¦¤·¡¢¤½¤ó¤Ê¤È¤³¤í¤Ç¤»¤»¤³¤Þ¤·¤¯¥¿¥¤¥×Î̤òÀáÌ󤷤Ƥ⤷¤«¤¿¤Ê¤¤¤ó¤¸¤ã¤Ê¤¤¤Ç¤¹¤«¡£]
http://www.falcom.com/info/index.html
¤È¤ê¤¢¤¨¤º¶«¤Ö¤è¡ª ²¶¤Ï¡ª
±ÑͺÅÁÀâ¤Î¿·ºî¤¤¿¤¢¤¢¤¢¤¢¤¢¡½¡½¡½¡½¡½¡½¡½¡½¡½¡½¡½¡ª¡ª
¼¡¤Ï¥¥ã¥é¤È¤«ÊѤ¨¤Æ¤¯¤ë¤È»×¤Ã¤Æ¤¿¤Î¤Ç¶õ¤Î³¤¤Ë¤Ê¤Ã¤¿¤Î¤Ï°Õ³°¤À¡£ ¤µ¤¹¤¬¤Ë¼¡¤Ï¥ê¥Ù¡¼¥ë¤¸¤ã¤Ê¤¤¤ó¤À¤í¤¦¤Ê¡£ ¤ª¤ì SC ¤À¤±¤Ç¤â¥ê¥Ù¡¼¥ë 3 ¼þ¤·¤¿¤·¡£ ¤ä¤Ã¤Ñ SC ¤Î¥é¥¹¥È¤Îή¤ì¤«¤é¤·¤ÆÄë¹ñ¤Î餫¤Ê¡£ ¤È¤¹¤ë¤È¥ª¥ê¥Ó¥¨¤Ï½Ð¤Æ¤¤½¤¦¤À¤±¤É¥¯¥í¡¼¥¼¤Ï¤É¤¦¤Ê¤ó¤À¤í¤¦¡Ä¡Ä¡£ ¥¸¥ó¤µ¤ó¤Ï¤É¤³¤Ç¤âÍè¤Æ¤¯¤ì¤½¤¦¤À¡£ ¥¢¥¬¥Ã¥È¡õ¥Æ¥£¡¼¥¿¤Ï¥®¥ê¥®¥ê¤«¡£ ¤Ç¤â¤Ê¤ó¤È¤«Íý¶þ¤ò¤Ä¤±¤Æ½Ð¤·¤ÆÁ´°÷½Ð¤·¤Æ¤¯¤ì¤½¤¦¤Êµ¤¤â¤¹¤ë¤Í¡£
¤¢¤ì¡© ¤¢¤È°ì¿Í¤¤¤¿¤è¤¦¤Ê¡£¥¸¥ç¥¼¥Ã¥È¤À¡£ ¡Ä¡Ä¤¤¤ä¤ï¤«¤Ã¤Æ¤Þ¤¹¤è¥·¥§¥é»Ð¤Í¡£
¤È¤¤¤¦¤«¤½¤â¤½¤â¼ç¿Í¸ø¤Ï¥¨¥¹¥Æ¥ë¤Ê¤Î¤«¡£ SC ¤Ç¥ì¥Ù¥ë 90 °Ê¾å¤¤¤Ã¤¿¤ó¤À¤«¤é º£²ó¤Ï¤½¤Î³¤¤È¤¤¤¦¤ï¤±¤Ë¤â¤¤¤«¤Ê¤¤¤À¤í¤¦¤·¡£ ¥¨¥¹¥Æ¥ë¥è¥·¥å¥¢¤¬¥ì¥Ù¥ë 1 ¤«¤é¤Ã¤Æ¤Î¤â¤Ê¤ó¤«ÊѤÀ¤·¡£ Í··â»Î¥é¥ó¥¯¤â¤â¤¦¾å¤¬¤Ê¤¤¡£ ¤¤¤ä S µé¤¬ÌÜɸ¤Ã¤Æ¤Î¤â¤¢¤ê¤¦¤ë¤Î¤«¡£ ¥±¥Ó¥ó¤¬¼ç¿Í¸ø¤À¤È¤·¤Ã¤¯¤ê¤³¤Ê¤¤¤·¤Ê¤¢¡£ °ìÈÖÁ°Ì̤οͤâ¤â¤Î¤¹¤´¤¯¼ç¿Í¸ø¤Ã¤Ý¤¯¤Ê¤¤¥Ó¥¸¥å¥¢¥ë¤À¤·¡£ ¤Ä¡¼¤«¡¢SC ¤Î¥é¥¹¥È¤ÇÉã¤Á¤ã¤ó¤¬ ¡Ö¾¤Î¼Ô¤¿¤Á¤¬Ã´¤¦¤³¤È¤Ë¤Ê¤ë¤À¤í¤¦¡× ¤Ã¤Æ¸À¤Ã¤Æ¤¿¤Î¤Ï¤É¤¦¤Ê¤Ã¤¿¤ó¤À¡£
º£²ó¤Ï¡Ö4th ¤Ë³¤¯¡×¤Ï´ªÊÛ¤·¤Æ¤Û¤·¤¤¡£
¤¤¤Þ¤«¤é¥é¥¹¥À¥ó¡õ¥é¥¹¥Ü¥¹¤Î²»³Ú¤¬³Ú¤·¤ß¤Ç¤Ê¤é¤Ê¤¤¡£ ¤½¤¦¤¤¤¨¤Ð²»³Ú¤Ï¤Þ¤¿Æ±¤¸¥Æ¡¼¥Þ¤ò»È¤¦¤Î¤«¤Ê¡£ ¤Þ¤¿Æ±¤¸¤À¤È¤µ¤¹¤¬¤ËË°¤¤½¤¦¤À¤¬¡¢ ¤·¤«¤·ÊѤï¤Ã¤¿¤é¤½¤ì¤Ï¤½¤ì¤Ç¥¤¥á¡¼¥¸¤¬°ã¤¦¤È¤«¤ÎÉ԰¤¬¡Ä¡Ä¡£
¥ê¥·¥ã¡¼¥ëÂ纴¤Ï¤É¤³¤Ç½Ð¤Æ¤¯¤ë¤ó¤À¤í¤¦¡£ ¥ê¥Ù¡¼¥ë³°¤Ç½ÐÈÖ¤¬¤¢¤ë¤Î¤«¡£
¤â¤·¤«¤·¤ÆÊ̤ιñ¤À¤ÈÍ··â»Î¥é¥ó¥¯¤Ï¥ê¥»¥Ã¥È¤µ¤ì¤ë¡© ¤¤¤ä¤½¤ó¤Ê¤³¤È¤Ê¤¤¤è¤ÊÍ··â»Î¶¨²ñ¤Ï¥¤¥ó¥¿¡¼¥Ê¥·¥ç¥Ê¥ë¤ÊÁÈ¿¥¤À¤Ã¤¿¤Ï¤º¤À¡£
¤½¤¦¤«Äë¹ñ¤À¤±¤¸¤ã¤Ê¤¯¤Æ³Æ¹ñ¤ò½çÈ֤ˤޤï¤ë¤È¤¤¤¦²ÄǽÀ¤â¤¢¤ë¤«¡£ ¤¢¡¢¤³¤ì¤¤¤¤¤Ê¤¢¡£Îã¤Î¤Ê¤ó¤È¤«¼«¼£¶è¤Ë¹Ô¤±¤Ð¥Æ¥£¡¼¥¿¤â½Ð¤»¤ë¤·¡¢ ¶¦Ï¹ñ¤Ë¹Ô¤±¤Ð¥¸¥ó¤µ¤ó¤¬½Ð¤»¤ë¤¸¤ã¤ó¡£ ¤ó¤ÇºÇ½ª¾Ï¤¬¥ê¥Ù¡¼¥ë·èÀï¤È¤«¤À¤Èdz¤¨¤ë¡£ ¤¢¡¼¤Ç¤â¤½¤ì¤ÏÆó²ó¤ä¤Ã¤¿¤·¥Þ¥ó¥Í¥ê´¶¤¬½Ð¤Æ¤·¤Þ¤¦¤«¡£ ¤à¤·¤íÄë¹ñ¼óÅÔ·èÀ狼¤Ê¡£
FC ¤Ç¡¢¥°¥é¥ó¥»¥ë¤ËÁ´°÷¤¬½¸¤Þ¤Ã¤Æ¤¯¤ë¤¢¤¿¤ê¤¬¤¹¤´¤¯¹¥¤¤Ê¤ó¤À¤è¤Ê¡¼¡£ ¤¢¤Þ¤ê¤Ë¥Ù¥¿¤À¤±¤É¤½¤ì¤¬¤è¤¤¡£ ²¦¾ëÆÍÆþ¤«¤é¥ì¡¼¥ô¥§Àï¤Ë¤Ä¤Å¤¤¤Æ¥¨¥ì¥Ù¡¼¥¿¤Ç¹ß¤ê¤Æ¤¤¤Ã¤Æ ¥é¥¹¥È¥À¥ó¥¸¥ç¥ó¤Î²»³Ú¤¬¤«¤«¤ë¤¢¤¿¤ê¤¬ºÇ¹â¤Ç¤¹¡£
SC ¤Ï¥°¥é¥ó¥»¥ë½±·â¤«¤é¥ê¥Ù¥ë¥¢¡¼¥¯ÉÔ»þÃå¤Þ¤Ç¤¬¤¤¤¤¡£ ¥¢¥ë¥»¥¤¥æ¤Î¥à¡¼¥Ó¡¼¤Î¤¢¤¿¤ê¤Çdz¤¨¥á¡¼¥¿¡¼¤¬¿¶¤êÀڤ줿¡£ ¤Ç¤â¤¢¤Î¥à¡¼¥Ó¡¼ºî¤Ã¤¿¤È¤³¤í¤Ç¥¹¥¿¥Ã¥Õ¤¬ ÎÏ¿Ô¤¤¿¤Î¤«¤Ã¤Æ¤¯¤é¤¤¥ê¥Ù¥ë¥¢¡¼¥¯ÆâÉô¤Ï»ÄÇ°¤Ê´¶¤¸¡£ ¤È¤¤¤¦¤«¤½¤ÎÁ°¤Î»ÍÎؤÎÅã¤â»ÄÇ°¤Ê´¶¤¸¡£ ¼¹¹Ô¼Ô¤¬ 4 ¿Í¤¤¤ë¤«¤é¤Ã¤ÆƱ¤¸¤³¤È¤ò 4 ²ó¤ä¤é¤Ê¤¯¤Æ¤â¤¤¤¤¤Î¤Ë¤µ¡£ ¤½¤Î¤Ø¤ó¤Î¥Ð¥ê¥¨¡¼¥·¥ç¥ó¤Ï FC ¤Î¤Û¤¦¤¬¤è¤¯¤Ç¤¤Æ¤¤¤¿¡£
¤½¤¦¤¤¤ä̯¤ËÁàºî¤·¤Å¤é¤¤¥á¥Ë¥å¡¼¤ò²þÁ±¤·¤Æ¤Û¤·¤¤¡£ ¤¤¤Þ¤É¤³¤Ë¥Õ¥©¡¼¥«¥¹¤¬Åö¤¿¤Ã¤Æ¤ë¤Î¤«¤ï¤«¤ó¤Ê¤¤¤ó¤À¤è¤Í¡£
¤Þ¤¿¥Õ¥ë¥Ö¥é¥ó½Ð¤Ê¤¤¤«¤Ê¤¢¡£ ¤Ê¤ó¤«¥¦¥§¥Ö¤Î¥ì¥Ó¥å¡¼¸«¤Æ¤ë¤È¤¢¤Î¤Ê¤¾¤Ê¤¾¤¬¤¹¤²¡¼ÉÔɾ¤Ê¤ó¤À¤±¤É¡¢ ²¶¤Ï¥Õ¥ë¥Ö¥é¥óÂç¹¥¤¤Ç¤¹¡£ Ũ¤òÅݤ¹¤À¤±¤Î¼êÇÛËâ½Ã¥¯¥¨¥¹¥È¤è¤êÁ´Á³¤ª¤â¤·¤í¤¤¤¸¤ã¤ó¡£ Í··â»Î¶¨²ñ¤Î´ÇÈĤòÅð¤ó¤Ç¤¤¤¯¤¢¤¿¤ê¤¬¤ªÃãÌܤÀ¤·¡£
³Ø±àº×¤âÂç¹¥¤¤À¤±¤É¡£ ¤¢¤Î¥¤¥Ù¥ó¥È¤Ç¶õ¤Îµ°ÀפòÈ´¤±½Ð¤»¤Ê¤¯¤Ê¤Ã¤¿¤ó¤À¤è¤Ê¡£ ¤½¤³¤Þ¤Ç¤Ï¥Á¥Þ¥Á¥Þ¤ä¤Ã¤Æ¤¿¤±¤É¡¢ ³Ø±àº×¤«¤é¤Ï 1 Æü 1 ¾Ï¤ÎÀª¤¤¤Ç¥¯¥ê¥¢¤·¤¿¤«¤é¡£
¤½¤Î¾¤Ë°õ¾Ý¤Ë»Ä¤Ã¤Æ¤ë°ÍÍê¤È¸À¤¨¤Ð¥Ä¥¡¥¤¥¹¤ÎÉôÉÊõ¤·¡¢ ¥Ä¥¡¥¤¥¹¤Î¡ÖÎ×»þ»Ê½ñ¤Î»Ä¶È¡×¥·¥ê¡¼¥º¡¢ ¥Ä¥¡¥¤¥¹¤Î¥¹¥Ë¡¼¥«¡¼»îºî¡Ä¡Ä¤Ã¤Æ¡¢¥Ä¥¡¥¤¥¹¤Ð¤Ã¤«¤ê¤«¤è¡£
¤Þ¡¢²¿¤Ë¤·¤Æ¤â¤³¤ì¤ÏÇ㤦¤Í¡ª ¤¿¤È¤¨¥Ñ¥½¥³¥óËÜÂΤ´¤È¤Ç¤âÇ㤦¤è²¶¤Ï¡ª
(00:59)
¥á¥â¥êÉÔ¤¬¸Â³¦¡£ Safari ¤Î¥¦¥£¥ó¥É¥¦ÀÚ¤êÂؤ¨¤¬ÃÙ¤¤¡¢ ¥À¥Ã¥·¥å¥Ü¡¼¥É½Ð¤ë¤Î¤¬ÃÙ¤¤¡¢ ¥¢¥×¥ê¥±¡¼¥·¥ç¥óÀÚ¤êÂؤ¨¤ÇÂÔ¤¿¤µ¤ì¤ë¡¢ üËö¤«¤é Safari ¤ËÀÚ¤êÂؤ¨¤ÆÄ´¤Ù¤â¤Î¤·¤ÆÌá¤Ã¤Æ¤¯¤ë¤È ruby ¤Îµ¯Æ°¤¬ÃÙ¤¤¡¢javac ¤Îµ¯Æ°¤Ï¤â¤Ã¤ÈÃÙ¤¤ÃÙ¤¤ÃÙ¤¤¡£ ¤â¤¦²æËý¤Ç¤¤ó¡£ 1GB ¼Î¤Æ¤ë¤Î¤¬¤â¤Ã¤¿¤¤¤Í¡¼¤È¤«¸À¤Ã¤Æ¤Ê¤¤¤Ç 2GB ¤Ë¤¹¤ë¡£
(20:32)
http://book.mycom.co.jp/book/978-4-8399-2320-4/978-4-8399-2320-4.shtml
¤ë¤Ó¤ÞËÜ¡¢¤è¤¦¤ä¤¯½Ð¤Þ¤¹¡£ ¤³¤ÎËÜ¤Ï Rubyist Magazine ¤ÎźºïÏ¢ºÜ¤Î½ñÀÒ²½¤Ç¤¹¡£ ´û¸¤Îµ»ö¤¹¤Ù¤Æ¤Ë²Ã¤¨¤Æ½ñ¤²¼¤í¤·¤¬°ìËÜÆþ¤Ã¤Æ¤¤¤Þ¤¹¡£ ¤µ¤é¤Ë¡¢ ¤Þ¤Ä¤â¤È¤µ¤ó¡¢¤¿¤À¤µ¤ó¡¢³±¤µ¤ó¡¢³Ñ뤵¤ó¡¢À¾»³¤µ¤ó¡¢¤µ¤µ¤À¤µ¤ó ¤È¤¤¤¦¹ë²Ú¥á¥ó¥Ð¡¼¤Ë¤è¤ë¥³¥é¥à¤â¤Ä¤¤¤ÆĶ¤ª¤È¤¯¡£ ¸ø¼°¤Ë¤Ï 3 ·î 27 ÆüȯÇä¤Ç¤¹¤¬¡¢Ç¯ÅÙËö¤æ¤¨¡¢ ŹƬ¤Ëʤ֤ΤϤ⤦¾¯¤·¤¢¤È¤Ë¤Ê¤ë¤è¤¦¤Ç¤¹¡£
¥µ¥Ý¡¼¥È¥µ¥¤¥È¤Ï¤³¤Á¤é¡£
http://i.loveruby.net/ja/rubimabook/
¤³¤ÎËܤΥ¦¥ê¤Ï¡¢¥º¥Ð¥ê¡ª ¥³¥é¥à¤Ç¤¹¡£¥³¥é¥à¡£ ¤³¤Î¥á¥ó¥Ð¡¼¤ò½¸¤á¤¿»þÅÀ¤Ç¤Û¤Ü¾¡¤Á¤Ï·è¤Þ¤Ã¤¿¤è¤¦¤Ê¤â¤ó¤Ç¤¹¡£
źºï¤Ï¥¦¥§¥ÖÈǤ˲ÃÉ®ÄûÀµ¤·¤¿¤â¤Î¡¢¤È¤¤¤¦¤³¤È¤Ë¤Ê¤Ã¤Æ¤¤¤Þ¤¹¤¬¡¢ ¼ÂºÝ¤ÏÄûÀµ¤¹¤ë¤Ð¤Ã¤«¤ê¤Ç¤Û¤È¤ó¤É²ÃÉ®¤·¤Æ¤¤¤Þ¤»¤ó¡£ ¤¤¤ä¡¢¤À¤Ã¤Æ¡¢ ¤¿¤À¤Ç¤µ¤¨Ä¹¤¤Åººïµ»ö¤Ë²ÃÉ®¤·¤¿¤éï¤âÆɤßÀÚ¤ì¤Ê¤¤¤Î¤Ç¡£ Âå¤ï¤ê¤Ë¡¢Ï¢ºÜ»þ¤Ï¥¤¥Þ¥¤¥Á¤á¤À¤Ã¤Æ¤Ê¤«¤Ã¤¿ ¡Öźºï¥Ý¥¤¥ó¥È¡×¤òËÜʸÃæ¤ÇÌÀ¼¨¤·¤¿¤¦¤¨¡¢ID ¤ò³ä¤êÅö¤Æ¤Æ¡¢ ËÜÁ´ÂΤòÄ̤·¤ÆÁê¸ß»²¾È¤Ç¤¤ë¤è¤¦¤Ë¤·¤Æ¤¢¤ê¤Þ¤¹¡£ ¤³¤ì¤Ç¤«¤Ê¤ê¥ê¥Õ¥¡¥ì¥ó¥¹Åª¤Ê²ÁÃͤϹâ¤Þ¤Ã¤¿¤ó¤Ç¤Ï¤Ê¤¤¤«¤È»×¤¤¤Þ¤¹¡£ ¤¹¤¨¤Ê¤¬¡¼¤¯»È¤Ã¤Æ¤¤¤¿¤À¤±¤ì¤Ð¡£
(00:47)
¢£ ¤æ¡¼¤Ü¡¼ [¤è¤¦¤·¡¢Â¨Ç㤤¡£Ruby¤Ã¤Æ¼êÈ´¤¤ò·ë¹½µö¤·¤Æ¤¤¤ë¤Î¤Ç¡¢Â¾¿Í¤Î½ñ¤¤¤¿¥¹¥¯¥ê¥×¥È¤ò¸«¤Æ¶Ã¤¯¤³¤È¤Ð¤«¤ê¡£Àº¿À¤Ï°ì¤Ä¤Ç¤â¡¢ºîË¡¤Ï¼«Ê¬¤Ç·è¤á¤Æ¤Í¡£¤È¤¤¤¦¥¹¥¿¥¤¥ë¤Ç¤¹¤Í¡£Rails¤ä¤Ã¤Æ¤¤¤Þ¤¹¤¬ÖȤê¤Ã¤Ñ¤Ê¤·¤ÇÉ⤾夬¤ì¤Þ¤»¤ó¡£]
¢£ ºØÆ£¤¿¤À¤· [¼¡¤Ï¤¼¤Òmorq¤òźºï¤·¤Æ¤¯¤À¤µ¤¤ ;)]
¢£
ÀÄÌÚ [¤¢¤ê¤¬¤È¤¦¤´¤¶¤¤¤Þ¤¹¡£Â¾¤Î¿Í¤Î¥³¡¼¥É¤ò¸«¤ë¤Î¤ÏÊÙ¶¯¤Ë¤Ê¤ê¤Þ¤¹¤Í¡£¤ï¤¿¤·¤âźºï¤·¤Æ¤¤¤ÆµÕ¤Ë¿·¤·¤¤¤³¤È¤Ëµ¤ÉÕ¤¤¤¿¤ê¤·¤Þ¤¹¡£
>ÀÆÆ£¤µ¤ó
¤¤¤ä morq ¤Ï¤Ê¤ó¤«Åººï¤·¤Æ¤Ï¤¤¤±¤Ê¤¤¤è¤¦¤Êµ¤¤¬¤·¤Þ¤¹¤Ç¤¹¡¢¤Ï¤¤]
Subversion ¤Î¥³¥ß¥Ã¥È¥á¡¼¥ë (¤Î¥í¥°) ¤¬²½¤±¤ë¤è¡¼¡ª
¤È¤¤¤¦¤³¤È¤Ç¡¢¤¤¤Ã¤¿¤¤²¿¿Í¤¬½ñ¤¤Ê¤ª¤·¤Æ¤ë¤Î¤«¤ï¤«¤é¤ó¤¬ Subversion ¤Î¥³¥ß¥Ã¥È¥á¡¼¥ë¥¹¥¯¥ê¥×¥È¤ò½ñ¤Ä¾¤·¤Æ¤ß¤¿¡£
¥á¡¼¥ëÁ÷¿®¤Ï SMTP ¤ò»È¤¦¡£ ¥ì¥Ý¥¸¥È¥ê¤Î¥¨¥ó¥³¡¼¥Ç¥£¥ó¥°¤È¤«¤Î´Ä¶¤Ë°Í¸¤¹¤ëÉôʬ¤Ï Á´Éô¥³¥Þ¥ó¥É¥é¥¤¥ó¥ª¥×¥·¥ç¥ó¤«¤é»ØÄꤵ¤»¤ë»ÅÍͤˤ·¤¿¡£ ¾Ü¤·¤¯¤Ï --help ¸«¤Æ¤Í¡£
% svn-commit-mail.rb --help Usage: svn-commit-mail.rb [options] <repository> <rev> --svnlook=PATH svnlook command location.(default:/opt/local/bin/svnlook) --host=NAME SMTP server address. --port=NUM SMTP server port. --from=ADDR Mail from. --to=ADDR Mail to. --repository-encoding=NAME Character encoding ofrepository content. --mail-encoding=NAME Character encoding of the mail. --diff-deleted Create diff for deleted files --debug-smtp-mailer Dumps SMTP session. --help Prints this message and quit.
¤Á¤Ê¤ß¤Ë --to ¤ÏÊ£¿ô»ØÄê²Äǽ¡£
¥ê¥Õ¥¡¥ì¥ó¥¹¥Þ¥Ë¥å¥¢¥ë¤Î¥½¡¼¥¹¥³¡¼¥É¤Ï euc-jp ¤Ç ¥³¥ß¥Ã¥È¥í¥°¤Ï UTF-8 ¤À¤±¤É¤â¡¢ ¤¤¤Þ¤ó¤È¤³²½¤±¤º¤ËÁ÷¤ì¤Æ¤¤¤ë¤è¤¦¤À¡£
¡Ä¡Ä¤è¤¯¹Í¤¨¤ë¤È¡¢¥á¡¼¥ëÁ÷¿®¤ÏÊÌ¤Î¥×¥í¥°¥é¥à¤Ë¤·¤Æ ¥Ñ¥¤¥×¤Ç¤Ä¤Ê¤¤¤À¤Û¤¦¤¬ÍøÊØÀ¤¬¹â¤¤¤è¤¦¤Êµ¤¤¬¤¹¤ë¤Ê¡£ ¤Þ¤¢¡¢¤½¤ì¤À¤Èº£ÅÙ¤Ï --to ¤È --from ¤òÆó²ó»ØÄꤹ¤ë¤Î¤¬¤á¤É¤¤¤«¡£ ¤¤¤ä To: ¤È From: ¤À¤±Á÷¿®¥×¥í¥°¥é¥à¤Î¤Û¤¦¤ËÀ¸À®¤µ¤»¤ì¤Ð¤¤¤¤¤Î¤«¡©
(11:38)
MacBook ¤Î¥á¥â¥ê¤òÁýÀߤ·¤Æ 2GB ¤Ë¤·¤Æ¤ß¤¿¡£
2GHz, 2way, 2GB ¤È¤¤¤¦¡Ö2¡×¿Ô¤¯¤·¤Ê¥¹¥Ú¥Ã¥¯¤Ë¤Ê¤Ã¤
¢£ MoonWolf [fcgi.so¤Ï¥Í¥£¥Æ¥£¥Ö¤Ê°ÕÌ£¤Ç¤Î¥¹¥ì¥Ã¥É¥»¡¼¥Õ¤Ë¤·¤¿¤Ä¤â¤ê¡£
fcgi.rb¤Þ¤Ç¤Ï¤Á¤ç¤Ã¤È¼ê¤¬¤Þ¤ï¤é¤Ê¤¤¡£
ÂÎÄ´²óÉü¤·¤¿¤é¥á¥ó¥Æ¥Ê¥ó¥¹¤ËÉüµ¢¤·¤Þ¤¹¡£
¤â¤¦¤Á¤ç¤Ã¤È¤Î´Ö¤ª´ê¤¤¤·¤Þ¤¹¡£¤Û¤ó¤È¤¹¤ß¤Þ¤»¤ó¡£]
¢£ ÀÄÌÚ [¤¤¤¨¤¤¤¨¡¢fcgi.rb ¤Ï¼«Ê¬¤Ç¤â»È¤Ã¤Æ¤ë¤Î¤ÇÊ̤˵¤¤Ë¤·¤Þ¤»¤ó¤è¡£¿ô¤¬Â¿¤¹¤®¤ë¤Î¤Ï¼«Ê¬¤ÎÀÕǤ¤Ç¤¹¤«¤é¡£
¤½¤ì¤Ï¤È¤â¤¢¤ì¡¢³Î¤«¤Ë fcgi.so ¤Ï¥¹¥ì¥Ã¥É¥»¡¼¥Õ¤Ë¤Ï¤Ê¤Ã¤Æ¤¤¤ë¤è¤¦¤Ç¤¹¤¬¡¢FastCGI ¥×¥í¥»¥¹¼«ÂΤ¬ (¤Þ¤À) ¥Þ¥ë¥Á¥¹¥ì¥Ã¥É¤ÇÆ°¤¤¤Æ¤¤¤Þ¤»¤ó¤è¤Í¡£¥é¥Ã¥×¤·¤Æ¤¤¤ë libfcgi ¤¬ MAX_CONNS=1, MAX_REQS=1, MPXS_CONNS=0 ¸ÇÄê¤Ç¤¹¤«¤é¡£]