Seeking for my unique color. ¤³¤Î¥Ú¡¼¥¸¤ò¥¢¥ó¥Æ¥Ê¤ËÄɲà RSS¥Õ¥£¡¼¥É Twitter

| R | Ruby | C++ | Perl | ÊÙ¶¯²ñ | Java | Python | lab | ¥¢¥¤¥Ç¥¢¥Þ¥é¥½¥ó | ËÜ | Emacs | Tsukuba.R
| ÍýÏÀÅý·×³Ø | ¼Â²òÀÏ | PRML | ½¸¹ç°ÌÁêÆþÌç| °ÕÌ£¤¬Ê¬¤«¤ë°ÌÁê¶õ´ÖÏÀ | µ¡³£³Ø½¬ | NLP
¤³¤ÎÆüµ­¤Î¤Ï¤Æ¤Ê¥Ö¥Ã¥¯¥Þ¡¼¥¯¿ô My Profile by iddy
2006 | 04 | 05 | 06 | 07 | 08 | 09 | 10 | 11 | 12 |
2007 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 09 | 10 | 11 | 12 |
2008 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 09 | 10 | 11 | 12 |
2009 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 09 | 10 | 11 | 12 |
2010 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 09 | 10 | 11 | 12 |
2011 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 09 | 10 | 11 | 12 |
2012 | 01 | 09 |

2012-09-19

¢£À¸Â¸Êó¹ð + °ú¤Ã±Û¤·Êó¹ð

µ×¤·¤Ö¤ê¤ÎÆüµ­¤Ç¤¹¡£¤¤¤Ä¤Î´Ö¤Ë¤«³ØÀ¸¤«¤é¼Ò²ñ¿Í¤Ë¤Ê¤Ã¤Æ¤Þ¤¹¡£ÁêÊѤï¤é¤ºµþºåÆà¤Ë¤¤¤Þ¤¹¡£

ÂçʬÆüµ­¤ò½ñ¤¤¤Æ¤¤¤Ê¤¤¤è¤¦¤Ç¤¹¤¬¡¢¼ê¸µ¤ÎDayOne¤Ç¤Ï4·î¤«¤éËèÆüÆüµ­¤ò½ñ¤¤¤Æ¤¤¤ë¤Î¤Ç¡¢¤à¤·¤íÁ°¤è¤ê½ñ¤¯¤è¤¦¤Ë¤Ê¤Ã¤Æ¤¤¤Þ¤¹¡£µ×¤·¤Ö¤ê¤Ê¤Î¤Ç¡¢ºÇ¶á¤Î¤³¤È¤ò½ñ¤¤¤Æ¤ß¤ë¤È

¤È¤¤¤¦´¶¤¸¤Ç¡¢»öÁ°¤ÎͽÁۤȤϰ㤤½¼¼Â&³Ú¤·¤ó¤À4¥ö·î¤Ç¤·¤¿¡£¸¦µæ½ê¤ËÌá¤Ã¤Æ¤­¤Æ¤«¤é¤Ï¤É¤¦»È¤Ã¤Æ¤¤¤¿¤«Ëº¤ì¤¿¸¦µæÇ¾¤Î¥ê¥Ï¥Ó¥ê¤ò¤·¤Ä¤Ä¡¢¤È¤¤¤¦´¶¤¸¤Ç¡£¸¦½¤Ãæ¤Ë´¶¤¸¤Æ¤¤¤¿¥¸¥ì¥ó¥Þ¤Ã¤Ý¤¤¤â¤Î¤òÂÇÇˤǤ­¤ë¤Î¤Ï¤ä¤Ã¤Ñ¤ê¤³¤³¤À¤Ê¡¼¤È¤¤¤¦´¶¤¸¤¬¤¹¤ë¤Î¤Ç¡¢¤ä¤Ã¤Ñ¤ê¤³¤³¤Ï³Ú¤·¤¤¤Ç¤¹¡£

¤½¤ó¤Ê¤ï¤±¤ÇBlog¤ª°ú¤Ã±Û¤·¤Î¤ªÃΤ餻¤Ç¤¹(ÅâÆÍ)¡£

¥Ù¥¿¤Êmarkdown¥Õ¥¡¥¤¥ë¤¬°ìËçÃÖ¤¤¤Æ¤¢¤ë¤À¤±¤Ç¡¢rss¤È¤«¥³¥á¥ó¥È¤â¤Ê¤¤Web 1.0¤ËÌá¤Ã¤¿¤è¤¦¤Ê´¶¤¸¤Ë¤Ê¤Ã¤Æ¤Þ¤¹¤¬¡¢¸µ¤«¤é¼«¸ÊËþ¤ÊÆüµ­¤Ê¤Î¤ÇÍפ¹¤ë¤Ë¼«Ê¬¤¬»È¤¤¤ä¤¹¤±¤ì¤Ð²¿¤Ç¤â¤¤¤¤¤ó¤Ç¤¹(¤©¡£¸¦µæ¤ÎÆâÍÆ¤È¤«¤Ï½ñ¤¤¤Æ¤è¤µ¤½¤¦¤È¤«½ñ¤¤¤Á¤ã¥À¥á¤Ã¤Ý¤¤¤È¤«¹Í¤¨¤ë¤Î¤âÌÌÅݤʤΤǽñ¤«¤Ê¤¤¤È»×¤¤¤Þ¤¹¤¬¡¢ºÇ¶áÇã¤Ã¤¿¥«¥á¥é¤ÎÍ·¤Ó¾ì¤Èclojure¤Î¤«¤­¤À¤á¤Ã¤Ý¤¤´¶¤¸¤Ë¤Ê¤ë¤«¤Ê¡¼¤È»×¤Ã¤Æ¤Þ¤¹¡£

2012-01-15

¢£[][]ikoma-sicp + github

½¤ÏÀ¤¬½ª¤ï¤Ã¤¿¤¯¤é¤¤¤«¤éSICP¤ÎÊÙ¶¯²ñ¤ò¤ä¤í¤¦¤È¤¤¤¦¤Î¤ò·×²è¤·¤Æ¤¤¤ë¡£Facebook¤ÇŬÅö¤ËÊ罸¤·¤Æ¡¢¼«Ê¬¤ò´Þ¤á¤Æ6¿Í¤Ç¤ä¤ë¤³¤È¤Ë¡£ºÇ½é¤Ï¾¾Ëܸ¦¤Î¿Í¿¤á¤Ç¤ä¤í¤¦¤«¤È»×¤Ã¤Æ¤¤¤¿¤ó¤À¤±¤É¡¢oza¤µ¤ó¤¬ºÇ½é¤Ë®¹¶È¿±þ¤·¤Æ¤¯¤ì¤¿¤Î¤È¡¢¾¾Ëܸ¦¤Î¶½Ì£»ý¤Ã¤Æ¤¯¤ì¤½¤¦¤ÊM1¤ËÀ¼¤ò¤«¤±¤Æ¤ß¤¿¤±¤É¿¶¤é¤ì¤¿¤ê¤Ê¤É¤Ç¾¾Ëܸ¦¤«¤é¤Ïid:keiskS·¯¤Î¤ß¤Î»²²Ã¤È¤Ê¤Ã¤¿¡£¤¢¤È¤Ï¤Þ¤¡¡¢¤¢¤ì¤³¤ì¤Ç¤æ¤«¤ê¤Î¤¢¤ë¿Í¤Ç¹½À®¤µ¤ì¤Æ¤¤¤Þ¤¹¡£skype¤Ç¤ä¤ëͽÄê¤Ç¤¹¤¬¡¢skype¤ÇÊÙ¶¯²ñ¤ò¤ä¤ë¤Î¤ÏPRMLÊÙ¶¯²ñ°ÊÍ褫¡£PRML¤Ï¿ô¼°¥ª¥ó¥Ñ¥ì¡¼¥É¤À¤Ã¤¿¤Î¤ò¹Í¤¨¤ë¤È¡¢SICP¤Î¤Û¤¦¤¬¤ä¤ê¤ä¤¹¤¤¤«¤â¤·¤ì¤Ê¤¤¡£Æñ¤·¤¤¤³¤È¤Ë¤ÏÊѤï¤ê¤Ê¤¤¤ó¤À¤±¤É¡£

Îý½¬ÌäÂê¤Î¥³¡¼¥É¤È¤«¤ò¶¦Í­¤Ç¤­¤ë¤ÈÊØÍø¤À¤Ê¤È»×¤Ã¤Ægithub¤Ë¥ê¥Ý¥¸¥È¥ê¤òºî¤ë¤³¤È¤Ë¡£1¿Í¤Ç¤Ï¤¤¤Ä¤â»È¤Ã¤Æ¤¤¤ë¤¬¡¢Â¿¿Í¿ô¤Ç»È¤¦¤È¤­¤Ë¤Ïorganization¤È¤¤¤¦¤Î¤¬¤¢¤ë¤é¤·¤¯¡¢¤½¤ì¤ò»È¤¨¤Ð¤è¤¤¤é¤·¤¤(oza¤µ¤ó¤Ë¼êÅÁ¤Ã¤Æ¤â¤é¤Ã¤¿¡£¤¢¤ê¤¬¤È¤¦¤´¤¶¤¤¤Þ¤·¤¿¡¼)¡£

¤Ç¡¢º£µ¤¤¬¤Ä¤¤¤¿¤Î¤À¤¬¡¢¥ê¥Ý¥¸¥È¥êËè¤Ë¤¢¤ëwiki¤Ï¤³¤ì¼«ÂΤΥê¥Ý¥¸¥È¥ê¤Ë¤Ê¤Ã¤Æ¤¤¤Æ¡¢clone¤·¤Æadd¤·¤Æpush¤·¤¿¤ê¤¹¤ë¤Èwiki¼«ÂΤâÊѹ¹¤µ¤ì¤¿¤ê¡¢Ã¯¤«¤¬Êѹ¹¤ò²Ã¤¨¤¿¾õÂÖ¤Çpull¤¹¤ë¤ÈÊѹ¹ÅÀ¤ò¤â¤Ã¤Æ¤³¤ì¤¿¤ê¤·¤Æ¤³¤ì¼«ÂΤ¬¤¹¤´¤¯ÊØÍø¡£¥ê¥Ý¥¸¥È¥ê¤Ï¤¤¤¤¤Î¤Ç¡¢wiki¤À¤±private¤Ç¤³¤¦¤¤¤¦¤Î¤¬Íߤ·¤¤´¶¤¸(¤¤¤¯¤Ä¤«´û¸¤Î¥·¥¹¥Æ¥à¤Ï¤¢¤ë¤Î¤ÏÃΤäƤ¤¤ë)¡£

2012-01-11

¢£[][]DVD¤òmpeg¤Ë¤·¤Æ¤ª¤¯

±Ñ¸ì¤ÎÊÙ¶¯¤È¤¤¤¦¤³¤È¤Ç¥Õ¥ì¥ó¥º¤ò¹ØÆþ¡£

ÍèǯÅÙ¤«¤é¤¿¤Ö¤óÄ̶ÐÀ¸³è¤Ë¤Ê¤ê¤Þ¤¹¤·¡¢iPhone¤Ê¤ê¤Î¥¹¥Þ¥Õ¥©¤Ç¸«¤ì¤ë¤ÈÊØÍø¡£¤È¤¤¤¦¤³¤È¤Çmpeg¥Õ¥¡¥¤¥ë¤ËÍî¤È¤¹¡£Macɸ½à¤Î¥½¥Õ¥È¤Ç¤Ï¤Ç¤­¤Ê¤¤¤è¤¦¤Ê¤Î¤Ç¡¢HandBrake¤È¤¤¤¦¤Î¤ò¥¤¥ó¥¹¥È¡¼¥ë¡£GUI¤ÇŬÅö¤ËÁª¤ó¤Ç¤¤¤±¤Ð¤Ç¤­¤ë¤Ã¤Ý¤¤¡£

¶ìÏ«¤·¤Ê¤¤¤Ç¤Ç¤­¤ë¤«¤Ê¤È»×¤Ã¤¿¤¬°Ê³°¤È¶ìÀï¡£Íî¤È¤»¤¿¤È»×¤Ã¤Æ¤âiPhone¾å¤Ç¤Ï²¿¤âɽ¼¨¤µ¤ì¤Ê¤«¤Ã¤¿¤ê¤Ê¤É¤·¤¿¡£¤É¤¦¤ä¤ë¤Î¤¬¤¤¤¤¤Î¤«¤è¤¯Ê¬¤«¤é¤Ê¤¤¤±¤É¡¢Video Codec¤È¤¤¤¦¤Î¤òH.264¤«¤éMPEG-4¤ËÊѹ¹¡£

HandBrake

¤¢¤È¡¢¥Õ¥ì¥ó¥º¤Ï±Ñ¸ì»úË뤬¸«¤ì¤ë¤Î¤Çsubtitles¤Î¤È¤³¤í¤ò¥¯¥ê¥Ã¥¯¤·¤Æ±Ñ¸ì¤òÁªÂò¤·¤Æ¤ª¤¯¡£

HandBrake

iPhoneÍѤȤ«iPadÍѤȤ«¤Î¤¤¤¯¤Ä¤«¤Îpresets¤¬ÍѰդµ¤ì¤Æ¤¤¤ë¤¬¼«Ê¬¤Ï¤È¤ê¤¢¤¨¤ºApple => Universal¤òÁª¤ó¤Ç¤ª¤¤¤¿¡£

¢£[]pvalues¤È¤«

clojure¤ÏʹԽèÍý¤òÆÀ°Õ¤È¤·¤Æ¤¤¤ë¤Î¤Ç³Æ½èÍý¤¬ÆÈΩ¤·¤Æ¤Ç¤­¤ë¾ì¹ç¡¢Ê¹ԤǽèÍý¤ò¤µ¤»¤ë¤È¹â®²½¤Ç¤­¤ë¾ì¹ç¤¬¤¢¤ê¤Þ¤¹¡£ÂåɽŪ¤Ê´Ø¿ô¤È¤·¤Æ¤Ïpmap¡¢pvalues¡¢pcall¤Ê¤É¡£

pmap

vector¤Î³ÆÍ×ÁǤ˴ؤ·¤Æ¡¢¤¢¤ë½èÍý¤ò²ó¤·¤¿¤¤¤È¤«¤Î¾ì¹ç¡¢pmap¤¬¤è¤¤¤Ç¤·¤ç¤¦¡£¤¿¤Ö¤ó°ìÈÖ¤³¤ì¤¬¤è¤¯»È¤¦¡£

user=> (pmap #(+ 1 %) [1 2 3 4 5])
(2 3 4 5 6)

¤³¤³¤Ç¤Ï+1¤¹¤ë¤À¤±¤Î·Ú¤¤½èÍý¤Ç¤¹¤¬¡¢pmap¤ò¤¹¤ë¤è¤¦¤Ê¾ì¹ç¤Ï¤¢¤ëÄøÅٽŤ¤´Ø¿ô¤Ç¤Ê¤¤¤È¥ª¡¼¥Ð¡¼¥Ø¥Ã¥É¤Î¤Û¤¦¤¬Â礭¤¯¤Ê¤Ã¤Æ¤·¤Þ¤¤¤Þ¤¹¡£¤½¤¦¤¤¤¦¾ì¹ç¤Ï¤è¤¯sequence¤òpartition¤·¤Æ¤«¤épmap¤·¡¢flatten¤¹¤ë¤È¤¤¤¦¤Î¤¬¤è¤¯¤ä¤é¤ì¤Þ¤¹(¤¿¤Ö¤ó)¡£¸µ¡¹¤Îseq¤¬¥Í¥¹¥È¤·¤Æ¤¿¤ê¤¹¤ë¤Èflatten¤·¤¿¾ì¹çͽÁ۰ʾå¤Ëflatten¤µ¤ì¤Æ¤¯¤ë¤Î¤Ç¡¢Ãí°Õ¤¬É¬Íס£

(def N 10000)
(def long-seq (range N))
(flatten (pmap #(map + %) (partition (/ N 5) long-seq)))

¤³¤Î¾ì¹ç¤Ï5ʬ³ä¤·¤Æ¤ä¤Ã¤Æ¤¤¤ëÎã¡£»È¤¨¤ë¥³¥¢¿ô¤È¤«¤Ë±þ¤¸¤ÆÊѤ¨¤ë¤È¤è¤¤¡£

pvalues

ʹԤǽèÍý¤·¤¿¤¤¤Î¤¬vector¤ÎÍ×ÁÇ¡¢¤È¤«¤Ç¤Ï¤Ê¤¯¡¢¤¤¤¯¤Ä¤«¤Î¼°¤òʹԤǤä¤ê¤¿¤¤¾ì¹ç¤Ë»È¤¦¡£¤³¤ó¤Ê´¶¤¸¡£

(pvalues (heave-calc1 x y) (heave-calc2 x y) (heave-calc3 x y))

pcalls

°ú¿ô¤È¼è¤é¤Ê¤¤´Ø¿ô¤òʹԤǽèÍý¤µ¤»¤¿¤¤¾ì¹ç¤Ë»È¤¦¡£¤³¤ó¤Ê´¶¤¸¡£

(pcall function-1 function-2 ...)

pvalues¤ÎÃæ¿È¤ò¸«¤ë¤Èpcalls¤ÇÄêµÁ¤µ¤ì¤Æ¤¤¤ë¤Î¤¬Ê¬¤«¤ë¡£

(defmacro pvalues
  "Returns a lazy sequence of the values of the exprs, which are
  evaluated in parallel"
  {:added "1.0"
   :static true}
  [& exprs]
  `(pcalls ~@(map #(list `fn [] %) exprs)))

¢£[]Clojure¤Î¥½¡¼¥¹¥³¡¼¥É¤òÆÉ¤à

¥×¥í¥°¥é¥à¸À¸ì¤Î¥½¡¼¥¹¥³¡¼¥É¤òÆÉ¤â¤¦¤È¤·¤¿¤Î¤ÏR¤¬°ìÈֺǽé¤À¤Ã¤¿¤È»×¤¤¤Þ¤¹¤¬¡¢¤¢¤Î¤È¤­¤ÏC¤ÎÃ챤¬¤í¤¯¤Ë¤Ê¤¤¤Þ¤ÞÀï¤Ã¤Æ¤¤¤¿µ¤¤¬¤·¤Þ¤¹¡£Clojure¤Î¥½¡¼¥¹¥³¡¼¥É¤òÆÉ¤ó¤Ç¤ß¤è¤¦¤È»×¤Ã¤¿¤±¤ÉR¤Î¤È¤­¤è¤ê¤Ï³ä¤ÈÆÉ¤á¤ë¤è¤¦¤Ë¤Ê¤Ã¤Æ¤¤¤ëµ¤¤¬¤¹¤ë¤·¡¢clojure¼«ÂΤǽñ¤«¤ì¤Æ¤¤¤ë¤³¤È¤â¿¤¤¤Î¤ÇÊÙ¶¯¤Ë¤Ê¤ë¤³¤È¤¬Â¿¤¤¡£º£Æü¤Ïpsummary¤È¤«¤ò¤µ¤é¤Ã¤Èį¤á¤Æ¤ß¤¿¡£

2012-01-04

¢£[]open¤·¤¿¤éclose¤ò˺¤ì¤Ê¤¤¤è¤¦¤Ë¤·¤Þ¤·¤ç¤¦

Ruby¤À¤È

File.open("hoge.txt", "w") {|file|...}

¤Î¤è¤¦¤Ë¤ä¤Ã¤Æ¤ª¤±¤Ðclose¤·¤ÆÊҤŤ±¤Æ¤¯¤ì¤Þ¤¹¡£¸åÊÒÉÕ¤±¤¬¤­¤Á¤ó¤È¤Ç¤­¤Ê¤¤¿Í´Ö¤Ë¤â°Â¿´¤Ç¤¹¤Í¡£

¤È¤³¤í¤Ç¡¢clojure¤Îjson¥é¥¤¥Ö¥é¥ê¤ò»È¤Ã¤Æ¤¤¤¿¤Î¤Ç¤¹¤¬¡¢½ñ¤­½Ð¤¹¤È¤­¤Ë¥Ï¥Ã¥·¥å¤Î½ª¤ï¤ê¤¬ÊĤ¸¤Æ¤¤¤Ê¤¤¤È¤¤¤¦»öÎ㤬ȯÀ¸¡£¥é¥¤¥Ö¥é¥ê¦¤È¤«¤òµ¿¤Ã¤Æ¤ß¤¿¤ê¤·¤¿¤±¤É¡¢ºÇ½ªÅª¤Ë¤ÏFileWriter¥ª¥Ö¥¸¥§¥¯¥È¤òclose¤·¤Æ¤¤¤Ê¤¤¤È¤¤¤¦¥¢¥Û¤Ê¤³¤È¤¬¸¶°ø¤Ç¤·¤¿¡£¾å¤ÎRuby¤Î¤è¤¦¤Ë½ª¤ï¤Ã¤¿¤é¸åÊÒÉÕ¤±¤·¤Æ¤¯¤ì¤ë¤è¤¦¤Ë½ñ¤±¤Ð¤è¤¤¤Î¤Ç¤¹¤¬¡¢close¤Ç¤â»÷¤¿¤è¤¦¤Ê¤³¤È¤¬¤Ç¤­¤ë¡£

(with-open [w (java.io.FileWriter. (str base-dir "/filtered_docs/all.json"))]
      (json/encode-to-writer result w))

FileReader¤Ç¤âƱ¤¸¤è¤¦¤Ê´¶¤¸¤Ç¤Ç¤­¤ë¤Î¤Ç¡¢»È¤¦¤È¤­¤Ï¾å¤Î¤ò¤ä¤ë¤è¤¦¤Ë½¬´·ÉÕ¤±¤ë¤è¤¦¤Ë¤·¤¿¤Û¤¦¤¬¤¤¤¤¤Ç¤¹¤Í¡£

2012-01-02

¢£[]clojure¤Î¥ª¥Ö¥¸¥§¥¯¥È¤«¤éjson·Á¼°¤Ø

¥á¥â¥á¥â¡£

% java -server -Xmx1024m -cp lib/clojure-1.2.0.jar:lib/clojure-contrib-1.2.0.jar clojure.main 
Picked up _JAVA_OPTIONS: -Dfile.encoding=UTF-8
Clojure 1.2.0
user=> (use 'clojure.contrib.json)
nil
user=> (json-str {:hoge 1})
"{\"hoge\":1}"

¢£[]clojure¤Ç¥¹¥¯¥ê¥×¥È¤Ã¤Ý¤¤¤³¤È(?)¤ò¤¹¤ë

Leiningen¤Ï°Í¸¤·¤Æ¤¤¤ë¤â¤Î¤ò¼«Æ°¤Ë¼è¤Ã¤Æ¤­¤Æ¤¯¤ì¤¿¤ê¤·¤ÆÊØÍø¡£jar¤ÇÇÛÉÛ¤¹¤ë¤È¤­¤Ê¤É¤Ïproject.clj¤Ë

(defproject HogeProject "1.0.0-SNAPSHOT"
  :description "FIXME: write description"
  :dependencies [[org.clojure/clojure "1.2.0"]
		 [org.clojure/clojure-contrib "1.2.0"]
		 [org.apache.commons/commons-math "2.0"]
		 [clojure-opennlp "0.1.7"]]
  :dev-dependencies [[swank-clojure "1.3.2"]]
  :jvm-opts ["-Xmx1g" "-server" "-Dfile.encoding=UTF-8"]
  :main HogeProject.core)

¤È¤¤¤¦´¶¤¸¤Çmain¤Ë¥¨¥ó¥È¥ê¥Ý¥¤¥ó¥È¤òºî¤Ã¤¿¤ê¤¹¤ë¤È¤è¤¤¡£¤·¤«¤·¡¢¤½¤ì°ÊÁ°¤Ë²¼½èÍý¤Ê¤É¤ò¤·¤¿¤¤¡¢¤È¤¤¤¦¤È¤­¤Ë¤³¤ì¤À¤±¤À¤È¤Á¤ç¤Ã¤Èº¤¤ë¡£java...¤È¤¤¤¦´¶¤¸¤Ç»ØÄꤹ¤ì¤Ð¤¤¤¤¤Î¤À¤¬Leiningen¤Ï°Í¸¥Õ¥¡¥¤¥ë´Ø·¸¤â¸«¤Æ¤¯¤ì¤ë¤Î¤¬¤è¤¤¤È¤³¤í¤Ê¤Î¤Ç¡¢¤½¤ì¤ò»È¤¤¤¿¤¤¡£¤É¤¦¤¤¤¦É÷¤Ë¤¹¤ë¤«¡£¤³¤¦¤¤¤¦É÷¤Ë¼Â¹Ô¤¹¤ì¤Ð¤è¤¤¤é¤·¤¤¡£

lein run -m HogeProject.extract_content

extract_content¤Ï¤¿¤À¤ÎÎã¤Ê¤Î¤Ç¤³¤³¤òŬÅö¤ËÊѤ¨¤ì¤Ð¤è¤¤¡£

2011-12-30

¢£[]Clojure¤Ë¥Ò¥¢¥É¥­¥å¥á¥ó¥ÈŪ¤Êµ¡Ç½¤òÄɲ䷤Ĥġ¢compojure¤Ç¥³¡¼¥É¤òËä¤á¹þ¤ó¤Çsyntax highlight¤ò¸ú¤«¤»¤ë

¥¿¥¤¥È¥ë¤¬Ä¹¤¤¡£compojure(clojure¤Çsinatra like¤Ê¤³¤È¤¬¤Ç¤­¤ë)¤Çweb¥µ¥¤¥È¤òºî¤Ã¤Æ¤¤¤¿¤¬¡¢Ruby¤ä¤éClojure¤ä¤é¤Î¥³¡¼¥É¤òËä¤á¹þ¤ß¤¿¤¤¡£ÍפϤϤƤʤÎsuperpreµ­Ë¡¤Ã¤Ý¤¤¤â¤Î¤¬Íߤ·¤«¤Ã¤¿¤Î¤Ç¤¢¤ë¡£

clojure¤Ëɸ½à¤Ç¥Ò¥¢¥É¥­¥å¥á¥ó¥ÈŪ¤Ê¤³¤È¤Ï¤Ç¤­¤Ê¤¤¤¬¡¢¥ê¡¼¥À¡¼¥Þ¥¯¥í¤Ç²ø¤·¤¤¤³¤È¤ò¤¹¤ì¤Ð¤½¤ì¤Ã¤Ý¤¤¤³¤È¤¬¤Ç¤­¤ë¤è¤¦¤Ë¤Ê¤ë¡£

¤³¤ì¤Çclojure¤Î¥³¡¼¥ÉÆâ¤Ëruby¤ä¤é¤Ê¤ó¤ä¤é¤Î¥³¡¼¥É¤òËä¤á¹þ¤á¤ë¤è¤¦¤Ë¤Ê¤Ã¤¿¡£

syntax highlight¤Ë¤ÏSyntaxHighlighter¤¬Í­Ì¾¤½¤¦¤Ê¤Î¤Ç¤³¤ì¤ò»È¤¦¤³¤È¤Ë¤¹¤ë¡£compojure¤Çcss¤ä¤éjs¤ò°·¤¦¤¿¤á¤Ë¤Ïroot¥Ç¥£¥ì¥¯¥È¥ê¤Ëpublic¤È¤¤¤¦¥Ç¥£¥ì¥¯¥È¥ê¤òºî¤Ã¤Æ¡¢¤½¤ÎÃæ¤ËÆþ¤ì¤Æ¤¤¤±¤Ð¤è¤¤¡£syntaxhighlighter¤ò¥À¥¦¥ó¥í¡¼¥É¤·¤Æ(¥ê¥Í¡¼¥à¤·¤Æ)¡¢compojure¤ò»È¤Ã¤Æ¤¤¤ë¥³¡¼¥É¤Î¥Ø¥Ã¥À¤ËÁêÅö¤¹¤ë¤È¤³¤í¤Ç¤³¤ó¤Ê´¶¤¸¤Ë½ñ¤¯¡£

(defn head [title]
  [:head
   [:meta{:charset "utf-8"}]
   [:title title]
   [:link{:rel "stylesheet"
	  :href "stylesheet.css"
	  :type "text/css"}]
   [:script{:type "text/javascript"
	    :src "/syntaxhighlighter/scripts/shCore.js"}]
   [:script{:type "text/javascript"
	    :src "/syntaxhighlighter/scripts/shBrushRuby.js"}]
   [:script{:type "text/javascript"
	    :src "/syntaxhighlighter/scripts/shBrushClojure.js"}]
   [:script{:type "text/javascript"
	    :src "/syntaxhighlighter/scripts/shBrushCpp.js"}]
   [:link{:type "text/css"
	  :rel "stylesheet"
	  :href "/syntaxhighlighter/styles/shCore.css"}]
   [:link{:type "text/css"
	  :rel "stylesheet"
	  :href "/syntaxhighlighter/styles/shThemeEclipse.css"}]
   [:script {:type "text/javascript"}
    "SyntaxHighlighter.all()"]])

¤Á¤Ê¤ß¤Ësyntaxhighlighter¤Ë¤Ï¥À¥¦¥ó¥í¡¼¥É¤·¤¿¾õÂÖ¤À¤ÈclojureÍѤΤâ¤Î¤ÏÆþ¤Ã¤Æ¤¤¤Ê¤¤¡£¤¬¡¢¸ø³«¤·¤Æ¤¯¤ì¤Æ¤¤¤ë¿Í¤¬¤¤¤ë¤Î¤Ç¡¢syntaxhighlighter/scripts°Ê²¼¤Ëjs¥Õ¥¡¥¤¥ë¤òÊü¤ê¹þ¤ó¤Ç¤ª¤¯¡£

¤Ï¤Æ¤Êµ­Ë¡¤Îsuper preµ­Ë¡¤Ã¤Ý¤¯»È¤¨¤ë¤è¤¦¤ËŬÅö¤Ë´Ø¿ô¤òÍѰդ·¤Æ¤ª¤¯¡£gutter¤Ê¤ó¤È¤«¤Ã¤Æ¤¤¤¦¤Î¤Ï¹ÔÈÖ¹æ¤òɽ¼¨¤·¤Ê¤¤¡¢¤È¤¤¤¦¤ä¤Ä¤Î¤è¤¦¤À¡£

(defn spre [lang body]
  (vector :pre
	  (hash-map :class (str "brush: " lang "; gutter: false"))
	  body))
   (spre "ruby" (str #-EOM
#!/usr/bin/ruby
require 'enumerator'

STDIN.each_line do |line|
  words = line.split(/\s/)
  words.each_cons(2) do |word|
    unless word.empty?
      a, b = word
      printf("%s\s%s\t1\n", a, b)
    end
  end
end
EOM))

¤¹¤ë¤È¤³¤ó¤Ê´¶¤¸¤Ç¤­¤ì¤¤¤ËËä¤á¹þ¤á¤Æ¹¬¤»¤Ë¤Ê¤ì¤ë¡£

Publication

¤¦¤Û¤Û¤¤¡£

2011-12-27

¢£[]ls¤È¤«¤òMBñ°Ì¤äGBñ°Ì¤Ç½Ð¤¹

0¤¬ÂçÎ̤ËÊÂ¤Ð¤ì¤Æ¤âËͤˤϤ褯ʬ¤«¤é¤Ê¤¤¤Î¤Çñ°ÌÊÑ´¹¤·¤Æ½Ð¤·¤Æ¤¯¤ì¤ë¤È¤¦¤ì¤·¤¤¡£ÆÃ¤Ë¥Õ¥¡¥¤¥ëÃÖ¤­¤¹¤®¤ÆMB¤Ê¤Î¤«GB¤Ê¤Î¤«¤âʬ¤«¤é¤Ê¤¯¤Ê¤Ã¤¿¤è¤¦¤Ê¥Ç¥£¥ì¥¯¥È¥ê¤À¤Èw¡£

ls¤Î¾ì¹ç

¥ª¥×¥·¥ç¥ó¤Ëh¤òÉÕ¤±¤ë¤À¤±¤Ç¡¢BM¤À¤Ã¤¿¤êGB¤À¤Ã¤¿¤ê¤òÉÕ¤±¤Æ¤¯¤ì¤ë¡£ÊØÍø¡£

% ls -lha data
¹ç·× 5.7M
drwxr-xr-x+ 2 yasuhisa-y    8 2011-01-04 00:39 .
drwxr-xr-x+ 8 yasuhisa-y   15 2011-01-04 06:18 ..
-rw-r--r--+ 1 yasuhisa-y 1.2K 2010-11-29 21:57 README
-rw-r--r--+ 1 yasuhisa-y 1.9M 2011-01-03 23:28 gold.txt
-rwxr-xr-x+ 1 yasuhisa-y 1.3K 2010-11-10 16:44 grade-bayes-hmm.pl
-rw-r--r--+ 1 yasuhisa-y 1.1M 2010-11-10 13:06 wiki-sample.example
-rw-r--r--+ 1 yasuhisa-y 753K 2010-11-10 13:04 wiki-sample.word
-rw-r--r--+ 1 yasuhisa-y 1.9M 2010-11-10 13:04 wiki-sample.wordpart

¤·¤«¤·¡¢¥Ç¥£¥ì¥¯¥È¥ê¤¬¤¢¤ë¤ÈºÆµ¢Åª¤Ë¥µ¥¤¥º·×»»¤·¤ÆÂ­¤·¤Æ¤¯¤ì¤ë¡¢¤È¤¤¤¦¤³¤È¤Ï¤ä¤Ã¤Æ¤¯¤ì¤Ê¤¤¤Î¤Ç¤Á¤ç¤Ã¤ÈÉÔÊØ¡£

du¤Î¾ì¹ç

¤½¤¦¤¤¤¦¤È¤­¤Ë¤Ï²¼¤Îdu¤Ë-sh¥ª¥×¥·¥ç¥ó¤òÉÕ¤±¤Æ¤ä¤ì¤Ð¤è¤¤¡£h¤Ïls¤Î¾ì¹ç¤ÈƱ¤¸¤Ç¡¢s¤Ï¥µ¥Ö¥Ç¥£¥ì¥¯¥È¥ê¤Ïɽ¼¨¤·¤Ê¤¤¡¢¤ß¤¿¤¤¤Ê´¶¤¸¡£¾Ü¤·¤¯¤Ïman¤Ç¡£

% du -sh data
5.7M    data

¤¿¤À¤·¡¢GBñ°Ì¤Î¤ä¤Ä¤À¤È·ë¹½»þ´Ö¤¬¤«¤«¤ë¤Î¤¬ÆñÅÀ¡£¡£¡£

¢£[]rsync¤Î»È¤¤¤É¤³¤í¤Ë¤Ä¤¤¤Æ

¥×¥í¥°¥é¥à¤Î¥Õ¥¡¥¤¥ë¤È¤«¤À¤Ã¤¿¤égit¤Îpush&pull¤Ç¤É¤¦¤Ë¤«¤Ê¤ë¤·¡¢¥Ç¡¼¥¿¤À¤Ã¤¿¤éscp¤È¤«¤Ç¤è¤¯¤Í?¤È»×¤Ã¤Æ¤¤¤¿¤¬¡¢·ë¹½ÍÆÎ̤ò¿©¤¦¤è¤¦¤Ê¥Ç¡¼¥¿¤Ë¤Ä¤¤¤Æscp¤ò¤·¤Æ¤¤¤ë¤È»à¤Ì¤«¤éº¹Ê¬¤À¤±¹¹¿·¤·¤¿¤¤¤ß¤¿¤¤¤Ê¤³¤È¤¬¤¢¤ë¡£¤½¤¦¤¤¤¦¤È¤­¤Ïrsync¤¬·ë¹½ÊØÍø¤½¤¦¡£¥Ç¡¼¥¿¤ò¥µ¡¼¥Ð¡¼¤Ç¥¯¥í¡¼¥ë¤·¤Þ¤¯¤Ã¤Æ¤Æ¤É¤Ã¤«¤Ë»ý¤Ã¤Æ¤­¤¿¤¤¡¢¤ß¤¿¤¤¤Ê¤È¤­¤Ï¤¿¤Ö¤ó¤³¤Î¥±¡¼¥¹¤ËÅö¤Æ¤Ï¤Þ¤ë¡£µÕ¤ËÁÇÀ­Ãê½Ð¤ß¤¿¤¤¤Ê¤ä¤Ä¤ÏÊѤ¨¤ë¤ÈÁ´ÉôÊѤï¤Ã¤Æ¤·¤Þ¤¦¤Î¤Ç¸þ¤«¤Ê¤¤(¤³¤¦¤¤¤¦¤Î¤¬Â¿¤«¤Ã¤¿¤Î¤Çº£¤Þ¤Çrsync»È¤¦µ¡²ñ¤¬¤¢¤Þ¤ê¤Ê¤«¤Ã¤¿)¡£

rsync -ave ssh --delete XXX@XXX.sakura.ne.jp:/home/XXX .

2011-12-26

¢£[]Clojure¤Ç¤Ï¤Þ¤ë¤³¤È

´Ø¿ô¤Î°ú¿ô¤älet¤ÎÃæ¤Ç"vec"¤È¤«¤Ã¤Æ¤¤¤¦ÊÑ¿ô¤ò»È¤Ã¤¿¸å¤ÇÌá¤êÃͤòÊÖ¤¹¤È¤­¤Ë´Ø¿ô¤È¤·¤Æ¤Î"vec"¤ò»È¤Ã¤¿¤ê¤¹¤ë¤È¥¨¥é¡¼¤¬°Ọ̃ʬ¤«¤Ê¤¤´¶¤¸¤Ë¤Ê¤Ã¤Æ¤·¤Þ¤¦¤Î¤Ç̵Â̤˲òÆÉ¤Ë»þ´Ö¤¬¤«¤«¤Ã¤Æ¤·¤Þ¤Ã¤¿(Î㤨¤Ð"Key must be integer"¤È¤«¤È¸À¤ï¤ì¤ë)¡£¤«¤ì¤³¤ì3²óÌܤ¯¤é¤¤¤Ç¤¢¤ë¡¢¤Ï¤Þ¤ë¤Î¡£Æ±ÍͤÎÌäÂ꤬agent¤È¤«¤Ç¤âÍÆ°×¤Ëµ¯¤³¤Ã¤Æ¤·¤Þ¤¤¤¦¤ë¤¬¡¢Clojure¤Ç¤½¤¦¤¤¤¦ÌäÂê¤Ë¤Ö¤ÁÅö¤¿¤é¤Ê¤¤¤è¤¦¤ËÊÑ¿ô̾¤ÎÉÕ¤±Êý¤Ë»Ø¿Ë¤¬¤¢¤ë¤è¤¦¤À¡¢¤È¤¤¤¦¤³¤È¤òËܤǻפ¤½Ð¤·¤¿¡£

¥×¥í¥°¥é¥ß¥ó¥°Clojure

¥×¥í¥°¥é¥ß¥ó¥°Clojure

¢£[]¥Í¥¹¥È¤·¤¿vector or hashmap

µ¡³£³Ø½¬¤È¤«¤Ç±£¤ìÊÑ¿ô¤ò°·¤Ã¤Æ¤¤¤ë¤È¤­¤Ë¡¢¡Ö±£¤ìÊÑ¿ôz¤Ë³ä¤êÅö¤Æ¤¿¥µ¥ó¥×¥ë¤Î¿ô¤òÊݸ¤·¤Æ¤ª¤­¤¿¤¤¡×¤ß¤¿¤¤¤ÊÍ×˾¤ËÅú¤¨¤ë¤Ë¤Ïvector¤ähashmap¤ò»È¤¦¤Î¤¬¾åÅù¼êÃʤÀ¤È»×¤¦¤¬¡¢±£¤ìÊÑ¿ô¤¬2ÃÊ¡¢3ÃʤȤʤäƤ¤¤¯¤È¤½¤ì¤é¤Î¹½Â¤¤â¥Í¥¹¥È¤·¤Æ¤¤¤Ã¤Æ¤·¤Þ¤¦¤ï¤±¤Ç¡¢¥¤¥ó¥¯¥ê¥á¥ó¥È¤ä¥Ç¥¯¥ê¥á¥ó¥È¤Ê¤É¤Î¥¢¥Ã¥×¥Ç¡¼¥È¤¬·ë¹½ÌÌÅݤʤ³¤È¤Ë¤Ê¤ë(¼«Ê¬¤Î¾ì¹ç3¤Ä¤¯¤é¤¤±£¤ìÊÑ¿ô¤¬¤¢¤Ã¤¿)¡£Clojure¤ÏÃí°Õ¤·¤Ê¤¤¤È(Ãí°Õ¤·¤Æ¤â¡¢¤«¤â¤·¤ì¤Ê¤¤)¤É¤ó¤É¤ó²£¤ËŤ¯¤Ê¤Ã¤Æ¤·¤Þ¤¦¤¬¡¢¥Í¥¹¥È¤·¤¿¥±¡¼¥¹¤À¤È¤É¤¦¤·¤è¤¦¤â¤Ê¤¯Ä¹¤¯¤Ê¤Ã¤Æ¤·¤Þ¤¤¤¬¤Á¡£

¡Ö¤¦¤Ò¤ç¡¼¡¢¤Ê¤ó¤«Æ¨¤²¤ëÊýË¡¤Ê¤¤¤Î?¡×¤È»×¤Ã¤Æ¤¤¤¿¤é¤Þ¤µ¤Ë¤É¤ó¤Ô¤·¤ã¤Ê´Ø¿ô¤¬¤¢¤Ã¤¿¤Î¤Ç¥á¥â¡£

"assoc-in"¡¢"update-in"¡¢"get-in"¡£³Ð¤¨¤Þ¤·¤¿¤·¡£Å¬Åö¤Ë»î¤·¤Æ¤ß¤¿¤È¤³¤í¡¢map¤¬nest¤·¤¿¾ì¹ç¤À¤±¤Ç¤Ê¤¯¡¢vector¤¬º®¤¸¤Ã¤Æ¤Æ¤âÂç¾æÉפ餷¤¤¡£ÁÇÀ²¤é¤·¤¤¡£

(assoc-in {0 {1 2}} [0 1] 100) ; {0 {1 100}}
(assoc-in {0 [0 1 2]} [0 1] 100) ; {0 [0 100 2]}

¤³¤ÎÉÕ¶á¤Îvector¡¢list¡¢map¡¢setÉÕ¶á¤Î¥Ç¡¼¥¿¹½Â¤¤Ë´Ø¤¹¤ë¥æ¡¼¥Æ¥£¥ê¥Æ¥£´Ø¿ô¤Ï¤Þ¤µ¤ËÀ¸»ºÀ­¤Ë´Ø¤ï¤Ã¤Æ¤¯¤ë¤È¤³¤í¤Ê¤Î¤ÇÁá¤á¤ËÍÞ¤¨¤Æ¤ª¤­¤¿¤¤¤È¤³¤í¤Ç¤¹¤Í¡£¸ì×ÃÎϤäݤ¤´¶¤¸¡£¤Á¤Ê¤ß¤Ë¼«Ê¬¤Ï²¼¤Îcheatsheet¤òiPad¤ËÆþ¤ì¤Æµ¤¤¬¸þ¤¤¤¿¤éį¤á¤¿¤ê¤·¤Æ¤¤¤Þ¤¹¡£

walk·Ï¤ÏÁ´Á³»È¤Ã¤¿¤³¤È¤¬¤Ê¤¤¤Î¤ÇÍÞ¤¨¤Æ¤ª¤­¤¿¤¤¤È¤³¤í¡£

¤½¤Î¾ÃΤé¤Ê¤¤´Ø¿ô¥á¥â

sequence´Ø·¸¤Î¥æ¡¼¥Æ¥£¥ê¥Æ¥£´Ø¿ô¤Ç¼«Ê¬¤¬¤è¤¯ÃΤé¤Ê¤¤¤â¤Î¤ò¤Þ¤È¤á¤Æ¤ª¤¯¡£

reductions

reduce¤·¤Æ¤¤¤¯¤È¤­¤ÎÃæ´ÖÃͤߤ¿¤¤¤Ê¤Î¤âÌá¤êÃͤÎÍ×ÁǤ˲䨤Ƥª¤¤¤Æ¤¯¤ì¤ë¡£R¤Ç¤¤¤¦¤È¤³¤í¤Ëcumsum¤Ã¤Ý¤¤¤³¤È¤¬´Êñ¤Ë¤Ç¤­¤ÆÊØÍø¡£reduce like¤Ê´Ø¿ô¤Ê¤Î¤Ç½é´üÃͤâ¤â¤Á¤í¤ó¼è¤ì¤ë¡£

(reductions + [1 2 3]) ; (1 3 6)
zipmap

into¤â»÷¤¿¤è¤¦¤Ê¤³¤È¤·¤Ê¤«¤Ã¤¿¤Ã¤±...¤È»×¤Ã¤Æ°ã¤¤¤ò²¡¤µ¤¨¤ë¡£into¤Ïvector¤ò¤Ä¤Ê¤²¤Æ¤¤¤¯¡£zipmap¤ÏºÇ½é¤Îvector¤òkey¤Ë¤·¤ÆÆó¤ÄÌܤòvalue¤Ë¤·¤¿map¤òÊÖ¤¹¡£key¤¬Èï¤Ã¤Æ¤¿¤é¸å¤í¤Î¤¬À¸¤­»Ä¤ë¤é¤·¤¤¡£into¤Èconcat¤Ï²¿¤¬°ã¤¦¤Í¤ó¡¢¡¢¡¢¤È»×¤Ã¤¿¤±¤É¡¢concat¤Î¤Û¤¦¤Ïlazylist¤òÊÖ¤¹¤½¤¦¤Ê¤Î¤Ç¡¢lazy¤Ê¤Î¤¬Íߤ·¤¤¤«¤½¤¦¤Ç¤Ê¤¤¤«¤Çinto¤Èconcat¤ò»È¤¤Ê¬¤±¤ë¤È¤è¤¤¤Î¤«¤Ê¡£

(zipmap [:a :b :c :d :e] [1 2 3 4 5]) ; {:e 5, :d 4, :c 3, :b 2, :a 1}
(zipmap [:a :a :b :b :c] [1 2 3 4 5]) ; {:c 5, :b 4, :a 2}
(into [:a :a :b :b :c] [1 2 3 4 5]) ; [:a :a :b :b :c 1 2 3 4 5]
(concat [:a :a :b :b :c] [1 2 3 4 5]) ; (:a :a :b :b :c 1 2 3 4 5)
group-by

ÂèÆó°ú¿ô¤ËÅϤ·¤¿collection¤òÂè°ì°ú¿ôf¤ËÅϤ·¤¿¤ËŬÍѤ·¤¿·ë²Ì¤ÇʬÎष¤Æmap¤ÇÊÖ¤¹¡£¥­¡¼¤ÏÅöÁ³¤Ê¤¬¤éf¤òŬÍѤ·¤¿·ë²Ì¡£

(group-by count ["a" "as" "asd" "aa" "asdf" "qwer"]) ; {1 ["a"], 2 ["as" "aa"], 3 ["asd"], 4 ["asdf" "qwer"]}
(group-by odd? (range 10)) ; {false [0 2 4 6 8], true [1 3 5 7 9]}
(group-by :user_id [{:user_id 1 :uri "/"}
		    {:user_id 2 :uri "/foo"}
		    {:user_id 1 :uri "/account"}]) ; {1 [{:user_id 1, :uri "/"} {:user_id 1, :uri "/account"}], 2 [{:user_id 2, :uri "/foo"}]}
keep

example¤ò¸«¤¿¤é¡Ö¤½¤ìfilter¤È²¿¤¬°ã¤¦¤ó...?¡×¤Ã¤Æ´¶¤¸¤À¤Ã¤¿¤±¤É¡¢keep¤Î¤Û¤¦¤Ïtrue false¤Çfiltering¤¹¤ë¤Î¤Ç¤Ï¤Ê¤¯nil¤«¤É¤¦¤«¤Ç¤ä¤ë´Ø¿ô¤é¤·¤¤¡£¤Á¤Ê¤ß¤Ë»÷¤¿´Ø¿ô¤Ëkeep-indexed¤È¤¤¤¦¤Î¤¬¤¢¤Ã¤Æ¡¢¤³¤ì¤Ï̵̾´Ø¿ô¤Î¤Û¤¦¤Ëindex¤â»È¤¨¤ë¤è¤¦¤Ë¤·¤¿´¶¤¸¤Î¤â¤Î¤é¤·¤¤¡£

(keep #(if (odd? %) %) (range 10)) ; (1 3 5 7 9)
(filter #(if (odd? %) %) (range 10)) ; (1 3 5 7 9)


(keep-indexed #(if (odd? %1) %2) (range 0 10)) ; (1 3 5 7 9)
(keep-indexed (fn [idx v]
		(if (pos? v) idx)) [-9 0 29 -7 45 3 -8]) ; (2 4 5)
split-at

»ØÄꤷ¤¿°ÌÃÖ¤Çcollection¤ò¤Ö¤Ã¤¿¤®¤ë¡£split-with¤À¤È»ØÄꤷ¤¿¾ò·ï¤ò½é¤á¤ÆËþ¤¿¤¹¤È¤³¤í¤Ç¤Ö¤Ã¤¿¤®¤ë¡£take n¤Èdrop n¤ÎÁȤ߹ç¤ï¤»¤ß¤¿¤¤¤Ê¤â¤Î¡£

(split-at 2 [1 2 3 4 5]) ; [(1 2) (3 4 5)]
(split-with (partial >= 3) [1 2 3 4 5]) 
iterate

¤¤¤«¤Ë¤âclojure¤é¤·¤¤´Ø¿ô¡£Ìµ¸Â¥ê¥¹¥È¤òÀ¸¤ß½Ð¤¹¤Î¤À¤¬¡¢´Ø¿ôf¤È½é´üÃÍx¤Ë´Ø¤·¤Æx¡¢(f x)¡¢(f (f x))¡¢(f (f (f x)))...¤È¤¤¤¦¤è¤¦¤Êsequence¤òºî¤ë¡£»È¤¦¤È¤­¤Ë¤Ïtake¤È¤«¤È¹ç¤ï¤»¤Æ¡¢¤È¤¤¤¦´¶¤¸¤«¤Ê¡£

(take 3 (iterate inc 0)) ; (0 1 2)
mapcat

Ê£¿ô¤Îcollection¤ò°ú¿ô¤Ë¼è¤ê¡¢¤½¤ì¤¾¤ì¤òmap¤·¤¿·ë²Ì¤òÏ¢·ë¤¹¤ë¡£²¼¤Îmap¤·¤Æapply concat¤ÈÅù²Á¡¢¤À¤È»×¤¦¡£

(mapcat reverse [[3 2 1 0] [6 5 4] [9 8 7]]) ; (0 1 2 3 4 5 6 7 8 9)
(apply concat (map reverse [[3 2 1 0] [6 5 4] [9 8 7]])) ; (0 1 2 3 4 5 6 7 8 9)
interleave

2¤Ä¡¢¤Þ¤¿¤Ï¤½¤ì°Ê¾å¤Îsequence¤ò¼õ¤±¼è¤ê¡¢¤½¤ì¤é¤ÎÍ×ÁǤò¸ò¸ß¤Ë»ý¤Ä¤è¤¦¤Êlazy list¤òÊÖ¤¹¡£¤³¤ì¤ÏÎã¤ò¸«¤ì¤Ð¤¹¤°Ê¬¤«¤ë¡£

(interleave '[1 3 5] '[2 4 6]) ; (1 2 3 4 5 6)
(interleave '[1 4 7] '[2 5 8] '[3 6 9]) ; (1 2 3 4 5 6 7 8 9)
interpose

¥ê¥¹¥È¤Î´Ö¤Ë°ì¸ÄÃÖ¤­¤Ë²¿¤«Í×ÁǤòº¹¤·¶´¤à´Ø¿ô¡£my-strings¤ÎÎã¤ÏÊÌÅÓ¾¤Î´Ø¿ô¤¬¤¢¤ë¤Î¤Ç¤½¤Á¤é¤ò»È¤¨¤Ð¤¤¤¤¤¬¡¢¤Þ¤¡Îã¤È¤¤¤¦¤³¤È¤Ç¡£

(interpose 3 '[1 1 1 1]) ; (1 3 1 3 1 3 1)

(def my-strings ["one" "two" "three"])
(interpose ", " my-strings) ; ("one" ", " "two" ", " "three")
(apply str (interpose ", " my-strings)) "one, two, three"

2011-12-24

¢£[]Clojure¤Ë¤ª¤±¤ë´Ø¿ô¤ÎÉôʬŬÍѤˤĤ¤¤Æ

¼è¤ë°ú¿ô¤¬Ê£¿ô¤¢¤Ã¤Æ¡¢¤É¤ì¤«¤À¤±¸ÇÄꤷ¤Æ»Ä¤ê¤Ï¤Þ¤À°ú¿ô¤Ë¤Ê¤Ã¤Æ¤ë(ÀâÌÀ¤Î»ÅÊý¤¬°­¤¤)¤è¤¦¤Ê¤È¤­¤Ë¤Ïpartial´Ø¿ô¤¬ÊØÍø¡£"+"¤È¤«"*"¤Î¤è¤¦¤Ê½ç½ø¤ò¸ò´¹¤·¤Æ¤â·ë²Ì¤¬ÊѤï¤é¤Ê¤¤¤è¤¦¤Ê´Ø¿ô¤Ë´Ø¤·¤Æ¤Ïpartial¤Ï¤È¤Æ¤âÊØÍø¤Ê¤Î¤À¤¬¡¢"-"¤È¤«"/"¤È¤«¤Ï¤É¤Ã¤Á¤ò¸ÇÄꤹ¤ë¤«¤Ç·ë²Ì¤¬ÊѤï¤Ã¤Æ¤¯¤ë¡£°ì²Õ½ê¤À¤±¸ÇÄꤷ¤Æ»Ä¤ê¤Ï̵̾´Ø¿ô¤ÇÊÖ¤»¤Ð¤½¤ì¤Ï¤½¤ì¤Ç»Å»ö¤¬½ª¤ï¤ê¤Ê¤Î¤À¤¬¡¢¤Ê¤ó¤«ÌÌÅÝ¡£¤È¡¢»×¤Ã¤¿¤épartial¤ÎÊѼïÈǤ¬¤¢¤ë¤è¤¦¤Ç¤½¤Á¤é¤ò»È¤¨¤Ð²ò·è¤·¤½¤¦¤À¡£

;; (use '[clojure.contrib.str-utils2 :only (partial)])
;; ¤Ö¤Ä¤«¤ë¤Î¤ËÃí°Õ¤¬É¬Íפʵ¤¤¬¤¹¤ë
((clojure.core/partial / 3) 6) ; 1/2
((clojure.contrib.str-utils2/partial / 3) 6) ; 2
((clojure.core/partial str "a") "b" "c" "d") ; "abcd"
((clojure.contrib.str-utils2/partial str "a") "b" "c" "d") ; "bacd"

(defn three-terms [a b c]
  (str a b c))
(three-terms "a" "b" "c") ; "abc"

;; Ǥ°Õ¤Î¤È¤³¤í¤òfix¤¹¤ë¤Ë¤Ï...?
(defn fix-first-and-third [a c]
  #(three-terms a % c))
(fix-first-and-third "a" "c") ; #<user$fix_first_and_third$fn__15462 user$fix_first_and_third$fn__15462@70f28b3a>
((fix-first-and-third "a" "c") "b") ; "abc"

Ǥ°Õ¤Î°ÌÃ֤Ǥ¢¤ì¤³¤ì¤·¤¿¤±¤ì¤Ð¤ä¤Ï¤ê´Ø¿ô¤òÊÖ¤¹¤è¤¦¤Ê´Ø¿ô¤ò¼«Ê¬¤Çºî¤ë¤·¤«¤Ê¤¤¤Î¤«¤Ê¡¼¡£

¤½¤ì¤Ë¤·¤Æ¤â¤Ê¤¼str-utils2¤ËÆþ¤Ã¤Æ¤¤¤ë¤Î¤«Ææ¤¤¡£¡£¡£

¢£[]transient¤Èpersistent¤Ë¤Ä¤¤¤Æ

Clojure¤Î1.1¤«¤é»È¤¨¤ë¤è¤¦¤Ë¤Ê¤Ã¤¿µ¡Ç½¡£Clojure¤Î¸ø¼°¥µ¥¤¥È¤«¤é°úÍѤ¹¤ë¤È

If a tree falls in the woods, does it make a sound?

If a pure function mutates some local data in order to produce an immutable return value, is that ok?

Clojure - transients

ºÇ½é¤Î¤ä¤Ä¤Ï¤Ê¤ó¤ÈÌõ¤·¤Æ¤¤¤¤¤Î¤«¤è¤¯Ê¬¤«¤é¤ó¤±¤É¡¢2¤ÄÌܤΤä¤Ä¤Ï¡Ö(´Ø¿ô·¿¸À¸ì¤ÏƱ¤¸ÆþÎϤòÆþ¤ì¤¿¤éƱ¤¸½ÐÎϤòÊÖ¤·¤ÆÍߤ·¤¤¤ï¤±¤À¤±¤É)¡¢immutable¤Ê½ÐÎϤòÆÀ¤ë¤Î¤Ë¡¢local¤Ê¥Ç¡¼¥¿¤À¤Ã¤¿¤éÊѹ¹¤·¤¿¤ê¤·¤Æ¤â¤¤¤¤¤ó¤¸¤ã¤Í?(¥Ñ¥Õ¥©¡¼¥Þ¥ó¥¹¤È¤«¤òµá¤á¤Æ)¡×¤È¤¤¤¦´¶¤¸¤Î¥Ë¥å¥¢¥ó¥¹¤À¤È»×¤¦¡¢¤¿¤Ö¤ó¡£

¥³¡¼¥É¤ò¸«¤¿¤Û¤¦¤¬¤¿¤Ö¤óÁᤤ¡£Clojure¤Î¸ø¼°¥µ¥¤¥È¤Î¤Û¤¦¤Ï¶õÇÛÎ󤫤éconj¤·¤Æ¤¤¤¯Îã¤Ç½ñ¤¤¤Æ¤¢¤ë¤±¤É¡¢ËÜÅö¤ËÊѹ¹¤µ¤ì¤Æ¤Ê¤¤¤Î¤«etc¤ò¸«¤ë¾ì¹ç¤Ë¤Ï¤è¤¯Ê¬¤«¤é¤ó¤Î¤Ç²¼¤Î¤è¤¦¤ÊÎã¤ò½ñ¤¤¤Æ¤ß¤¿¡£

(def x '[0 1 2 3 4])
(let [tmp (transient x)]
  (persistent! (assoc! tmp 0 100))) ; [100 1 2 3 4]
x ; [0 1 2 3 4]

transient¤·¤Æ¤ä¤Ã¤¿¥ª¥Ö¥¸¥§¥¯¥È¤Ïassoc!¤äconj!¤Î¤è¤¦¤Ê´Ø¿ô¤ò¤«¤Þ¤·¤Æ¤ä¤ë¤È¾å¤Î¤è¤¦¤Ë¤Ç¤­¤ë¡£ºÇ¸å¤Ïpersistent!¤ò»È¤Ã¤Æ¾õÂÖÉÔÊѤÊClojure¤ÎÀ¤³¦¤Ëƨ¤²¹þ¤Þ¤»¤ë¡£¸µ¡¹¤Î¥ª¥Ö¥¸¥§¥¯¥È¤ÏÊѤï¤Ã¤Æ¤¤¤Ê¤¤¤³¤È¤ËÃí°Õ¡£

The Joy of Clojure¤Îchapter 12¤Ë¤â½ñ¤¤¤Æ¤¢¤ë¤¬¡¢¤Á¤Ã¤³¤¤vector¤È¤«¤òÊѹ¹¤·¤Þ¤¯¤ë¾ì¹ç¤Ë¤ÏÊ֤äÆÃÙ¤¯¤Ê¤ë¾ì¹ç¤¬¤¢¤ë¡£Â礭¤¤vector¤È¤«¤ò¤¤¤¸¤ë¾ì¹ç¤Ë¤ÏÁ᤯¤Ê¤ë¾ì¹ç¤¬¤¢¤ë¡£¤½¤³¤Ë½ñ¤¤¤Æ¤¢¤ë"THE RULE OF TRANSIENTS"¤Ë¤è¤ë¤È

Write your code so that it's first and foremost correct using immutable collections and operations; then, make changes to use transients for gaining speed.

¤À¤½¤¦¤Ç¤¹¡£

The Joy of Clojure

The Joy of Clojure

2011-12-22

¢£[]UTF-8-MACÌäÂê¤ò²ò·è¤¹¤ë

ÂçʬÁ°¤«¤é»È¤Ã¤Æ¤¤¤ëÇòMacBook¤ÎHDDÍÆÎ̤¬ºÇ¶á­¤ê¤Ê¤¯¤Ê¤Ã¤Æ¤­¤Æ¤¤¤Æ¡¢Áö¤é¤»¤Æ¤¿¥×¥í¥°¥é¥à¤¬ÍÆÎÌ­¤ê¤º¤ËÅÓÃæ¤Ç»à¤ó¤À¤ê¡¢Emacs¤Î¥Ð¥Ã¥Õ¥¡¤¬Êݸ¤Ç¤­¤Ê¤¤¥ì¥Ù¥ë¤Þ¤Ç¤­¤Æ¤¤¤¿¤Î¤Ç¡¢¥Ç¡¼¥¿¤òÂàÈò¤µ¤»¤ë¤³¤È¤Ë¡£Ubuntu¤Î¥µ¡¼¥Ð¡¼¤Ë¼è¤ê´º¤¨¤ºÃÖ¤¤¤Æ¤ª¤¯¤³¤È¤Ë¤·¤¿¤Î¤À¤¬¡¢Ubuntu¾å¤Ë¥Ç¡¼¥¿¤ò»ý¤Ã¤Æ¤¤¤¯¤ÈÂùÅÀ¤¬¤Ê¤ó¤«Ê¸»ú²½¤±(?)¤Ã¤Ý¤¤¤³¤È¤Ë¤Ê¤Ã¤Æ¤¤¤ë¤Î¤Ëµ¤¤¬¤Ä¤¤¤¿¡£¤½¤â¤½¤â¥Õ¥¡¥¤¥ë̾¤ËÆüËܸì»È¤¦¤Ê¤ä¡¢¤Ã¤ÆÏ䫤⤷¤ì¤Ê¤¤¤¬¡¢¼«¿æ¤·¤¿ËܤÎ̾Á°¤È¤«¤ÏÆüËܸì¤Î¤Û¤¦¤¬Ê¬¤«¤ê¤ä¤¹¤¤¤Î¤Ç¤³¤Î¾ì¹ç¤·¤ç¤¦¤¬¤Ê¤¤¡¢¤È¼«Ê¬¤Ï¹Í¤¨¤Æ¤¤¤ë¡£¤³¤Î¤Þ¤Þ¤À¤ÈMac¦¤«¤éscp¤·¤¿¤È¤­¤ËFile not found¤È¸À¤ï¤ì¤Æ¤É¤¦¤·¤è¤¦¤â¤Ê¤¯¤Ê¤Ã¤Æ¤·¤Þ¤¦¤Î¤ÇÌäÂê¤ò²ò·è¤·¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£

¤¢¤ì¤³¤ìÄ´¤Ù¤Æ¤¤¤ë¤È¡¢¤³¤ì¤ÏUTF-8-MAC¤È¸À¤ï¤ì¤ëÌäÂê¤é¤·¤¤¡£svn¤È¤«¤ÇÌäÂê¤Ë¤Ê¤Ã¤Æ¤¤¤¿¤È¤­¤¬¤¢¤Ã¤¿¤È¤«¡£iconv¤ò»È¤¨¤Ð²ò·è¤Ç¤­¤ë¤é¤·¤¤¤¬¡¢Ubuntu¦¤Îiconv¤Ç¤ÏUTF-8-MAC¤ËÂбþ¤·¤Æ¤¤¤Ê¤¤¡£Mac¦¤Ç¤ä¤ë¤Î¤â¼ê¤À¤¬¡¢¤¹¤Ç¤Ë·ë¹½Ubuntu¤ËžÁ÷¤·¤Æ¤·¤Þ¤Ã¤¿¾õ¶·¡£twitter¤Çtsune¤µ¤Þ¤¬convmv¤È¤¤¤¦¤Î¤¬¤¢¤ë¤Î¤ò¶µ¤¨¤Æ¤¯¤ì¤¿¡£

convmv -r -f utf-8 --nfd -t utf8 --nfc ./* --notest

¤Ê¤É¤È¤ä¤ë¤È¥«¥ì¥ó¥È¥Ç¥£¥ì¥¯¥È¥ê¤Î¥Õ¥¡¥¤¥ë¤òÁ´ÉôÊÑ´¹¤·¤Æ¤¯¤ì¤ë¤è¤¦¤Ç½õ¤«¤Ã¤¿¡£

Snow Leopard¤«¤éLion¤Ë¾å¤²¤è¤¦¤È»×¤Ã¤Æ¤¤¤ë¤ó¤Ç¤¹¤±¤É¡¢½¤ÏÀ¤ÎÁ°¤Ë¾å¤²¤ë¤Î¤Ï¥ê¥¹¥­¡¼¤Ê¤Î¤Ç¤Þ¤À¤ä¤á¤Æ¤ª¤¯¡£¡£¡£

¢£[]threading macrosÊØÍø

clojure¤ò½ñ¤¤¤Æ¤¤¤ë¤È(reduce f4 (filter f3 (map f2 (map f1 lis))))¤ß¤¿¤¤¤Ê¤Î¤¬¥Í¥¹¥È¤·¤Þ¤¯¤Ã¤Æ¡¢¥½¡¼¥¹¤¬²£¤ËŤ¯¤Ê¤ë¤È¤­¤¬¤¢¤ë(¤È¤¤¤¦¤«¤è¤¯¤è¤¯¤¢¤ë)¡£clojure¤Ë¤Ï¤½¤¦¤¤¤¦¤Î¤ò²ò·è¤·¤Æ¤¯¤ì¤ë¥Þ¥¯¥í¤¬¤¤¤Æ¤½¤ì¤Ï"->"¤È"->>"¡£Ì¾Á°¤Ïthread-first macro¤Èthread-last macro¤À¤½¤¦¤À¡£³ç¸Ì¤Î¥Í¥¹¥È¤·¤¿°ìÈÖ¿¼¤¤¤È¤³¤í¤«¤é¾å¤¬¤Ã¤Æ¤¤¤¯½ç¤Ë½ñ¤¤¤Æ¤¤¤±¤Ð¤¤¤¤¡£first¤Èlast¤Î°ã¤¤¤ÏÆó¤Ä¤á¤â°ú¿ô¤ò¸ÇÄê¤Ë¤¹¤ë¤«°ì¤ÄÌܤò¸ÇÄê¤Ë¤¹¤ë¤«¡¢¤È¤¤¤¦´¶¤¸¤é¤·¤¤¡£

Î㤨¤Ð¤³¤ó¤Êtwitter¤Îjson¥Ç¡¼¥¿¤«¤étweet¤ÎÉôʬ¤È¼è¤ê½Ð¤·¤Æ¡¢Ã±¸ì¤Ëʬ³ä¡¢Á´Éô¾®Ê¸»ú¤Ë¤¹¤ë¡¢¤È¤¤¤¦¤Î¤ò¥Þ¥¯¥í¤ò»È¤ï¤º¤Ë½ñ¤¤¤Æ¤ß¤ë¡£

;; not so bad
(def words-in-tweets
     (map lower-case
	  (flatten (map (fn [tweet] (split #"\s" tweet))
			(map (fn [tweet] (tweet :text)) tweets-in-english)))))

(take 10 words-in-tweets)
; ("vanaaf" "eventjes." "kleren" "uit" "zoeken" "voor" "stage" "+" "school" "feest")

¸«¤¿¤Þ¤ó¤Þ¤È¤Ï¸À¤¨¡¢¤«¤Ê¤ê²£Ä¹¤Ç¤¢¤ë¡£¤³¤ì¤òthread-last macro(map¤ÎlistÉôʬ¡¢¤¹¤Ê¤ï¤ÁÂèÆó°ú¿ô¤¬¾Êά¤µ¤ì¤¿´¶¤¸¤Ë¤Ê¤Ã¤Æ¤¤¤ë)¤ò»È¤¦¤È

(def words-in-tweets
     (->> (map (fn [tweet] (tweet :text)) tweets-in-english)
	  (map (fn [tweet] (split #"\s" tweet)))
	  (flatten)
	  (map lower-case)))

¤È¤¤¤¦¤è¤¦¤Ë¤¹¤Ã¤­¤ê¤È½èÍý¤Îή¤ì¤¬¸«¤¨¡¢¤«¤Ä²£Ä¹¤Ë¤Ê¤é¤Ê¤¤¤È¤¤¤¦¤Î¤òãÀ®¤Ç¤­¤ë¡£ÁÇÀ²¤·¤¤¡£¤Æ¤«¡¢R¤Ë¤âƱÍͤΤ³¤È¤¬¤¹¤´¤¤µ¯¤­¤ë¤Î¤ÇR¤Ë¤âÍߤ·¤¤¡£¡£¡£

¢£[]atom¤ÎÇÛÎó¤ÈÇÛÎó¤Îatom

Clojure¤Ï´ðËÜŪ¤Ëmutable¤Ê¤â¤Î¤òµö¤µ¤Ê¤¤À߷פˤʤäƤ¤¤ë¤Î¤Ç¡¢do-sync¤Ê¤É¤Î¥È¥é¥ó¥¶¥¯¥·¥ç¥ó¤ÎÃæ¤Çref¤òÊѹ¹¤¹¤ë¥³¥¹¥È¤Ï·ë¹½¹â¤¤(¤Ï¤º)¡£¥É¥é¥ó¥¶¥¯¥·¥ç¥ó¤Ç¤Ï¤Ê¤¤¤±¤É¡¢atom¤Î¾ì¹ç¤Ç¤Á¤ç¤Ã¤È¼Â¸³¤·¤Æ¤ß¤ë¡£

atom¤ÎÇÛÎó¤ÈÇÛÎó¤Îatom¤òÍѰա£Í×ÁǤò¥é¥ó¥À¥à¤ËÃÖ¤­´¹¤¨¤Æ¤¤¤¯¤è¤¦¤Ê¼Â¸³¤ÎÀßÄê¡£

(def x (atom '[1 2 3]))
(def y [(atom 1) (atom 2) (atom 3)])
(def N 100000)

(println "x")
(dotimes [_ 5]
  (let [rand-seq (doall (vec (map (fn [_] (rand-int 3)) (range N))))]
    (time (dotimes [i N]
	    (let [n (nth rand-seq i)]
	      (swap! x assoc n n))))))

(println "y")
(dotimes [_ 5]
  (let [rand-seq (doall (vec (map (fn [_] (rand-int 3)) (range N))))]
    (time (dotimes [i N]
	    (let [n (nth rand-seq i)]
	      (reset! (y n) n))))))

Í×ÁǤÎatom¤ò»ý¤¿¤»¤¿¤Û¤¦¤¬Êѹ¹¤Î¤È¤­¤Î¥³¥¹¥È¤¬¾®¤µ¤¤¤è¤¦¤À¡£

x
"Elapsed time: 261.819 msecs"
"Elapsed time: 251.127 msecs"
"Elapsed time: 242.16 msecs"
"Elapsed time: 240.869 msecs"
"Elapsed time: 256.606 msecs"
y
"Elapsed time: 108.052 msecs"
"Elapsed time: 119.755 msecs"
"Elapsed time: 79.847 msecs"
"Elapsed time: 82.929 msecs"
"Elapsed time: 79.497 msecs"

Í×ÁǤËatom¤ò»ý¤¿¤»¤ë¤È¥á¥â¥ê¤ò·ë¹½¿©¤¤¤½¤¦¤Êµ¤¤¬¤¹¤ë¤¬¡¢º£¹Í¤¨¤Æ¤¤¤ë¤ä¤Ä¤À¤È¥á¥â¥ê¤è¤ê¤â¼Â¹Ô»þ´Ö¤Î¤Û¤¦¤¬½ÅÍפʤΤǡ¢Í×ÁǤËatom¤Î¤Û¤¦¤ÎÀ߷פ¬¤¤¤¤¤«¤â¤·¤ì¤Ê¤¤(¤â¤Á¤í¤ó¡¢ÇÛÎó¤ÎÍ×ÁÇ´Ö¤ÇÊѤʤ³¤È¤¬µ¯¤­¤¿¤ê¤¹¤ë¤Èº¤¤ëÎã¤Ç¤ÏÍ×ÁÇËè¤Ëatom¤ÏÏÀ³°¤À¤í¤¦)¡£

°ã¤¦ÀßÄê¤Ç¼Â¸³

ÇÛÎó¤ÎŤµ¤ò¤â¤Ã¤ÈÁý¤ä¤·¤Æ¤ß¤¿¡£

(def x (atom (vec (range 10000))))
(def y (vec (for [i (range 10000)] (atom i))))

(def N 100000)

(println "x")
(dotimes [_ 5]
  (let [rand-seq (doall (vec (map (fn [_] (rand-int 10000)) (range N))))]
    (time (dotimes [i N]
	    (let [n (nth rand-seq i)]
	      (swap! x assoc n n))))))

(println "y")
(dotimes [_ 5]
  (let [rand-seq (doall (vec (map (fn [_] (rand-int 10000)) (range N))))]
    (time (dotimes [i N]
	    (let [n (nth rand-seq i)]
	      (reset! (y n) n))))))

¤ä¤Ï¤êÇÛÎó¤Îatom¤Î¤Û¤¦¤¬ÃÙ¤¯¤Ê¤Ã¤Æ¤¤¤ëÅٹ礤¤¬Â礭¤¤¤¿»×¤Ã¤¿¤Û¤É¤Ç¤â¤Ê¤«¤Ã¤¿¤è¤¦¤Êµ¤¤¬¤¹¤ë¡£

x
"Elapsed time: 780.831 msecs"
"Elapsed time: 701.475 msecs"
"Elapsed time: 695.271 msecs"
"Elapsed time: 651.421 msecs"
"Elapsed time: 646.095 msecs"
y
"Elapsed time: 187.253 msecs"
"Elapsed time: 201.147 msecs"
"Elapsed time: 151.437 msecs"
"Elapsed time: 126.56 msecs"
"Elapsed time: 126.16 msecs"

2011-12-10

¢£[]Clojure + swank + slime¤Ç¤Î¥×¥í¥°¥é¥ß¥ó¥°¤Î´¶³Ð¤ÏR on ESS¤Ë»÷¤Æ¤¤¤ë

ºÇ¶á¤Ç¤³¤½»È¤ï¤Ê¤¯¤Ê¤Ã¤¿¤â¤Î¤Î¡¢¼«Ê¬¤Ë¤È¤Ã¤ÆR¤ÏÊì¹ñ¸ì(Âè°ì¸À¸ì?)¤ß¤¿¤¤¤Ê¤â¤Î¤Ç·ë¹½±Æ¶Á¤òÍ¿¤¨¤Æ¤¤¤ë¡£R¤Î¸À¸ì¤È¤·¤Æ¹¥¤­¤Ê¤È¤³¤í(Î㤨¤Ðapply¤Ç¹ÔËè¤Ë¤Ð¤µ¤Ã¤È´Ø¿ôŬÍѤ·¤Æplot¤·¤Æ¥Ç¡¼¥¿¤ÎÍͻҤò¤µ¤¯¤Ã¤Èį¤á¤ë¤È¤«)¤â¤¢¤ë¤¬¡¢¥Ç¡¼¥¿²òÀϸÀ¸ì¤È¤·¤Æ¤ÎR¤ò»Ù¤¨¤Æ¤¤¤ë¤Î¤Ï¤½¤Î¥¤¥ó¥¿¥é¥¯¥Æ¥£¥ÖÀ­¤À¤È»×¤¦(¤¢¤ì¤³¤ì²¾Àâ¤ò»î¤·¤Ê¤¬¤é¥Ç¡¼¥¿¤ÎÀ­¼Á¤ò¸«¤Æ¤¤¤¯Ãµº÷Ū¥Ç¡¼¥¿²òÀÏ)¡£R¤Ë¤è¤ë¥¤¥ó¥¿¥é¥¯¥Æ¥£¥Ö¤Ê²òÀϤò»Ù¤¨¤Æ¤¤¤ë¤â¤Î¤Î°ì¤Ä¤È¤·¤ÆESS¤ò˺¤ì¤Æ¤Ï¤¤¤±¤Ê¤¤¡£ESS¤Ë¤Ä¤¤¤Æ¤ÏTsukuba.R¤ÎLT¤Ç(¼ã´³½¡¶µ¤Ã¤Ý¤¯)¾Ò²ð¤·¤Æ¤¤¤ë¤·¡¢Ruby¤ÇESS¤Ë¶á¤¤´Ä¶­¤òºî¤ê¤¿¤¤¤È»×¤Ã¤Æ¤Á¤ç¤Ã¤È¤·¤¿elisp¤ò½ñ¤¤¤¿¤ê¤·¤Æ¤¤¤¿¡£

´Ø¿ô¤Î¥Ø¥ë¥×¤¬¤µ¤¯¤Ã¤È°ú¤±¤¿¤ê¡¢¤½¤Î¤Ä¤¤¤Ç¤Ë´Ø¿ô¤Îexample¤ò¼Â¹Ô¤Ç¤­¤¿¤ê¤Ê¤É¤Ê¤É¤½¤ì¤Ï¤½¤ì¤Ï¤È¤Æ¤âÁÇŨ¤Ê¤â¤Î¤Ç¤¹¡£Ruby¤äC++¤ò»È¤¦¤è¤¦¤Ë¤Ê¤Ã¤Æ¤«¤é¤½¤ì¤Ê¤ê¤Ë´Ä¶­¤òÀ°¤¨¤¿¤â¤Î¤Î¡¢ESS¾å¤Ç¤ÎR¤Î»È¤¤¾¡¼ê¤Ë¤Ï±ó¤¯µÚ¤Ó¤Þ¤»¤ó¤Ç¤·¤¿(¤À¤±¤É¡¢R¤ò»È¤ï¤Ê¤¯¤Ê¤Ã¤Æ¤¤¤Ã¤¿¤Î¤Ïnlp¤È¤ÎÁêÀ­¤Ê¤É¤¬¤¢¤Ã¤¿¤«¤é¡¢¤Ç¤¹¤¬...)¡£

ESSŪ¤Ê´Ä¶­¤Ë¤»¤Þ¤ë¤â¤Î¤Ï¤â¤¦½Ð¤Æ¤³¤Ê¤¤¤Î¤«...¤È»×¤Ã¤Æ¤¤¤Þ¤·¤¿¤¬(Âç·¶ºÀ)¡¢Clojure + swank + slime¤Ï¤«¤Ê¤êESS¤Ë¶á¤¤»È¤¤Êý¤¬¤Ç¤­¤ì¤³¤ì¤ÏÅö¤¿¤ê¤À¤È»×¤Ã¤¿¡£

¤³¤Î´Ä¶­¤Ç¤Ï¡¢¥ê¡¼¥¸¥ç¥ó¤Ç°Ï¤Ã¤¿¤È¤³¤í¤ò¼Â¹Ô¤·¤¿¤ê(C-c C-r)¡¢¥Ý¥¤¥ó¥È¤òÃÖ¤¤¤Æ¤ë´Ø¿ô¤Îhelp¤ò°ú¤¤¤¿¤ê(C-c C-d C-d)¤Ê¤É¤è¤¯»È¤¦µ¡Ç½¤Ë¤¹¤°¥¢¥¯¥»¥¹¤Ç¤­¤ë¡£group-by´Ø¿ô¤Ç¥Ç¡¼¥¿¤ò°ø»ÒËè¤Ë¤Þ¤È¤á¤Æ¡¢frequencies¤ÇÉÑÅÙ¤ò½¸·×¤·¤Æ¾å°Ì10·ï¤òį¤á¤¿¤ê(take 10 lis)¡¢¤Ç¤«¤¤¥Ç¡¼¥¿¤âÃÙ±äɾ²Á¤ÇɬÍפÊʬ¤À¤±½èÍý¤Ç¤­¤ë¡£Incanter: Statistical Computing and Graphics Environment for Clojure¤ò»È¤¨¤Ð´Êñ¤Ë²Ä»ë²½¤â¤Ç¤­¤ë¡£R¤È°ã¤Ã¤ÆÂ®ÅÙ¤âÁêÅöÁᤤ(JVM¾å¤Çư¤¯¤·¡¢·¿¥Ò¥ó¥È¤Ê¤É¤òÍ¿¤¨¤ë¤³¤È¤â¤Ç¤­¡¢pmap´Ø¿ô¤Ê¤É¤ÇʹԽèÍý¤âÍÆ°×¤Ë¹Ô¤Ê¤¨¤ë)¤Î¤Ç*1¡¢²òÀϤ⤵¤é¤Ë¤ä¤ê¤ä¤¹¤¯¤Ê¤ë¡£¥Ç¡¼¥¿²òÀϤϥǡ¼¥¿¤ÎÀ°·Á(log¥¹¥±¡¼¥ë¤Ë¤·¤¿¤ê)¡¢¥Õ¥£¥ë¥¿¥ê¥ó¥°(°Û¾ïÃͤκï½ü)¡¢½¸·×(Ê¿¶Ñ¤äʬ»¶¤Ê¤É¤Î´ðËÜÅý·×Î̤òµá¤á¤ë)¤Ê¤É¤«¤é¤Ê¤Ã¤Æ¤¤¤ë¤È¤¤¤Ã¤Æ¤â²á¸À¤Ç¤Ï¤Ê¤¤¤¬*2¡¢Clojure¤ÏÀ°·Á¡¢¥Õ¥£¥ë¥¿¥ê¥ó¥°¡¢½¸·×¤ËÂФ·¤Æmap¡¢filter¡¢reduce¤È¤¤¤¦Âбþ¤¹¤ë´Ø¿ô¤ò»ý¤Ã¤Æ¤¤¤ë¡£¤³¤Î¤³¤È¤«¤é¤âClojure¤¬¤¤¤«¤Ë¥Ç¡¼¥¿²òÀϤ˸þ¤¤¤Æ¤¤¤ë¸À¸ì¤Ç¤¢¤ë¤È¤¤¤¦¤Î¤¬ÅÁ¤ï¤Ã¤Æ¤¯¤ë¤ó¤¸¤ã¤Ê¤«¤í¤¦¤«(¥É¥ä¥Ã)¡£

Í£°ì¤ª¤·¤¤¤Ê¤È»×¤¦¤Î¤¬example¤¬¸«¤ì¤Ê¤¤¤³¤È¤«...¡£¤È¡¢Ê¸¶ç¤òÉÕ¤±¤ë¤È¤³¤í¤¬¤³¤ì¤¯¤é¤¤¤·¤«¸«¤Ä¤«¤é¤Ê¤¤¤¯¤é¤¤(Á°ÃÖµ­Ë¡¤È¤«3Æü¤â¤¹¤ì¤Ð´·¤ì¤ë)¤Ë¤Ï²÷Ŭ¤Ë²òÀϤ¬¤Ç¤­¤ë¤Î¤ÇÁêÅö¤ª´«¤á¡£

»²¹Í

¥×¥í¥°¥é¥ß¥ó¥°Clojure

¥×¥í¥°¥é¥ß¥ó¥°Clojure

£·¤Ä¤Î¸À¸ì £·¤Ä¤ÎÀ¤³¦

£·¤Ä¤Î¸À¸ì £·¤Ä¤ÎÀ¤³¦

The Joy of Clojure

The Joy of Clojure

Clojure in Action

Clojure in Action

*1¡§R¤âC³ÈÄ¥¤Ê¤É¤ò»È¤¨¤Ð¤«¤Ê¤ê¹â®²½¤Ç¤­¤ë¤¬¡¢clojure¤ÏÊ̸À¸ì¤ò»È¤¦É¬Íפ¬¤Ê¤¤¤Î¤Ï¤«¤Ê¤ê¤¦¤ì¤·¤¤

*2¡§¤Á¤ç¤Ã¤È¸À¤¤²á¤®¤«¤â¤·¤ì¤Ê¤¤...

2011-12-01

¢£[][]On Lisp¤òÆÉ¤ßÊÖ¤¹

ºÇ¶áClojure¤Ë¼ê¤ò½Ð¤·¤Æ¤ß¤è¤¦¤«¤Ê¤¡¤È»×¤Ã¤Æ¤¤¤ë¤Î¤Ç¡¢On Lisp¤òÆÉ¤ßÊÖ¤·¤Æ¤ß¤¿¡£

On Lisp

On Lisp

Æüµ­¤òÄ´¤Ù¤Æ¤ß¤ë¤È¡¢On Lips¤òÇã¤Ã¤¿¤Î¤Ï4ǯÁ°¤Î¤è¤¦¤Ç¡¢Çã¤Ã¤¿¤Ï¤¤¤¤¤¬(Á´¤¯!)Íý²ò¤Ç¤­¤Ê¤¯¤ÆÀÑÆÉ¤Ë¤Ê¤Ã¤Æ¤¤¤¿Ëܤΰì¤Ä¤Ç¤¢¤Ã¤¿¡£Âç³Ø¤Ë¤Ï2005ǯÆþ³Ø¤À¤«¤é¤³¤ì¤ò½ñ¤¤¤¿¤Î¤ÏB3¤Îº¢¤Î¤Ï¤º¤Ç¡¢R¤äRuby¤äPerl¤ò¿¨¤ê»Ï¤á¤¿(¤½¤·¤ÆJava¤ò¿¨¤é¤Ê¤¯¤Ê¤Ã¤Æ¤­¤¿)º¢¡£Åö»þ¤ÎÃ챤«¤é¤¹¤ë¤ÈÍý²ò¤Ç¤­¤Ê¤¯¤ÆÌµÍý¤Ï¤Ê¤¤¤Ê¤¡¤È»×¤¦...(¥ª¥Ö¥¸¥§¥¯¥È»Ø¸þ¤ò¤è¤¦¤ä¤¯Íý²ò¤·»Ï¤á¤¿ÉÕ¶á)¡£

4ǯ´Ö¤Î´Ö¤Ç

  • Gauche¤ò¿¨¤Ã¤Æ¡¢for¤ò»È¤ï¤Ê¤¤¤ÇºÆµ¢¤Çɽ¸½¤¹¤ë¤³¤È¤òÃΤ俤ê
    • Gauche¤ò¿¨¤Ã¤Æ¤¤¤¿º¢¤Ë¤Ïµ¤¤Å¤«¤Ê¤«¤Ã¤¿¤±¤É¡¢¤½¤ì¤Ë¤è¤Ã¤Æ»²¾ÈÆ©ÌÀÀ­¤¬³ÎÊݤǤ­¤ë¤³¤È¤òÃΤ俤ê
  • Haskell¤ò¿¨¤Ã¤Æ¡¢´Ø¿ô·¿¤ÎÀ¨¤µ¤òÃΤꡢ¥â¥Ê¥É¤Ï·ë¶ÉÍý²ò¤Ç¤­¤Ê¤¤¤Þ¤Þ¤À¤Ã¤¿¤ê(¤¢¤ì¤§¡¼)
  • R¤ò¤â¤Ã¤È¿¼¤¯ÃΤë¤è¤¦¤Ë¤Ê¤ê¡¢´Ø¿ô¤ò¥ª¥Ö¥¸¥§¥¯¥È¤È¤·¤ÆÉáÄ̤˰·¤¨¤ë¤è¤¦¤Ë¤Ê¤ê¡¢Ãæ¿È¤¬Lisp¤Ç¶Ã¤¤¤¿¤ê
  • NLP¤ò¤ä¤ë¤è¤¦¤Ë¤Ê¤Ã¤Æ¡¢ºÆµ¢Åª¹½Â¤¤Î±ü¿¼¤µ¤òÃΤë¤è¤¦¤Ë¤Ê¤Ã¤¿¤ê

¤Ê¤É¤Ê¤É¤¬ÊѲ½¤È¤·¤Æ¤¢¤Ã¤¿¡£4ǯ¤â·Ð¤Ã¤Æ¤ë¤Î¤«...¤È¹Í¤¨¤ë¤ÈÀ®Ä¹¤¢¤ó¤Þ¤êÁ᤯¤Ê¤¤µ¤¤â¤¹¤ë¤±¤É¡¢Á°¤Ë¿Ê¤ó¤À¤Î¤Ï³Î¼Â¤À¤í¤¦¡£

¸½¾õ¤ÎÍý²ò¡¢ÌÌÇò¤¤¤È»×¤Ã¤¿¤È¤³¤í

On Lisp¡¢¤Þ¤À¤Þ¤À¤Á¤ã¤ó¤È¤ÏÍý²ò¤Ç¤­¤Æ¤¤¤Ê¤¤¤¬¡¢¸½¾õ¤ÎÍý²ò¤À¤Ã¤¿¤êÌÌÇò¤¤¤È»×¤Ã¤¿¤È¤³¤í¤ò½ñ¤­½Ð¤·¤Æ¤ª¤³¤¦¤È»×¤¦¡£

  • ¥Þ¥¯¥í¤ÎÀ¨¤µ¡£¹½Ê¸ÌÚ¤òľÀܽñ¤­ÊѤ¨¤ë¤³¤È¤Ë¤è¤Ã¤Æ¤Ç¤­¤ë½ÀÆð¤µ
    • ¥á¥¿¥×¥í¥°¥é¥ß¥ó¥°¤È¤Ï¤Þ¤¿°ã¤Ã¤Æ¤¯¤ë¤Î¤«¤Ê
  • Èó·èÄêÀ­¡££·¤Ä¤Î¸À¸ì £·¤Ä¤ÎÀ¤³¦¤ÇProlog¤Î¤È¤³¤í¤òÆÉ¤ó¤Ç¤Æ¡¢¡Ö¤É¤¦²ò¤¯¤«¡×¤Ç¤Ï¤Ê¤¯¤Æ¡¢ÄêµÁ¤ò½ñ¤¤¤¿¤éÌäÂ꤬²ò¤±¤Æ¤¤¤ë¤È¤¤¤¦¤Î¤òÃΤäƶ䤤¿¤¬¡¢Lisp¤ò»È¤Ã¤Æ¤½¤ì¤òºÆ¸½¤·¤Æ¤¤¤ë
  • ºÇ¸å¤Ë¥ª¥Ö¥¸¥§¥¯¥È»Ø¸þLisp¤¬¾Ò²ð¤µ¤ì¤Æ¤¤¤ë¤¬¡¢¡Ö¥ª¥Ö¥¸¥§¥¯¥È»Ø¸þ¤òLisp¤¬¼è¤ê¹þ¤ß»Ï¤á¤¿¡×¤È¤«½ñ¤«¤ì¤Æ¤¤¤ë¤Î¤Ç¤Ï¤Ê¤¯¡¢¡ÖLisp¤Ï³ÈÄ¥²Äǽ¤Ê¸À¸ì¤Ç¡¢¤½¤ÎÆâÉô¤Ç¥ª¥Ö¥¸¥§¥¯¥È»Ø¸þ¤¬ÍѰդ˹Ԥʤ¨¤ë¡×¤È¤¤¤¦¤è¤¦¤Ê½ñ¤­Êý¤ò¤·¤Æ¤¤¤Æ¡¢¥ª¥Ö¥¸¥§¥¯¥È»Ø¸þ¤ò¿ä¾©¤·¤Æ¤¤¤ë¤Î¤Ç¤Ï¤Ê¤¯¡¢Lisp¤Î½ÀÆðÀ­¤ò¼¨¤¹°ì¤Ä¤ÎÎã¤È¤·¤Æ¼è¤ê¾å¤²¤é¤ì¤Æ¤¤¤ÆÌÌÇò¤«¤Ã¤¿

¢£[]Clojure»Ï¤á¤Þ¤¹

NLP¤Î²¼¤Î¥ì¥¤¥ä¡¼(segmentation¤äparsing)¤Ç¸ø³«¤µ¤ì¤Æ¤¤¤ë¥×¥í¥°¥é¥à¤ÏC++¤äJava¤Ç¤¢¤ë¤³¤È¤¬Â¿¤¤¡£XXX¤Î(Ruby|Python|Perl) binding¤ß¤¿¤¤¤Ê¤Î¤¬ÍѰդµ¤ì¤Æ¤¤¤ë¤³¤È¤â¤¢¤ë¤¬¡¢¤½¤¦¤Ç¤Ê¤¤¤â¤Î¤â¿¤¤¡£¤¢¤ë¤¤¤Ïbinding¤Ë¤Ï¸ø³«¤µ¤ì¤Æ¤Ê¤¤¾ðÊó¤â»È¤¤¤¿¤¤¤È¤«¤½¤¦¤¤¤¦¤³¤È¤â¤¢¤ë(¤³¤³¤Þ¤Ç¿¿¤ÃÅö¤ÊÍýͳ)¡£C++¤Î¥×¥í¥°¥é¥à¤Î¾ì¹ç¡¢¼«Ê¬¤Ç¤Ê¤ó¤È¤«¤Ç¤­¤ë¤è¤¦¤Ë¤Ê¤Ã¤Æ¤­¤¿¤¬¡¢Java¤Ï¤â¤¦5ǯ¤¯¤é¤¤½ñ¤¤¤Æ¤¤¤Ê¤¤¡£¤Þ¤¡Java¤òºÆÅÙÊÙ¶¯¤¹¤ì¤Ð¤¤¤¤¤Î¤À¤¬¡¢¤½¤ì¤Ï³ä¤ÈÂà¶þ¤Êµ¤¤â¤¹¤ë(¤³¤ó¤Ê¤³¤È¤ò¤¤¤¦¤ÈÅܤé¤ì¤ë)¡£

Dave Thomas(ã¿Í¥×¥í¥°¥é¥Þ¡¼¡½¥·¥¹¥Æ¥à³«È¯¤Î¿¦¿Í¤«¤é̾¾¢¤Ø¤ÎÆ»¤Î¿Í)¤¬¡Öǯ¤Ë°ìÅ٤Ͽ·¤·¤¤¸À¸ì¤ò½¬ÆÀ¤·¤Þ¤·¤ç¤¦¡×¤È¸À¤Ã¤Æ¤¤¤ë¤·¡¢Java°Ê³°¤«¤éJava¤Î»ñ»º¤ò»È¤¨¤ë¸À¸ì¤Ë¤·¤è¤¦(¤³¤ÎÉնᤫ¤éÌÜŪ¤È¼êÃʤ¬Æþ¤ìÂØ¤ï¤ëw)¡£Java¤Î»ñ»º¤¬»È¤¨¤ë¤â¤Î¤È¤·¤Æ¡¢Jython¡¢JRuby¤Ê¤É¤¬¤¢¤ë¤¬¡¢¤½¤ì¤À¤È¤¢¤Þ¤ê¿·¤·¤¤¸À¸ì¤ò³Ø¤ó¤Ç¤¤¤ë´¶¤¬¤·¤Ê¤¤¡£¸õÊä¤È¤·¤ÆScala¤ÈClojure¤¬¸õÊä¤Ë¾å¤¬¤Ã¤Æ¤­¤¿¡£ÁÐÊý¶¦¤ËÊÂ¹Ô¥×¥í¥°¥é¥ß¥ó¥°¤òÍÆ°×¤Ë¤¹¤ë¤³¤È¤¬¤Ç¤­¡¢¥Ç¡¼¥¿¤ò¤Ð¤·¤Ð¤·½èÍý¤·¤¿¤¤NLPer¤È¤·¤Æ¤Ï´ò¤·¤¤Í×ÁǤ¬µÍ¤Þ¤Ã¤Æ¤¤¤ë¡£

Clojure¤ÈScalaÈæ³Ó

Clojure¤Î¤Û¤¦¤Ï

  • ¤«¤Ê¤ê´Ø¿ô·¿¸À¸ì¤ÎÍ×ÁǤ¬¶¯¤¤
  • Java¤Î¥ª¥Ö¥¸¥§¥¯¥È¤ò»È¤¦¤È¤­¤Ê¤É¤Ë¤Ïmutable¤Ê¤â¤Î¤òµö¤¹¤¬¡¢´ðËÜŪ¤Ë¤Ïimmutable¤Ê¤â¤Î¤ò»È¤¦
    • Êѹ¹¤¹¤ëºÝ¤Ë¤ÏÌÀ¼¨Åª¤Ë½ñ¤«¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¤è¤¦¤Ë¤Ê¤Ã¤Æ¤¤¤ë
  • Lisp¤Ê¤Î¤Ç¡Ö¥Ç¡¼¥¿¤È¤·¤Æ¤Î¥³¡¼¥É¡×¤Î»×ÁÛ¤¬Î®¤ì¤Æ¤¤¤ë
    • ¶¯ÎϤʥޥ¯¥í¤â¤â¤Á¤í¤ó»È¤¨¤ë
  • ÊÂ¹Ô¥×¥í¥°¥é¥ß¥ó¥°¤ò²Äǽ¤Ë¤¹¤ë¤¿¤á¤ËSTM(¥½¥Õ¥È¥¦¥§¥¢¥È¥é¥ó¥¶¥¯¥·¥ç¥Ê¥ë¥á¥â¥ê)¤È¤¤¤¦¤â¤Î¤òÍѰդ·¤Æ¤¤¤ë
    • SMT¤¸¤ã¤Ê¤¤¤è!!!(ʬ¤«¤Ã¤Æ¤ë¤Ã¤Æ)
  • JVM¾å¤Çư¤¯À©Ìó¤È¤·¤ÆËöÈøºÆµ¢¤ÎÉն᤬¤Á¤ç¤Ã¤È»È¤¤¤Å¤é¤¤´¶¤¸¤Ë¤Ê¤Ã¤Æ¤¤¤ë¤¬(recur¤È¤«)¡¢¤É¤¦¤ä¤éÃÙ±äɾ²Á¤Ç²ò·è¤µ¤»¤ë¤³¤È¤¬Â¿¤¤¤é¤·¤¤
  • ưŪ¸À¸ì¤Ç¤¢¤ë(¤¬¡¢Â®ÅÙ¤ò¾å¤²¤ë¤¿¤á¤Ë·¿¤Î¾ðÊó¤ò¶µ¤¨¤Æ¤ä¤ë¤³¤È¤â¤Ç¤­¤ë)

¤È¤¤¤¦´¶¤¸¤Ç¡¢Sclar¤Î¤Û¤¦¤Ï

  • ¥·¥ó¥¿¥Ã¥¯¥¹¤ÏJava¤Ë¶á¤¤´¶¤¸¤¬¤¹¤ë¤Î¤Ç¡¢Clojure¤è¤ê¤Ï¤È¤Ã¤Ä¤­¤ä¤¹¤½¤¦
  • Clojure¤è¤ê¥ª¥Ö¥¸¥§¥¯¥È»Ø¸þ¤è¤ê¤À¤¬¡¢´Ø¿ô·¿¸À¸ì¤Î¦Ì̤â»ý¤Ä¥Ï¥¤¥Ö¥ê¥Ã¥É¤Ê¸À¸ì
  • ClojureƱÍÍ¡¢immutable¤Ê¥ª¥Ö¥¸¥§¥¯¥È¤òÉáÄ̤ϻȤ¦
  • ÊÂ¹Ô¥×¥í¥°¥é¥ß¥ó¥°¤ò²Äǽ¤Ë¤¹¤ë¤¿¤á¤Ë¥¢¥¯¥¿¡¼¥â¥Ç¥ë¤È¤¤¤¦¤â¤Î¤òºÎÍѤ·¤Æ¤¤¤ë
    • Erlang¤â¥¢¥¯¥¿¡¼¥â¥Ç¥ë¤À¤¬*1¡¢¤½¤â¤½¤âErlang¤ò¿¨¤Ã¤¿¤³¤È¤¬¤Ê¤¤¡£¡£¡£
  • ·¿¿äÏÀ(¤¢¤ó¤Þ¤ê¤è¤¯ÃΤé¤Ê¤¤...C++¤Îauto¤ß¤¿¤¤¤Ê¤ä¤Ä¤Ç¤·¤ç¤¦¤«)¤È¤¤¤¦¤Î¤ò¤ä¤Ã¤Æ¤¯¤ì¤ë
    • ÀÅŪ·¿ÉÕ¤±¸À¸ì
  • ¥Ñ¡¼¥¶¡¼¤Î¥é¥¤¥Ö¥é¥ê¤¬É¸½à¤ÇÉÕ¤¤¤Æ¤ë
    • ËܼÁ¤Ç¤Ï¤Ê¤¤¤«¤â¤·¤ì¤Ê¤¤¤±¤É¡¢id:kis¤µ¤ó¤¬ºÇ¶á¤ä¤é¤ì¤Æ¤¤¤ë¤ß¤¿¤¤¤Ç¶½Ì£¤¬¤¢¤ë

¤È¤¤¤¦´¶¤¸¤é¤·¤¤¡£¼«Ê¬¤¬ÆÃ¤Ëµ¤¤Ë¤Ê¤Ã¤Æ¤¤¤ëÅÀ¤È¤·¤Æ¤Ï2ÅÀ¤¢¤Ã¤Æ

  • ¥ª¥Ö¥¸¥§¥¯¥È»Ø¸þ¤È´Ø¿ô·¿¤Î¥Ð¥é¥ó¥¹¤Î¼è¤êÊý(Sclar¤Î¤Û¤¦¤¬¤è¤ê¥ª¥Ö¥¸¥§¥¯¥È»Ø¸þ¤Ë¶á¤¯¡¢Clojure¤Î¤Û¤¦¤¬´Ø¿ô·¿¤Ë¶á¤¤)
  • ÊÂ¹Ô¥×¥í¥°¥é¥ß¥ó¥°¤ò²Äǽ¤Ë¤·¤Æ¤¤¤ë»ÅÁȤߤΰ㤤(STM¤È¥¢¥¯¥¿¡¼¥â¥Ç¥ë)

ÀÅŪ¤Ê¸À¸ì¤«Æ°Åª¤Ê¸À¸ì¤«¤âµ¤¤Ë¤Ê¤ëÅÀ¤Ç¤Ï¤¢¤ë¡£ÀÎ¤ÏÆ°Åª¸À¸ì¤Î¤Û¤¦¤¬·¿¤È¤«µ¤¤Ë¤·¤Ê¤¯¤Æ¤Ð¤·¤Ð¤·½ñ¤±¤Æ¤¤¤¤¤¸¤ã¤ó¤Ã¤Æ»×¤Ã¤Æ¤¿¤±¤É¡¢C++¤ò¤ä¤ë¤è¤¦¤Ë¤Ê¤Ã¤Æ¤«¤é

  • ¤³¤Î´Ø¿ô¤ÏÉûºîÍѤòµ¯¤³¤¹´Ø¿ô¤Ê¤Î¤«¤¬Ê¬¤«¤ë(const)
    • Ruby¤Î"!"¤È¤«¤Ç¤Ï¤Ê¤¯¡ÖÊݾڡפ·¤Æ¤¯¤ì¤ë
  • ´Ø¿ô¤ÎÆþÎϤ˼è¤ë·¿¤¬Ê¬¤«¤ë¤Î¤Ç¡¢»È¤¦¤È¤­¤äÆÉ¤à¤È¤­¤Ë(¾ðÊó¤¬Â¿¤¤Ê¬)¤ä¤ê¤ä¤¹¤¤
    • ÆÃ¤Ë½ñ¤¤¤Æ¤ë»þ´Ö¤è¤êÆÉ¤à»þ´Ö¤Î¤Û¤¦¤¬Ä¹¤¤¤Î¤Ç¡¢·¿¤Î¾ðÊó¤Ï·ë¹½¤¢¤ê¤¬¤¿¤¤
  • ¥³¥ó¥Ñ¥¤¥ë»þ¤Ëʬ¤«¤ë¥¨¥é¡¼¤Ï¤½¤³¤ÇÃÆ¤¤¤Æ¤¯¤ì¤ë
    • ¤Þ¤¡¡¢C++¤Î¥¨¥é¡¼¤ÏÆÉ¤á¤¿¤â¤ó¤¸¤ã¤Ê¤¤¤È»×¤¦¤ó¤Ç¤¹¤¬...
  • ÆþÎÏ»þ¤Ë·¿¤òÍøÍѤ·¤¿Êä´°¤¬¤Ç¤­¤ë
    • ¸Ä¿ÍŪ¤Ë¤ÏEmacs¤Îauto-complete¤ò»È¤¦¤³¤È¤¬Â¿¤¤¤Î¤Ç¤¢¤ó¤Þ¤ê³èÍѤ·¤Æ¤Ê¤¤¤¬...
  • ưŪ¸À¸ì¡¢¤Ç¤Ï¤Ê¤¤¤±¤É¥Æ¥ó¥×¥ì¡¼¥È¤ägeneritics¤â¤¢¤ë

¤È»×¤¦¤è¤¦¤Ë¤â¤Ê¤Ã¤¿¤Î¤Ç¡¢°ìŰìû¤À¤¬¡¢¤É¤Á¤é¤«¤È¤¤¤¦¤ÈºÇ¶á¤ÏÀÅŪ·¿ÉÕ¤±¸À¸ì¤Î¤Û¤¦¤¬¹¥¤­¤«¤â¤·¤ì¤Ê¤¤¡£»È¤Ã¤Æ¤¤¤ë¿Í¸ý¤ÏSclar¤Î¤Û¤¦¤¬Â¿¤½¤¦¤Ç¡¢Clojure¤Ï·ë¹½¥Þ¥¤¥Ê¡¼¤Ê´¶¤¬¤¢¤ë*2¡£

´°àú¤Ê¸À¸ì¤Ê¤É¤¢¤ê¤Ï¤·¤Ê¤¤¤·¡¢ÌÜŪ¤Ë±þ¤¸¤ÆÀµ¤·¤¯¤ª»È¤¤¤¯¤À¤µ¤¤¤È¤¤¤¦¤³¤È¤Ê¤Î¤Ç¡¢º£²ó¤ÎÌÜŪ¤ò³Îǧ¤¹¤ë¤È

  • NLP´Ø·¸¤Ç¸ø³«¤µ¤ì¤Æ¤¤¤ëJava¤Î¥é¥¤¥Ö¥é¥ê¤ò°ãÏ´¶¤Ê¤¯¿¨¤ì¤ë
  • ¿·¤·¤¤É÷¤ò¼«Ê¬¤ÎÃæ¤Ë¿á¤­¹þ¤ó¤Ç¤¯¤ì¤ë

¤È¤¤¤¦2ÅÀ¤¬Â礭¤¤¡£Scala¤âClojure¤âÁ°¼Ô¤ËÂФ·¤Æ¤Ï¤¿¤Ö¤óÂç¾æÉפÇ(Clojure¤ÏÁ°ÃÖµ­Ë¡¤Ê¤Î¤Ç¥á¥½¥Ã¥É¥Á¥§¡¼¥ó¤È¤«¤ä¤ê¤Å¤é¤½¤¦¡¢¤È»×¤Ã¤¿¤±¤É¡¢°ãÏ´¶¤Ê¤¯¤Ç¤­¤ë¤è¤¦¤Ë¤¹¤ë¤¿¤á¤Î¥Þ¥¯¥í¤¬¤Á¤ã¤ó¤ÈÍѰդµ¤ì¤Æ¤¤¤ë)¡¢¸å¼Ô¤âÊÂ¹Ô¥×¥í¥°¥é¥ß¥ó¥°¤À¤Ã¤¿¤ê¤Ç¿§¡¹ÊÙ¶¯¤Ë¤Ê¤ê¤½¤¦¤Ê¤Î¤À¤¬¡¢¤è¤ê¼«Ê¬¤¬ÃΤé¤Ê¤¤Í×ÁǤ¬¶¯¤½¤¦¤ÊClojure¤Î¤Û¤¦¤òÊÙ¶¯¤·¤Æ¤ß¤ë¤³¤È¤Ë¤·¤è¤¦¤«¤È»×¤¤¤Þ¤¹¡£

»²¹Í

¤¢¤ì¤³¤ìÄ´¤Ù¤¿¤ê¤¹¤ë¤Î¤Ë°Ê²¼¤ÎËܤò¤Á¤ç¤Ã¤ÈÆÉ¤ß¤Þ¤·¤¿¡£Scala¡¢Clojure¤Ë¸Â¤é¤º¿§¡¹¤Ê¥Ñ¥é¥À¥¤¥à¤Î¸À¸ì¤¬½Ð¤Æ¤­¤ÆÆÉ¤ó¤Ç¤ÆÌÌÇò¤«¤Ã¤¿¤Ç¤¹¡£

£·¤Ä¤Î¸À¸ì £·¤Ä¤ÎÀ¤³¦

£·¤Ä¤Î¸À¸ì £·¤Ä¤ÎÀ¤³¦

*1¡§¤È¤¤¤¦¤«Sclar¤Î¤Û¤¦¤¬¼Ú¤ê¤Æ¤­¤Æ¤¤¤ë¤Î¤«¤Ê

*2¡§NLP¤Ë¸Â¤ë¤È¤É¤Ã¤Á¤â¤¢¤Þ¤ê»È¤ï¤ì¤Æ¤¤¤Ê¤¤µ¤¤â¤¹¤ë¤±¤É...Ç븶¤µ¤ó¤¬Clojure»È¤ï¤ì¤Æ¤¤¤ë¤Î¤¯¤é¤¤¤·¤«ÃΤé¤Ê¤¤w

2011-11-25

¢£[][]ÌÚ¹½Â¤¤ËÂФ·¤Æ¥¤¥Æ¥ì¡¼¥¿¤òºî¤ë

Rubyist¤Ê¤éÃΤäƤÆÅöÁ³¤ß¤¿¤¤¤ÊÆâÍÆ¤«¤â¤·¤ì¤Þ¤»¤ó¤¬¡¢¼«Ê¬¤Çºî¤ë¤Î¤Ï¤¿¤Ö¤ó½é¤á¤Æ¤Î¤è¤¦¤Ë»×¤¦¤Î¤Ç¥á¥â¡£ËÜÅö¤ÏC++¤ÇƱÍͤΤ³¤È¤¬¤ä¤ê¤¿¤¤¤Î¤À¤¬¡¢Ruby¤Î¤Û¤¦¤¬¤Ñ¤Ã¤È¤ä¤ë¤Ë¤ÏÁᤤ¤Î¤Ç¤È¤ê¤¢¤¨¤ºRuby¤Ë¤Æ¡£

¾õ¶·¡¢¥â¥Á¥Ù¡¼¥·¥ç¥ó

Ruby¤Ë¤·¤í¡¢C++¤Ë¤·¤í¥³¥ó¥Æ¥Ê(Array¤À¤Ã¤¿¤êMap¤À¤Ã¤¿¤êSet¤À¤Ã¤¿¤ê)¤Ë¤Ï¥¤¥Æ¥ì¡¼¥¿¤¬ÉÕ¤¤¤Æ¤¤¤ë¡£¤³¤ì¤¬¤¢¤ë¤ª¤«¤²¤ÇËͤé¤Ï¤½¤ÎÆâÉô¹½Â¤¤òÆÃ¤Ë°Õ¼±¤»¤º¤Ëeach¤À¤Ã¤¿¤êBOOST_FOREACH¤ß¤¿¤¤¤Ê¤³¤È¤¬¤Ç¤­¤ë²¸·Ã¤ò¼õ¤±¤Æ¤¤¤ë¡£¤¬¡¢¼«ºî¤·¤¿¥¯¥é¥¹¤ä¹½Â¤ÂΤËÂФ·¤Æ¤Ï¤½¤Î¤è¤¦¤ÊÊØÍø¤Ê¥¤¥Æ¥ì¡¼¥¿¤ÏÍѰդµ¤ì¤Æ¤¤¤Ê¤¤¤Î¤Ç¡¢¼«Ê¬¤ÇÍѰդ¹¤ëɬÍפ¬¤¢¤ë¡£

º£²ó¤ÏÌÚ¹½Â¤¤ËÂФ·¤Æ¤½¤ì¤¬É¬Íפˤʤä¿¡£ÌÚ¤òÁöºº¤¹¤ë¤Ë¤ÏÎ㤨¤ÐÉýÍ¥Àèõº÷¤ä¿¼¤µÍ¥Àèõº÷¤Î¤è¤¦¤Ê´ðËÜŪ¤Ê¥¢¥ë¥´¥ê¥º¥à¤¬¤¢¤ë¤Î¤Ç¡¢¤½¤ì¤ò»È¤¨¤Ð¤¤¤¤¤Î¤À¤¬¡¢¡Ö¤Á¤ç¤Ã¤È¤À¤±¡×°ã¤¦Áàºî¤òÌڤΤ½¤ì¤¾¤ì¤Î¥Î¡¼¥É¤ËÂФ·¤Æ¤ä¤ê¤¿¤¤(Î㤨¤Ðprint¤·¤¿¤¤¤È¤«¥Î¡¼¥É¤ÎÃͤòaccumulate¤·¤¿¤¤¤Ê¤É¤ÎÍ׵᤬ʣ¿ô¤¢¤ë)¾ì¹ç¡¢¤Û¤È¤ó¤ÉƱÍͤΤ³¤È¤ò²¿²ó¤â½ñ¤¯¤Ï¤á¤Ë¤Ê¤ë¤Î¤Ç¡¢¥Ð¥°¤¬½Ð¤Æ¤¯¤ë¤«¤â¤·¤ì¤Ê¤¤¤·¤È¤ê¤¢¤¨¤º¤«¤Ã¤³°­¤¤¡£¤½¤¦¤¤¤¦¾õ¶·¤ÇÌÚ¹½Â¤¤ËÂФ¹¤ë¥¤¥Æ¥ì¡¼¥¿¤¬É¬ÍפȤʤä¿¡£

Ruby¤Î¾ì¹ç¤Ë¤Ä¤¤¤Æ

Tree¥¯¥é¥¹¤Ëeach¥á¥½¥Ã¥É¤òÀ¸¤ä¤·¤Æ¤ä¤ì¤Ð¤è¤¤¡£each¤ÇɬÍפˤʤ뤽¤ì¤¾¤ì¤ÎÊÑ¿ô¤Ïyield¤ÇÊÖ¤·¤Æ¤ä¤ì¤Ð¤è¤¤¡£yield¤Ï´·¤ì¤Ê¤¤¤È¤Ê¤«¤Ê¤«Ê¬¤«¤ê¤Ë¤¯¤¤¤¬¡¢²¿¤«Áàºî¤ò¤ä¤Ã¤Æ¤¤¤Æ¡¢°ì²ó»ß¤á¤ÆÅÓÃæ¤«¤éÌá¤Ã¤Æ¤¯¤ë¡¢¤ß¤¿¤¤¤Ê¥¤¥á¡¼¥¸¤Ç¤¢¤ë¡£²¼¤Î2ºý¤Î(¤É¤Ã¤Á¤«|ξÊý)¤òÆÉ¤ó¤À¤ê¤¹¤ì¤Ðʬ¤«¤Ã¤Æ¤¯¤ë¤è¤¦¤Ë¤Ê¤ë¤ó¤¸¤ã¤Ê¤¤¤ó¤Ç¤·¤ç¤¦¤«¡£

½é¤á¤Æ¤ÎRuby

½é¤á¤Æ¤ÎRuby

class Tree
  attr_accessor :val, :level, :l, :r
  def initialize(val, level, l, r)
    @val = val; @level = level; @l = l; @r = r
  end
  def each
    stack = []
    stack.push self
    explored = []
    while !stack.empty?
      u = stack.shift
      if !explored.include?(u)
        explored.push u
        yield u
        stack.unshift u.l unless u.l.nil?
        stack.unshift u.r unless u.r.nil?
      end
    end
  end
end

tree = Tree.new("World", 0,
                Tree.new("Asia", 1,
                         Tree.new("Japan", 2, nil, nil),
                         Tree.new("China", 2, nil, nil)),
                Tree.new("Europe", 1, 
                         Tree.new("Dutch", 2, nil, nil),
                         Tree.new("Portugal", 2, nil, nil)))

tree.each {|node|
  puts "\s" * node.level + node.val
}

º£²ó¤Ï¥¹¥¿¥Ã¥¯¤ËÀѤó¤Ç¤¤¤¯¤È¤¤¤¦·Á¤ò¼è¤Ã¤Æ¤¤¤ë¤Î¤Ç¿¼¤µÍ¥Àèõº÷¤Ë¤Ê¤ê¤Þ¤¹¤¬¡¢¥­¥å¡¼¤ËÃÖ¤¤¤Æ¤¤¤¯¤è¤¦¤Ë¤¹¤ì¤Ð(¤¿¤Ö¤ó)ÉýÍ¥Àèõº÷¤Ç¤Î¼Â¹Ô¤¬´Êñ¤Ë¤Ç¤­¤ë¤è¤¦¤Ë¤Ê¤ë¤È»×¤¤¤Þ¤¹*1¡£

¼Â¹Ô·ë²Ì

¤Á¤ã¤ó¤È¿¼¤µÍ¥Àè¤ÇÌÚ¤òÁöºº¤Ç¤­¤Æ¤¤¤ë¤³¤È¤¬³Îǧ¤Ç¤­¤ë¡£

/Users/yasuhisa/ruby% ruby traverse_tree.rb
World
 Europe
  Portugal
  Dutch
 Asia
  China
  Japan

C++¤Î¾ì¹ç

Ruby¤Î¾ì¹ç¤Ï´Êñ¤Ë¥¤¥Æ¥ì¡¼¥¿¤òºî¤ë¤³¤È¤¬¤Ç¤­¤¿¤Î¤À¤¬¡¢C++¤Ç¼«Ê¬¤Ç¥¤¥Æ¥ì¡¼¥¿¤ò¤É¤¦¤ä¤Ã¤Æºî¤ì¤Ð¤¤¤¤¤Î¤«¤è¤¯Ê¬¤«¤é¤Ê¤¤¡£Ä´¤Ù¤Æ¤ß¤ë¤ÈBoost¤Ë¤½¤ì¤Ã¤Ý¤¤¤Î¤¬¤¢¤ë¤é¤·¤¤¡£

begin()¤Ïroot¥Î¡¼¥É¤òÊÖ¤¹¤è¤¦¤Ë¤¹¤ë¤È¤·¤Æ¡¢end()¤Î¼ÂÁõ¤Ï¤É¤¦¤¹¤ì¤Ð¤¤¤¤¤«¤Ê¤¡(ŬÅö¤ËNULL¤Ç¤¤¤¤¤Î?)¡£increment¤¹¤ë¤È¤­¤Ë¥¹¥¿¥Ã¥¯¤«¤é¼è¤ê½Ð¤·¤Æexpand¤¹¤ë¡¢¤È¤¤¤¦¤è¤¦¤Ê¥¤¥á¡¼¥¸¡£

*1¡§ºÇ½é¡Ö¤ó¡¢ºÆµ¢¤¸¤ã¤Ê¤¤¤È¿¼¤µÍ¥Àè½ñ¤±¤Ê¤¯¤Í?¡×¤È»×¤Ã¤¿¤Î¤ÏÆâ½ïw

2011-11-10

¢£[][]Plaintext¤¬¤ä¤Ã¤Æ¤¯¤ì¤¿¡£¡£¡£

Ä«¤ËPlaintext¤ÈDropbox¤òƱ´ü¤·¤Æ¤¤¤¿¤éDropbox¦¤Î¥Õ¥¡¥¤¥ë¤¬Á´Éô¾Ã¤¨¤Æ¤¤¤Æ¾Ç¤Ã¤¿¡£Ä´¤Ù¤Æ¤ß¤ë¤ÈƱÍͤθ½¾Ý¤¬µ¯¤³¤Ã¤Æ¤¤¤ë¿Í¤¬¤¤¤¿¡£Æ±´ü¤·¤Æ¤¤¤ë¤È¤­¤Ë¥¹¥ê¡¼¥×¤·¤¿¤ê¤¹¤ë¤È¤ä¤Ã¤«¤¤¤Ê¤³¤È¤Ë¤Ê¤ë¤é¤·¤¤¡£¡£¡£

Dropbox¤Ï¥Õ¥¡¥¤¥ëñ°Ì¤Ç¤Ïgit¤Î¤è¤¦¤Ë¥Ð¡¼¥¸¥ç¥ó´ÉÍý¤¬¤Ç¤­¤ë¤Î¤À¤¬¡¢¥Õ¥©¥ë¥Àñ°Ì¤Ç¤¤¤Ä¤Î¥Ð¡¼¥¸¥ç¥ó¤ËÌ᤹¡¢¤È¤¤¤¦¤³¤È¤¬¤Ç¤­¤Ê¤¯¤Æ¤Á¤ç¤Ã¤Èº¤¤Ã¤¿¡£·ë¶É¡¢°ì²ó´ÉÍý¤·¤Æ¤¤¤ë¥Õ¥©¥ë¥À¤òºï½ü¤·¤Æ¤«¤érestore¤¹¤ë¤³¤È¤Ç¤É¤¦¤Ë¤«¤Ê¤Ã¤¿¡£Á´¤¯¡£¡£¡£

Dropbox¤Î¦¤Ë¤âgit¤Î¥Õ¥©¥ë¥À¤òºî¤Ã¤Æ¤¤¤ë¤±¤É¡¢¤â¤¦¾Ã¤·¤Æ¤â¤¤¤¤¤«¤â(¤µ¤¯¤é¥µ¡¼¥Ð¡¼Â¦¤«¤éºï½ü¤¹¤ë¤Î¤â˺¤ì¤Ê¤¤¤³¤È => ºï½ü¤·¤¿)¡£

2011-11-09

¢£[]find + xargs

¤è¤¯»È¤¦³ä¤ËÁ´Á³³Ð¤¨¤Æ¤Ê¤¤¤È¤¤¤¦¤¢¤ì¡£ÆüËܸì¤ä¶õÇò¤¬Æþ¤Ã¤Æ¤¤¤ë¤Èxargs rm¤È¤«¤ä¤Ã¤¿¤È¤­¤Ë¤¦¤Þ¤¯¹Ô¤Ã¤Æ¤¯¤ì¤Ê¤¤¤È¤¤¤¦¤³¤È¤¬¤¢¤ë¤Î¤ÇÄ´¤Ù¤¿¡£

$ find . -name \*~ -print0 | xargs -0 rm

·ë¶É¡¢°Ê²¼¤ÇÂн褷¤¿¡£

find . -type f -name \*conflicted\*.txt -print0 | xargs -0 rm

¤¤¤¤²Ã¸º³Ð¤¨¤¿¤¤¡£

2011-11-08

¢£[][]¤Ï¤Æ¤Êµ­Ë¡¤Ç½ñ¤¤¤¿¥Æ¥­¥¹¥È¤ò¥í¡¼¥«¥ë¤Ç¥×¥ì¥Ó¥å¡¼¤¹¤ë

¥Û¥Æ¥ë¤Î¥Í¥Ã¥È¤¬Àä˾Ū¤ËÃÙ¤¯¤Æ¡¢¤Ï¤Æ¤Ê(¥°¥ë¡¼¥×)¤ËLog¤ò½ñ¤¯¤È¤­¤ËÈó¾ï¤Ë¥¹¥È¥ì¥¹¥Õ¥ë¤Ê¤ï¤±¤Ê¤Î¤Ç¤·¤Æ¡¢¤É¤¦¤Ë¤«¤·¤Ê¤¤¤È»à¤Ì¡£Á°¤â»÷¤¿¤è¤¦¤Ê´¶¤¸¤Ç¡¢¥í¡¼¥«¥ë¤Ï¤Æ¤Ê¥À¥¤¥¢¥ê¡¼¤Ã¤Ý¤¤¤³¤È¤ò¤ä¤Ã¤Æ¤¿¡£

¤¬¡¢¸¡º÷¤È¤«¤¤¤é¤Ê¤¤¤Î¤Ç¡¢¤È¤Ë¤«¤¯¥×¥ì¥Ó¥å¡¼¤À¤±¤·¤¿¤¤¤ó¤¸¤ã¤´¤é¤¡¤È¤¤¤¦¤³¤È¤Ç¤â¤Ã¤È¤ª¼ê·Ú¤Ê´¶¤¸¤Ç¤ä¤ê¤¿¤¤¡£Á°¤Ïtext-hatena¤È¤¤¤¦Ruby¤Î¤Ï¤Æ¤Êµ­Ë¡¤Î¥Ñ¡¼¥¶¡¼¤ò»È¤Ã¤Æ¤¤¤¿¤¬¡¢º£²ó¤Ïhparser¤È¤¤¤¦¤ä¤Ä¤òÂå¤ï¤ê¤Ë»È¤Ã¤Æ¤ß¤ë¡£¤Ç¡¢°Ê²¼¤Î¥³¡¼¥É¤ò~/bin/txt2hatena¤È¤¤¤¦´¶¤¸¤ÇÊݸ¤·¤Æ¼Â¹Ô¸¢¸Â¤òÉÕÍ¿(chmod +x)¡£

#!/opt/local/bin/ruby1.9
# -*- coding: utf-8 -*-
require 'hparser'

puts HParser::Parser.new.parse(STDIN.read).map {|e| e.to_html }.join("\n")

¤Ç¡¢¤ª¼ê·Ú´Æ»ë¥¹¥¯¥ê¥×¥È¤Ç¤¢¤ëkansit¤ò»È¤Ã¤Æ°Ê²¼¤Î¥³¥Þ¥ó¥É¤òÁö¤é¤»¤Æ¤ª¤¯¤È¡¢¥í¡¼¥«¥ë¤Î¤Ï¤Æ¤Êµ­Ë¡¤Ç½ñ¤¤¤¿¥Æ¥­¥¹¥È¤¬¹¹¿·¤µ¤ì¤¿¤È¤­¤Ë¥Ö¥é¥¦¥¶¤Î¥×¥ì¥Ó¥å¡¼¤¬¹¹¿·¤µ¤ì¤ë¤È¤¤¤¦´¶¤¸¤Î»ÅÁȤߤˤʤäƤ¤¤ë¡£

echo ~/Dropbox/PlainText/hatena/syou6162/group/syou6162/2011-11-08.txt | xargs -I% kansit % -c "cat % | txt2hatena > /tmp/txt2hatena.html && open -g /tmp/txt2hatena.html"

kansit¤Îcommand¥ª¥×¥·¥ç¥ó¤Ç¤¢¤ì¤³¤ì¤Ç¤­¤Ê¤¤¤Ã¤Ý¤«¤Ã¤¿¤Î¤Çxargs¤Ç¤É¤¦¤Ë¤«¤·¤Î¤°¡£open¤Ë¤Ä¤¤¤Æ¤ëg¤Î¥ª¥×¥·¥ç¥ó¤Ï¥Ð¥Ã¥¯¥°¥é¥¦¥ó¥É¤Ç³«¤±(¤¿¤Ö¤óMac¤Ç¤·¤«Æ°¤«¤Ê¤¤)¡¢¤È¤¤¤¦°ÕÌ£¤Ç¤·¤Æ¡¢¤³¤ì¤¬¤Ê¤¤¤È²èÌ̤Υե©¡¼¥«¥¹¤ò¼è¤é¤ì¤Æ¤·¤Þ¤¦¤Î¤ÇÈó¾ï¤Ë¥¹¥È¥ì¥¹¥Õ¥ë¤Ê´¶¤¸¤Ë¤Ê¤Ã¤Æ¤·¤Þ¤¦¡£

̤¤À¤Ë¤Ï¤Æ¤Êµ­Ë¡°Ê¾å¤ËƬ»È¤ï¤Ê¤¤¤Ç¤Ð¤·¤Ð¤·¤È¥á¥â¤ò¼è¤ì¤ëµ­Ë¡¤¬¤Ê¤¤µ¤¤¬¤·¤Æ¤¤¤ë¤Î¤Ç¡¢¤Ï¤Æ¤Êµ­Ë¡¤òµ¤»ý¤Á¤è¤¯½ñ¤±¤ë´Ä¶­¤È¤¤¤¦¤Î¤ÏÀ¸Ì¿Àþ¤Ê¤Î¤Ç¤¢¤ê¤Þ¤¹¡£¤Ï¤Æ¤Ê¤ÎÃæ¤Î¿Í¤Ï¤Ï¤Æ¤Êµ­Ë¡¤òconvert¤¹¤ë¥¨¥Ç¥£¥¿¤È¤«½Ð¤·¤ÆApple Store¤È¤«¤ÇÇä¤Ã¤¿¤ê¤·¤¿¤é¤É¤¦¤Ç¤·¤ç¤¦¤«(¥Þ¥Ë¥¢¥Ã¥¯¤¹¤®¤ë)¡£

2011-11-07

¢£[]ưŪ¤Ë¥á¥ó¥ÐÊÑ¿ô¤òÀ¸¤ä¤¹

¥á¥¿¥×¥í¥°¥é¥ß¥ó¥°¤Î¥á¥â¡£

# -*- coding: utf-8 -*-
class MyClass; end

hash = {:test => "¥Æ¥¹¥È¤À¤è"}

MyClass.class_eval do 
  hash.each_pair do |k, v|
    define_method(k) { v }
  end
end

my_class = MyClass.new
puts my_class.test

2011-11-06

¢£[][][]¥á¥¿¥×¥í¥°¥é¥ß¥ó¥°Ruby¤ò¤µ¤é¤Ã¤ÈÆÉ¤ó¤À

¤µ¤é¤Ã¤È¡¢¤È¤¤¤¦¤è¤ê¤Ï°ìȯ¤Ç¤Ïʬ¤«¤ê¤½¤¦¤Ë¤Ê¤«¤Ã¤¿¤Î¤Ç¡¢¤È¤¤¤¦¤Û¤¦¤¬Àµ¤·¤¤w¡£¤Á¤Ê¤ß¤ËËܽñ¤òÆÉ¤àÁ°¤Î¼«Ê¬¤¬»ý¤Ã¤Æ¤¿Ãμ±¥ì¥Ù¥ë¤ÏưŪ¥Ç¥£¥¹¥Ñ¥Ã¥Á*1¤Èeval¤Î½éÊâ¤Ã¤Æ¤¯¤é¤¤¤Ç¤¹¡£

¥á¥¿¥×¥í¥°¥é¥ß¥ó¥°Ruby

¥á¥¿¥×¥í¥°¥é¥ß¥ó¥°Ruby

¥á¥¿¥×¥í¥°¥é¥ß¥ó¥°¤È¤«¤¤¤¦¤Èeval¤È¤«¹õËâ½Ñ¤Ã¤Ý¤¤¤â¤Î¤ò»×¤¤Éâ¤Ù¤ë¤¬¡¢¤½¤¦¤¤¤¦µ»½Ñ¤Ð¤Ã¤«¤êºÜ¤Ã¤Æ¤¤¤ë¤Î¤Ç¤Ï¤Ê¤¯¡¢¶¯Îϲ᤮¤ëÆ»¶ñ¤Ç¼«Ê¬¤Î­¸µ·â¤ÁÈ´¤«¤Ê¤¤¤¿¤á¤ÎÀþ°ú¤­¤¬¤­¤Á¤ó¤È½ñ¤¤¤Æ¤¢¤Ã¤¿¤ê*2¡¢Ruby¤ÎÃæ¤Î¤³¤È¤¬¤­¤Á¤ó¤ÈÃΤì¤ë¹½À®¤Ë¤Ê¤Ã¤Æ¤¤¤Æ¤è¤¤ËܤÀ¤È»×¤Ã¤¿¡£

Rails¤ÎÉÕ¶á¤Î¾Ï¤Ï¤Þ¤ÀÁ´Á³ÆÉ¤ó¤Ç¤Ê¤¤¤±¤É¡¢¤½¤ì°Ê³°¤Î¤È¤³¤í¤Ç¡Ö¤ª¤ª¤Ã¡×¤È»×¤Ã¤¿¤è¤¦¤Ê¤È¤³¤í¤ò¥á¥â¡£ÆÃ¤Ë¥¹¥³¡¼¥×¤Î¥Õ¥é¥Ã¥È²½¤ÎÉÕ¶á¤ÏÆÉ¤ó¤Ç¤Æ°ì¿Í¤Ç¤¹¤´¤¤¤¹¤´¤¤¸À¤Ã¤Æ¤¤¤¿w¡£

³¤­¤òÆÉ¤à

*1¡§Perl¤È¤«¤ÇÀνñ¤¤¤¿µ­²±¤¬¤¢¤ë

*2¡§¡Ö¤ä¤ì¤ë¤Î¤Ïʬ¤«¤Ã¤¿¤±¤É¡¢¼ÂºÝ¤Ë¤ä¤Ã¤Æ¤¤¤¤¤Î?¡×¤È¤«¤½¤¦¤¤¤¦¤Î

2011-11-02

¢£[][]MSRA¥¤¥ó¥¿¡¼¥óµ­»ö¤¬¥¢¥Ã¥×¥í¡¼¥É¤µ¤ì¤Þ¤·¤¿

ÂÚºßÃæ¤Ë½ñ¤¤¤¿MSRA¤Î¾Ò²ðµ­»ö¤òUniversity Relations in Japan, Microsoft Research Asia | MSR¤ÎºÇ¿·¾ðÊó¤ò¤ªÆÏ¤±¤·¤Þ¤¹¡£¤Ë¥¢¥Ã¥×¥í¡¼¥É¤·¤Æ¤â¤é¤¤¤Þ¤·¤¿¡£

Áª¤ó¤À¼Ì¿¿¤¬¤¤¤Þ¤¤¤Á¤Ê´¶¤¬¤·¤Þ¤¹¤¬¡¢Â¾¤Î¼Ì¿¿¤ÏËüΤ¤ÎĹ¾ë¤Î´¨¤µ¤ä¤éÊ⤭Èè¤ì¤¿¤ä¤é¤Ç¤í¤¯¤Ê´é¤·¤Æ¤ª¤é¤º»Ä¤Ã¤¿¤Î¤¬¤³¤ì¤Ç¤¹(¶ì¾Ð)¡£¤¤¤Ã¤Ñ¤¤¼è¤Ã¤Æ¤â¤é¤Ã¤¿¤Ï¤º¤Ê¤ó¤À¤±¤É¤Ê¤¡...¡£

ÆâÍÆ¤Ï¤¢¤ó¤Þ¤êÆÃÊ̤ʤ³¤È¤Ï½ñ¤¤¤Æ¤Ê¤¤¤Ç¤¹¤¬¡¢3¹Ô¤Ç¤Þ¤È¤á¤ë¤È

¤È¤¤¤Ã¤¿´¶¤¸¡£¿§¡¹¤¢¤ë¤±¤É¡¢¤ä¤Ã¤Ñ¤êƱÀ¤Âå¤ÎĶͥ½¨¤Ê¿Í¤é¤¬¼þ¤ê¤Ë¤ï¤ó¤µ¤«¤¤¤ë¤Ã¤Æ¤Î¤¬MSRA¤Î°ìÈÖ¤ÎÆÃħ¤¸¤ã¤Ê¤¤¤Ç¤·¤ç¤¦¤«¡£À¤³¦¤Ç°ìÈÖÇ®¤¤¥é¥Ü¤Ï°Ë㤸¤ã¤Ê¤¤¡£¼«Ê¬°Ê³°¤ÎÊý¤âµ­»öºÜ¤»¤Æ¤¤¤é¤Ã¤·¤ã¤¤¤Þ¤¹¤·(¤½¤·¤ÆËͤè¤êÌò¤ËΩ¤Ä¤³¤È½ñ¤¤¤Æ¤é¤Ã¤·¤ã¤¤¤Þ¤¹¤·...)¡¢¤½¤ì¤é¤â»²¹Í¤Ë¤·¤Ê¤¬¤é¥Ô¥ó¤È¤­¤¿¿Í¤ÏCV¤ò½ñ¤­½Ð¤·¤Æ¤ß¤ë¤È¤¤¤¤¤ó¤¸¤ã¤Ê¤¤¤ó¤Ç¤·¤ç¤¦¤«¡£

¼«Ê¬¤Ï¤¢¤È»Ä¤ê°ì¥ö·î¡£´èÄ¥¤ê¤Þ¤¹¡£

¢£[][][]map¤Èunordered_map¤Î°ã¤¤¤Ë¤Ä¤¤¤Æ¤Þ¤È¤á¤Æ¤ª¤¯

NLP¤À¤Èstd::map¤Ètr1::unordered_map¤Ê¤é¸å¼Ô¤ò»È¤¦¤³¤È¤Ë¤Ê¤ë¤³¤È¤¬Â¿¤¤¤È»×¤¦¤±¤É¡¢¤¢¤ì¤³¤ìº®Í𤷤Ƥ­¤¿¤Î¤Ç¥á¥â¤ë¡£NLPer¤Ê¤é²¡¤µ¤¨¤Æ¤ª¤¯¤Ù¤­¾ï¼±¤Î¤Ï¤º¡£¡£¡£

¤½¤ì¤¾¤ì¤ÎÆÃħ

¥Ç¡¼¥¿¹½Â¤std::maptr1::unordered_map
¼ÂÁõÀÖ¹õÌڥϥ工奯¡¼¥Ö¥ë
findlog nAverage case: O(1), Worset case: O(n)
insertlog nAverage case: O(1), Worset case: O(n)
deletelog nAverage case: O(1), Worset case: O(n)
¥á¥ê¥Ã¥È¥­¡¼¤Ç¥½¡¼¥ÈºÑ¤ß¤Ê¤³¤È¤¬Êݾ㤵¤ì¤Æ¤¤¤ë¤Î¤Ç¡¢¤¢¤ëÈϰϤÇiteration¤µ¤»¤¿¤¤¤È¤­¡¢delete¤¹¤ë¤Ê¤É¤ÎÁàºî¤ò¸úΨŪ¤Ë¹Ô¤¦¤³¤È¤¬¤Ç¤­¤ë¥Ð¥±¥Ã¥È¿ô¤òºÇ½é¤Ë¤­¤Á¤ó¤ÈÀßÄꤷ¤Æ¤ª¤±¤ÐÂçÂΤÎÁàºî¤¬Äê¿ô¤ÇºÑ¤à*1¡£map¤è¤ê¤â¥á¥â¥ê¤¬¾¯¤Ê¤¯¤ÆºÑ¤à

¤Ë¤Ïmap¤ò¥½¡¼¥ÈºÑ¤ßvector¤ËÃÖ¤­´¹¤¨¤è¤¦¡¢¤È¤¤¤¦¤³¤È¤¬½ñ¤¤¤Æ¤¢¤Ã¤¿¤ê¤·¤Æ¡¢¤Ê¤ó¤À¤«map¤µ¤ó¤¬¤«¤ï¤¤¤½¤¦¤Ë»×¤¨¤Æ¤­¤¿¡£¡£¡£¤Á¤Ê¤ß¤Ëmap¤Èvector¤òÁöºº¤¹¤ë¤È¤­¤Î®Å٤ΰ㤤¤Ï¤³¤ÎÊդˡ£

»²¹Í

*1¡§3/4¤¯¤é¤¤Ëä¤Þ¤ë¤Èrehash¤¹¤ë»ÅÍͤߤ¿¤¤¡£Rehash¤Ï½Å¤¤Áàºî¤Ê¤Î¤Ç¡¢¤Ê¤ë¤Ù¤¯²ó¿ô¤ò¾¯¤Ê¤¯¤·¤¿¤¤

2011-10-30

¢£[][][]stl¤Î¥³¥ó¥Æ¥Ê¤ògdb¤Ç¤­¤ì¤¤¤Ëɽ¼¨¤¹¤ë

vector¤ÎÍ×ÁǤò¸«¤¿¤¤¤ó¤Ç¤¹¤è¡£¤³¤ó¤ÊÉ÷¤Ë¤Ç¤­¤ë¡£

(gdb) p f.c.x
$2 = std::vector of length 2, capacity 2 = {1.4141999999999999, 3.1415000000000002}

gdb¤Îversion¤ò¾å¤²¤Æ(macport¤ÇÆþ¤ì¤Æ¤¤¤¿¤Î¤ò¾å¤²¤¿¤ó¤À¤¬¡¢¾å¤¬¤Ã¤Æ¤¤¤Ê¤¯¤Æ²¿¤¬µ¯¤³¤Ã¤¿¤«¤È»×¤Ã¤¿¤éggdb¤Ë¤Ê¤Ã¤Æ¤¤¤¿)¤«¤é¡¢.gdbinit¤Ë½ñ¤¤¤Æ¤¢¤ëpython¤Î¥¹¥¯¥ê¥×¥È¤òÄɲ乤ì¤Ð¤ªk¡£

Äɵ­

vector¤Îprint¤¬¤­¤ì¤¤¤Ë¤Ç¤­¤ë¤è¤¦¤Ë¤Ê¤Ã¤Æ¥Ï¥Ã¥Ô¡¼¤È»×¤Ã¤¿¤Î¤À¤¬¡¢macport¤ÇÆþ¤ì¤¿gdb 7.3.1¤ä¤é¥½¡¼¥¹¤«¤éÆþ¤ì¤¿gdb¤Ç¤Ïstep in¤¬¤Ê¤¼¤À¤«¤Ç¤­¤º»È¤¤¤â¤Î¤Ë¤Ê¤é¤Ê¤¤¡£¡£¡£·ë¶É¡¢"gdb-stl-views"ÉÕ¶á¤òÆþ¤ì¤ë¡£print¤¹¤ë¤È¤­¤Ëpvector¤È¤«ÂǤĤΤÀ¤¬¡¢Ëͤϥ³¥ó¥Æ¥Ê¤¬²¿¤Ç¤¢¤ë¤«¤ò¹Í¤¨¤º¤Ëp¤ò¤·¤¿¤¤¤ó¤Ç¤¹¤è¤Í¤¨¤¨¤¨¡£¡£¡£¿Í´ÖÍͤ¬¥³¥ó¥Æ¥ÊËè¤ËÂǤÁÊѤ¨¤ë¤È¤«¤¢¤ê¤¨¤Ê¤¤¡£·¿ÆÉ¤ó¤ÇÍߤ·¤¤¡£

2011-10-29

¢£[][]¥¹¥¤¥Ã¥Á¤òÆÉ¤ó¤À

¥¹¥¤¥Ã¥Á¡ª

¥¹¥¤¥Ã¥Á¡ª

¸Ä¿Í¡¢ÁÈ¿¥¡¢¼Ò²ñ¤Ê¤ÉÍÍ¡¹¤Ê»öÎã¤òµó¤²¤Ê¤¬¤é¡ÖÊѤ¨¤¿¤¯¤Æ¤âÊѤ¨¤é¤ì¤Ê¤¤¡×¿Í¤¿¤Á¤Ø¸þ¤±¤Æ¼ÂÁ©Åª¤Ê¥³¥Ä¤ò¾Ò²ð¤·¤Æ¤¤¤ëËÜ¡£¤Á¤ÈŤ¤¤Î¤Ç(¤È¸À¤Ã¤Æ¤â350¥Ú¡¼¥¸¤¯¤é¤¤¤À¤¬)¡¢¤«¤Ê¤ê¤Ï¤·¤ç¤ê¤Ê¤¬¤éÆÉ¤ó¤À¡£

°Ê²¼¡¢¼«Ê¬ÍÑ¥á¥â¡£

³¤­¤òÆÉ¤à

2011-10-25

¢£[][]Subvocalization¤ò¤ä¤á¤ë¤Ë¤Ï...?

ÆÉ¤ß¤¿¤¤Ëܤ¬¤Ð¤é¤Ð¤é¤È¤¢¤ë¤Î¤Ç¤¹¤¬¡¢Ê¿Æü¤Ï¥¤¥ó¥¿¡¼¥ó¤Î»Å»ö¤Ê¤É¤Ç¤½¤ì¤Û¤É»þ´Ö¤¬¼è¤ì¤Ê¤¤ => ÆÉ¤à¥¹¥Ô¡¼¥É¤½¤â¤½¤â¾å¤²¤ì¤Ð¾õ¶·²þÁ±¤µ¤ì¤ë¤ó¤¸¤ã¤Í?¤Èñ½ã¤Ê»×¹Í¤Ë»ê¤ê¤Þ¤·¤¿¡£¤Þ¤º¤Ï¸½¾õ¤òÃΤ뤳¤È¤¬½ÅÍפÀ¡¢¤È¤¤¤¦¤³¤È¤Ç¼«Ê¬¤ÎÆÉ¤à®ÅÙ¤ò¤Ï¤«¤Ã¤Æ¤ß¤ë¡£¹â®¤ËÆÉ¤ß¤¿¤¤ËܤμïÎà¤ÏÍνñ¤¬Â¿¤¤¤Î¤Ç¡¢¤³¤³¤Ç¤Ï±Ñ¸ì¤ò®ÆÉ¤¹¤ë¤³¤È¤Ë¤Ä¤¤¤Æ¹Í¤¨¤ë¡£iPhone¤ÎQuickReader¤È¤¤¤¦¥¢¥×¥ê¤òÆþ¤ì¤Æ¤ß¤Æ¡¢¼«Ê¬¤ÎÍνñ¤òÆÉ¤à®ÅÙ¤ò¤Ï¤«¤Ã¤¿¤È¤³¤íËèʬ190-200 words¤È¤¤¤¦´¶¤¸¤Ç¡¢Ê¿¶ÑŪ¤Ê¥¢¥á¥ê¥«¿Í¤¬200 words¤é¤·¤¤¤Î¤ÇÃÙ¤¯¤Ï¤Ê¤¤¤±¤É¡¢Á᤯¤â¤Ê¤¤¡¢¤È¤¤¤Ã¤¿´¶¤¸¤é¤·¤¤¡£Ëܤ¬º£¤Î3Çܤ¯¤é¤¤Á᤯ÆÉ¤á¤ë¤è¤¦¤Ë¤Ê¤ë¤È¤¦¤ì¤·¤¤¤Ê¡¢¤È¤¤¤¦¤³¤È¤ÇËèʬ600 words¤¬¤É¤ó¤Ê¤â¤ó¤«¤òQuickReader¤Ç»î¤·¤Æ¤ß¤ë...®¤¹¤®¤Æ¾Ð¤¨¤ëw¡£¤¬¡¢´·¤ì¤Æ¤¯¤ë¤È¥¹¥Ô¡¼¥É¼«ÂΤϤ¢¤ê¤¨¤Ê¤¯¤Ï¤Ê¤¤¤Ê¡¢¤È¤¤¤¦´¶¤¸¤Ë»×¤¨¤Æ¤¯¤ë¤±¤É¡¢¤Û¤Ü°ÕÌ£¤Ï¤Ä¤«¤á¤Ê¤¤¡£¤³¤ÎÉÕ¶á¤òÆÉ¤ó¤Ç¤¤¤ë¤È¡ÖÆÉ¤ßÊÖ¤·¡×¤ä¡Ösubvocalizing¡×¤¬ÌäÂê¤Ë¤Ê¤Ã¤Æ¤¯¤ë¤½¤¦¡£¡ÖÆÉ¤ßÊÖ¤·¡×¤Ï¤Û¤È¤ó¤É¤ä¤Ã¤Æ¤Ê¤¤¤Î¤Ç¡¢¥Ü¥È¥ë¥Í¥Ã¥¯¤Ï¡Ösubvocalizing¡×¤Î¤è¤¦¤À¡£³Î¤«¤Ë²»¤¬Æþ¤Ã¤Æ¤¯¤ë¤Î¤Ç½èÍý¤¬ÃÙ¤¯¤Ê¤ë¤Î¤Ïʬ¤«¤ë¤ó¤À¤¬¡¢ÀΤ«¤é¤½¤¦¤·¤Æ¤·¤Þ¤Ã¤Æ¤¤¤ë¤³¤È¤â¤¢¤ê¡¢¤Ê¤«¤Ê¤«Æñ¤·¤½¤¦¤À¡£

Ëèʬ600 words¤¬´·¤ì¤ë¤È¤½¤ó¤Ê¤ËÁ᤯¤Ê¤¤¤Ê¤È»×¤Ã¤¿¤Î¤ÏÆüËܸì¤Î¥Æ¥­¥¹¥È¤À¤È¤½¤ì¤¯¤é¤¤¤Î®ÅÙ¤ÇÆÉ¤ó¤Ç¤¤¤ë¤«¤é*1¡£¤¸¤ã¤¢¡¢ÆüËܸì¤À¤È¡Ösubvocalizing¡×¤·¤Ê¤¤¤«¤È¸À¤ï¤ì¤ë¤È¤½¤ó¤Ê¤³¤È¤â¤Ê¤¤¤Î¤À¤¬*2¡¢Ê¸Á´ÂΤòsubvocalizing¤·¤Æ¤Ï¤¤¤Ê¤¯¤Æ¤È¤³¤í¤É¤³¤í¤òsubvocalizing¤·¤Æ¤¤¤ë¤è¤¦¤Ê¥¤¥á¡¼¥¸¡£¤¿¤À¡¢¤½¤ì¤Ç¤â°ÕÌ£¤ÏÄϤá¤ë¡£±Ñ¸ì¤Ç¤â´·¤ì¤ì¤Ð¤½¤ó¤Ê´¶¤¸¤Ç¤¤¤±¤ë¤ó¤À¤í¤¦¤«¡£¤â¤Ã¤È»È¤¦Íνñ¤ò´Êñ¤Ê¤ä¤Ä¤Ë¤¹¤ì¤Ð¤¤¤¤¤Î¤«¤Ê¡£·±Îý¤Çsubvocalizing¤ò¤ä¤á¤ë¤³¤È¤ËÀ®¸ù¤·¤¿¿Í¡¢¤É¤ó¤Ê´¶¤¸¤Ç¤ä¤Ã¤¿¤«¶µ¤¨¤Æ¤â¤é¤¨¤ë¤È¤¦¤ì¤·¤¤¤Ç¤¹¡£1½µ´Ö¤¯¤é¤¤¤·¤«¤ä¤Ã¤Æ¤Ê¤¤¤Î¤Ç¡¢¤â¤¦¤Á¤ç¤¤¤ä¤ì¤ä¤È¤¤¤¦¤Î¤¬¤â¤Ã¤È¤â¤ÊÀ¼¤«¤â¤·¤ì¤Ê¤¤¡£

¤È¤ê¤¢¤¨¤º¤³¤ì¤È¤«¤âÆÉ¤ó¤Ç¤ß¤ë¤³¤È¤Ë¤¹¤ë¡£

Breakthrough Rapid Reading

Breakthrough Rapid Reading

*1¡§ÆüËܸì¤Ç¤µ¤é¤Ë3ÇÜ®¤ÇÆÉ¤à¤Ë¤ÏËèʬ2000¸ì¶á¤¯½èÍý¤Ç¤­¤ë¤è¤¦¤Ë¤Ê¤é¤Ê¤¤¤È¤¤¤±¤Ê¤¤¤È¹Í¤¨¤ë¤È·ë¹½ÂçÊѤ½¤¦¤Ë»×¤¨¤ë...

*2¡§content word¤òÁÇÁ᤯Ãê½Ð¤¹¤ëʬÎà´ï¤¬È¯Ã£¤·¤Æ¤¤¤ë¡¢¤Ã¤Æ´¶¤¸¤À¤í¤¦¤«

2011-10-21

¢£[][]¡Ö¥Þ¥¤¥¯¥í¥½¥Õ¥È¤Ç¤Ï½Ð²ñ¤¨¤Ê¤«¤Ã¤¿Å·¿¦¡×¤òÆÉ¤ó¤À

°ìµ¤¤ËÆÉ¤ó¤Ç¤·¤Þ¤Ã¤¿¡£¤Ö¤ë¤Ö¤ë¤­¤¿¡£¤³¤ì¤Ï´Ö°ã¤¤¤Ê¤¯Îɽñ¡£

Microsoft¤Î´´Éô¼Ò°÷¤À¤Ã¤¿Ãø¼Ô¤¬Microsoft¤ò¼­¤á¤ÆNGO(Room to Read)¤òΩ¤Á¾å¤²¤¿¤³¤È¤Ë´Ø¤¹¤ë¤³¤È¤¬½ñ¤«¤ì¤Æ¤¤¤ë¤Î¤À¤¬¡¢¿§¡¹¤ÊÊýÌ̤ǤΥ¨¥Ã¥»¥ó¥¹¤¬µÍ¤Þ¤Ã¤Æ¤¤¤¿¡£Microsoft¤Ç¥¤¥ó¥¿¡¼¥ó¤ä¤Ã¤Æ¤¤¤Ê¤¬¤éÆÉ¤à¤Î¤Ï¤É¤¦¤è¤È°ì½Ö»×¤Ã¤Æ¤·¤Þ¤Ã¤¿¤¬¡¢¤Ê¤ë¤Û¤É¤³¤ì¤ÏMicrosoft¤Ç´´Éô¤ò¤ä¤Ã¤Æ¤¤¤¿Èà¤À¤«¤é¤³¤½¤Ç¤­¤ë»Å»ö¤Ê¤ó¤À¤Ê¤È»×¤Ã¤¿¤Î¤ÇMicrosoft¤Ë¥¤¥ó¥¿¡¼¥ó¹Ô¤Ã¤Æ¤¤¤ë¿Í(¤â¤Á¤í¤ó¤½¤ì°Ê³°¤Î¿Í¤Ë¤âw)¤Ë¤â¤ª´«¤á¤Ç¤­¤ë¡£

µ¤¤Ë¤¤¤Ã¤¿¸ÀÍÕ¡¢¥á¥â¤ò½ñ¤¤¤Æ¤ª¤¯¡£

¹ç¤ï¤»¤ÆÆÉ¤ó¤Ç¤ë

¸¶½ñ¤ÇÆÉ¤ó¤Ç¤Þ¤¹¤¬¡¢ËÝÌõÈǤ⤢¤ê¤Þ¤¹(Ãæ¹ñ¤Ë¤¤¤ë¤Î¤Ç¡¢kindle¤ÇÇ㤦¤·¤«¤Ê¤¤)¡£

Global Citizens: How Our Vision of the World is Outdated, and What We Can Do About it

Global Citizens: How Our Vision of the World is Outdated, and What We Can Do About it

À¤³¦¤ÇÀ¸¤­¤ëÎÏ¡½¡½¼«Ê¬¤òËÜÅö¤Ë¥°¥í¡¼¥Ð¥ë²½¤¹¤ë4¤Ä¤Î¥¹¥Æ¥Ã¥×

À¤³¦¤ÇÀ¸¤­¤ëÎÏ¡½¡½¼«Ê¬¤òËÜÅö¤Ë¥°¥í¡¼¥Ð¥ë²½¤¹¤ë4¤Ä¤Î¥¹¥Æ¥Ã¥×

2011-10-17

¢£[][]ºÇ¶áÆÉ¤ó¤ÀËÜ

¥Û¥Æ¥ë¤Ï¥Í¥Ã¥È¤¬¤ªÀ¤¼­¤Ë¤âÁᤤ¤È¤Ï¸À¤¨¤Ê¤¤¤Î¤Ç¡¢¥Í¥Ã¥È¤ògdgd¤È¸«¤ë»þ´Ö¤¬¸º¤Ã¤ÆÆÉ½ñ¤Ë¤¢¤Æ¤ë»þ´Ö¤¬Áý¤¨¤¿¤Î¤Ï¤è¤¤¤³¤È¤Î°ì¤Ä¤«¤Ê¤È»×¤¤¤Þ¤¹¡£

¥³¥ó¥Ô¥å¡¼¥¿¤¬»Å»ö¤òÃ¥¤¦

¥³¥ó¥Ô¥å¡¼¥¿¤¬»Å»ö¤òÃ¥¤¦

¼«Á³¸À¸ì½èÍý¤Èµ¡³£³Ø½¬¤òÀìÌç¤Ë¤ä¤Ã¤Æ¤¤¤ë¼«Ê¬¤È¤·¤Æ¤ÏÆÃ¤ËÌÜ¿·¤·¤¤¤³¤È¤¬¤Ê¤«¤Ã¤¿¤±¤É¡¢²¿¤è¤ê¤âÀâÌÀ¤¬Ê¬¤«¤ê¤ä¤¹¤¤¤Ê¤È¤¤¤¦¤Î¤¬°õ¾Ý¤Ë»Ä¤Ã¤¿¡£¼«Ê¬¤¬¤ä¤í¤¦¤È¤·¤Æ¤¤¤ë¤³¤È¤òÎ㤨¤Ð¼«Ê¬¤Î¿Æ¤Ëʬ¤«¤ê¤ä¤¹¤¯ÀâÌÀ¤¹¤ë¡¢¤ß¤¿¤¤¤Ê¤È¤­¤Ë¤¹¤´¤¤¤è¤µ¤½¤¦¤ÊËܤǤ¢¤ë¡£µ¡³£³Ø½¬¤¬Æþ¤Ã¤Æ¤¯¤ë¤³¤È¤Ë¤è¤ê¡¢²¿¤¬²Äǽ¤Ë¤Ê¤Ã¤Æ¤½¤ì¤Ç¤â²¿¤¬¤Ç¤­¤Ê¤¤¤Î¤«¡¢¿Í´Ö¤¬¤ä¤ë¤Ù¤­¤³¤È¤Ï¤É¤ó¤Ê¤³¤È¤Ê¤Î¤«¤È¤¤¤¦¤³¤È¤Ïµ¡³£³Ø½¬¤òÃΤé¤Ê¤¤¿Í¤Ë¤È¤Ã¤Æ¤â½ÅÍ×(¼«Ê¬¤Î»Å»ö¤Ïµ¡³£¤ËÃÖ¤­ÊѤ¨¤é¤ì¤ë¤â¤Î¤Ê¤Î¤«etc)¤Ê¤Î¤Ç¡¢ÀìÌç¤Ç¤Ê¤¤¿Í¤Ë¤â¤ª´«¤á¤Ç¤­¤ë¡£

¤Ê¤ó¤À¤«·ë¹½Àµ³Î¤Ë½ñ¤¤¤Æ¤¢¤ë¤Ê¤¡¤È»×¤Ã¤¿¤éÃø¼Ô¤Ï¹ñΩ¾ðÊ󳨏¦µæ½ê¤Î¶µ¼ø¤À¤Ã¤¿¡£Á´Á³ÃΤé¤Ê¤¯¤Æ¤¹¤¤¤Þ¤»¤ó...¡£Researchmap¤Î³«È¯¤È¤«¤â¤ä¤Ã¤Æ¤ª¤é¤ì¤¿¤è¤¦¤Ç¤¹¡£Special thanksŪ¤Ê¤È¤³¤í¤Ë¤âÎ㤨¤Ð¸À¸ì½èÍý´Ø·¸¤À¤ÈµÜÈøÀèÀ¸¡¢±Æ±ºÀèÀ¸¡¢Áêß·ÀèÀ¸¤Î̾Á°¤¬¤¢¤Ã¤¿¡£

¾®»ôÃÆ¤Î¥¢¥ë¥Õ¥¡¥®¡¼¥¯¤Ë°©¤Ã¤Æ¤­¤¿ (WEB+DB PRESS plus¥·¥ê¡¼¥º)

¾®»ôÃÆ¤Î¥¢¥ë¥Õ¥¡¥®¡¼¥¯¤Ë°©¤Ã¤Æ¤­¤¿ (WEB+DB PRESS plus¥·¥ê¡¼¥º)

¤¿¤Ö¤ó°ìÅ٤ɤ³¤«¤ÇÆÉ¤ó¤À¤³¤È¤¬¤¢¤ëµ¤¤¬¤¹¤ë¤±¤É¡£¸åȾ¤Ï¤Á¤ç¤Ã¤È¤°¤À¤°¤À¤Ë¤Ê¤Ã¤Æ¤·¤Þ¤Ã¤Æ¤¤¤ë´¶¤¬¤¢¤ë¤±¤É

  • Ruby on Rails³«È¯¼Ô David Helinmeier Hansson(¤³¤ÎÁ°ÆÉ¤ó¤À37 signals¤Î¿Í)
    • ¡Ö¥¢¡¼¥­¥Æ¥¯¥È¡×¤Ã¤Æ¸ÀÍÕ¤ò»È¤Ã¤¿¤éÉ餱
  • Perl³«È¯¼Ô Larry Wall
    • Í¥¤ì¤¿¥½¥Õ¥È¥¦¥§¥¢¤â¡¢Ê¸²½¤ò»ý¤¿¤Ê¤±¤ì¤ÐÉáµÚ¤·¤Ê¤¤
  • ¡Öã¿Í¥×¥í¥°¥é¥Þ¡×Ãø¼Ô Dave Thomas
    • ¥³¡¼¥Ç¥£¥ó¥°¤ò³¤±¤ë¤È¤¤¤¦¾ðÇ®¤¬½ÅÍס£¤½¤ì°Ê³°¤Ï¼è¤ë¤Ë­¤ê¤Ê¤¤

¤ÎÉÕ¶á¤Ïº£ÆÉ¤ßÊÖ¤·¤Æ¤âÆÉ¤à²ÁÃͤ¬¤¢¤ë¤È´¶¤¸¤¿¡£

Mind ¥Ñ¥Õ¥©¡¼¥Þ¥ó¥¹ Hacks ¡½Ç¾¤È¿´¤Î¥æ¡¼¥¶¡¼¥Þ¥Ë¥å¥¢¥ë

Mind ¥Ñ¥Õ¥©¡¼¥Þ¥ó¥¹ Hacks ¡½Ç¾¤È¿´¤Î¥æ¡¼¥¶¡¼¥Þ¥Ë¥å¥¢¥ë

¥¨¥ó¥¸¥Ë¥¢¤Î¤¿¤á¤Î»þ´Ö´ÉÍý½Ñ

¥¨¥ó¥¸¥Ë¥¢¤Î¤¿¤á¤Î»þ´Ö´ÉÍý½Ñ

¤¤¤ï¤æ¤ë»þ´Ö´ÉÍý½ÑŪ¤Ê2ºý¡£Mind Hacks¤â¤µ¤é¤Ã¤Èį¤á¤Æ¤ß¤¿¤¬¡¢Ç¾²Ê³Ø·Ï¤ÎËܤòºÇ¶á³ä¤ÈÆÉ¤ó¤Ç¤¤¤¿¤Î¤Ç¤½¤Ã¤Á¤Ï¤ªÊ¢¤¤¤Ã¤Ñ¤¤...¡£¤½¤¦¤¤¤¦Ã諤òƬ¤ËÆþ¤ì¤¿¾å¤Ç¤É¤¦À¸¤«¤»¤ë¤«¤òÃΤꤿ¤¤¤Ê¤È»×¤Ã¤ÆMind ¥Ñ¥Õ¥©¡¼¥Þ¥ó¥¹ Hacks ¡½Ç¾¤È¿´¤Î¥æ¡¼¥¶¡¼¥Þ¥Ë¥å¥¢¥ë¤òÆÉ¤ó¤Ç¤ß¤Æ¤¿¡£¼«Ê¬ÍѤΥá¥â¤ò½ñ¤¤¤Æ¤ª¤¯¡£

  • Í×ÁǤÎÁȤ߹ç¤ï¤»
    • ¿¿¤Ë¿·¤·¤¤¤è¤¦¤Ë¸«¤¨¤ë¤â¤Î¤â´û¸¤Î¤â¤Î¤ÎÁȤ߹ç¤ï¤»¡£¥Ñ¡¼¥Ä¤Ëʬ²ò¤·¤Æ¥Ñ¡¼¥Ä¤ò¿§¡¹ÁÈÂØ¤¨¤Æ¤ß¤ë¤È¤É¤¦¤Ê¤ë¤«¹Í¤¨¤Æ¤ß¤ë
    • SCAMPER
      • substitute¡¢combine¡¢adapt¡¢modify¡¢put to another use¡¢eliminate¡¢reverse
  • ÃÎÀ­¤Î¶Ê¤òÁդǤë
    • ÃÎŪ³èư¤ËÌòΩ¤Ä²»³Ú¡¢Ê¹¤¯¤³¤È¤Ç¤è¤ê½¸Ã椷¤Æ»×¹Í¤Ç¤­¤ë
  • Ì´Æüµ­
  • ¥¢¥¤¥Ç¥¢¤ËÅþ㤷¤¿·ÐÏ©¤ò³Îǧ(Hack #32)
  • ¿Í¹©¸À¸ì¤ò³Ø¤Ö(Hack #51)¡¢¥¨¥¹¥Ú¥é¥ó¥È¸ì
  • ´¶¾ð¤ÎABC¥â¥Ç¥ë(Hack #57)
    • ²æ¡¹¤¬¹¬¤»¤Ç¤¢¤ë¤«¤É¤¦¤«¤ò·è¤á¤ë¤Î¤ÏÃÖ¤«¤ì¤¿´Ä¶­¤Ç¤Ï¤Ê¤¯¡¢´Ä¶­¤ËÂФ¹¤ë²æ¡¹¤Îª¤¨Êý¡£Àº¿ÀŪ¤Ê¶ìÄˤΤâ¤È¤Ë¤Ê¤Ã¤Æ¤¤¤ëÈóÍýÀ­Åª¤Ê»×¹Í¤Î¸ºß¤òÆÍ¤­»ß¤á¤ì¤Ð¡¢»×¹Í¤ä¹Ôư¤ò¤â¤Ã¤ÈµÒ´ÑŪ¤Ê¾õ¶·¤Ë¤¢¤Ã¤¿¤â¤Î¤Ë¤Ç¤­¤ë
  • 4ÇܸƵÛ(Hack #59)
  • ¼«Ê¬¤Ë¥¤¥ó¥¿¥Ó¥å¡¼¤¹¤ë(Hack #63)

¥¨¥ó¥¸¥Ë¥¢¤Î¤¿¤á¤Î»þ´Ö´ÉÍý½Ñ¤Ï¥·¥¹¥Æ¥à´ÉÍý¼ÔÍѤËŰÄ줷¤¿¤è¤¦¤ÊËܤǡ¢ÁêÅö¤Î³ä¤ê¹þ¤ß¤¬Æþ¤ë¤³¤È¤òÁÛÄꤷ¤Æ½ñ¤«¤ì¤Æ¤¤¤ë¤Î¤Ç¡¢¸¦µæ¼Ô¤Ë¤Ï¹ç¤ï¤Ê¤¤¤È¤³¤í¤â¿¡¹¤¢¤ë¤«¤â¤·¤ì¤Ê¤¤¤±¤É¡¢¤½¤ì¤Ê¤ê¤Ë»È¤¨¤ë¤È¤³¤í¤¬¤¢¤Ã¤¿¤è¤¦¤Ë»×¤¦¡£

  • at¥³¥Þ¥ó¥É
  • ¥µ¡¼¥«¥Ç¥¤¥¢¥ó¥ê¥º¥à(½À¤é¤«Æ¬¤Î»þ´Ö)
  • ¥Ó¥¸¥Í¥¹¥µ¥¤¥¯¥ë(º£¤¤¤ë¤È¤³¤í¤Î¼þ´üŪ¤Ê¥µ¥¤¥¯¥ë¤òÃΤ롣¤Ê¤±¤ì¤Ðºî¤ë¡£¥ë¡¼¥Æ¥£¡¼¥ó¤ËÍ¤Æ¹Í¤¨¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¤³¤È¤ò¸º¤é¤¹)
  • ¿ÍÀ¸¤ÎÌÜɸ
    • ãÀ®¤·¤¿¤¤ÌÜɸ¤Ï²¿¤Ê¤Î¤«¡¢¤¤¤Ä¤Þ¤Ç¤ËãÀ®¤·¤¿¤¤¤Î¤«¡£¤½¤ì¤òãÀ®¤¹¤ë¤¿¤á¤Ë¤Ï¶ñÂÎŪ¤Ë²¿¤¬É¬ÍפʤΤ«
  • ¥¹¥È¥ì¥¹¤Î´ÉÍý
´Êñ¤Ë¡¢Ã±½ã¤Ë¹Í¤¨¤ë (PHPʸ¸Ë)

´Êñ¤Ë¡¢Ã±½ã¤Ë¹Í¤¨¤ë (PHPʸ¸Ë)

ÂÐÃÌ·Á¼°¤À¤«¤é¤«Ê¬¤«¤é¤Ê¤¤¤±¤É¡¢¤Á¤ç¤Ã¤È¤Ó¤ß¤ç¤¤¡£¼«Ê¬¤ÏÂÐÃÌ·Á¼°¤¬¤¢¤ó¤Þ¤ê¹¥¤­¤¸¤ã¤Ê¤¤¤è¤¦¤À(Á°¤Ë¤â»÷¤¿¤è¤¦¤Ê¤³¤È¤ò½ñ¤¤¤¿)¡£

Ư¤­¥Þ¥ó(1) (¥â¡¼¥Ë¥ó¥°KC (999))

Ư¤­¥Þ¥ó(1) (¥â¡¼¥Ë¥ó¥°KC (999))

Ư¤­¥Þ¥ó(2) (¥â¡¼¥Ë¥ó¥°KC (1453))

Ư¤­¥Þ¥ó(2) (¥â¡¼¥Ë¥ó¥°KC (1453))

Ư¤­¥Þ¥ó(3) (¥â¡¼¥Ë¥ó¥°KC (1550))

Ư¤­¥Þ¥ó(3) (¥â¡¼¥Ë¥ó¥°KC (1550))

Ư¤­¥Þ¥ó(4) (¥â¡¼¥Ë¥ó¥°KC)

Ư¤­¥Þ¥ó(4) (¥â¡¼¥Ë¥ó¥°KC)

2011-10-16

¢£[]10ǯ¿¶¤ê¤ÎËüΤ¤ÎĹ¾ë

º£·îËö¤Ç¤Þ¤¿ÆüËܿͥ¤¥ó¥¿¡¼¥ó¤¬¿ô¿Í¤¤¤Ê¤¯¤Ê¤Ã¤Æ¤·¤Þ¤¦&¿·¤·¤¯2¿Í¤³¤é¤ì¤¿¡¢¤È¤¤¤¦¤³¤È¤Ç³§¤µ¤ó¤ÈËüΤ¤ÎĹ¾ë¤Ë¹Ô¤Ã¤Æ¤­¤Þ¤·¤¿¡£ËüΤ¤ÎĹ¾ë¤Ï¹â¹»¤Î½¤³ØÎ¹¹Ô*1¤Ç°ì²ó¹Ô¤Ã¤¿¤³¤È¤¬¤¢¤ë¤Î¤Ç¡¢10ǯ¿¶¤ê¡£Iü¤µ¤ó¤Î¸¦µæ¼¼¤ÎƱ´ü¤ÎÃæ¹ñ¿Í¤ÎÊý¤Ë°ÆÆâ¤·¤Æ¤â¤é¤Ã¤Æ¤¹¤´¤¯½õ¤«¤ê¤Þ¤·¤¿¡£

ºÇ½é¤ÏÅż֤ǹԤ³¤¦¤È¤·¤Æ¤¤¤¿¤±¤É¡¢¤á¤Ã¤Á¤ãÂÔ¤¿¤Ê¤¤¤È¤¤¤±¤Ê¤¤¤È¤¤¤¦¤³¤È¤Ç¥Ð¥¹¤Ë¾è¤í¤¦¤È¤¤¤¦¤³¤È¤Ë¡£¤·¤«¤·...

f:id:syou6162:20111017030329j:image

f:id:syou6162:20111017030333j:image

¥Ð¥¹¤Ç¹Ô¤³¤¦¤È¤¹¤ë¤â¤á¤Ã¤Á¤ãº®¤ó¤Ç¤¤¤Æ¾Ð¤¦¤·¤«¤Ê¤¤¤Î¿Þ¡£¥Ç¥£¥º¥Ë¡¼¤Î¥¢¥È¥é¥¯¥·¥ç¥ó¤Î¤è¤¦¤Ç¤·¤¿¡£·ë¶É¥¿¥¯¥·¡¼¤Ç¸þ¤«¤¦¤³¤È¤Ë¡£¡Ö¤Ê¤ó¤«¤³¤Î¥¿¥¯¥·¡¼Æ»µÕÁö¤·¤Æ¤Í?¡×¤À¤Ã¤¿¤ê*2¡¢¥¨¥ó¥¹¥È¤·¤Æ¼Ö²¡¤¹¤³¤È¤Ë¤Ê¤Ã¤¿¤ê¤·¤¿¤Î¤âº£¤È¤Ê¤Ã¤Æ¤Ï¤¤¤¤»×¤¤½Ð¤Ç¤¹¤Í¡£

f:id:syou6162:20111017030801j:image

¾Æ¤­Ä»Åª¤Ê²¿¤«¡£ÍâÆü¤ªÊ¢¤¬¤¢¤ì¤·¤¿¤Î¤Ç¤¢¤¿¤Ã¤¿¤Ã¤Ý¤¤¤Ç¤¹...¡£

f:id:syou6162:20111017025639j:image

f:id:syou6162:20111017025635j:image

f:id:syou6162:20111017025631j:image

f:id:syou6162:20111017025628j:image

f:id:syou6162:20111017025624j:image

¤ªÃë¸æÈÓ¡£

f:id:syou6162:20111017031208j:image

Æþ¸ýÉÕ¶á¡£¤ªÅ¹¤¬¤¤¤Ã¤Ñ¤¤Ê¤ó¤Ç¤¤¤ë¤¬¡¢10ǯÁ°¤Ï¤½¤ó¤Ê¤Ë¤Ê¤«¤Ã¤¿µ¤¤¬¤¹¤ë¡£

f:id:syou6162:20111017033048j:image

f:id:syou6162:20111017031204j:image

f:id:syou6162:20111017033052j:image

f:id:syou6162:20111017033059j:image

Æþ¸ý¡£¤³¤ÎÊÕ¤«¤éÉ÷¤¬¤á¤Ã¤Á¤ã¶¯¤¯¤«¤Ê¤ê´¨¤¯¤Ê¤Ã¤Æ¤­¤¿¡£

f:id:syou6162:20111017033527j:image

¥Á¥±¥Ã¥È¡£40¸µ¤¯¤é¤¤¤Ç¤½¤ì¤Ê¤ê¤Ë¤¹¤ë¡£

f:id:syou6162:20111017033538j:image

f:id:syou6162:20111017033535j:image

f:id:syou6162:20111017033940j:image

¤Þ¤À;͵¤¬¤¢¤ë½øÈ×Àï¡£

f:id:syou6162:20111017034449j:image

f:id:syou6162:20111017035144j:image

f:id:syou6162:20111017034857j:image

f:id:syou6162:20111017034452j:image

f:id:syou6162:20111017034843j:image

ÅÓÃæ¡£³ê¤êÂæ¤Ç¹ß¤ê¤Æ¤¤¤¯¤è¤¦¤Ê¤ä¤Ä¤¬¤¢¤Ã¤¿¡£¤Ê¤ó¤Ç¤â¤¢¤ê¤À¤Ê¡£¼ÐÌ̤γÑÅÙ¤¬¤ä¤Ð¤¯¤Æ¤Ò¡¼¤Ò¡¼¸À¤¤»Ï¤á¤ë¡£

f:id:syou6162:20111017034847j:image

ÆüÍˤÀ¤Ã¤¿¤Î¤â¤¢¤ë¤Î¤«´Ñ¸÷µÒ¤¬¤á¤Ã¤Á¤ã¤¤¤Þ¤·¤¿¡£ÆüËܸì¤â¤Á¤é¤Û¤é¡£

f:id:syou6162:20111017035524j:image

ĺ¾åÉնᡣ¾¤Ë¤â¼Ì¿¿¼è¤Ã¤Æ¤â¤é¤Ã¤¿¤±¤É¡¢´¨¤¯¤Æ¤«Èè¤ì¤Æ¤«´é¤¬°ú¤­¤Ä¤Ã¤Æ¤¤¤ë¤â¤Î¤¬Â¿¤¤¡£¡£¡£

f:id:syou6162:20111017023859j:image

½Ð¸ýÉÕ¶á¡£¤Ê¤¼¤«·§¤¬¤¤¤¿...¡£

f:id:syou6162:20111017023906j:image

µ¢¤ê¤Ï³§Íͤǰ쿴¤È¤¤¤¦ÆüËÜÎÁÍý¤¬¿©¤Ù¤ì¤ë¤È¤³¤í¤ÇÈÕ¸æÈÓ¡£³§ÍͤªÈè¤ìÍͤǤ·¤¿¡£

*1¡§ÉáÄ̤θøÎ©¹â¹»¤Ç¤¹¤¬

*2¡§ÉáÄ̤˵ÕÁö¤À¤Ã¤¿¡£¤·¤«¤·¡¢¤è¤¯¤¢¤ë¤³¤È¤Ã¤Ý¤¤...

2011-10-03

¢£[][][][]ÆâÄê¼°¤ÈÀΤÎÃç´Ö

gdgd

ÆàÎɤǤϹç½É¤ÎÏää(¼ç¤ËM1¤Î¿Í¤é¤È)¸¦µæ¤ÎÏäò¤Ç¤­¤Æ³ä¤ÈËþ­¤·¤¿¤Î¤Ç¡¢ÅÚÍˤÎÃ뤫¤éÅìµþ¤Ø¸þ¤«¤¦¡£Í¼Êýº¢¤ËÅìµþË¿½ê¤ËÃ夭id:yag_ays¡¢id:wakuteka¡¢id:mickey24¤ÇÈÓ¡£Tsukuba.R¤ÎÌû²÷¤ÊÃç´Öã¤È¤¤¤¦´¶¤¸¤Çµ¤¿´¤¬ÃÎ¤ì¤Æ¤¤¤ë¤Î¤ÇÍî¤ÁÃ夯¡£¤½¤Î¸åid:repose¤Èid:tor_ozaki¤¬¹çή¡£id:yag_aysÂð¤ÇÅÅǾ¥³¥¤¥ë¤ò¸«¤Ê¤¬¤égdgd¤ÈÏ乤Ȥ¤¤¦¤Ê¤ó¤È¤âÈóÀ¸»ºÅª¤Ê»þ´Ö¤ò²á¤´¤¹(¾Ð)¡£¤¤¤ä¡¢¤³¤Î»þ´Ö¤ò²á¤´¤¹¤³¤È¤¬ÌÜŪ¤À¤Ã¤¿¤Î¤Ç¤¤¤¤¤ó¤Ç¤¹¡£

yaotti

ÆüÍˤϾåµþ¤·¤Æ¤­¤¿¤Ð¤«¤ê¤Îid:yaotti¤È¿©»ö¡£¤Æ¤Ã¤­¤êÂç³Ø±¡¤Ç¤³¤Ã¤Á¤Ë¿Ê¤à¤ó¤À¤È¤Ð¤«¤ê»×¤Ã¤Æ¤¤¤¿¤¬¡¢Âç³Ø±¡¤Ë¤Ï¿Ê¤Þ¤º¼«Ê¬¤Ç²ñ¼Ò¤òºî¤ë¤³¤È¤Ë¤·¤¿¤½¤¦¤Ç¤Ó¤Ã¤¯¤ê¤·¤¿¡£Qiita(¥­¡¼¥¿)¤È¤¤¤¦¥¨¥ó¥¸¥Ë¥¢¸þ¤±ÌäÂê²ò·è¥µ¥¤¥È¤òºî¤Ã¤Æ¤¤¤ë¤½¤¦¤Ê¡£

ÀÎ¥Ó¥¸¥³¥ó¤ò°ì½ï¤Ë¤ä¤Ã¤Æ¤¤¤¿Ãç´Ö¤Èºî¤ë¤½¤¦¤Ç¡¢Æ»¤Ï¸±¤·¤½¤¦¤À¤¬±þ±ç¤·¤¿¤¤¡£¼«Ê¬¤ÏÍèǯ¤«¤éË¿´ë¶È(ʬÎह¤ë¤Ê¤éÂç´ë¶È¤Ë¤Ê¤ë¤È»×¤¦)¤Î´ðÁø¦µæ¤ò¤¹¤ë¿Í¤Ë¤Ê¤ë¤Î¤Ç¡¢id:yaotti¤È¤Ï¿Ê¤àÊý¸þ¤¬¿¿µÕ¤Ë¤Ê¤ë¤Î¤«¤Ê¤È»×¤Ã¤¿¤¬¡¢¶¦Ä̤·¤ÆÉ¬Íפˤʤë¤È¤³¤í¤â¤«¤Ê¤ê¤¢¤ë¤Ê¤¡¤È´¶¤¸¤¿¡£Èà¤È¤Ï¤â¤¦4ǯÌܤ¯¤é¤¤¤ÎÉÕ¤­¹ç¤¤¤Ë¤Ê¤ë(²ñ¤¦¤Î¤ÏȾǯ¤Ë°ì²ó¤¯¤é¤¤¤ÎÉÑÅÙ¤À¤¬)¤¬¡¢²ñ¤¦Å٤˻ɷã¤ò¤â¤é¤Ã¤Æ¤¤¤ëµ¤¤¬¤¹¤ë¤Î¤Ç¡¢¼«Ê¬¤â»É·ã¤òÍ¿¤¨¤ì¤ë¸ºß¤Ç¤¢¤ê¤¿¤¤¤Ê¤È»×¤Ã¤¿¤ê¡£

ÆâÄê¼°

·îÍË¤ÏÆâÄê¼°¡£Æâ¡¹Äê¼Ô¤«¤éÆâÄê¼Ô¤Ë¿Ê²½¤·¤Þ¤·¤¿¡£È¾Ç¯¸å¤«¤é¼Ò²ñ¿Í¤È¸À¤ï¤ì¤Æ¤âÁ´Á³¥Ô¥ó¤È¤­¤Þ¤»¤ó...¡£¸¦µæ½êÁ´ÂΤÀ¤È90¿Í¶á¤¯¤È¤¤¤¦¤³¤È¤Ç¤«¤Ê¤êÂ絬ÌϤÀ¤È»×¤¦¤Î¤À¤¬¡¢¼«Ê¬¤¬¹Ô¤­¤½¤¦¤Ê¸¦µæ½ê¤À¤È¤á¤Ã¤Á¤ã¾¯¤Ê¤¤¤È»×¤ï¤ì¤ë¤Î¤Ç¡¢¿§¡¹¤Ê¿Í¤ËÏä·¤«¤±¤Æ¤ß¤¿¤ê(¤½¤ì¤Ë¤·¤Æ¤â¼«Á³¸À¸ì½èÍý¤«µ¡³£³Ø½¬¤Î¤É¤Á¤é¤«¤¬¥á¥¤¥ó¤È¤¤¤¦¿Í¤Ï1¿Í¤·¤«¤Þ¤À²ñ¤Ã¤Æ¤¤¤Ê¤¤¤Î¤À¤¬¡¢Á´ÂΤȤ·¤Æ¤Ï²¿¿Í¤¤¤ë¤Î¤À¤í¤¦¤«)¡£¤È¸À¤Ã¤Æ¤â¿ô¿Í¤Ïtwitter¤È¤«¤ÇÏ䷤Ƥ¤¤¿¤ê¤·¤Æ¤¤¤¿¿Í¤â¤¤¤ë¤Î¤Ç¥ª¥Õ¥é¥¤¥ó¤Ç¤·¤«Ê¹¤±¤Ê¤¤¤È¤¤¤¦¤«Ê¹¤­¤Ë¤¯¤¤¤³¤È¤òʹ¤¤¤Æ¤ß¤¿¤ê¤Ê¤É¡£¤Á¤ç¤Ã¤ÈÁ°¤Ëtwitter¤ÇÏÃÂê¤Ë¤Ê¤Ã¤Æ¤¤¤¿µ­»ö¤Ë´Ø¤·¤ÆËܲ»¤òʹ¤¤¤Æ¤ß¤¿¤¤¤È¤³¤í¤¬2ÅÀ¤Û¤É¤¢¤Ã¤¿¤Î¤À(½ñ¤«¤Ê¤¤¤±¤É)¡£

¤¢¤Ã¡¢Ë¿¸¦µæ½ê¤¸¤ã¤Ê¤¯¤Ê¤Ã¤Æ¤·¤Þ¤Ã¤¿¡£

ËÜ

¤½¤Î¸å¡¢Çñ¤á¤Æ¤â¤é¤Ã¤Æ¤¤¤¿id:yag_aysÂð¤Ë¤Æ¤¢¤ì¤³¤ìÌÌÇò¤½¤¦¤ÊËܤÎÏäò¤·¤¿¤ê¤Ê¤É¡£¿Í¤ÎËÜê¤Ëʤó¤Ç¤¤¤ëËܤϤɤì¤âÌÌÇò¤½¤¦¤Ë¸«¤¨¤ë(¾Ð)¡£

·ÁÂÖ¤ÎÀ¸Ì¿»ï¡½¤Ê¤¼À¸Êª¤Ë¥«¥¿¥Á¤¬¤¢¤ë¤Î¤« (¿·Ä¬Áª½ñ)

·ÁÂÖ¤ÎÀ¸Ì¿»ï¡½¤Ê¤¼À¸Êª¤Ë¥«¥¿¥Á¤¬¤¢¤ë¤Î¤« (¿·Ä¬Áª½ñ)

¥¤¥ó¥¿¡¼¥Í¥Ã¥È¤Î¥«¥¿¥Á¡½¤â¤í¤µ¤¬¿¥¤êÀ®¤¹Ç´¤ê¶¯¤¤À¤³¦¡½

¥¤¥ó¥¿¡¼¥Í¥Ã¥È¤Î¥«¥¿¥Á¡½¤â¤í¤µ¤¬¿¥¤êÀ®¤¹Ç´¤ê¶¯¤¤À¤³¦¡½

¥¹¥«¥¤¥é¥¤¥Ê¡¼¤È¤«Ë̵þ¹Ô¤­¤ÎÈô¹Ôµ¡¤ÎÂÔ¤Á»þ´Ö¤Ç²¼¤Î2¤Ä¤òÆÉ¤ó¤À¡£¤É¤Á¤é¤â¤«¤Ê¤êÌÌÇò¤«¤Ã¤¿¡£

ÃÓ뤵¤ó¤ÎǾ¤ÎËܤϹ⹻À¸¸þ¤±¤Î¹ÖµÁ¤ò¥Ù¡¼¥¹¤Ë¤·¤Æ¤¤¤ë¤È¤¤¤¦¤À¤±¤¢¤Ã¤Æ¡¢À¸Êª¤È¤«¤ÎÃ챤¬Ãæ³ØÀ¸¤Ç»ß¤Þ¤Ã¤Æ¤¤¤ë¼«Ê¬¤Ë¤âʬ¤«¤ê¤ä¤¹¤«¤Ã¤¿¡£Ê¬¤«¤ê¤ä¤¹¤¤¤À¤±¤Ç¤Ê¤¯¡¢ºÇ¶áNature¤äScience¤Ë½Ð¤¿¤è¤¦¤ÊºÇ¿·¤Î¸¦µæ¤ÎÏäâ¿ï½ê¤ËÀ¹¤ê¹þ¤ó¤Ç¤¢¤ê¡¢Ê¬¤«¤ê¤ä¤¹¤¤¤È¤¤¤¦¤è¤ê·ë¹½¶½Ê³¤·¤Ê¤¬¤éÆÉ¤á¤¿¡£¤³¤ì¤Ï¤«¤Ê¤ê¤ÎÎɽñ¡£

37signals¤Î¤Û¤¦¤Ï°ì¸«¤«¤Ê¤ê¤Ö¤Ã¤È¤Ð¤·¤Æ¤¤¤ë¤è¤¦¤Ë¸«¤¨¤¿¤¬¡¢¤«¤Ê¤êǼÆÀ¡£Ëܤθµ¤Ë¤Ê¤Ã¤Æ¤¤¤ë37signals¤Ï¥Ù¥ó¥Á¥ã¡¼´ë¶È¤Ë¤Ê¤ë¤È»×¤¦¤Î¤À¤±¤É¡¢¤³¤ì¤«¤é¸¦µæ¼Ô¤òÌܻؤ·¤Æ¤¤¤¯¼«Ê¬¤Ë¤âÂ礤¤ËÌò¤ËΩ¤Ä¤È»×¤¦¤³¤È¤¬simple¤À¤±¤ÉÎ϶¯¤¯½ñ¤¤¤Æ¤¢¤Ã¤¿¡£Î㤨¤Ð¡¢Ìܼ¡¤«¤éÈ´¿è¤¹¤ë¤È

  • ¸«Ä¾¤¹
  • Àè¤Ë¿Ê¤à
  • ¿ÊŸ
    • À©Ìó¤ò¼õ¤±Æþ¤ì¤ë
  • ¶¥¹çÁê¼ê
    • À½Éʤò¤¢¤ê¤Õ¤ì¤¿¤â¤Î¤Ë¤·¤Ê¤¤
    • ¿¿»÷¤Æ¤Ï¤¤¤±¤Ê¤¤
    • ¤±¤ó¤«¤òÇä¤ë

¤Ê¤É¤Ê¤É¡£id:yaotti¤ÈÏä·¤¿¤È¤­¤ËÈï¤Ã¤Æ¤¯¤ë¤È¤³¤í¤È½ñ¤¤¤Æ¤¤¤¿ÉÕ¶á¤â¤³¤ÎÊÕ¤¬Â¿¤¤¡£MSRA¤Ë¤¯¤ëÁ°¤Ë¥¢¥É¥Ð¥¤¥¹¤â¤é¤Ã¤¿¤³¤È¤ä¡¢MSRAÆâ¤Î¹Ö±é¤Ç¤â¾å¤Ç½ñ¤¤¤¿¤â¤Î¤Î¤¤¤¯¤Ä¤«¤ÎÏäòʹ¤¤¤¿¤ê¤·¤¿¤³¤È¤â¤¢¤ë¤·¡¢¿§¡¹¤Ê¤³¤È¤Î¥¨¥Ã¥»¥ó¥¹¤¬µÍ¤Þ¤Ã¤Æ¤¤¤ë¤È»×¤¦Îɽñ¡£¤Ï¤Æ¤Ê¥¤¥ó¥¿¡¼¥ó¤Ë¹Ô¤¯Á°¤â¹Ô¤Ã¤¿¸å¤â¶¯¤¯»×¤Ã¤¿¤³¤È¤À¤¬¡¢¡Ö¤¢¤Ê¤¿¤ËɬÍפʤâ¤Î¤òºî¤ë¡×¤Î¤È¤³¤í¤Ï¼«Ê¬¤È¤·¤Æ¤Ï¤«¤Ê¤ê½ÅÍפȤ¤¤¦¤«¾ù¤ì¤Ê¤¤¤³¤È¤À¤È»×¤Ã¤Æ¤¤¤ë¤Î¤Ç¡¢¼«Ê¬¤Î¼ê¤Ç¼«Ê¬¤Ï¤É¤¦¤¤¤¦¤â¤Î¤¬Íߤ·¤¤¤Î¤«¤ò¤·¤Ã¤«¤ê¹Í¤¨¤Æ¤³¤Î¼ê¤Ç¼Â¸½¤·¤Æ¤¤¤­¤¿¤¤(¤½¤ì¤ÈƱ»þ¤Ë¼«Ê¬¤ÎÀ½Éʤϲ¿¤Ê¤Î¤«¡¢¸ÜµÒ¤Ïï¤Ç¤É¤³¤ò¸þ¤¤¤Æ¸¦µæ¤ò¤·¤Æ¤¤¤¯¤Î¤«¤Ê¤É¤Ê¤É¤â¹Í¤¨¤Æ¤¤¤«¤Ê¤¤¤È¤¤¤±¤Ê¤¤Í×ÁǤÀ¤È»×¤¦)¡£

2011-09-29

¢£[]½¤»ÎÏÀÊ¸Ãæ´Öȯɽ

½¤ÏÀÃæ´Öȯɽ¤ÈÆâÄê¼°¤Î¤¿¤á¤ËÆüËܰì»þµ¢¹ñ¤·¤Æ¤¤¤Þ¤¹¡£MSRA¤Î»Å»ö¤Î¤Û¤¦¤ÏºÇ½é¤ÏÀßÄê¤È¤«¤Ë¤Ä¤Þ¤Å¤¤¤¿¤ê¤·¤Æ»þ´Ö¿©¤Ã¤Æ¤Þ¤·¤¿¤¬¡¢¥Ù¡¼¥¹¤È¤Ê¤ë¥×¥í¥°¥é¥à¤ò½ñ¤¤¤Æ¤·¤Þ¤Ã¤Æ¡¢º£¸å¤ÎÊý¿Ë¤¬Î©¤Ã¤¿¤«¤Ê¤È¤¤¤¦´¶¤¸¤Î¼Â¸³¤Î·ë²Ì¤ÏÆÀ¤é¤ì¤¿¤Î¤Ç¡¢½Ð½Ð¤·¤È¤·¤Æ¤Ï³ä¤È(°Õ³°¤È...?)½çÄ´¤«¤Ê¤È¤¤¤¦´¶¤¸¤Ç¤¹¡£Ë̵þ¤Ë¤¯¤ëÁ°¤Ë¤ä¤Ã¤Æ¤¤¤¿»Å»ö¤Ï¤Ê¤«¤Ê¤«¿Ê¤Þ¤º¡¢º£²ó¤â»÷¤¿¤è¤¦¤Ê´¶¤¸¤Ë¤Ê¤Ã¤¿¤é¤É¤¦¤·¤è¤¦¤ÈÆâ¿´ÁêÅöÎä¤äÎä¤ä¤·¤Æ¤¤¤¿¤Î¤Ç¡¢¾¯¤·°Â¿´¤·¤Æ¤¤¤Þ¤¹^^;

½¤ÏÀ¤ÎÃæ´Öȯɽ¤Ï·ë¶ÉAAAI¤Î»þ¤Î¥Í¥¿¡£¼Â¤Ï°ã¤¦¥Í¥¿¤Ç¤ä¤í¤¦¤È¤·¤Æ¤¤¤¿¤ó¤Ç¤¹¤±¤É¡¢¤µ¤Ã¤Ñ¤ê(!!!)¤¦¤Þ¤¯¹Ô¤«¤º¡¢¤³¤ì¤À¤È´¶È¤¬´í¤Í¤§...¤È¤¤¤¦´¶¤¸¤À¤Ã¤¿¤Î¤Ç°ÂÁ´Â¦¤ËÅݤ·¤¿´¶¤¸¤Ç¤¹(11/30¤Þ¤ÇMSRA¤Ë¥¤¥ó¥¿¡¼¥ó¤Ë¹Ô¤Ã¤Æ¤¤¤ë»þÅÀ¤Ç´í¸±Â¦¤ËÅݤ·¤Æ¤¤¤ë¤È¤¤¤¦Àâ¤â¤¢¤ë)¡£µîǯ¤Î¥¼¥ß¥Ê¡¼¥ëȯɽ¤Î¤È¤­¤âAAAI¤Î¤È¤­¤È¤Ï°ã¤¦¥Í¥¿¤Ç¤ä¤Ã¤Æ¤¤¤Æ¡¢¤³¤Ã¤Á¤Ï¤½¤ì¤Ê¤ê¤Ë¸«¹þ¤ß¤¢¤ë¤«¤Ê¤È»×¤Ã¤Æ¤¤¤¿¤Î¤Ç¤¹¤¬¡¢»÷¤¿¤è¤¦¤Ê¥Í¥¿¤¬º£Ç¯¤ËÆþ¤Ã¤Æ¸«¤Ä¤«¤Ã¤Æ¤·¤Þ¤Ã¤Æ¤ªÂ¢Æþ¤ê...¡£¤È¤¤¤¦¤³¤È¤Ç½¤»Î¤Î´Ö¤Ï3¸Ä¥Í¥¿¤ä¤Ã¤Æ1¸Ä¤¬¤¦¤Þ¤¤¤³¤ÈÅö¤¿¤Ã¤Æ¤¯¤ì¤¿¤«¤Ê¤È¤¤¤¦´¶¤¸¤Ç¤¹¡£¸¦µæ¤Ê¤Î¤ÇÂÇΨ10³ä¤È¤¤¤¦¤Î¤Ï¤¢¤ê¤¨¤Ê¤¤¤·¡¢3³ä¤¢¤ì¤Ð¤¤¤¤¤Î¤«¤Ê¤¡¤È¤â»×¤Ã¤¿¤ê¤·¤Þ¤¹¤¬¡¢Êì¿ô¤¬3¤·¤«¤Ê¤¤¤È¤¤¤¦¤Î¤¬¤È¤Ë¤«¤¯¤¤¤«¤ó¤«¤Ê¤È»×¤Ã¤Æ¤¤¤Þ¤¹¡£ÂÇΨ¤Î¾å¸Â¤Ï³ä¤ÈÁá¤á¤Ë¸«¤¨¤Æ¤¯¤ëµ¤¤Ï¤¹¤ë¤Î¤Ç¡¢¿ô¿¤¯ÂÇÀʤËΩ¤Ä¤·¤«¤Ê¤¤¡£¤½¤Î¤¿¤á¤Ë¤Ï¼ÂÁõ®Å٤θþ¾å¤ä¤¦¤À¤¦¤À¤·¤Æ¤¤¤ë»þ´Ö¤ò¸º¤é¤·¤Æ¤¤¤«¤Ê¤¤¤È¤Ê¡¼¤È»×¤¤¤Þ¤¹(OB¤Î¿Í¤Î¥¢¥É¥Ð¥¤¥¹¤Ç¤â¤¢¤ë)¡£MSRA¤Ç¤ÏÁ´Á³Ê̤Τ³¤È¤ò¤ä¤Ã¤Æ¤¤¤ë¤Î¤Ç4¸ÄÌܤ«¡£¤³¤Ã¤Á¤ò¤¦¤Þ¤¤¤³¤È¤ä¤Ã¤Æ1ǯ¤Ë°ìËÜ¥³¥ó¥¹¥¿¥ó¥È¤Ë¹ñºÝ²ñµÄ¡¢¤òÌܻؤ·¤Æº£Ç¯¤Ï´èÄ¥¤í¤¦¤È»×¤¤¤Þ¤¹¡£

Ãæ´Öȯɽ¼«ÂΤÏAAAI¤Î¤È¤­¤ÈƱ¤¸´¶¤¸¤Î¥¹¥é¥¤¥É¤Ç¤ä¤Ã¤¿¤ó¤Ç¤¹¤¬¡¢È¯É½»þ´Ö¤¬12ʬ¤È¤á¤Ã¤Á¤ãû¤«¤¤¤Î¤Ç»þ´ÖÆâ¤Ë¼ý¤á¤ë¤Î¤Ë¶ìÏ«¡£ºÇ½é¤Î³µÏÀ¤Ç3ʬ¡¢¼Â¸³¤ÎÁ°¤Ç7ʬ¥Ú¡¼¥¹¤Ç¤¯¤ì¤Ð¤Á¤ç¤¦¤É¤¤¤¤´¶¤¸¤Ë½ª¤ï¤ë¤ÈÎý½¬¤Î¤È¤­¤Î¥Ç¡¼¥¿¤«¤éʬ¤«¤Ã¤Æ¤¤¤¿¤Î¤Ç¡¢»þ´ÖÆâ¤Ë½ª¤ï¤ë&&¥ª¡¼¥Ð¡¼¤»¤º¤Ê´¶¤¸¤Ç½ª¤ï¤Ã¤¿¤Î¤Ï¤è¤«¤Ã¤¿¤±¤É¡¢M1¤Î¿Í¤È¤«¤«¤é¤ÏÆÃ¤Ë¼ÁÌä¤ÏÍ褺...¡£ÀʤϷ빽ËþÀÊ·è¤ß¤À¤Ã¤¿¤ó¤À¤±¤É¡£¼Áµ¿¤³¤ó¤À¤±¤³¤Ê¤¤¤Ê¤éȯɽ15ʬ¤Ë¤·¤ÆÍߤ·¤¤¤Ê¤È»×¤¤¤Ä¤Ä¤â¤½¤¦¤¤¤¦¤ï¤±¤Ë¤Ï¤¤¤«¤Ê¤¤¤ó¤À¤í¤¦¤Ê¡¼(¼ÁÌä¤ÎÎý½¬¤â·ó¤Í¤Æ¤¤¤ë¤Î¤Ç)¡£

ȯɽ½ª¤ï¤Ã¤¿¸å¤ÏƱ¤¸É¾È½Ê¬ÀϤΥ¿¥¹¥¯¤ò¥¤¥ó¥¿¡¼¥ó¤Ç¤ä¤Ã¤Æ¤­¤¿¤È¤¤¤¦hirotsugu-e·¯¤ÎÏäòʹ¤­¤Ê¤¬¤éµÄÏÀ¡£¤Á¤ç¤Ã¤Èʹ¤¯¤Ä¤â¤ê¤À¤Ã¤¿¤¬¡¢¤¢¤ì¤³¤ìʹ¤¤¤Æ¤¤¤¿¤é90ʬ¤¯¤é¤¤Î©¤ÁÏäò¤·¤Æ¤¤¤¿w¡£M1¤À¤±¤É¡¢¼«Ê¬¤Ê¤ê¤Ë¹©Éפ·¤Æ´èÄ¥¤Ã¤Æ¤¤¤ÆÁÇÀ²¤·¤¤¡£Í¼¿©¤Î¸å¤ÏÅý¿ô¸¦¤Ë¹Ô¤Ã¤Æ¤¤¤¿motonobu-k·¯¤ÎÏäòʹ¤¤¤¿¤ê¡£¥«¡¼¥Í¥ë¥Ù¥¤¥º¤ÎÏ᣿·¤·¤¤¥â¥Ç¥ë¤ÎÏ䫤ȻפäƤ¤¤¿¤ó¤À¤±¤É¡¢¿äÏÀ¤òÁ᤯¤¹¤ë·Ï¤ÎÏä餷¤¤¡£¤¤¤Þ¤¤¤Á¥¤¥á¡¼¥¸¤Ç¤­¤Ê¤¤¤È¤³¤í¤¬¤¢¤Ã¤¿¤ê¤·¤¿¤Î¤Ç¡¢¥«¡¼¥Í¥ëÊѤ¨¤¿¤êpriorÊѤ¨¤¿¤ê¤¹¤ë¤ÈÉáÄ̤Τä¤Ä¤È¤É¤¦°ã¤Ã¤Æ¤¯¤ë¤Î¤«¸«¤»¤Æ¤È¤»¤¬¤ó¤Ç¤ª¤¤¤¿w¡£ºòÆü¤Ïryo-ko·¯¤äkeisuke-sa·¯¤ÈÏäò¤·¤Æ¤¤¤¿¤¬¡¢º£Æütakuo-h·¯¤ÈÏ䷤Ƥ¤¤ë¤È°Õ³°¤ÈƱ¤¸¥È¥Ô¥Ã¥¯¤Ë¶½Ì£¤ò»ý¤Ã¤Æ¤¤¤ë¤È¤¤¤¦¤³¤È¤¬È½ÌÀ¡£¤ª¸ß¤¤¤Ï¸«¤Æ¤¤¤ëÊý¸þ¤ä¥â¥Á¥Ù¡¼¥·¥ç¥ó¤¬Âçʬ°ã¤Ã¤¿¤ê¤·¤Æ¡¢Áê¼ê¤¬Ï䷤Ƥ¤¤ë¤È¤­¤Ë¼«Ê¬¤¬¶½Ì£»ý¤Ã¤Æ¤¤¤ë¤â¤Î¤À¤Èµ¤¤Å¤¤¤Æ¤¤¤Ê¤«¤Ã¤¿¤è¤¦¤À¤Ã¤¿¤Î¤Ç¡¢¶µ¤¨¤Æ¤ß¤¿¤ê¡£12·î¤ËÌá¤Ã¤Æ¤­¤¿¤é¤Ê¤ó¤«ÌÌÇò¤¤È¯Å¸¤¬¤¢¤Ã¤Æ¤¤¤ë¤È¤¤¤¤¤Ç¤¹¤¬¡£

9·î¤ÎNAIST¤Ï¼ã¼ê¤Î²ñ¤Ë¸¦µæ¼¼¤Î¹ç½É¤Ë¤È¿§¡¹ÌÌÇò¤¤¹Ô»ö¤¬¤¢¤Ã¤¿¤Ë¤â´Ø¤ï¤é¤ºÃæ¹ñ¤Ë¤¤¤¿¤Î¤Ç»²²Ã¤Ç¤­¤Ê¤«¤Ã¤¿¤±¤É¡¢´Ø·¸¤¹¤ë¿§¡¹¤ÊÏäòʹ¤±¤Æ·ë¹½Ëþ­¡£MSRA¤Ë¤¤¤ë¤È¤­¤Ëʹ¤±¤ë¥È¥Ô¥Ã¥¯¤È¤âÂçʬ°ã¤¦¤Î¤ÇÏ令¿¤êʹ¤±¤¿¤ê¤·¤ÆÂçʬËþ­¤·¤¿¡£Ä¹¡¹¤ÈÉÕ¤­¤¢¤Ã¤Æ¤â¤é¤Ã¤Æ¤¢¤ê¤¬¤È¤¦¤´¤¶¤¤¤Þ¤·¤¿¡¼¡£

2011-09-24

¢£[][]sinatra¤¬Æ°¤«¤Ê¤¯¤Ê¤Ã¤¿¤Î¤Ç¡¢¤Ç¤Ã¤Á¤¢¤²¤Çư¤¯¤è¤¦¤Ë¤¹¤ë

ǯ¼¡Âç²ñ¤ÎÍ¥½¨È¯É½¾Þ¤ò¼õ¾Þ¤·¤¿¤Î¤ò¼«Ê¬¤Î¥Û¡¼¥à¥Ú¡¼¥¸¤Ë½ñ¤¯¤«¡¼¤È»×¤Ã¤Æ¤µ¤¯¤é¤Î¼«Ê¬¤Î¥Û¡¼¥à¥Ú¡¼¥¸¤ò¹¹¿·¤·¤¿¤ê¤·¤Æ¤¤¤Æ¡¢¤¢¤ì¤³¤ì¤·¤Æ¤¤¤¿¤éư¤«¤Ê¤¯¤Ê¤Ã¤¿orz¡£Àè½µËöÄÙ¤·¤Æ¤â²ò·è¤Ç¤­¤º¡¢º£Æü¤ä¤Ã¤È²ò·è¤·¤¿¤Î¤Ç¥á¥âŪ¤Ë»Ä¤·¤Æ¤ª¤¯¡£ÌÀ¤é¤«¤ËÂнèË¡¤È¤·¤Æ¤ÏÀµ¤·¤¯¤Ê¤µ¤½¤¦¤Êµ¤¤¬¤¹¤ë¤¬¡¢¥Û¥Æ¥ë¤Î¥Í¥Ã¥È´Ä¶­±Û¤·¤Çºî¶È¤¹¤ë¤Î¤Ï¤­¤Ä¤¤¤Î¤Ç¡¢»ÃÄêŪ¤Ë¤³¤ì¤Ç¤¤¤¤¤ä...¡£tilt¤òÆþ¤ì¤¿¤«¤Ã¤¿¤À¤±¤Ê¤Î¤Ë¤É¤¦¤·¤Æ¤³¤¦¤Ê¤Ã¤¿¡£

´Ä¶­

Ruby¼«ÂΤägem´Ø·¸¤Ï~/local¤ËÆþ¤ì¤Æ¤¤¤ë¡£

www1275 /home/syou6162% ~/local/bin/ruby -v
ruby 1.9.2dev (2009-07-18 trunk 24186) [i386-freebsd7.1]

LOAD_PATH¤òÆÉ¤ß¤Ë¹Ô¤Ã¤Æ¤¯¤ì¤Ê¤¤

°ÊÁ°¤Ï

$LOAD_PATH.unshift '/home/syou6162/local/lib'

¤È¤ä¤Ã¤Æ¤ª¤±¤Ð¥é¥¤¥Ö¥é¥ê¤òÆÉ¤ß¤Ë¹Ô¤Ã¤Æ¤¯¤ì¤Æ¤¤¤¿¤Î¤À¤¬¡¢¤¢¤ì¤³¤ì¤ä¤Ã¤Æ¤¤¤ë¤¦¤Á¤ËÆÉ¤ß¤Ë¹Ô¤Ã¤Æ¤¯¤ì¤Ê¤¯¤Ê¤Ã¤¿¡£ÀäÂÐÀµ¤·¤¯¤Ê¤¤¤È»×¤¤¤Ä¤Ä¤â

$LOAD_PATH << "/home/syou6162/local/lib/ruby/gem/gems/haml-3.1.3/lib"
$LOAD_PATH << "/home/syou6162/local/lib/ruby/gem/gems/rack-1.4.0/lib"
$LOAD_PATH << "/home/syou6162/local/lib/ruby/gem/gems/sinatra-1.2.6/lib"
$LOAD_PATH << "/home/syou6162/local/lib/ruby/gem/gems/tilt-1.3.3/lib"
$LOAD_PATH << "/home/syou6162/local/lib/ruby/gem/gems/sass-3.1.7/lib"

¤È¥Ñ¥¹¤òľ½ñ¤­¤·¤ÆË½ÎÏŪ¤ËÂнèorz¡£¤³¤ó¤Ê¤³¤È¤·¤Æ¤¤¤¿¤é¥é¥¤¥Ö¥é¥ê¤Î¥Ð¡¼¥¸¥ç¥ó¾å¤²¤ëÅÙ¤ËLOAD_PATH¤¤¤¸¤é¤Ê¤¤¤È¤¤¤±¤Ê¤¤¤Î¤ÇÀäÂа㤦¤ó¤À¤±¤É¡¢Æ°¤«¤Í¤§¡£¡£¡£

URI#decode_www_form_component¤¬¤Ê¤¤¤È¸À¤ï¤ì¤ë

¥Ñ¥¹¤òÆÉ¤ß¤Ë¹Ô¤Ã¤Æ¤¯¤ì¤ë¤è¤¦¤Ë¤Ï¤Ê¤Ã¤¿¤â¤Î¤ÎURI#decode_www_form_component¤¬¤Í¤§¤¾¤³¤é¤ÈÅܤé¤ì¤ë¡£¿§¡¹Ä´¤Ù¤Æ¤¤¤ë¤È¡¢°Ê²¼¤Ëé¤ê¤Ä¤¤¤¿¡£

1.9.1¤È1.9.2¤È¤Î¸ß´¹À­¤¬¤É¤¦¤Î...¤È½ñ¤¤¤Æ¤¢¤ë¤¬¡¢·ë¶É¤É¤¦¤¹¤ì¤Ð¤¤¤¤¤«¤è¤¯Ê¬¤«¤é¤º¡£1.9.1¤ò¥¢¥ó¥¤¥ó¥¹¥È¡¼¥ë¤·¤Æ1.9.2¤ò¥¤¥ó¥¹¥È¡¼¥ë¤·¤Æ¤ß¤¿¤¬¡¢¤½¤¦¤¹¤ë¤È¾¤Î¥é¥¤¥Ö¥é¥ê¤¬¤³¤±»Ï¤á¤Æ·ù¤Ë¤Ê¤Ã¤Æ¤­¤¿¤Î¤Ç¡¢¥¯¥é¥¹¤ò¾å½ñ¤­¤¹¤ë¤³¤È¤Ë¤·¤Æ¤·¤Þ¤Ã¤¿(¤§¡£°Ê²¼¤«¤é­¤ê¤Ê¤¤¤È¸À¤ï¤ì¤Æ¤¤¤ë¥á¥½¥Ã¥É¤ò¼«Ê¬¤Îstart.rb¤È¤«¤½¤ÎÉÕ¶á¤Ë¾å½ñ¤­¤·¤Æ¤·¤Þ¤Ã¤¿¡£

sass¤Î¥á¥É¥Ã¥É¤¬protected

¾å¤Î¤ò½¤Àµ¤·¤Æ¤¤¤ë¤È¤ä¤Ã¤È¥Û¡¼¥à¥Ú¡¼¥¸¤Ï¸«¤ì¤ë¤è¤¦¤Ë¤Ê¤Ã¤¿¤Î¤À¤¬¡¢css¤òº£ÅÙ¤ÏÆÉ¤ß¤Ë¹Ô¤Ã¤Æ¤³¤±¤Æ¤¤¤ë¡£¥¨¥é¡¼¤òÆÉ¤à¤È

NoMethodError - protected method `visit' called for #<Sass::Tree::Visitors::CheckNesting:0x28fd0714>:

¤È¤Ê¤Ã¤Æ¤¤¤ë¡£¤³¤ÎÊÕ¤«¤é¥Í¥Ã¥È´Ä¶­¤âÃÙ¤¤¤Î¤Ç¥¤¥é¥¤¥é¤¬ÄºÅÀ¤Ë㤷¡¢sass¤ÎVisitors°Ê²¼¤Î¥¯¥é¥¹¤Îprotected¤ò¥³¥á¥ó¥È¥¢¥¦¥È¤·¤Æ¤·¤Þ¤Ã¤¿¡£ÀäÂа㤦¤È»×¤¤¤Ä¤Ä¤â¸µµ¤¤¬»Ä¤µ¤ì¤Æ¤¤¤Ê¤«¤Ã¤¿¤Î¤Ç¤³¤¦¤·¤Æ¤ß¤¿¡£Æ°¤¤¤¿¤éÀµµÁ(¤§¡£

¢£[]¤ª´«¤áÃæ¹ñ¸ì¼­½ñ¥¢¥×¥ê on iPhone

Ãæ¹ñ¸ì¤Ïȯ²»¤¬Æñ¤·¤¤¸À¸ì¤Ç¥Ô¥ó¥¤¥ó¤ÈÀ¼Ä´¤¬½ÅÍ×(¤é¤·¤¤)¸À¸ì¡£¥Ô¥ó¥¤¥ó¤ÏÎý½¬¤·¤Æ¤¿¤ê¤Ï¤¹¤ë¤â¤Î¤Î¡¢¤Þ¤À¤Þ¤À´·¤ì¤Ê¤¤¡£Ãæ¹ñ¸ì¤Î¥Æ¥­¥¹¥È¤Ë²»À¼CD¤¬¤Ä¤¤¤Æ¤¤¤ë¤Î¤Ç¡¢¤½¤Á¤é¤ò»²¹Í¤Ë¤·¤è¤¦¤È»×¤¦¤¬¡¢CD¤Î¥»¥¯¥·¥ç¥óʬ¤±¤¬¤«¤Ê¤ê¤¤¤¤¤«¤²¤ó¤ÇÌÜŪ¤Î²Õ½ê¤Ë¹Ô¤¯¤Þ¤Ç¤Ë·ë¹½»þ´Ö¤¬¤«¤«¤Ã¤Æ¤·¤Þ¤Ã¤Æ¥¤¥é¥¤¥é...(¥Ô¥ó¥¤¥ó¤ÎÎý½¬¡¢Ã±¸ì¤Îȯ²»¡¢²ñÏ䯤餤¤¬1¥»¥¯¥·¥ç¥ó¤ËÆþ¤Ã¤Æ¤¤¤ÆÌÜŪ¤Î¾ì½ê¤Ë¤Ê¤«¤Ê¤«Ã©¤êÉÕ¤±¤Ê¤¤¡£ÆüËܤζµºà¤Ï¤è¤¯¹Í¤¨¤Æºî¤é¤ì¤Æ¤¤¤ë¤Ê¤È»×¤¤¤Þ¤¹)¡£¤ä¤Ï¤êºÇ½é¤Î¤¦¤Á¤Ï¼­½ñ¼«ÂΤ˲»À¼¤¬ÉÕ¤¤¤Æ¤¤¤ë¤â¤Î¤¬¤è¤¤¤è¤¦¤Ë»×¤¦¡£

iPhone¤Ï¾ï¤Ë»ý¤ÁÊ⤤¤Æ¤¤¤ë¤Î¤Ç¡¢iPhone¥¢¥×¥ê¤È¤·¤ÆÃæ¹ñ¸ì¼­½ñ¤¬Æþ¤Ã¤Æ¤¤¤ë¤ÈÊØÍø¡£¤·¤«¤·¡¢¤¤¤¯¤Ä¤«Å¬Åö¤Ëõ¤·¤Æ¤ß¤ë¤¬¡¢²»À¼ÉÕ¤­¤Ç¤¢¤ëÄøÅÙ¹àÌÜ¿ô¤¬¤¢¤ë¼­½ñ¤¬¤Û¤È¤ó¤É¤Ê¤¤...(²»À¼¤Ê¤·¤Ê¤é¤ÐKTdic C-E¤¬ÌµÎÁ¤Î³ä¤Ë½¼¼Â¤·¤Æ¤¤¤ë¤è¤¦¤Ç¤ª´«¤á)¡£¤¬¡¢¤½¤ó¤ÊÃæ¤Ç¤è¤µ¤½¤¦¤Ê¤â¤Î¤ò¸«¤Ä¤±¤¿¡£ÃæÆü¤Ç¤Ï¤Ê¤¯Ãæ±Ñ¤À¤¬¡¢¤Þ¤¡ÌäÂê¤Ê¤¤¤Ç¤¹¤è¤Í¡£

̵ÎÁ¥Ð¡¼¥¸¥ç¥ó¤Ç¤Ï²»À¼¤ÏÉÕ¤¤¤Æ¤ª¤é¤º¡¢¥¢¥É¥ª¥ó¤È¤·¤Æ¹ØÆþ¤·¤Ê¤¤¤È²»À¼¤Î¤ÏÉÕ¤¤¤Æ¤³¤Ê¤¤¡£iPhone¤Î¥¢¥É¥ª¥ó¤Ç1000±ß¤ò±Û¤¹¤ÈÂçʬ¹â¤¤¤È´¶¤¸¤Æ¤·¤Þ¤¦¤¬¡¢ÉáÄ̤˼­½ñ¤ò¹ØÆþ¤¹¤ë¤ó¤À¤Ã¤¿¤é;͵¤Ç¤½¤ì°Ê¾å¤«¤«¤ë¤³¤È¤ò¹Í¤¨¤ë¤È½½Ê¬°Â¤¤¡£¤È¤ê¤¢¤¨¤º¼«Ê¬¤¬Ä´¤Ù¤¿¤¤¥ì¥Ù¥ë¤ÎÃæ¹ñ¸ì¤Îñ¸ì¤Ë´Ø¤·¤Æ¤Ïȯ²»¤¬99%ÉÕ¤¤¤Æ¤¤¤ë¤Î¤ÇÈó¾ï¤Ë½õ¤«¤ë¡£

¥Í¥Ã¥È¤ÇÄ´¤Ù¤Æ¤ß¤ë¤È¤³¤Î¥¢¥×¥ê¡¢(¥ê¥¢¥ë¥¿¥¤¥à)OCRµ¡Ç½¤¬ÉÕ¤¤¤Æ¤¤¤ë¤È¤¤¤¦¤³¤È¤Çͭ̾¤é¤·¤¤¡£´Á»ú¤òÆþÎϤ¹¤ë¼ê´Ö¤¬¾Ê¤±¤ë¤¯¤é¤¤¤«...¤È»×¤Ã¤Æ¤¤¤¿¤¬¡¢Ãæ¹ñ¸ì¤½¤â¤½¤âñ¸ì¶­³¦¤¬Ê¬¤«¤é¤Ê¤¤¤Î¤Ç¡¢¥Ô¥ó¥¤¥ó¤âʬ¤«¤é¤Ê¤±¤ì¤Ð¤É¤ì¤¬Ã±¸ì¤Ê¤Î¤«¤âʬ¤«¤é¤Ê¤¤¤È¤¤¤¦¤³¤È¤¬·ë¹½ÌäÂê¤Ç¡¢OCRµ¡Ç½¤ò»È¤¦¤Èñ¸ìʬ¤«¤Á½ñ¤­¤â¤·¤Æ¤¯¤ì¤¿¾å¤Çñ¸ì¤Î°ÕÌ£¤ò°ú¤¤¤Æ¤¯¤ì¤ë¤Î¤Ç¡¢Ã±¸ì¤ò¤Û¤È¤ó¤ÉÃΤé¤Ê¤¯¤ÆÊ¬¤«¤Á½ñ¤­¤Ç¤­¤Ê¤¤Ãæ¹ñ¸ì½é¿´¼Ô¤Ë¤Ï¤¦¤ì¤·¤¤µ¡Ç½¤Ç¤¢¤ë¤È¤¤¤¦¤³¤È¤¬È¯³Ð¤·¤¿¡£

¤½¤Î¾¡¢¼­½ñ¤Î¥¨¥ó¥È¥ê¤òñ¸ìÄ¢¤Ë¤Ä¤Ã¤³¤à¤³¤È¤¬¤Ç¤­¡¢¤½¤ì¤â¤«¤Ê¤ê»È¤¤¾¡¼ê¤¬¤è¤¤¤è¤¦¤Ë»×¤¦¤Î¤Ç¡¢Ãæ¹ñ¸ìÊÙ¶¯¤·»Ï¤á¤ÆiPhone»ý¤Ã¤Æ¤ë¿Í¤Ë¤Ï¤ª´«¤á¤Ç¤­¤ë¥¢¥×¥ê¤Ê¤ó¤¸¤ã¤Ê¤¤¤«¤Ê¤È»×¤¤¤Þ¤¹¡£

2011-09-19

¢£[]lgamma¤Îº¹¤òÁ᤯·×»»¤·¤¿¤¤

µÙ´ÛÏÃÂê(¤Ë¤Ê¤Ã¤Æ¤Ê¤¤)¡£

¥Ù¥¤¥º¤ò»È¤Ã¤¿¸¦µæ¤Ç¤Ï¤è¤¯Â¿¹àʬÉۤȥǥ£¥ê¥¯¥ìʬÉÛ¤ò»È¤¤¡¢¥Ñ¥é¥á¡¼¥¿¤òÀÑʬ¾Ãµî¤·¤¿¤ê¤¹¤ë¤Î¤Ç¡¢¥Ý¥ê¥äʬÉÛ¤¬ÉѽФ¹¤ë¡£¥Ý¥ê¥äʬÉÛ¤Îcomponent¤Ï¥¬¥ó¥Þ´Ø¿ô¤«¤é¤Ê¤Ã¤Æ¤ª¤ê¡¢ÉáÄ̤ÏÂпô¤ò¼è¤Ã¤Æ·×»»¤¹¤ë¤³¤È¤¬Â¿¤¤¤Î¤Ç¡¢¥¬¥ó¥Þ´Ø¿ô¤ÎÂпô¤Îº¹(lgamma¤Îº¹¤È°Ê¸å½ñ¤¯)¤ò¤è¤¯·×»»¤¹¤ë¤³¤È¤Ë¤Ê¤ë¡£collapsed LDA¤Î¤è¤¦¤Ê¥±¡¼¥¹¤Ç¤ÏÂпôÌàÅÙ¤ò·×»»¤¹¤ë¤È¤­¤À¤±¤³¤Îlgamma¤Îº¹¤¬Åо줹¤ë¤¬(sampling»þ¤Ë¤ÏÆÃ¤Ë´Ø·¸¤Ê¤¤¤È¤¤¤¦¤³¤È)¡¢ÉáÄ̤Ϥ³¤³¤Ç¥Ü¥È¥ë¥Í¥Ã¥¯¤Ë¤Ê¤ë¤³¤È¤Ï¾¯¤Ê¤¤¡£¤·¤«¤·¡¢Î㤨¤Ðnested Chinese Restaurant Process(nCRP)¤Î¤è¤¦¤Ê¥±¡¼¥¹¤Ç¤Ï¥Ñ¥¹¤Î¥µ¥ó¥×¥ê¥ó¥°¼°¤Î°ìÉô¤Ç

p(¡ïmathbf{w}_d | ¡ïmathbf{c}_{d}, ¡ïmathbf{c}_{- d}, ¡ïmathbf{w}_{-d}, ¡ïmathbf{z}) = ¡ïprod_{l=1}^L ¡ïleft(¡ïfrac{¡ïGamma{(¡ï{N_{c_{d, l}}¡ï}_{-d} + V ¡ïeta_l )}}{¡ïprod_{v=1}^V ¡ïGamma{(¡ï{N_{c_{d, l}, v}¡ï}_{-d} + ¡ïeta_l )}} ¡ïfrac{¡ïprod_{v=1}^V ¡ïGamma{(N_{c_{d, l}, v} + ¡ï{N_{c_{d, l}, v}¡ï}_{-d} + ¡ïeta_l)}} {¡ïGamma{(N_{c_{d, l}} + ¡ï{N_{c_{d, l}}¡ï}_{-d} + V ¡ïeta_l)}} ¡ïright)

¤È¤¤¤¦¤è¤¦¤Ê¼°¤¬Åо줷¡¢¥µ¥ó¥×¥ê¥ó¥°¤ÎÅÙ¤Ëlgamma¤ÎÈæ¤ò·×»»¤·¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤(¥µ¥ó¥×¥ê¥ó¥°¤Îlogsumexp¤ò»È¤¦´Ø·¸¤ÇÂпô¤ò¼è¤Ã¤Æ¤¤¤ë)¡£¥µ¥ó¥×¥ê¥ó¥°¤Î·×»»¤ÏMCMC¤Ç»þ´Ö¤¬¤«¤«¤ë¤È¤³¤í¤Ê¤Î¤Ç¡¢lgamma¤Îº¹¤ò¹â®¤Ë¤Ç¤­¤ë¤è¤¦¤Ë¤Ê¤ë¤³¤È¤Ï½ÅÍ×(¤Ê¤Ï¤º)¡£¥µ¥ó¥×¥ê¥ó¥°¤Î¼°¤Ëlgamma¤Îº¹¤¬Åо줹¤ë¤Î¤ÏnCRP¤À¤±¤«¤È¤¤¤¦¤È¤½¤¦¤Ç¤Ï¤Ê¤¯¤ÆÃ±¸ì¥ì¥Ù¥ë°Ê³°¤ËÎ㤨¤Ðʸ¤Ë±£¤ìÊÑ¿ô¤¬¤¤¤ë¤è¤¦¤Ê¥â¥Ç¥ë¤Ç¤Ï¥µ¥ó¥×¥ê¥ó¥°¼°¤Ë¥¬¥ó¥Þ´Ø¿ô¤¬Åо줹¤ë¤Î¤Ç¡¢¤½¤³¤½¤³¤è¤¯¤¢¤ë¥±¡¼¥¹¤À¤È»×¤¦(¥Ù¥¤¥º·Ï½¤»Î³ØÀ¸¤Ê¤éºß³ØÃæ¤Ë3²ó¤¯¤é¤¤¤ÏÁø¶ø¤¹¤ë¤Ï¤º)¡£

¤½¤â¤½¤ânCRP¤Î¤è¤¦¤ÊÎã¤Ç¤Ê¤¼lgamma¤Îº¹¤¬Åо줷¤Æ¤·¤Þ¤¦¤«¤È¤¤¤¦¤È¡¢¥¬¥ó¥Þ´Ø¿ô¤ÎÀ­¼Á

¡ïGamma(n + 1) = n ¡ïGamma(n)

¤¬¤¦¤Þ¤¯ÍøÍѤǤ­¤Ê¤¤¤«¤é¤Ç¤¢¤ë(¥­¥ã¥ó¥»¥ë¥¢¥¦¥È¤Ç¥¬¥ó¥Þ´Ø¿ô¤¬¾Ã¤¨¤Æ¤¯¤ì¤ë¡¢¤È¤¤¤¦¤³¤È¤¬¤Ê¤¤)¡£¤·¤«¤·¡¢¾å¤ÎÀ­¼Á¤¬Á´¤¯ÍøÍѤǤ­¤Ê¤¤¤«¤È¸À¤ï¤ì¤ë¤È¤½¤ó¤Ê¤³¤È¤â¤Ê¤¤¡£Î¾ÊÕ¤ËÂпô¤ò¼è¤Ã¤Æ°Ü¹à¤¹¤ë¤È

¡ïlog ¡ïGamma(n + 1) - ¡ïlog ¡ïGamma(n) = ¡ïlog n

¤È¤¤¤¦´Ø·¸¼°¤òÆÀ¤ë¤³¤È¤¬¤Ç¤­¤ë¡£·×»»¤·¤¿¤¤¤Î¤Ïlgamma¤Îº¹¤Ç¤¢¤ë¤¬¡¢¤³¤ì¤ò

¡ïlog{¡ïGamma{(a + b)}} - ¡ïlog{¡ïGamma{(a)}}

¤È¤¹¤ë¡£¡ïlog ¡ïGamma(n + 1) - ¡ïlog ¡ïGamma(n) = ¡ïlog n¤ò¤¦¤Þ¤¯ÍøÍѤ·¤Æ¡¢¡ïlog{¡ïGamma{(a + b)}} - ¡ïlog{¡ïGamma{(a)}}¤òDZ¤ê½Ð¤¹¤³¤È¤ò¹Í¤¨¤ë¡£»ý¤Ã¤Æ¤ë´Ø·¸¼°¤Ï°ì¸Ä¤Å¤Ä¤Îº¹¤Ê¤Î¤À¤«¤éb²ó¤¯¤é¤¤*1·«¤êÊÖ¤»¤Ð½Ð¤Æ¤­¤½¤¦¤Ê¤Î¤Ç·«¤êÊÖ¤·¤Æ¤ß¤ë¡£

  • ¡ïlog ¡ïGamma(a + b) - ¡ïlog ¡ïGamma(a + b - 1) = ¡ïlog{(a + b - 1)}
  • ¡ïlog ¡ïGamma(a + b - 1) - ¡ïlog ¡ïGamma(a + b - 2) = ¡ïlog{(a + b - 2)}
  • ...
  • ¡ïlog ¡ïGamma(a + 1) - ¡ïlog ¡ïGamma(a) = ¡ïlog{(a)}

b¤Ï¤½¤â¤½¤âÀ°¿ô¤Ç¤¤¤¤¤Î¤«¤È¤¤¤¦µ¿Ì䤬¤¢¤ë¤¬¡¢nCRP¤Î¤è¤¦¤Ê¥±¡¼¥¹¤À¤Èb¤ÏXXX¤Î²ó¿ô¤È¤Ê¤Ã¤Æ¤¤¤ë¤è¤¦¤Ê¤â¤Î¤ÇÃÖ¤±¤ë¤Î¤ÇÌäÂê¤Ê¤¤(¥Ï¥¤¥Ñ¡¼¥Ñ¥é¥á¡¼¥¿¤Î¤Û¤¦¤Ï¼Â¿ô¤À¤¬¡¢¤½¤ì¤Ïa¤ËÆþ¤ì¤Æ¤¢¤²¤ì¤Ð¤è¤¤)¡£¾å¤Î¼°¤òÁ´Éô­¤·¤Æ¤ß¤ë¤È¡¢¤¢¤ì¤ä¤³¤ì¤ä¤È¥­¥ã¥ó¥»¥ë¥¢¥¦¥È¤¬µ¯¤³¤Ã¤Æ

¡ïlog{¡ïGamma{(a + b)}} - ¡ïlog{¡ïGamma{(a)}} = ¡ïsum_{i=0}^{b-1} ¡ïlog{(a + i)}

¤È¤¤¤¦¼°¤òÆÀ¤ë¤³¤È¤¬¤Ç¤­¤ë¡£ÌäÂê¤Ï¤³¤ÎÂпô¤ÎϤ¬lgamma¤Îº¹¤è¤êÁᤤ¤Î¤«¤É¤¦¤«¤È¤¤¤¦¤³¤È¤Ç¤¢¤ë¤¬¡¢¼ê¸µ¤Ç´Êñ¤Ë¼Â¸³¤·¤Æ¤ß¤¿¤È¤³¤íÂпô¤ÎϤˤ·¤¿¤Û¤¦¤¬3Çܤ¯¤é¤¤Áᤫ¤Ã¤¿¡£¼ÂºÝ¤ÎÃͤǤâ°ìÃפ·¤Æ¤¤¤¿¤Î¤Ç¡¢¾å¤Î·×»»¤â¤¿¤Ö¤ó¹ç¤Ã¤Æ¤ë¤Ï¤º...¡£ÏÀʸ¤È¤«ÆÉ¤ó¤Ç¤ë¤È¼ÂºÝ¤Î¼ÂÁõ¤É¤¦¤·¤¿¤È¤«¤¢¤Þ¤ê½ñ¤¤¤Æ¤Ê¤¯¤Æ¡¢¤³¤¦¤¤¤¦Á᤯¤¹¤ëÏ䬤ɤ䫤ˤ¢¤Ã¤Æ¤â¤¤¤¤¤ó¤¸¤ã¤Ê¤¤¤«¤È»×¤Ã¤¿¤Î¤Ç½ñ¤¤¤Æ¤ß¤¿¼¡Âè¤Ç¤¹¡£

Á´Á³¾Ü¤·¤¯¤Ê¤¤¤¬¡¢¿ôÃÍ·×»»¤Ç¶á»÷¤·¤ÆÁ᤯¤·¤Æ¤¤¤ë¿Í¤¿¤Á¤â¤¤¤ë¤ß¤¿¤¤¡£¤¬¡¢lgamma¤Îº¹¤Ë»ý¤Ã¤Æ¤¤¤±¤ë¾ì¹ç¤Ï¾å¤ÇƳ½Ð¤·¤¿¼°¤Î¤Û¤¦¤¬¤Þ¤ÀÁᤤ´¶¤¸¡£

*1¡§Àµ³Î¤Ë¤Ïb-1²ó

2011-09-18

¢£[]

  • ̤¤À¤ËÅŵ¤¤ÇÁö¤Ã¤Æ¤¤¤ë¼«Å¾¼Ö¤Ã¤Ý¤¤¤Î¤òÆüËܤμ«Å¾¼Ö¤Î®ÅÙ¤À¤È»×¤Ã¤Æ¤·¤Þ¤Ã¤Æ»ö¸Î¤ê¤½¤¦¤Ë¤Ê¤ë¤È¤­¤¬¤¢¤ë
  • ¶õµ¤¤¬ÂçÊѤä¤Ð¤¤¤Èʹ¤¤¤Æ¤¤¤¿¤¬¡¢½éÆü°Ê¹ß¤Ï@BeijinAir¤ò¸«¤Æ¤¤¤ë¸Â¤ê¤Ï¤½¤ó¤Ê¤Ë¤ä¤Ð¤¯¤Ï¤Ê¤µ¤½¤¦¤Ë¸«¤¨¤ë
  • Ãæ¹ñ¸ì¡¢Ã±¸ì¤Ëʬ¤«¤Á½ñ¤­¤µ¤ì¤Æ¤¤¤Ê¤¤¤È¤½¤â¤½¤â¼­½ñ¤¬°ú¤±¤Ê¤¤¤Î¤¬¤Ê¤«¤Ê¤«¤Ä¤é¤¤
    • ¼­½ñ¤ËºÜ¤Ã¤Æ¤¤¤Ê¤¤¤È¤­¿Í̾¤À¤Èµ¤¤Å¤¯¤Î¤Ë³ä¤È»þ´Ö¤¬¤«¤«¤ë
  • Ë̵þ¤ÎÅÔ¿´Éô¤·¤«¸«¤Æ¤¤¤Ê¤«¤é¤À¤í¤¦¤±¤É¡¢À¸³è¤ÏËÜÅö¤ËÆüËܤȤۤȤó¤ÉÊѤï¤é¤Ê¤¤
    • °ìÅÙÅÔ¿´Éô¤«¤éÎ¥¤ì¤¿¤È¤³¤í¤ò¸«¤Ë¹Ô¤¯¤Î¤¬¤¤¤¤¤Î¤«¤â¤·¤ì¤Ê¤¤

ʸˡ

SVO¤Ã¤Ý¤¤¡£

ÊÝ罗 À§ α³ØÀ¸¥Ý¡¼¥ë¤Ïα³ØÀ¸¤À
²æ ³Ø习 汉语Ãæ¹ñ¸ì¤òÊÙ¶¯¤·¤Æ¤ë
她 ×Ì ÉºÎ¼Èà½÷¤Ï¤È¤Æ¤âÈþ¤·¤¤

¥á¥âÄ¢

¥Ô¥ó¥¤¥ó¤ÇÆþÎϤ¹¤ë¤Èȯ²»¤ÎÊÙ¶¯¤Ë¤â¤Ê¤Ã¤Æ²»¤È´Á»ú¤ÎÂбþ¤âÊÙ¶¯¤Ç¤­¤ë¤È¤¤¤¦µ¤¤¬¤·¤Æ¤­¤¿¤Î¤ÇÎý½¬¤¬¤Æ¤é¥Æ¥­¥¹¥È¤òtype¤·¤Æ¤ß¤ë¡£´°Á´¤Ë¼«Ê¬ÍѤΥá¥â¡£

  • 你们 ¹¥
  • 认识 你们 ×Ì ¹â兴
  • ²æ À§ ùþ¹ñ α³ØÀ¸
  • ²æ ³Ø习 汉语
  • ²æ À§ A ÈÉ Åª ³ØÀ¸
  • 这 À§ ²æ们 Ū Ï·师
  • Æá À§ ²æ Êþͧ À¾ÌØ
  • ¾们 Ìé À§ α³ØÀ¸
  • ¾们 ÅÔ ÉÔ À§ ùþ¹ñ¿Í

-

-

-

-

-

-

-

-

-

-

-