¥È¥Ã¥× ºÇ¿· Äɵ­

2010-01-04 [ĹǯÆüµ­]

_ xig_installer ¤Ê¤ó¤Æ¤â¤Î¤ò½ñ¤¤¤Æ¤ß¤¿

¤Þ¤È¤á

  • twitter ¤ò IRC ¤ËÊÑ´¹¤·¤Æ»È¤¤¤¿¤¤
  • tig.rb ¤ò»È¤¤¤¿¤¤¤±¤É¤É¤³¤«¤é¤É¤¦Æþ¤ì¤¿¤é¤¤¤¤¤«¤è¤¯Ê¬¤«¤é¤Ê¤¤
  • ¤Ê¤ó¤« tig.rb ¤ò¤â¤Ã¤È¤¦¤Þ¤¯°·¤¤¤¿¤¤

¿Í¸þ¤±¤Î¥Ä¡¼¥ë¤òºî¤Ã¤¿¤è¡£

¤Þ¤º¤Ï¤Ê¤ó¤Ç¤³¤ó¤Ê¤â¤Î¤òºî¤Ã¤¿¤Î¤«¡¢Íýͳ¤«¤é¡£

~/bin ¤Ë¤Ê¤ó¤Ç¤âÆÍ¤Ã¹þ¤à¤Î¤ò¤ä¤á¤¿¤¤

¸½ºß¼«Ê¬¤Î twitter ´Ä¶­¤Ï

¼«Â𥵡¼¥Ð¾å¤Î(tiarra + TwitterIRCGateway) + ¥¯¥é¥¤¥¢¥ó¥ÈPC¤Î LimeChat

¤È¤¤¤¦¹½À®¤Ë¤Ê¤Ã¤Æ¤¤¤ë¤ó¤À¤±¤É¡¢¼Â¤Ï¥µ¡¼¥Ð¾å¤Î¥×¥í¥°¥é¥à¤Ï

¤¹¤Ù¤Æ ~/bin °Ê²¼¤ËÊü¤ê¹þ¤Þ¤ì¤Æ¤¤¤ë¾õÂÖ

¤Ë¤Ê¤Ã¤Æ¤¤¤ë¡£¤È¤ê¤¢¤¨¤ºÆ°¤«¤·»Ï¤á¤ë¤È¤­¤Ë¤Ï¤³¤¦¤¤¤¦¤Î¤è¤¯¤ä¤ë¤ó¤À¤±¤É¡¢°ìºòǯËö(!)¤«¤é»Ï¤á¤¿¥Û¡¼¥à¥Ç¥£¥ì¥¯¥È¥ê¤ÎÀ°Íý¤Î°ì´Ä¤Ç¡¢~/bin °Ê²¼¤â´ðËÜŪ¤ËÁ´ÍøÍÑ¥Û¥¹¥È¶¦Ä̤ˤ·¤¿¤¤¤È¹Í¤¨¤Æ¤¤¤ë¡£ÅöÁ³¡¢¤¤¤Á¤Ð¤ó¤Î¥Í¥Ã¥¯¤Ï

¥µ¡¼¥ÐÍѤΠ~/bin ¤ÎÆâÍÆ¤ò¥¯¥é¥¤¥¢¥ó¥È¤Ë»ý¤Ã¤Æ¤­¤¿¤¯¤Ê¤¤

¤È¤¤¤¦¤È¤³¤í¡£

gem ¤Î±üÄì¤Î¼Â¹Ô¥Õ¥¡¥¤¥ë¤ò¸Æ¤Ö¤Î¤¬¤Ê¤ó¤«¥¤¥ä

¤¹¤Ç¤Ë½ñ¤¤¤¿¤±¤É twitter ¤Ø¤ÎÂçȾ¤Î¥¢¥¯¥»¥¹¤Ë TwitterIRCGateway ¤ò»È¤Ã¤Æ¤¤¤ë¡£¤¿¤À¼Â¤Ï¤º¤¤¤Ö¤óÁ°¤«¤é¤³¤ì¤Î Ruby ÇÉÀ¸ÈǤǤ¢¤ë tig.rb ¤Ë¾è¤ê´¹¤¨¤è¤¦¤È¤·¤Æ¤¤¤ë¡£

TwitterIRCGateway ¤Ï¼«Ê¬¤Ë¤È¤Ã¤Æ Twitter ¤òµ¤·Ú¤Ë¤«¤Ä¥Ç¥£¡¼¥×¤ËÍøÍѤ¹¤ë¤è¤¦¤Ë¤Ê¤ë¤¦¤¨¤ÇÀäÂФ˳°¤¹¤³¤È¤Î¤Ç¤­¤Ê¤¤¥×¥í¥À¥¯¥È¤Ç¡¢¤È¤Æ¤â´¶¼Õ¤·¤Æ¤¤¤ë¡£

¤À¤±¤ì¤É¡¢¤ä¤Ï¤ê¤É¤¦¤â FreeBSD + Mono ¤È¤¤¤¦´Ä¶­¤Î¤»¤¤¤Ê¤Î¤«¡¢

  • ¤è¤¯Ê¬¤«¤é¤Ê¤¤Íî¤ÁÊý¤ò¤¹¤ë
  • µ©¤Ë̵¸Â»àË´¥â¡¼¥É¡Êµ¯¤³¤·¤Æ¤âµ¯¤³¤·¤Æ¤â¤¹¤°»à¤Ì¡Ë¤ËÆþ¤ë
  • dll ¤ÎÆþ¤ìÂØ¤¨¤ò¼êư¤Ç¹Ô¤¦¥¢¥Ã¥×¥Ç¡¼¥ÈÊýË¡¤¬¤Ê¤ó¤«¥¤¥ä

¤Ê¤É¤ÎºÙ¤«¤¤ÉÔËþ¤¬¤¢¤Ã¤¿¡£°ì¸À¤Ç¸À¤¦¤È

¤É¤¦¤â´ÉÍý¤·¤Ë¤¯¤¤

¤È¤¤¤¦¤³¤È¤Ç¤¢¤ë¡£¤½¤³¤Ç Ruby ¤À¤±¤Çư¤¯¤·¡¢gem ¤Ç install ¤Ç¤­¤ë net-irc ¤ËÉÕ°¤·¤Æ¤¤¤ë tig.rb ¤Ë¾è¤ê´¹¤¨¤è¤¦¤«¤È¤¤¤¦¤³¤È¤Ê¤ó¤À¤¬¡¢

´Î¿´¤Î tig.rb ¤Ï gem ¤Ç¥¤¥ó¥¹¥È¡¼¥ë¤·¤¿ examples/ °Ê²¼¤Ç¡¢gem ¤Î¿¼¤¤³¬Áؤβ¼¤ÎÊý¤Î¥Õ¥¡¥¤¥ë¤ò¸Æ¤Ó½Ð¤¹¤Î¤Ï¤Ê¤ó¤«¥À¥µ¥¤¤·°·¤¤¤Ë¤¯¤¤*1

¤È¤¤¤¦¤³¤È¤Ç¡¢net-irc °Ê²¼¤Î examples/ °Ê²¼¤Ë¤¢¤ë *ig.rb ¤Î¼Â¹Ô¥Õ¥¡¥¤¥ë¡¢¤Ä¤Þ¤ê²¿¤«¤È IRC ¤Î Gateway ¤È¤·¤Æµ¡Ç½¤¹¤ë¼Â¹Ô¥Õ¥¡¥¤¥ë¤ò PATH ¤ÎÄ̤俤Ȥ³¤í¤Ë install ¤·¤Æ¤·¤Þ¤¦¥Ä¡¼¥ë¤òÍѰդ¹¤ë¤³¤È¤Ë¤·¤¿¡£

Á°ÃÖ¤­¤¬Ä¹¤¯¤Ê¤Ã¤¿¤±¤É¡¢¤½¤ó¤Ê¤ï¤±¤Ç xig_installer ¤È¤¤¤¦¥Ä¡¼¥ë¤ò½ñ¤¤¤¿¡£

¾Ò²ð

wtnabe's xig_installer at master - GitHub

¤È

xig_installer | gemcutter | awesome gem hosting

¤ËÃÖ¤¤¤Æ¤¢¤ë¡£

¤Ö¤Ã¤Á¤ã¤±¤ë¤È¼Â¤Ë¤¯¤À¤é¤Ê¤¤¥Ä¡¼¥ë¤Ç¡¢gem ¤Î±üÄì¤Ë¤¢¤ë *ig.rb ¤Î°ìÍ÷¤òºî¤ê¡¢¤½¤ì¤ò gem ¤ò¼Â¹Ô¤·¤Æ¤¤¤ë Ruby ËÜÂÎ¤ÈÆ±¤¸¥Ñ¥¹¤ËÂФ·¤Æ install, upgrade, uninstall ¤¹¤ë¤À¤±¡£¾®È½»­¤¹¤®¤ë¤¦¤¨¤Ë¤¿¤¤¤·¤¿¤³¤È¤Ï¤·¤Æ¤Ê¤¤¡£

¤Ç¤â¤³¤ì¤À¤±¤Ç¼Â¹Ô»þ¤Ë¤ÏÉáÄÌ¤Ë PATH ¤ÎÄ̤äƤ¤¤ë¤È¤³¤í¤Ë¤¢¤ë tig.rb ¤òᤱ¤Ð¤è¤¯¤Ê¤ë¡£¤³¤ì¤¬´ò¤·¤¤¡£

»È¤¤Êý¤Ï´Êñ¡£

  1. Ruby¤ò¥¤¥ó¥¹¥È¡¼¥ë
  2. Rubygems ¤ò¥¤¥ó¥¹¥È¡¼¥ë
  3. gem install gemcutter
  4. gem install xig_installer

¤³¤ì¤Ç net-irc ¤â°Í¸´Ø·¸¤Ç¥¤¥ó¥¹¥È¡¼¥ë¤µ¤ì¤ë¤Î¤Ç¡¢¤¢¤È¤Ï

(rehash)
xig_installer install tig.rb

¤È¤¹¤ë¤È Ruby ¤òÃÖ¤¤¤Æ¤¢¤ë¥Ñ¥¹¤Ë tig.rb ¤¬¥³¥Ô¡¼¤µ¤ì¤ë¡£Ruby ¤Î¥¤¥ó¥¹¥È¡¼¥ë¤Ë´ÉÍý¼Ô¸¢¸Â¤¬É¬Íפʤé

sudo xig_installer install tig.rb

¤Ë¤¹¤ëɬÍפ¬¤¢¤ë¡£

¤½¤Î¾¤Îµ¡Ç½¤Ï

xig_install help

¤Ç³Îǧ¤·¤Æ¤Û¤·¤¤¡£

tig.rb ¤Î»È¤¤Êý¤Ï¤È¤ê¤¢¤¨¤º³ä°¦¤È¤¤¤¦¤³¤È¤Ç¤´¤á¤ó¤Ê¤µ¤¤¡£

*1 gem ¥Ð¡¼¥¸¥ç¥ó¤¸¤ã¤Ê¤¯¤Æ git clone ¤·¤¿¤â¤Î¤ò»È¤¦¤Ç¤·¤ç¡¢¤È¤¤¤¦»ØÅ¦¤Ï¤È¤ê¤¢¤¨¤ºÃÖ¤¤¤Æ¤ª¤¯¡£


2010-01-07 [ĹǯÆüµ­]

_ RTM¤Î±¿ÍÑÊýË¡¤òiPodÃæ¿´¤ËÊѹ¹

¤³¤ì¤Þ¤Ç

¤³¤Î²Æ¤Ë¤è¤¦¤ä¤¯RTM¤òËܳÊŪ¤Ë»È¤¤½Ð¤·¤Æ°ÊÍè¡¢

RTM¤Î¥ê¥Þ¥¤¥ó¥À -> ¥±¡¼¥¿¥¤¥á¡¼¥ë

¤ÇÁ´Éô¤Î¥¹¥±¥¸¥å¡¼¥ë¤È¤½¤ÎÆü°ìÆü¤Î¥¿¥¹¥¯¤òÄÌÃΤµ¤»¤Æ¤¤¤¿¡£

¤·¤«¤·ºòǯËö¤ËPocketWifi + iPod touchÂÎÀ©¤Ë°Ü¹Ô¤¹¤ë¤ËÅö¤¿¤Ã¤Æ¡¢iPod touch Ãæ¿´¤Î±¿ÍѤËÊѤ¨¤Æ¥±¡¼¥¿¥¤¤ÎÊý¤Ï¥Ñ¥±¥Ã¥ÈÂå¤ò»×¤¤ÀڤäÆÀáÌ󤹤뤳¤È¤Ë·è¤á¤Æ¤¤¤¿¡£

¤Þ¤¿¡¢iPod touch ¤Ë¤Ï¤»¤Ã¤«¤¯¥«¥ì¥ó¥À¡¼¥¢¥×¥ê¤¬¤¢¤ë¤Î¤Ç¡¢¤³¤ì¤Ç¾ðÊó¤ÎÐíâפò¹Ô¤¤¤¿¤¤¤È¹Í¤¨¤Æ¤¤¤¿¡£¥±¡¼¥¿¥¤¤Ë¤Ï¥ê¥Þ¥¤¥ó¥À¤ÏÈô¤Ð¤·¤Æ¤¤¤¿¤±¤É·ë¶É¤½¤Î¾ì¸Â¤ê¤ÎÄÌÃΤǤ·¤«¤Ê¤¯¡¢Á´ÂΤÎÇİ®¤Ë¤Ï PC ¤Î¥Ö¥é¥¦¥¶¤¬É¬ÍפȤ¤¤¦¾õ¶·¤¬¤Á¤ç¤Ã¤ÈÌÌÇò¤¯¤Ê¤¤¤Ê¤È´¶¤¸¤Æ¤¤¤¿¡£

RTM -> ¥«¥ì¥ó¥À¡¼Æ±´üÊýˡõˬ

¤Ê¤¼¤«

  1. RTM -> Google Calendar ( 3rd party cookie )
  2. RTM -> Google Calendar ( private address )
  3. Google Calendar -> iPod

¤Î¾ðÊó¤Ð¤«¤ê¸«¤Ä¤«¤ë¡£

1 ¤Ë¤Ä¤¤¤Æ¤Ï 3rd party cookie ¤òµö²Ä¤·¤Æ¥Ö¥é¥¦¥¶¾å¤Ç¤À¤± Google Calendar ¤È RTM ¤òÏ¢·È¤µ¤»¤ëÊýË¡¤Ê¤Î¤Ç¡¢ºÇ½ªÌÜŪ¤¬ iPod ¤Ê¼«Ê¬¤È¤·¤Æ¤Ï´ò¤·¤¯¤Ê¤¤¡£

¤È¤³¤í¤¬ 2 ¤¬¤É¤¦¤Ë¤â¤¦¤Þ¤¯¤¤¤«¤Ê¤¤¡£»þ´Ö¤¬³Ý¤«¤ë¤È¤¤¤¦¾ðÊó¤Ï¤¢¤Ã¤¿¤¬¡¢´Ý1Æü·Ð¤Ã¤Æ¤âƱ´ü¤µ¤ì¤ëÍͻҤϤʤ¤¤Î¤Ç¡¢²¿¤«¤¬´Ö°ã¤Ã¤Æ¤¤¤ë¤ó¤À¤í¤¦¤È¤¤¤¦ÇùÁ³¤È¤·¤¿Í½ÁÛ¤ò¤â¤È¤ËÍøÍѤòÃÇǰ¡£

¤Á¤Ê¤ß¤Ë¥×¥é¥¤¥Ù¡¼¥È¥¢¥É¥ì¥¹¤ÏÍפ¹¤ë¤Ë½½Ê¬Ê£»¨¤Ê URL ¤Ã¤Æ¤À¤±¡£

cf. Remember The Milk ÆüËÜÈÇ ¸ø¼°¥Ö¥í¥° » Tips ¡§ ¥×¥é¥¤¥Ù¡¼¥È¥¢¥É¥ì¥¹¤ò³èÍѤ·¤è¤¦

¤É¤¦¤Ë¤â¤Ê¤é¤Ê¤¤¤Î¤Ç¡¢Pro ¥¢¥«¥¦¥ó¥È¤Ë¤·¤Æ iPhone ¥¢¥×¥ê¤ÇľÀÜÆ±´ü¤·¤Æ¤ß¤¿¡£¤³¤ì¤Ï³Î¤«¤ËÄÌÃΤˤâÂбþ¤·¤Æ¤¤¤ÆÊØÍø¡£ÊØÍø¤Ê¤ó¤À¤±¤É¡¢RTM ¤Ï¤¢¤¯¤Þ¤Ç RTM ¤Ê¤Î¤Ç¡¢¥«¥ì¥ó¥À¡¼¾å¤Ç°ìÍ÷¤¹¤ë¤È¤¤¤¦»È¤¤Êý¤¬¤Ç¤­¤Ê¤¤¤Î¤Ï iPhone ¥¢¥×¥ê¤Ç¤âƱ¤¸¡£

¤ä¤Ï¤êÌÜŪ¤Ï

iPhone / iPod touch ¤Î¥«¥ì¥ó¥À¡¼¥¢¥×¥ê¤ÇÐíâפ⤷¤¿¤¤

¤È¤¤¤¦¤³¤È¤Ê¤Î¤Ç¡¢¤³¤ì¤À¤±¤Ç¤Ï¤Á¤ç¤Ã¤ÈǼÆÀ¤¤¤«¤Ê¤¤¡£

¼Â¤ÏľÀܡ־Ȳñ¡×¤Ç¤­¤¿

¥¢¥«¥¦¥ó¥È¤òÄɲÃ

¤³¤ì¤â¤·¤«¤·¤Æ iPhone OS 3 °Ê¹ß¤Îµ¡Ç½¤«¤Ê¤Ë¤«¤Ç¥Ö¥í¥°µ­»ö¤¬¤¢¤Þ¤ê¤Ê¤¤¤Î¤«¤â¤·¤ì¤Ê¤¤¤±¤É¡¢¼Â¤Ï iPhone ¤Î¥«¥ì¥ó¥À¡¼¤Ï RTM ¤Î¥×¥é¥¤¥Ù¡¼¥È¥¢¥É¥ì¥¹¤«¤éľÀÜ iCal ¾ðÊó¤òÆÉ¤ß¹þ¤ó¤Çɽ¼¨¤µ¤»¤ë¤³¤È¤¬¤Ç¤­¤ë¡£¤ï¤¶¤ï¤¶ Google Calendar ¤ò·Ðͳ¤µ¤»¤ëɬÍפϤޤ俤¯¤Ê¤«¤Ã¤¿¡£

ÊýË¡¤Ï

[ ÀßÄê ] -> [ ¥á¡¼¥ë / Ï¢ÍíÀè / ¥«¥ì¥ó¥À¡¼ ] ¤«¤é [ ¥¢¥«¥¦¥ó¥È¤òÄɲà ]

¤òÁª¤Ó¡¢¥¢¥«¥¦¥ó¥È¤Î¼ïÎà¤Ï [ ¤½¤Î¾ ] ¤òÁª¤Ö¡£

[ ¾È²ñ¤¹¤ë¥«¥ì¥ó¥À¡¼¤òÄɲà ] ¤òÁª¤ó¤Ç¤³¤³¤Ë iCal ¤Î URL ¤òľÀÜÆþÎϤ·¤Æ¤ä¤ì¤Ð ok.

¤â¤Á¤í¤ó¡Ö¾È²ñ¡×¤Ê¤Î¤Ç¥«¥ì¥ó¥À¡¼¤ÎÊÔ½¸¤Ï¤Ç¤­¤Ê¤¤¤±¤É¡¢º£¤Î¤È¤³¤í RTM ¤Î Pro ¥¢¥«¥¦¥ó¥È¥¢¥×¥ê¤ò»ý¤Ã¤Æ¤¤¤ë¤Î¤Ç¤½¤³¤Ïº¤¤é¤Ê¤¤¡£º£¸å¤É¤¦¤Ê¤ë¤«¤Ïʬ¤«¤é¤Ê¤¤¤±¤É¡¢¤·¤Ð¤é¤¯¤³¤ì¤Ç¤¤¤¤¤«¡£

¤¦¤ó¡¢¤ä¤Ã¤Ñ¥«¥ì¥ó¥À¡¼¤ÇÐíâפ¹¤ë¤È¥¿¥¹¥¯¥ê¥¹¥È¤À¤±¤Ç¤Ïµ¤¤Å¤±¤Ê¤¤¤³¤È¤¬Ê¬¤«¤ë¤Ê¤¡¡£

¤½¤Î¾¤«¤é¾È²ñ¤¹¤ë¥«¥ì¥ó¥À¡¼¤òÄɲÃ

¤È¤¤¤¦¤ï¤±¤Ç Google Calendar ¤ÏÁêÊѤï¤é¤º¤¦¤Þ¤¯³èÍѤǤ­¤º¤Ë2010ǯ¤ò·Þ¤¨¤Æ¤¤¤ë¤Î¤Ç¤¢¤Ã¤¿¡£¤Ê¤ó¤«¸Ä¿ÍŪ¤Ë¤¦¤Þ¤¯¥Ï¥Þ¤é¤Ê¤¤¡£

ÄÌÃΤϤɤ¦¤·¤Æ¤¤¤ë¤«

  • Google Calendar <-> ¡Ö¥«¥ì¥ó¥À¡¼¡×Ʊ´ü¤Ç¤Ï¡Ö¥«¥ì¥ó¥À¡×¡¼¤ÎÊý¤ÇÄÌÃΤ¬µ¡Ç½¤¹¤ë
  • RTM -> ¡Ö¥«¥ì¥ó¥À¡¼¡×¾È²ñ¤Ç¤ÏÄÌÃξðÊó¤¬Íî¤Á¤ë¤Î¤Ç¡Ö¥«¥ì¥ó¥À¡¼¡×¤ÎÄÌÃΤϵ¡Ç½¤·¤Ê¤¤

¤È¤¤¤¦¤³¤È¤Ç¡¢RTM ¤òµ¯ÅÀ¤Ë¤·¤Æ¤·¤Þ¤¦¤È¡Ö¥«¥ì¥ó¥À¡¼¡×¤Î¡ÖÄÌÃΡפϵ¡Ç½¤·¤Ê¤¤¡£

  • RTM Pro ¥¢¥«¥¦¥ó¥È¥¢¥×¥ê¤ÇÆÈ¼«¤ËÄÌÃΤǤ­¤ë

¤Î¤À¤±¤É¡¢¤¤¤º¤ì¤Ë¤»¤è RTM ¤Î¡Ö¥ê¥Þ¥¤¥ó¥À¡×¤¬¥­¡¼¤Ë¤Ê¤ë¡£¤Þ¤¡°ÊÁ°¤Î¤è¤¦¤Ë¥á¡¼¥ë¤¬Íè¤Þ¤¯¤Ã¤Æ¡¢¤É¤¦¤» RTM ¤ÎÄÌÃΤÀ¤Ê¤È»×¤Ã¤Æ¤½¤Î¾¤Î¥á¡¼¥ë¤Î¥Á¥§¥Ã¥¯¤¬Á¤«¤Ë¤Ê¤Ã¤Æ¤·¤Þ¤¦¤è¤ê¤Ï¥¢¥×¥ê¤ÎÄÌÃΤÎÊý¤¬¤¤¤¤¤ó¤À¤±¤É¡¢iPod touch ¤Ë¤Ï¥Ð¥¤¥Ö¤¬¤Ê¤¤¤·¡¢ÉáÃʥܥê¥å¡¼¥à¤ò¾å¤²¤Þ¤¯¤Ã¤Æ¤¤¤ë¤ï¤±¤Ç¤â¤Ê¤¤¤Î¤Ç¡¢°Õ³°¤Ë¤³¤ÎÄÌÃΤ˵¤¤Å¤«¤Ê¤¤¡£

·ë¶É¡¢ËÜÅö¤ËÂç»ö¤Ê»þ´Ö¤Ï¥±¡¼¥¿¥¤¤Î¥¢¥é¡¼¥à¤ä¥¹¥±¥¸¥å¡¼¥ë¡¢¾ïÍÑ PC ¾å¤Î Lightning ¤ä cron + growl ¤Ê¤É¡¢Êä½õ¥Ä¡¼¥ë¤ò»È¤¦¤³¤È¤Ë¤·¤¿¡£¼ã´³¼ê´Ö¤ÏÁý¤¨¤¿¤±¤ÉÄÌÃΤ¬Â¿¤¹¤®¤ÆÁ¤«¤Ë¤Ê¤Ã¤Æ¤·¤Þ¤¦¤è¤ê¤Ï¥Þ¥·¤«¤Ê¤È»×¤Ã¤Æ¤¤¤ë¡£

¤Ä¤¤¤Ç¤Ë¾¤Î¤â¾È²ñ¤·¤Æ¤¤¤ë

¥¤¥ó¥È¥é¤Î¥«¥ì¥ó¥À¡¼¤âɬÍפʤâ¤Î¤ÏÆþ¤ì¤Æ¤·¤Þ¤¦¤³¤È¤Ë¤·¤¿¡£·ë¶É¤¤¤¯¤Ä¥«¥ì¥ó¥À¡¼¤¬¤¢¤Ã¤Æ¤â¼«Ê¬¤Î»þ´Ö¼´¤Ï°ì¤Ä¤·¤«¤Ê¤¤¤Î¤Ç¡¢É¬ÍפʾðÊó¤ÏÁ´Éô¼ê¸µ¤Ë¤Ê¤¤¤È°ÕÌ£¤Ê¤¤¤Ê¤È»×¤Ã¤¿¡£

¤¦¤ó¡¢¤¤¤¤´¶¤¸¡£

Tags: RTM iPod

2010-01-08 [ĹǯÆüµ­]

_ OSX 10.4 ¤Ç ffmpeg ¤ò»È¤¦ 2010

2009ǯ¤Î¿¶¤êÊÖ¤ê¤ò²ÚÎï¤Ë¥¹¥ë¡¼¤·¤¿ wtnabe ¤Ç¤¹¡£¤¤¤ä¡¢¤½¤Î¤¦¤Á¿¶¤êÊÖ¤í¤¦¤È¤Ï»×¤Ã¤Æ¤Þ¤¹¤è¡£¥Þ¥¸¤Ç¥Þ¥¸¤Ç¡£

ÏÃÊѤï¤Ã¤Æº£²ó¤â¤Þ¤¿¤Ê¤ó¤Ç¤½¤ó¤Êº£¤µ¤é¤Ê¥Í¥¿!?¤È¤¤¤¦ÆâÍÆ¤Ç¤¹¡£

·ëÏÀ - macports ¤Î ffmpeg ¤Ç ok

·ëÏÀ¤òÀè¤Ë¸À¤¦¤È OSX 10.4 ¤Ç¤â MacPorts (1.8.2) ¤«¤é ffmpeg (0.5) ¤ò¥¤¥ó¥¹¥È¡¼¥ë¤¹¤ì¤Ð*1 MPEG2 ¤«¤é DV ¤ØÊÑ´¹¤Ç¤­¡¢Àµ¤·¤¯ QuickTime ¤Ë²ò¼á¤µ¤»¤Æ iMovie ¤Ë¼è¤ê¹þ¤à¤³¤È¤¬²Äǽ¤Ë¤Ê¤ê¤Þ¤¹¡£

¤Ç¤Ï¤½¤ÎÅ¿Ëö¤ò¤É¤¦¤¾¡£

ÇØ·Ê - ¸Å¤á¤Î iMac ¤Ç¥Ó¥Ç¥ªÊÔ½¸

µîǯ¤«¤é¤Á¤ç¤³¤Á¤ç¤³»Å»ö¤Ç¥à¡¼¥Ó¡¼¤ÎÊÔ½¸¤È¤« DVD ¤Î¥Þ¥¹¥¿¥ê¥ó¥°¤ò¹Ô¤Ã¤Æ¤¤¤Þ¤¹¡£»Å»ö¤È¤Ï¸À¤¨Çä¤ê¤â¤ó¤òºî¤Ã¤Æ¤ë¤ï¤±¤¸¤ã¤Ê¤¯¤Æ¡¢¤¢¤¯¤Þ¤ÇÆâÉôÊÝ´ÉÌÜŪ¤Ç¤¹¤¬¡£¤Ç¡¢¥«¥á¥é¤È¤« HDD ¤ÎÍÆÎ̤ÎÌäÂ꤬¤¤¤í¤¤¤í¤¢¤Ã¤Æ¡¢¤³¤Îºî¶È¤ò

¸Å¤á¤Î Intel iMac (OSX 10.4 + HDD 160GB + iMovie HD 6)

¤Ç¹Ô¤Ã¤Æ¤ª¤ê¤Þ¤¹¡£¤Ç¡¢¤³¤ì¤Þ¤Ç¤Ï¥«¥á¥é¤¬ DV ¤À¤Ã¤¿¤Î¤Ç iMovie ¤Ç¼è¤ê¹þ¤à¤À¤±¤Ç¤è¤«¤Ã¤¿¤ó¤Ç¤¹¤¬¡¢MPEG2 ¤Ç»£¤ì¤ë¥«¥á¥é¤«¤é¥Ç¡¼¥¿¤À¤±»ý¤Á¹þ¤Þ¤ì¤ë¡¢¤È¤¤¤¦¥±¡¼¥¹¤¬È¯À¸¡£¤Þ¤¡º£¤É¤­¤Î¥«¥á¥é¤Ê¤é MPEG2 ¤È¤« MPEG4 ¤È¤«Åö¤¿¤êÁ°¤Ç¤¹¤Í¡£¤Ç¤â¤³¤ì¤Ïº¤¤ëÌõ¤Ç¤¹¡£

iMovie ¤Ï MPEG2 ¤òÊÔ½¸¤Ç¤­¤Þ¤»¤ó¡£

¤·¤«¤â¥«¥á¥éľ·ë¤Ç iMovie ¤Ë¼è¤ê¹þ¤á¤ë¤ó¤Ê¤é¤¤¤¤¤ó¤Ç¤¹¤¬¡¢¥Ç¡¼¥¿¤À¤±ÅϤµ¤ì¤Æ¤·¤Þ¤¦¤Î¤Ç¤¹¡£

ffmpegX ¤¬Æ°¤«¤Ê¤¤¡ª

¤¢¡¼¤¸¤ã¤¢ ffmpeg ¤ÇÊÑ´¹¤Í¡¢¤È¤¤¤¦¤³¤È¤Ç

ffmpegX a DVD, SVCD, VCD, CVD, VOB, DivX, XviD, H.264, PSP, iPod, MP4, MOV encoder for Mac OSX

¤«¤éÍî¤È¤·¤Æ¼Â¹Ô¡£¡Ê¥Ð¡¼¥¸¥ç¥ó¤Ï 0.0.9y¡ËºÇ¶á¤Ï±Ñ¸ì´Ä¶­ºî¤é¤Ê¤¯¤Æ¤â ffmpegX ¤ÇÊÑ´¹¤Ç¤­¤ÆÊØÍø¤À¤è¤Í¡¼¤Ê¤ó¤Æ»×¤Ã¤Æ¤¤¤¿¤é¡¢

ffmpegX ¤¬¥½¡¼¥¹ movie ¤ÎȽÊ̤˼ºÇÔ¤¹¤ë

¤¸¤ã¤Ê¤¤¤Ç¤¹¤«¡£¤¨¡¼¤Ã¡£¸µ¤Î¥à¡¼¥Ó¡¼¤¬²¿¤«Ê¬¤«¤é¤Ê¤±¤ì¤ÐÀµ¤·¤¯ÊÑ´¹¤Ç¤­¤ë¤ï¤±¤Ê¤¤¤ä¤ó¡£¤â¤·¤«¤·¤¿¤é¤È»×¤Ã¤Æ°ì¤ÄÁ°¤Î 0.0.9x ¤ò»î¤·¤Æ¤ß¤Þ¤·¤¿¤¬¸½¾Ý¤Ï°ì½ï¡£

À©¸Â

¤Á¤Ê¤ß¤Ë OSX 10.5 (PPC) + 0.0.9y ¤Ç°Õ¿ÞÄ̤ê MPEG2 -> DV ÊÑ´¹¤ò¹Ô¤¨¤ë¤Î¤Ï³ÎǧºÑ¤ß¤Ç¤¢¤ê¤Þ¤¹¡£

¤¸¤ã¤¢¤½¤ÎÊÑ´¹¤Ç¤­¤ëµ¡³£¤Ç¤ä¤ê¤ã¤¤¤¤¤¸¤ã¤ó¤È»×¤¦¤«¤â¤·¤ì¤Ê¤¤¤±¤É¡¢¤³¤Î PPC ¥Þ¥·¥ó¤Ï¼«Ê¬¤Î¥á¥¤¥ó¥Þ¥·¥ó¤À¤·²¿¤è¤êÃÙ¤¤¤Î¤Ç¤¹¡£Windows ¥Þ¥·¥ó¤Ï¤¢¤ë¤Î¤Ç¤½¤ì¤ÇÊÑ´¹¤¹¤ë¤È¤¤¤¦ÊýË¡¤â¤Ê¤¯¤Ï¤Ê¤¤¤±¤É¡¢Windows ¥Þ¥·¥ó¤Ï HDD ¤Ë¤Þ¤Ã¤¿¤¯Í¾Íµ¤¬¤Ê¤¯¡¢¤µ¤é¤Ë DV ¤ËÊÑ´¹¤·¤Á¤ã¤Ã¤¿¤Ç¤«¤¤¥Ç¡¼¥¿¤òÊÔ½¸ºî¶ÈÍѤε¡³£¤Ë»ý¤Ã¤Æ¹Ô¤¯¤Î¤â°ì¶ìÏ«¤Ê´Ä¶­¤Ê¤Î¤Ç¤¹¡£

¾Ð¤¨¡£

ffmpeg ¤½¤Î¤â¤Î¤ò»î¤¹¤¬¥³¥ó¥Ñ¥¤¥ëºÑ¤ß¤Î¤â¤Î¤Ï¥À¥á

GUI ¤Ê¤ó¤«¤Ê¤¯¤¿¤Ã¤ÆÊÑ´¹¤µ¤¨¤Ç¤­¤ê¤ã¤¤¤¤¤è¤È»×¤¤Î©¤Á¡¢ffmpegX ¤Î¥Ñ¥Ã¥±¡¼¥¸¤ÎÃæ¤òÇÁ¤¤¤Æ ffmpeg ¥³¥Þ¥ó¥É¤òľá¤­¡¢¤¹¤ë¤ÈÊÑ´¹¤Î¼Â¹Ô¤ò»î¤ß¤ë¤¬¤Û¤É¤Ê¤¯Íî¤Á¤ëorz °ì¤ÄÁ°¤Î 0.0.9x Æâ¤Î ffmpeg ¥³¥Þ¥ó¥É¤Ï 0.0.9y ¤Î¤â¤Î¤è¤ê¤ÏÊݤĤ¬¡¢¤ä¤Ï¤êÅÓÃæ¤ÇÍî¤Á¤ëorz

¤¤¤¶ MacPorts ¤Ø

ȬÊý¤Õ¤µ¤¬¤ê¤«¤È»×¤¤¤«¤±¤¿¤±¤É¡¢¤³¤ì IntelMac ¤À¤·¡¢¤â¤·¤«¤·¤¿¤é MacPorts ¤Ë ffmpeg ¤¢¤ë¤«¤â¡¢¤È»×¤Ã¤¿¤é¤³¤ì¤¬¥Ó¥ó¥´¡£¤è¡¼¤·¤È¤¤¤¦¤³¤È¤Ç¤³¤³¤«¤é°Ê²¼¤Î¼ê½ç¤òƧ¤à¤³¤È¤Ë¤Ê¤ê¤Þ¤¹¡£

  1. install DVD ¤«¤é XCode Tools ¤ò¥¤¥ó¥¹¥È¡¼¥ë
  2. The MacPorts Project -- Home ¤«¤éMacPorts ¤ò¥¤¥ó¥¹¥È¡¼¥ë
  3. sudo port install ffmpeg
  4. mp4v2 ¤¬¥³¥ó¥Ñ¥¤¥ëÉÔǽ¡£¤É¤¦¤âÀ¸À®¤µ¤ì¤ë Makefile ¤¬¤ª¤«¤·¤¤¤é¤·¤¯¡¢#21007 (mp4v2 build fails on Tiger (libtool: more than one: -current_version option specified)) &#8211; MacPorts ¤«¤é patch ¤ò¼è¤Ã¤Æ¤­¤ÆÅö¤Æ¤ë
  5. libtheora ¤Ë install DVD ¤«¤éÆþ¤ì¤¿ XCode ¤Ï¸Å¤¤¤«¤é¾å¤²¤ì¤È¸À¤ï¤ì¤ë¡£ADC ¤«¤é 10.4 ¤ËÆþ¤ì¤é¤ì¤ë XCode 2.5*2¤ò¥À¥¦¥ó¥í¡¼¥É*3 -> ¥¤¥ó¥¹¥È¡¼¥ë
  6. Á´Éô¥¤¥ó¥¹¥È¡¼¥ë¤Ç¤­¤¿¡ª

¤³¤³¤Ç½éÆü¤Ï»þ´ÖÀڤ졣

QuickTime ¤¬²ò¼á¤·¤Ê¤¤¡ª

̵»ö¥¤¥ó¥¹¥È¡¼¥ë¤Ç¤­¤¿ ffmpeg ¤ÇÊÑ´¹¤ò»î¤ß¤ë¡£¤¨¤¤¡£¤ª¤©¡¢ÊÑ´¹¤Ç¤­¤Æ¤ë¤Ç¤­¤Æ¤ë¡ª

¡Ä¡Ä¡£

¤¢¤ì¡©

ÊÑ´¹ºÑ¤ß¤Î dv ¥Õ¥¡¥¤¥ë¤ò QuickTime ¤Ç³«¤¯¤È¤¤¤­¤Ê¤ê¡Ö¥Õ¥¡¥¤¥ë¤ÎºÇ¸å¤Ë㤷¤Þ¤·¤¿¡×¤È¸À¤ï¤ì¤ë¡£¤â¤·¤«¤·¤ÆÊÑ´¹¸å¤Î¥Ç¡¼¥¿²õ¤ì¤Æ¤ë¡©

ffmpeg ¤Ï target ¤´¤È¤Ë default bitrate ¤ò¤è¤·¤Ê¤Ë¤·¤Æ¤¯¤ì¤Ê¤¤

»î¤·¤Ë VLC ¤Ç³«¤¯¤ÈºÆÀ¸¤Ç¤­¤ë¡£¡Ä¤±¤É¡£¤Ê¤ó¤À¤³¤Î¹Ó¤µ¡©

¤¢¡¼ bitrate ¤ÎÌäÂê¤Ê¤Î¤Í¡£man ¤ò¸«¤ë¤È³Î¤«¤Ë

      Video Options

      -b bitrate
          Set the video bitrate in bit/s (default = 200 kb/s).

¤Ã¤Æ½ñ¤¤¤Æ¤¢¤ë¡£target ¥Õ¥©¡¼¥Þ¥Ã¥È¤Ï DV ¤À¤Ã¤Æ¸À¤Ã¤Æ¤ë¤ó¤À¤«¤é DV ÍѤΠbitrate ¤Ë¤·¤Æ¤¯¤ì¤ê¤ã¤¤¤¤¤Î¤Ë¡£

¤È¤¤¤¦¤ï¤±¤Ç

ffmpeg -i foo.mpg foo.dv -target dv -b 25000k

¤ÇÊÑ´¹¤·¤¿¤é QuickTime ¤ÇÆÉ¤á¤¿¤è¡ª

QuickTime ¤ÇÆÉ¤á¤ë¤È¤¤¤¦¤³¤È¤Ï iMovie ¤Ë¼è¤ê¹þ¤á¤ë¤È¤¤¤¦¤³¤È¡£¤¤¤ä¡¼¤á¤Ç¤¿¤·¤á¤Ç¤¿¤·¡£Ä¹¤¤Æ»¤Î¤ê¤À¤Ã¤¿¡£

Tags: OSX Movie

*1 ¤³¤ÎÆ»¤Î¤ê¤âʿó¤Ç¤Ï¤¢¤ê¤Þ¤»¤ó

*2 over 900MB

*3 Ìó30ʬ


2010-01-09 [ĹǯÆüµ­]

_ iPod touch¤«¤é¤Îdelicous postÉü³è

FLDR ¤Î pin ¤ò purge ¤¹¤ë¤È¤­¤Ë delicious ¤ËÅꤲ¤é¤ì¤Ê¤¤¤Èº¤¤ë¤Î¤À¤¬¡¢¤¤¤Ä¤«¤é¤«¡¢¤½¤ì°ÊÁ°¤Ë¤Ïư¤¤¤Æ¤¤¤¿¤Ï¤º¤Î bookmarklet ¤¬Æ°¤«¤Ê¤¯¤Ê¤Ã¤Æ¡¢¤Ê¤ó¤Ç¤À¤í¤¦¤Ê¤ó¤Ç¤À¤í¤¦¤È»×¤Ã¤Æ¤¤¤¿¡£¤Á¤ã¤ó¤ÈÃí°Õ¤·¤Æ delicious ¤òÍøÍѤ¹¤ëµ­»ö¤òÆÉ¤ßľ¤·¤Æ¤¤¤¿¤é¥¢¥×¥ê¤Î¤³¤È¤¬½ñ¤¤¤Æ¤¢¤Ã¤¿¡£

²¿¤Î¤³¤È¤Ï¤Ê¤¤¡¢É¬Íפʥ¢¥×¥ê¤ò°Õ¿Þ¤»¤º¥¢¥ó¥¤¥ó¥¹¥È¡¼¥ë¤·¤Æ¤¤¤¿¤À¤±¤À¤Ã¤¿¡£¤½¤¦¤«¡¢Mobile Safari ¤À¤±¤Ç bookmarklet ¤òư¤«¤¹¤³¤È¤Ï¤Ç¤­¤Ê¤¤¤Î¤«¡©

°Ê²¼¡¢ºòÆü*1¤Î Twitter ¤Î¥í¥°¡£

22:35:11 >wtnabe< ¤Ç¤­¤¿¡£²¿¤â¤«¤â²òÌÀ¡£1) Ť¤¤³¤È iPod touch ¤Ç
delicious ¤ËÅꤲ¤é¤ì¤Ê¤¤¤È»×¤Ã¤Æ¤¤¤¿¤Î¤ÏɬÍפʥ¢¥×¥ê¤ò¥¢¥ó¥¤¥ó¥¹¥È¡¼¥ë
¤·¤Æ¤¤¤¿¤«¤é¡£
22:36:44 >wtnabe< 2) ¤³¤ì¤Ï¡¢¥¢¥×¥ê¤Î¥¤¥ó¥¹¥È¡¼¥ë¤Èbookmarklet¤ÎÀßÄê¤ò
È󯱴ü¤ËÄ´¤Ù¤ÆÈ󯱴ü¤Ë¼Â¹Ô¤·¤¿¤¿¤á¡¢bookmarklet ¤Î¼Â¹Ô¤Ë¥¢¥×¥ê¤¬É¬ÍפÈ
¤¤¤¦¤³¤È¤¬¤Þ¤Ã¤¿¤¯Ê¬¤«¤Ã¤Æ¤Ê¤«¤Ã¤¿¤«¤é¡£¥¢¥×¥ê¤Î̾Á°¤Ï Delicious
Bookmarks
22:37:21 >wtnabe< 3) ¤Ê¤¼¤¢¤ë¤È¤­¤³¤ì¤ò¥¢¥ó¥¤¥ó¥¹¥È¡¼¥ë¤·¤¿¤«¤È¤¤¤¦¤È¡¢
¤³¤ì¤Ï¥Ö¥Ã¥¯¥Þ¡¼¥¯¤ÎƱ´ü¤Ë»þ´Ö¤¬³Ý¤«¤ê¤¹¤®¤Æ¤³¤±¤Æ¤·¤Þ¤¦¤³¤È¤¬¤¢¤Ã¤¿¤¿
¤á¡¢Æ±´üÌÜŪ¤Ç¤Ï Yummy ¤òÆþ¤ì¤¿¤«¤é¡£
22:40:44 >wtnabe< ¤È¤¤¤¦¤³¤È¤ÇƱ´ü¤ÎÀßÄê¤òÀڤäÆbookmarkletưºîÍÑ¥¢¥×
¥ê¤È¤·¤ÆÉüµ¢¤·¤Æ¤â¤é¤Ã¤¿¡£¤Ê¤ó¤«¤Á¤ç¤Ã¤È¥¢¥Û¤¯¤µ¤¤¤±¤É»ÅÊý¤Ê¤¤¤Ê¡£

¤È¤¤¤¦¤³¤È¤Ç

Yummy
Ʊ´ü¡¢»²¾ÈÍÑ
Delicious Bookmarks
bookmark postÍÑ

¤Î2¥¢¥×¥êÂÎÀ©¤Ë¤Ê¤Ã¤Æ¤·¤Þ¤Ã¤¿¡£

cf.

Delicious¤ÎiPhone¥¢¥×¥ê"Bookmarks"¤Ç¤É¤³¤Ç¤â¥Ö¥Ã¥¯¥Þ¡¼¥¯¤Ç¤­¤ë¤è¤¦¤Ë¤Ê¤Ã¤¿ - Blog.IKUBON.com

*1 Æüµ­¤ÎÆüÉÕ¾å


2010-01-12 [ĹǯÆüµ­]

_ ¼Â¹ÔÃæ¤Î Ruby ¤Î install ¥Ç¥£¥ì¥¯¥È¥ê¤òÃΤë

xig_installer ¤Î¤¿¤á¤Ë¼Â¹ÔÃæ¤Î Ruby ¤Î¥Ñ¥¹¤òÃΤꤿ¤¤¤È»×¤Ã¤¿¤¬¡¢Åö½é¤ÏÊýË¡¤¬¤è¤¯Ê¬¤«¤é¤º¡¢¤È¤ê¤¢¤¨¤ºÊüÃÖ¤·¤Æ¤¤¤¿¡£¤³¤ì¤ò¤Á¤ã¤ó¤ÈÄ´¤Ùľ¤·¤¿¡£

ENV¤¸¤ã¤Ê¤«¤Ã¤¿

2010-01-07
17:05:43 >wtnabe< ruby -e 'p ENV["_"]' ¤Ã¤Æ¼«Ê¬¼«¿È¤ò¼Â¹Ô¤·¤Æ¤¤¤ë
Ruby ¥¤¥ó¥¿¥×¥ê¥¿¤òÆÀ¤ëÊýË¡¤È¤¤¤¦Íý²ò¤Ï¹ç¤Ã¤Æ¤Þ¤¹¤«¡©
17:14:06 <eban> @wtnabe ¹ç¤Ã¤Æ¤Ê¤¤¤Ç¤¹¡£bash¤È¤«¤¬ÀßÄꤷ¤Æ¤ë¤Î¤Ç¡¢sh¤À
¤È¤À¤á
17:35:11 >wtnabe< @eban ¤¢¤¶¤Ã¤¹¡£¤Á¤Ê¤ß¤Ë½ã¿è¤Ë Ruby ¥¹¥¯¥ê¥×¥È¤À¤±¤Ç
ÃΤëÊýË¡¤Ã¤Æ¤¢¤ë¤ó¤Ç¤¹¤«¤Í¡©

¤´¤½¤´¤½Ä´¤Ù¤ë¤È require 'rbconfig' ¤¬É¬Íפ餷¤¤¡£

2010-01-08
11:15:51 >wtnabe< ¼Â¹ÔÃæ¤Î Ruby ¤Î¥Ñ¥¹¤Ï ruby -e 'require "rbconfig";
p Config::CONFIG["bindir"]' ¤Ç¤¹¤«¡©

Config -> RbConfig °Ü¹ÔÌäÂê

2010-01-12

18:56:55 >wtnabe< Ruby 1.8 ¤Ï Config ¤Ç 1.9 ¤Ï RbConfig ¤Ê¤Î¤«¡£¤¨¡¼¤È
¤É¤¦½ñ¤±¤Ð¤¤¤¤¤Î¤«¤Ê¡£
19:00:59 <znz> @wtnabe Config¤Ç¤âRbConfig¤Ç¤â¸«¤¨¤ë¤«¤é¤É¤Ã¤Á¤Ç¤â¤¤¤¤¡£
¤â¤¦¥µ¥Ý¡¼¥È¤µ¤ì¤Æ¤Ê¤¤¸Å¤¤¤Î¤âÂбþ¤·¤¿¤±¤ì¤ÐConfig¤·¤«¤Ê¤µ¤½¤¦¤À¤±¤É¡£
19:10:01 >wtnabe< @znz Config ¤Ï¤¤¤º¤ìÇÑ»ßͽÄê¤È¤«¤Ç¤Ï¤Ê¤¤¤ó¤Ç¤¹¤«¤Í¡©
¸Ä¿ÍŪ¤Ë¤Ï 1.8.5 °Ê¹ß¤À¤±Áê¼ê¤Ë¤¹¤ì¤Ð¤¤¤¤¤Î¤Ç¥®¥ê¥®¥ê¤É¤Ã¤Á¤Ç¤â¥ª¥Ã¥±¡¼
¤Ê¤ó¤¹¤±¤É¡£
19:12:59 <znz> @wtnabe ÇÑ»ßͽÄê¤À¤È»×¤¦¤Î¤Ç¡¢¿·¤·¤¤¤Î¤À¤±¤ÇÎɤ±¤ì¤Ð
RbConfig¤¬¤¤¤¤¤Î¤Ç¤Ï¤Ê¤¤¤«¤È¡£
19:12:59 <nsiena> @wtnabe require 'rbconfig' ¸å¤ËÄêµÁ¾õ¶·¤ò
const_defined? ¤ÇÄ´¤Ù¤Æ RbConfig = Config ¤È¤«¤Ç¤Ï¤À¤á¤Ç¤¹?
19:14:29 >wtnabe< @nsiena ¤¢¡¼¤½¤ó¤Ê¤ó¤Ç¤¤¤¤¤Ç¤¹¤Í¡£¤¢¤ê¤¬¤È¤¦¤´¤¶¤¤¤Þ
¤¹¡£

¤Þ¤È¤á

ºÇ½ªÅª¤Ë½ÐÍè¾å¤¬¤Ã¤¿Éôʬ¤¬¥³¥ì¡£

require 'rbconfig'
RbConfig = Config unless defined? RbConfig
RbConfig::CONFIG['bindir']

cf. Commit 651136d20e9925d9a86d224272acae13dad84c31 to wtnabe's xig_installer - GitHub

RbConfig ¤Ï Ruby 1.8.5 °Ê¹ß¤ÇÄêµÁ¤µ¤ì¤Æ¤¤¤ë¤Î¤Ç¡¢¤Þ¤¡¸½Ìò¤Ç»È¤ï¤ì¤Æ¤¤¤ë Ruby ¤Î¤Û¤È¤ó¤É¤Ï¤ï¤¶¤ï¤¶¤³¤Î½ñ¤­Êý¤Ë¤·¤Ê¤¯¤Æ¤â RbConfig ¤òÆÉ¤á¤ÐÂç¾æÉפÀ¤È»×¤¦¡£

»²¹Í

¤Á¤Ê¤ß¤Ë¤Á¤ç¤Ã¤ÈÁ°¤Ë¤³¤ó¤ÊµÄÏÀ¤¬¤¢¤Ã¤¿¡£¥¤¥ó¥¹¥È¡¼¥ë¥Ç¥£¥ì¥¯¥È¥ê¤Ç¤Ï¤Ê¤¯¤Æ¼Â¹Ô¥Ñ¥¹¤À¤±¤É¡¢ basename ³ú¤Þ¤»¤Ð¤¤¤¤¤À¤±¤À¤·¡¢»÷¤¿¤è¤¦¤Ê¤â¤ó¤«¤È¡£

MarkMail ¤Ã¤Æ»È¤¤¤ä¤¹¤¤¤Ê¤¡¡£¤¹¤´¤¤¤Ê¤¡¡£

Tags: Ruby

2010-01-13 [ĹǯÆüµ­]

_ lftp mirror ¤Ç¥É¥Ã¥È¥Õ¥¡¥¤¥ë¤òÂоݤˤ¹¤ë

°ÊÁ°ºî¤Ã¤¿´Êñ¤ÊWeb¥µ¥¤¥È¸þ¤±Rakefile ¤Ç lftp mirror ¤ò»È¤Ã¤Æ°ìÉô¤Î¥µ¥¤¥È¤Î¹¹¿·¤ò¤·¤Æ¤ë¤ó¤À¤±¤É¡¢¥É¥Ã¥È¥Õ¥¡¥¤¥ë¤¬Àµ¤·¤¯¥ß¥é¡¼¥ê¥ó¥°¤ÎÂоݤˤʤäƤ¤¤Ê¤«¤Ã¤¿¤Î¤Ç¡¢¤³¤ÎÌäÂê¤ò½¤Àµ¤·¤¿¡£Àµ³Î¤Ë¤Ï

Á´Éô¥¢¥Ã¥×¤¹¤ë¤È¤­¤Ë¤Ï¥É¥Ã¥È¥Õ¥¡¥¤¥ë¤ÏÂоݤˤʤ뤱¤É¡¢remote ¤Î list ¤ò¼èÆÀ¤¹¤ë¤È¤­¤Ë̵»ë¤µ¤ì¤Æ¤·¤Þ¤¦¤Î¤Ç¡¢ÌäÅú̵ÍѤǥ¢¥Ã¥×¤¹¤ë¤À¤±¤Ç¡¢local ¤Çºï½ü¤·¤Æ¤âÈ¿±Ç¤µ¤ì¤Ê¤¤¡£

¤È¤¤¤¦¾õÂ֤ǡ¢¤³¤ì¤Ï¶ñÂÎŪ¤Ë¤Ï

.htaccess ¤Çǧ¾Ú¤ò³Ý¤±¤Æ¤¤¤¿¤â¤Î¤ò³°¤¹¤³¤È¤¬¤Ç¤­¤Ê¤¤

¤È¤¤¤¦¤«¤Ê¤ê¤ª¥Ð¥«¤Ê¾õÂ֤ˤʤäƤ¤¤¿¡£¤³¤ì¤Ø¤ÎÂнè¤Ï

set ftp:list-options -a

¤ÈÀßÄê¤òÊѹ¹¤¹¤ë¥³¥Þ¥ó¥É¤òÍ¿¤¨¤ë¤³¤È¡£ºÙ¤«¤¤ÊýË¡¤Ï¥ê¥ó¥¯Àè¤Î Rakefile ¤ò grep ¤·¤Æ¤â¤é¤¦¤È¤·¤Æ¡¢´ðËÜŪ¤Ë¤Ï

lftp -e 'set ftp:list-options -a; mirror --delete FROM TO; bye'

¤Ã¤Æ´¶¤¸¤Ç»È¤¦¡£

¤¦¤ó¡¢¤³¤ì¤Ç°Â¿´¤·¤Æ»È¤¨¤ë¤è¤¦¤Ë¤Ê¤Ã¤¿¡£

_ ngrep ¤Ç localhost °¸¤Î¥Ñ¥±¥Ã¥È¤òÇÁ¤¯

¤ß¤ó¤ÊÂç¹¥¤­ ngrep. ¤Ç¤â ngrep ¤Ï¤½¤Î¤Þ¤Þ¤Ç¤Ï localhost ¤Ø¤Î¥¢¥¯¥»¥¹¤ÎÍͻҤÏÃê½Ð¤Ç¤­¤Ê¤¤¡£man ¤Ë¤Ï¤³¤Î¤è¤¦¤Ë½ñ¤«¤ì¤Æ¤¤¤ë¤Î¤Ç¡¢

-d dev By default ngrep will select a default interface to  listen  on.
       Use this option to force ngrep to listen on interface dev.

Î㤨¤Ð

sudo ngrep -d lo port 80 (Linux¤Ï¤³¤¦¤À¤È»×¤¦)

¤È¤«

sudo ngrep -d lo0 port 80 (BSD·Ï¤Ï¤³¤¦¤À¤È»×¤¦)

¤È¤¹¤ì¤Ð localhost ¤ËΩ¤Æ¤¿ Apache ¤Ø¤ÎÄÌ¿®¤ÎÍͻҤò¤ß¤ë¤³¤È¤¬¤Ç¤­¤ë¡£

¤Á¤Ê¤ß¤Ë default interface ¤Î·è¤Þ¤êÊý¡¢localhost ¤ò°ÕÌ£¤¹¤ë loopback interface ¤Ë¤Ä¤¤¤Æ¤¤¤ë̾Á°¡¢¤³¤ì¤é¤Ï»È¤Ã¤Æ¤¤¤ë OS ¤Ë¤è¤Ã¤Æ°Û¤Ê¤ë¤Î¤Ç¡¢¼ÂºÝ¤Ë¤É¤¦¤Ê¤Ã¤Æ¤¤¤ë¤«¤Ï³Æ¼«¤ÇÄ´¤Ù¤Æ¤Á¤ç¡£


2010-01-14 [ĹǯÆüµ­]

_ Ruby ¤Î SSL ¤Î¾ÚÌÀ½ñ¸¡¾Ú¤Î¼ºÇԤǥϥޤäƤ¤¤¿

´ðËÜŪ¤Êή¤ì

  1. TIG ¤«¤é tig.rb ¤Ë°Ü¹Ô¤·¤è¤¦¤È»×¤¤Î©¤Ã¤¿
  2. tig.rb ¤¬ÀèÆü¤Î DNS ¾ã³²¤Î·ï¤ò¼õ¤±¤Æ SSL ¤Î¾ÚÌÀ½ñ¤ò¤Á¤ã¤ó¤È¸¡¾Ú¤¹¤ë¤è¤¦¤Ë¤Ê¤Ã¤¿
  3. ¼«Â𥵡¼¥Ð¤Î FreeBSD ¾å¤Î Ruby ¤Ç CA¾ÚÌÀ½ñ¤¬Ç§¼±¤µ¤ì¤Æ¤ª¤é¤º¡¢·ë²Ì twitter.com ¤Î¥µ¡¼¥Ð¾ÚÌÀ½ñ¤ò¸¡¾Ú¤Ç¤­¤º¤Ë¥³¥±¤Æ¤¤¤¿¡£

tig.rb ¤Î¥¢¥Ã¥×¥Ç¡¼¥È - ÅßÄ̤ê¤Ë¾Ã¤¨¹Ô¤¯À©Éþ¥¬¡¼¥ë¤Ï¡¢Ì´Êª¸ì¤Ë¥ê¥¢¥ë¤òµá¤á¤Ê¤¤¡£ - subtech

¤òÆÉ¤àÁ°¤Ë¥Ï¥Þ¤Ã¤Æ¤Þ¤·¤¿¡ä¡ã

¤À¤é¤À¤é¤È¸À¤¤Ìõ

  1. ËÜÈ֤ȸ¡¾Ú¤Ç3¼ïÎà¤ÎRuby¤ò»È¤Ã¤Æ¤¤¤¿
    • ports ( Ruby 1.8.7 ) on FreeBSD
    • MacPorts ( Ruby 1.8.7 ) on MacOSX
    • Fink ( Ruby 1.8.6 ) on MacOSX
  2. ports ¤Î¤â¤Î¤À¤±¾ÚÌÀ½ñ¤¬¥¤¥ó¥¹¥È¡¼¥ë¤Ç¤­¤Æ¤Ê¤«¤Ã¤¿
  3. ¤¿¤Þ¤¿¤Þ ports ¤Î¤â¤Î¤À¤± tiarra ¤ÈÁȤ߹ç¤ï¤»¤Æ¤¤¤¿¤Î¤Ç tiarra ¤Ë¤¢¤é¤Ìµ¿¤¤
    • ¤³¤³¤Ç¤·¤Ð¤é¤¯¥Ï¥Þ¤ë
  4. ºÇ½ªÅª¤Ë¤Ï RFC ¤È tig.rb ¤ÎÃæ¿È¤òÆÉ¤ó¤Ç tiarra ¤ò½ü³°¡¢¥¨¥é¡¼¥á¥Ã¥»¡¼¥¸¤ò¸¡º÷¤·¤Æ Net::HTTP ¤ËÌ·À褬

ºÇ½é¤Ï¥Ð¥°¤òµ¿¤Ã¤¿¡£

14:25:09 >wtnabe< http://bit.ly/4tHhtN ¤³¤Î patch ŬÍѤ·¤¿¤é
OpenSSL::SSL::SSLError Îã³°¤Ë½Ð²ñ¤¨¤¿¡£

¤³¤Î¥Ñ¥Ã¥Á¤òÅö¤Æ¤Æ¤ß¤¿¡£¤¹¤ë¤È OpenSSL ¼þ¤ê¤ÎÎã³°¤¬½Ð¤Æ¤­¤¿¤Î¤Ç¡¢¤È¤Ë¤«¤¯ SSL ¤ÎÌäÂê¤À¤È¤¤¤¦¤³¤È¤ÇÍî¤ÁÃ夯¡£tig.rb ¤òÆÉ¤à¤È SSL ¤Î verify_mode ¤ò¥»¥Ã¥È¤·¤Æ¤¤¤ëÉôʬ¤¬¤¢¤Ã¤¿¤Î¤Ç»î¤·¤Ë¤³¤ì¤ò³°¤·¤Æ¤ß¤¿¤éư¤¤¤¿¡£

Twitter / wtnabe: ¤µ¤Ã¤­¤Î¥Ñ¥Ã¥ÁÅö¤Æ¤¿¾õÂÖ¤Ç tig.rb ¤ò htt ...

14:38:26 >wtnabe<¤µ¤Ã¤­¤Î¥Ñ¥Ã¥ÁÅö¤Æ¤¿¾õÂÖ¤Ç tig.rb ¤ò
http://gist.github.com/276924 ¤³¤¦¤·¤¿¤éư¤¤¤¿¡£¤³¤³¤Þ¤Ç¤­¤Æ»Ä¤ê¤Ï¾ÚÌÀ
½ñ¤«¡£¤È¤ê¤¢¤¨¤º tiarra ¤Î¤»¤¤¤Ç¤â¤Ê¤ó¤Ç¤â¤Ê¤«¤Ã¤¿¡£

Twitter / wtnabe: net/http ¤ò¸µ¤ËÌᤷ¤Æ¤âư¤¤¤¿¡£¤È¤¤¤¦¤³¤È¤Ç ...

net/http ¤ò¸µ¤ËÌᤷ¤Æ¤âư¤¤¤¿¡£¤È¤¤¤¦¤³¤È¤Ç openssl ¤Ç»È¤¦¾ÚÌÀ½ñ¤ÎÌäÂê
¤À¤Ã¤¿¡£¤â¤·¤¯¤Ï tig.rb ¤Ç¾ÚÌÀ½ñ¤ò¤Þ¤È¤â¤Ë¥Á¥§¥Ã¥¯¤·¤Ê¤¤¤è¤¦¤Ë¤·¤Á¤ã¤¦
¤«¡¢¤É¤Ã¤Á¤«¡£

¤³¤Î¾õÂÖ¤Ç Net::HTTP ¤ò¸µ¤ËÌᤷ¤Æ¤ß¤¿¤¬¤ä¤Ï¤êÀµ¾ï¤Ëưºî¤·¤¿¡£¤È¤¤¤¦¤³¤È¤ÏËÜÅö¤Ëñ¤Ê¤ë SSL ¤ÎÌäÂê¡£

¤½¤Î¸å¡¢

Twitter / : @wtnabe tig.rbư¤«¤·¤Æ¤ë¤Î¤¬FreeB ...

18:18:54 <otsune> @wtnabe tig.rbư¤«¤·¤Æ¤ë¤Î¤¬FreeBSD¤À¤Ã¤¿¤Î¤Ç
security/ca_root_nss¤¤¤ì¤¿

¤È @otsune ¤Ë¾ðÊó¤ò¤¤¤¿¤À¤¤¤¿¤Î¤Ç¡¢security/ca_root_nss ¤òÆþ¤ì¤¿¤±¤É¡¢¤¦¤Þ¤¯Æ°¤«¤º¡£ºÇ½ªÅª¤Ë¤Ï¥¤¥ó¥¹¥È¡¼¥ë¤µ¤ì¤Æ¤¤¤¿¥Ñ¥¹¤ÎÌäÂê¤Ç¡¢

Twitter / wtnabe: VERIFY_PEER ¤Ç¤â /usr/local/ ...

00:05:34 >wtnabe< VERIFY_PEER ¤Ç¤â /usr/local/openssl/cert.pem@ ->
/usr/local/share/cert/ca-root-nss.crt ¤Î link ¤Çư¤¤¤¿¤Ã¤Ý¤¤¡£

¤È¤¤¤¦¤³¤È¤Ç tig.rb ¤ò¸µ¤ËÌᤷ¤Æ link Ä¥¤Ã¤Æ²ò·è¡£Ä¹¤«¤Ã¤¿¡ª

·ë¶É¡¢¥¤¥ó¥¹¥È¡¼¥ë¤·¤Æ¤¤¤¿¾ÚÌÀ½ñ¤òÀµ¤·¤¯Ç§¼±¤·¤Æ¤¤¤Ê¤«¤Ã¤¿¤À¤±¡£¤Ç¤â Net::HTTP ¤Î¥¨¥é¡¼¤Î½ÐÊý¤âʬ¤«¤ê¤Ë¤¯¤¤¤è¤Í¤§¡©

¤Á¤Ê¤ß¤Ë¾¤Ë¤â¥Ï¥Þ¤Ã¤Æ¤¤¤¿¿Í¤¬¡£

Twitter / Yugui (Yuki Sonoda): ¤³¤ÎRuby¤Ï¤É¤ÎOpenSSL¤È¥ê¥ó¥¯¤µ¤ì¤ë¤ó¤À¡¼ ...

¢¨ Ruby 1.9 ¤ÎÊý¤Ï Ruby 1.9 - Feature #2579: Net::HTTP.start("www.ruby-lang.org", use_ssl: true) ¤Ç SSL ÍøÍѤò²Äǽ¤Ë - Ruby Issue Tracking System ¤Ç¾ÚÌÀ½ñ¤Î¸¡¾Ú¤ò¥Ç¥Õ¥©¥ë¥È¤Ç¹Ô¤¦¤è¤¦¤Ë¤Ê¤ë¿· API ¤¬Æþ¤ê¤Þ¤·¤¿¡£

»Ä¤ê´ØÏ¢¤Î¥í¥°¤ò¥³¥Ô¥Ú¡£

2010-01-15:12:05:40 @yugui fav¤é¤ì¤Æ¤¿¤Î¤Ç¤Á¤ç¤Ã¤È¤Þ¤È¤á¤ë»þ´Ö¤òüÀÞ¤Ã
¤Æ¤ªÅÁ¤¨¤·¤Þ¤¹¤È¡¢Ruby¤ÎNet::HTTP.new()¤ÏSSL¤Î¸¡¾Ú¤Ë¼ºÇÔ¤·¤¿¤È¤­¤Ë
@socket¤¬nil¤Î¤Þ¤Þ¤Ë¤Ê¤ë¤ó¤À¤±¤É¡¢¹Í褵¤ì¤Æ¤Ê¤¤¥Ñ¥¿¡¼¥ó¤¬¤¢¤ë¤È¤¤¤¦Ìä
Âê¤Ç¤·¤¿¡£
http://groups.google.co.jp/group/linux.debian.bugs.dist/browse_thread/thread/27dae518c1c5d617
2010-01-15:12:19:11 @yugui SSL¤Î¸¡¾Ú¼ºÇÔ¤ò¤É¤¦¤ä¤Ã¤ÆÃΤë¤Î¤«¡¢¤È¤¤¤¦°Õ
Ì£¤Ç¤Ï.request()¤¬nil.closed?()¤Ë¤Ê¤Ã¤Æ¤·¤Þ¤¦¤È¤«¡¢¤¢¤ë¤¤¤Ïinspect¤·¤¿
¤È¤­¤Îopen=false¤À¤±¤À¤È¤Á¤ç¤Ã¤Èʬ¤«¤ê¤Ë¤¯¤¤¤«¤Ê¤È¤Ï»×¤¤¤Þ¤¹¡£
Tags: Security Ruby

2010-01-15 [ĹǯÆüµ­]

_ God + tig.rb ¤Ø°Ü¹Ô¤·¤¿

¤¢¤ê¤¬¤È¤¦ TwitterIRCGateway

Twitter¤ËÆü¾ïŪ¤Ë¥¢¥¯¥»¥¹¤¹¤ë¤è¤¦¤Ë¤Ê¤Ã¤Æ¤«¤é¡¢¤º¤Ã¤È IRC ¤ËÊÑ´¹¤·¤ÆÍøÍѤ·¤Æ¤¤¤Þ¤¹¡£²¿ÅÙ¤«¤¢¤Á¤³¤Á¤Ë½ñ¤¤¤Æ¤ëµ¤¤¬¤¹¤ë¤±¤É¡¢¸Ä¿ÍŪ¤Ë¤Ï IRC ¤È Twitter ¤Ï·Ò¤®¤Ã¤Ñ¤Ê¤·¤Çµ¤¤¬¸þ¤¤¤¿¤È¤­¤À¤±¸«¤ë¤È¤«¡¢¸Æ¤Ð¤ì¤¿¤³¤È¤Ëµ¤¤Å¤¤¤¿¤È¤­¤À¤±ÊÖ»ö¤¹¤ë¡¢¤È¤¤¤¦»È¤¤Êý¤¬¤È¤Æ¤â¤è¤¯»÷¤Æ¤¤¤ë¤È´¶¤¸¤Æ¤¤¤Þ¤¹¡£¤½¤·¤Æ¤³¤ÎÀܤ·Êý¤Ï¼«Ê¬¤Ø¤ÎÉéô¤¬¤È¤Æ¤â¾¯¤Ê¤¤¤Î¤Ç¤¹¡£¤À¤«¤é¼«Ê¬¤ÎÃæ¤Ç¤Ï¤Þ¤À¤·¤Ð¤é¤¯¤Ï¤³¤Î»È¤¤Êý°Ê³°ÁÛÁü¤¬¤Ç¤­¤Þ¤»¤ó¡£

¤³¤Î IRC ¤Ø¤ÎÊÑ´¹¤Ë¤Ï¤º¤Ã¤È TwitterIRCGateway ¤òÍøÍѤ·¤Æ¤­¤Þ¤·¤¿¡£¤¢¤ê¤¬¤È¤¦¤´¤¶¤¤¤Þ¤¹¡£Twitter ¤òÄ̤¸¤Æ¸òή¤¬¹­¤¬¤Ã¤¿¤Î¤Ï´Ö°ã¤¤¤Ê¤¯ TIG ¤Î¤ª¤«¤²¤Ç¤¹¡£

FreeBSD + Mono + TIG ¤Ï¾¯¡¹µ¤Æñ¤·¤«¤Ã¤¿

¤½¤ó¤Ê¤ªÀ¤Ïäˤʤê¤ÃÊü¤·¤Ê TIG ¤Ç¤·¤¿¤¬¡¢¼«Â𥵡¼¥Ð¾å¤Çư¤«¤·¤Æ¤¤¤ë¤¿¤á¡¢

FreeBSD + Mono + TIG

¤È¤¤¤¦¹½À®¤Ë¤Ê¤Ã¤Æ¤·¤Þ¤¤¤Þ¤¹¡£¤³¤ì¤¬¤ä¤Ï¤ê¾¯¡¹µ¤Æñ¤·¤¤¤Î¤Ç¤¹¤Í¡£¤½¤ÎÊÕ¤ÎÏÃ¤Ï xig_installer ¤Ê¤ó¤Æ¤â¤Î¤ò½ñ¤¤¤Æ¤ß¤¿ ¤Ë¤â½ñ¤¤¤¿¤Î¤Ç¤¹¤¬¡¢¤â¤È¤â¤È .NET ¤¬¤è¤¯Ê¬¤«¤Ã¤Æ¤¤¤Ê¤¤¤³¤È¤â¤¢¤Ã¤Æ¡¢

  • ¤¤¤ÄÍî¤Á¤ë¤Î¤«Ê¬¤«¤é¤Ê¤¤ÉÔ°Â
  • ²¿¤¬°­¤¤¤Î¤«¡¢²¿¤òľ¤»¤Ð¤¤¤¤¤Î¤«¤è¤¯Ê¬¤«¤é¤Ê¤¤ÉÔ°Â

¤¬¤º¤Ã¤È¤¢¤Ã¤¿¤Î¤Ï³Î¤«¤Ç¤¹¡£¤Þ¤¡¡¢TIG ¤¬Íî¤Á¤è¤¦¤¬ Twitter ¤¬Íî¤Á¤è¤¦¤¬¡¢¤½¤ó¤Ê¤Ëº¤¤é¤Ê¤¤¤³¤È¤Ï¤¹¤Ç¤Ëʬ¤«¤Ã¤Æ¤¤¤¿¤ó¤Ç¤¹¤¬(¾Ð)

¤½¤³¤Ç¹½À®¤òÊѤ¨¤è¤¦¤È¡¢¼Â¤Ï¤º¤¤¤Ö¤óÁ°¤«¤é»×¤Ã¤Æ¤¤¤Þ¤·¤¿¡£

¤³¤ó¤Ë¤Á¤Ï God + tig.rb

°Ê²¼¡¢¤ä¤Ã¤¿¤³¤È¤Ø¤Î¥ê¥ó¥¯¡£

¼Â¤Ï¼«Ê¬¤Î»È¤Ã¤Æ¤¤¤¿ IRC ¥¯¥é¥¤¥¢¥ó¥È¤È¤ÎÁêÀ­¤ÎÌäÂê¤Ç¾è¤ê´¹¤¨¤é¤ì¤Ê¤«¤Ã¤¿»þ´ü¤âŤ«¤Ã¤¿¤Î¤Ç¤¹¤¬¡¢º£¤Ï LimeChat + tiarra ¤Ç¤Þ¤Ã¤¿¤¯ÌäÂê¤Ê¤¯»È¤¨¤Æ¤¤¤Þ¤¹¡£²÷Ŭ¤Ç¤¹¡£

tid ¤¬¤á¤Ã¤Á¤ãÊØÍø

¤½¤Î¸å¡¢Ê¬¤«¤Ã¤¿¤³¤È¤Ç¤¹¡£

¤Ê¤ó¤Ç irc ¥¯¥é¥¤¥¢¥ó¥È¤Ç Twitter Ū¤ËÀµ¤·¤¤ reply ¤òÂǤƤë¤Î¤«ÉԻ׵ĤÀ¤Ã¤¿¤Î¤Ç¤¹¤¬¡¢

  • tig.rb ¾å¤Ç¡¢twitter ¤Î status id ¤Èɳ¤Å¤±¤é¤ì¤ë id ¤¬À¸À®¤µ¤ì¤ë
  • tid ¤È¤¤¤¦¤Î¤Ï¤É¤¦¤â typable map id ¤Îά¤Ã¤Ý¤¤¡©
    • ¡Ê¤¢¤ë¤¤¤Ï tig.rb id ?¡Ë

¤³¤ó¤ÊÉ÷¤Ë irc ¥¯¥é¥¤¥¢¥ó¥È¾å¤Ëɽ¼¨¤µ¤ì¤Þ¤¹¡£

wtnabe ¥¢¥¤¥Ç¥£¥¢½Ð¤·¤¹¤ë¤È¤­¤Ï¹­¤¤²èÌ̤¬Íߤ·¤¯¤Ê¤ë¤Ê¡¼ [ipya]

¤Á¤ç¤Ã¤È¤è¤¯¤¢¤ë¥Õ¥Ã¥¿¤È¶èÊ̤¬¤Ä¤­¤Ë¤¯¤¤¤è¤¦¤Ë¸«¤¨¤Þ¤¹¤¬¡¢¼ÂºÝ¤Ë¤Ï¡ÊÂбþ¤·¤Æ¤¤¤ì¤Ð¡Ë¿§Ê¬¤±¤µ¤ì¤Æ¤¤¤ë¤Î¤Ç¡¢¤½¤³¤Þ¤Ç¸«¤Ë¤¯¤¯¤Ï¤Ê¤¤¤Ç¤¹¡£

¤³¤ì¤ò»È¤Ã¤Æ

/me reply <tid> HOGE

¤Ã¤ÆÂÇ¤Ä¤È irc ¥¯¥é¥¤¥¢¥ó¥È¤«¤é in_reply_to ¤òÉղä·¤Æ reply ¤Ç¤­¤Þ¤¹¡£¤³¤ó¤Ê»È¤¤Êý¡£

/me reply uno ´Êñ¤Ê¸ÀÍÕ¤ÎÅǤ­½Ð¤·¤ÈʤÙÂØ¤¨¤Ë OmniGraffle ¤ò»È¤Ã¤Æ¤ë
¤Î¤Ç¤¹¡£¤½¤Î¤Þ¤ÞÀ°Íý¤·¤Æ¤¤¤¯¤Î¤Ë¤âÊØÍø¤À¤·¡£ÌÌÅݤʤ³¤È¤ò¹Í¤¨¤ë¤È¤­¤Ï¼ê
½ñ¤­¤Ë¤Ê¤ê¤Þ¤¹¡£

¤¹¤ë¤È¾¤Î Twitter ¥¯¥é¥¤¥¢¥ó¥È¤«¤é¸«¤Æ¤â¤Á¤ã¤ó¤È·Ò¤¬¤ê¤Îʬ¤«¤ë reply ¤òÂǤƤޤ¹¡£º£¤Þ¤Ç¤Î¼«Ê¬¤Î reply ¤Ë¤Ï ID ¤¬¤Ä¤¤¤Æ¤Ê¤¯¤Æ¸«¤Ë¤¯¤¤¤Ê¤È»×¤Ã¤Æ¤¤¤¿Êý¡¹¡¢¤´¤á¤ó¤Ê¤µ¤¤¡¢º£¸å¤Ï¤¿¤Ö¤óÂç¾æÉפǤ¹¡£

Ʊ¤¸Í×ÎΤÇ

/me fav <tid>

¤È¤¹¤ë¤³¤È¤Ç fav ¤ì¤ë¤Î¤Ç¡¢irc ¥¯¥é¥¤¥¢¥ó¥È¤«¤éÌܤâ¼ê¤âÎ¥¤µ¤º¤Ë twitter ¾å¤Ë self fav ¤Î¥á¥â½ñ¤­¤òºî¤Ã¤Æ¤¤¤±¤Þ¤¹¡£¼Â¤Ï¤³¤ì¤¬¤«¤Ê¤êÊØÍø¡£

TIG ¤Ë¤â¤³¤Îµ¡Ç½¤ÏÆþ¤Ã¤Æ¤ë¤Ã¤Ý¤¤¤ó¤Ç¤¹¤¬¡¢¤è¤¯Ê¬¤«¤Ã¤Æ¤Þ¤»¤ó¤Ç¤·¤¿¡£¤Ç¤âÄ´»Ò¤Ë¾è¤Ã¤Æ self fav ¤Ã¤Æ¤Ð¤«¤ê¤¤¤ë¤È¸å¤Ç¤Þ¤È¤á¤ë¤Î¤¬ÂçÊѤʤΤǡ¢¤½¤³¤Ï¹Í¤¨¤É¤³¤í¤Ç¤¹¤Í¡£

Twitter ¤¬Íî¤Á¤Æ¤Æ¤âº¤¤é¤Ê¤¤¤È¤«½ñ¤¤¤Æ¤¤¤Ê¤¬¤é Twitter ¤Ëɬ»à¤Ë¤Ê¤ê¤¹¤®¤¸¤ã¤Í¡©¤È»×¤Ã¤¿¤«¤â¤·¤ì¤Þ¤»¤ó¤¬¡¢º£¤Þ¤Çµó¤²¤¿¤ä¤Ä¡¢Á´Éô¾¤Ë¤â±þÍѤ¬Íø¤¯¤«¤é¤¤¤¤¤ó¤Ç¤¹¤è¡ª


2010-01-18 [ĹǯÆüµ­]

_ ºî¶È¤Î¼«Æ°²½¤Î¼¡¤Ïºî¶È¤Îµ­Ï¿

¤È¤ê¤¢¤¨¤º»×¤¤¤Ä¤­¤Î¥á¥â¡£

rake, capistrano ¤òÃΤäưÊÍ衢ñ¤Ê¤ë¥¹¥¯¥ê¥×¥È²½¤è¤ê¤âʬ¤«¤ê¤ä¤¹¤¯°·¤¤¤ä¤¹¤¤ºî¶È¤ÎÄê·¿²½¡¢¼«Æ°²½¤ò°Õ¼±¤·¤Æ¤­¤¿¤ó¤À¤±¤É¡¢¼¡¤Ï¤³¤ì¤Îµ­Ï¿¤«¤Ê¤È»×¤Ã¤Æ¤¤¤ë¡£¤Þ¤¡¡¢¸½¾õ¤Ï¤½¤ì¤Û¤É¥¿¥¹¥¯¤Î shlauncher ²½¤¬¿Ê¤ó¤Ç¤¤¤ë¤ï¤±¤¸¤ã¤Ê¤¤¤ó¤À¤±¤É¡¢¤½¤ì¤Ï¤Þ¤¿Ê̤ÊÌäÂê¡£

µ­Ï¿¤È¤¤¤¦¤³¤È¤Ï¥í¥°¤Ê¤ó¤À¤±¤É¡¢¤É¤³¤Ëµ­Ï¿¤¹¤ë¤«¤È¤¤¤¦¤È¡¢¤ä¤Ã¤Ñ°ì¤ÄHTTP¥µ¡¼¥Ð¤òÍѰդ·¤ÆÅꤲ¤Ä¤±¤ë¤Î¤¬³Ú¤Á¤ó¤«¤Ê¤È¤«ÌÑÁÛ¤·¤Æ¤¤¤ë¡£Sinatra ÊÕ¤ê¤Ç¥Õ¥í¥ó¥È¤òÍѰդ·¤Æ¡¢¼ÂºÝ¤Ë¤Ï¤Û¤È¤ó¤É¥í¥°¤ÎÃßÀѤȤ½¤Î¸¡º÷°Ê³°¤Ë»Å»ö¤Î¤Ê¤¤¥¢¥×¥ê¤¬¤¢¤ë¤ÈÊØÍø¤Ê¤ó¤¸¤ã¤Ê¤¤¤«¤È»×¤¦¡£

ÌäÂê¤Ï¤³¤Î¥í¥°¤Î·Á¼°¤Ç¡¢Á°¡¹¤«¤éÁ´Ê¸¸¡º÷¤Ë¶½Ì£¤¬¤¢¤ê¤Ä¤Ä¼ê¤¬Æ°¤«¤»¤Æ¤¤¤Ê¤¤¤Î¤Ç¡¢²¿¤«Å¬Åö¤ÊÁ´Ê¸¸¡º÷¥¨¥ó¥¸¥ó¤ò»È¤¤¤¿¤¤¤Ê¡¢¤¯¤é¤¤¤Î·Ú¤¤µ¤»ý¤Á¤Ç¤¤¤ë¡£°ÊÁ°¤Ê¤é HyperEstraier °ìÂò¤¯¤é¤¤¤Îµ¤»ý¤Á¤À¤Ã¤¿¤±¤É¡¢º£¤Ï¥Õ¥©¡¼¥Þ¥Ã¥È¤ò¼«Í³¤Ë·è¤á¤é¤ì¤½¤¦¤Ê Ferret ¤¬¤¤¤¤¤Î¤«¤Ê¤È»×¤Ã¤Æ¤¤¤ë¡£

RDBMS ¤ÈÏ¢·È¤¹¤ë¥Ä¡¼¥ë¤Ç¤â¤¤¤¤¤ó¤À¤±¤É¡¢¸Ä¿ÍŪ¤Ë¤Ï¥í¥°¤È RDBMS ¤ÏÁêÀ­¤¬Îɤ¯¤Ê¤¤¤È»×¤Ã¤Æ¤¤¤ë¤Î¤Ç¡¢¥í¥°¤Ï¥×¥ì¡¼¥ó¤ËÍѰդ·¤Æ¥¤¥ó¥Ç¥Ã¥¯¥¹¤òÊ̤ËÍѰդ¹¤ëÊýË¡¤òºÎÍѤ·¤¿¤¤¤«¤Ê¡£¤¤¤¶¤È¤Ê¤Ã¤¿¤é¤È¤ê¤¢¤¨¤º grep ¤À¤±¤Ç¤â»È¤¨¤ë¤·¤Í :-P

µ­Ï¿¤ÎÉôʬ¤òʬΥ¤·¤Æ¤¢¤ì¤Ð GUI ¥¢¥×¥ê¤Ç¤â CLI ¥¢¥×¥ê¤Ç¤â³Ú¤Ëµ­Ï¿¤ò¤È¤ì¤ë¤ó¤À¤±¤É¡¢´ðËÜŪ¤Ë¤Ï shlauncher ¥Ù¡¼¥¹¤Ç¹Í¤¨¤¿¤¤¤È»×¤Ã¤Æ¤¤¤ë¡£

°Ê¾å¡£¤Þ¤À²¿¤â½ñ¤¤¤Æ¤Ê¤¤¤è¡ª

Tags: Sysadmin

2010-01-19 [ĹǯÆüµ­]

_ God¤Ë¥×¥í¥»¥¹¤Îµ¯Æ°½ç½ø¤ò¶µ¤¨¤¿¤¤

µ¯Æ°½ç¤òÀ©¸æ¤·¤¿¤¤ÇØ·Ê

ÀèÆü¡¢God + tig.rb ´Ä¶­¤Ë°Ü¹Ô¤·¤¿¤ï¤±¤À¤±¤É*1¡¢¼ÂºÝ¤Ë¤Ï¼«Ê¬¤Î irc ¼þ¤ê¤Î´Ä¶­¤Ï²¼¤Î¿Þ¤Î¤è¤¦¤Ë¤Ê¤Ã¤Æ¤¤¤ë¡£

               twitter
                   |
               internet
                   |
      +----+   +---+--+
      |ircd|   |tig.rb|
      ++--++   +---+--+
       |  |        |
    +--+  +-+  +---+
    |       |  |
+---+--+  +-+--+-+
|nadoka|  |tiarra|
+------+  +---+--+
              |
   LimeChat ( Mac or iPod )

ÀÛ¤¤¿Þ¤À¤±¤É»Í³Ñ¤Ç°Ï¤ó¤Ç¤¢¤ëÉôʬ¤Ï¼«Â𥵡¼¥ÐÆâ¤Çư¤¤¤Æ¤¤¤ë¥×¥í¥°¥é¥à¤Ç¤¢¤ë¡£À©¸æ¤·¤¿¤¤¥×¥í¥°¥é¥à¤À¤±È´¤­½Ð¤¹¤È¡¢

tiarraproxy
nadokabot
tig.rbtwitter gateway

¤È¤¤¤¦¹½À®¤Ë¤Ê¤Ã¤Æ¤¤¤ë*2¡£

¤½¤·¤Æ¤³¤³¤«¤é¤¬Âç»ö¤Ê¤ó¤À¤±¤É¡¢

µ¯Æ°¤Î½çÈ֤Ȥ·¤Æ¤Ï tiarra ¤¬¤¤¤Á¤Ð¤óºÇ¸å

¤Ç¤¢¤ë¡£

God °ÊÁ°

God ²½¤¹¤ëÁ°¡¢¤³¤ì¤é¤Ïñ¤Ë sh ¥¹¥¯¥ê¥×¥È¤«¤é½çÈ֤˵¯Æ°¤¹¤ë¤À¤±¤À¤Ã¤¿¡£

nadoka
sleep 2
tig.rb
sleep 2
tiarra

¤Ç¤¢¤ë¡£¥µ¡¼¥Ð¥µ¡¼¥Ð¤Ê¤ó¤Æ°Î¤½¤¦¤Ë¸À¤Ã¤È¤¤¤ÆÃæ¿È¤Ï¤³¤ó¤Ê¤â¤Î¡£ÅÓÃæ¤Ç²¿¤«¤ÎÇï»Ò¤Ë¤É¤ì¤«¤Î¥×¥í¥»¥¹¤¬Íî¤Á¤¿¤é¤½¤ì¤À¤±¤Þ¤¿µ¯¤³¤·Ä¾¤¹¡£Á´Éô¼êư¤Ç¡¢¸·Ì©¤Ë¤Ï daemon ¥×¥í¥»¥¹¤Ç¤Ï¤Ê¤¯

¤¿¤À¤º¤Ã¤Èµ¯¤­¤Ã¤Ñ¤Ê¤·

¤Î¾õÂ֤ˤʤäƤ¤¤¿¡£¥µ¡¼¥Ð´ÉÍýŪ¤Ë¤Ï¤¢¤Þ¤ê¤ËÃÕÀÛ¤À¤¬¡¢¤³¤Èµ¯Æ°½ç¤Ë´Ø¤·¤Æ¤Ï

½ñ¤¤¤¿Ä̤ê¤Î½çÈ֤˵¯Æ°¤¹¤ë

¤È¤¤¤¦Ê¬¤«¤ê¤ä¤¹¤¤¤â¤Î¤À¤Ã¤¿¡£¤·¤«¤· God ²½¤·¤Æ¤·¤Þ¤¦¤È¤³¤¦¤Ï¤¤¤«¤Ê¤¤¡£

God ¤Îµ¯Æ°¤Îή¤ì

0.8.0 ¤Ç³Îǧ¤·¤¿¤È¤³¤í¡¢°Ê²¼¤Î¤è¤¦¤Ë¤Ê¤Ã¤Æ¤¤¤ë¡£

  1. God.watch ¤Î»ØÄê¤òÆÉ¤ß¹þ¤á¤ë¤À¤±ÆÉ¤ß¹þ¤à
    • watch ¤Î name ¤ò key ¤Ë¤È¤ë Hash ¤ËÊü¤ê¹þ¤Þ¤ì¤ë
  2. ÆÉ¤ß¹þ¤ß½ª¤ï¤Ã¤¿¤é Hash ¤«¤é°ì¤Ä¤º¤Ä¼è¤ê½Ð¤·¡¢autostart ¤ò»ØÄꤷ¤Æ¤¢¤Ã¤¿¤é¡Êdefault ¤Ç true¡Ë¤¿¤À¤Á¤Ë¥×¥í¥»¥¹¤Îµ¯Æ°¤ò¹Ô¤¦

¤È¤¤¤¦¤³¤È¤Ï¾¯¤Ê¤¯¤È¤â Ruby 1.8 ¤Ç¤Ï

God.load ¤ÎÆÉ¤ß¹þ¤ß½ç¡¢God.watch ¤Î½Ð¸½½ç¤È¥×¥í¥»¥¹¤Îµ¯Æ°½ç¤Ï̵´Ø·¸

¤Ç¤¢¤ë¡£

¤Ï¤Æº¤¤Ã¤¿¤Ê¡£

̵ÍýÌðÍý²ò·è¤·¤Æ¤ß¤¿¡£

¤³¤³¤Ç¤Ïñ¤Ë¥×¥í¥»¥¹¤Îµ¯Æ°½ç½ø¤À¤±¤òÌäÂê¤Ë¤·¤¿¤¤¤Î¤Ç tiarra ¤ä nadoka ¤Ê¤É¼ÂºÝ¤Ë»È¤Ã¤¿¥×¥í¥°¥é¥à¤Ç¤Ï¤Ê¤¯¡¢ÀèÆü¤Î xig_installer ¤Çư¤«¤·¤ä¤¹¤¯¤Ê¤Ã¤¿ tig.rb ¤È wig.rb ¤Ç»î¤·¤¿¤ß¤¿¡£

¾å¤Î gist ¤Î¥Õ¥¡¥¤¥ë¤òŬÅö¤Ê̾Á°¤ÇÊݸ¤·¤Æ

god -c CONFIG

¤Çµ¯Æ°¤¹¤ë¤È

ɬ¤º wig.rb ¤ÎÊý¤ò¸å¤Çµ¯Æ°¤¹¤ë¤³¤È¤¬¤Ç¤­¤ë¡£

½çÈÖ¤Ï

ps ax | grep ruby

¤·¤Æ PID ¤ò³Îǧ¤¹¤ë¤Èʬ¤«¤ë¡£

¥Ý¥¤¥ó¥È

  1. ¤¢¤È¤«¤éµ¯Æ°¤·¤¿¤¤¤â¤Î¤Î God.watch ¤Îµ­½Ò¤ÎÃæ¤Ç autostart = false ¤ò²Ã¤¨¤ë
  2. watch ÄêµÁ¤Î¤¢¤È¤Ë Thread.new {} ¤ÎÃæ¤Ç̵ÍýÌðÍýÂÔ¤Á¤¿¤¤¥×¥í¥»¥¹¤Îµ¯Æ°¤òÂÔ¤Ä

ÂÔ¤Á¤¿¤¤¥×¥í¥»¥¹¤ÎÍÍ»Ò¤Ï God.status[NAME][:state] ¤Ç³Îǧ¤¹¤ë¤³¤È¤¬¤Ç¤­¤ë¡£

¼Â¤Ï¡¢¤³¤ó¤Ê½ñ¤­Êý¤Ç¤¤¤¤¤Î¤«Ê¬¤«¤Ã¤Æ¤Ê¤¤¡£ËÜÅö¤Ï¤â¤Ã¤È¤¤¤¤½ñ¤­Êý¡¢Àµ¤·¤¤½ñ¤­Êý¤¬¤¢¤ë¤Î¤«¤â¤·¤ì¤Ê¤¤¡£Ãµ¤·¤¿¤±¤É¤Þ¤À¤Þ¤À God ¤Î¾ðÊó¤Ï¾¯¤Ê¤¤¤·¡¢±Ñ¸ì¤Ë¤Ê¤ë¤È¤É¤¦¤¤¤¦¸ÀÍդǤ³¤ì¤òõ¤»¤Ð¤¤¤¤¤Î¤«¤âʬ¤«¤é¤Ê¤¤¡£

¤Ç¤âÌÜŪ¤ÏãÀ®¤Ç¤­¤Æ¤¤¤ë¡£

»²¹Í - God.load ¤Îή¤ì

God.load ¤Ï»ØÄꤵ¤ì¤¿ÀßÄê¥Õ¥¡¥¤¥ë¤òÆÉ¤ß¹þ¤à¤â¤Î¤Ê¤ó¤À¤±¤É¡¢ÆâÉô¤Ç Dir.glob ¤ò»È¤Ã¤Æ¤¤¤ë¤Î¤Ç°ì¤Ä¤º¤Ä¥Õ¥¡¥¤¥ë̾¤ò»ØÄꤷ¤Ê¤¯¤Æ¤â

God.load File.dirname( __FILE__ ) + '/*.god'

¤Ê¤ó¤Æ½ñ¤­Êý¤Ç¤Þ¤È¤á¤ÆÆÉ¤ß¹þ¤à¤³¤È¤¬¤Ç¤­¤ë¡£ºÇ½ªÅª¤Ë¤Ï Kernel.load ¤¬¸Æ¤Ð¤ì¤ë¤Î¤Ç Ruby ¤Îʸˡ¤Ë§¤Ã¤Æ¤¤¤Ê¤¤¤È¡¢¤³¤Î»þÅÀ¤ÇÃÆ¤«¤ì¤ë¡£

ºÇ½é¡¢ÆÉ¤ß¹þ¤ß½ç¤Ç¥×¥í¥»¥¹¤Îµ¯Æ°½ç¤òÀ©¸æ¤Ç¤­¤ë¤«¤È»×¤Ã¤¿¤±¤É°ã¤Ã¤¿¤Î¤Ç¤³¤ÎÉôʬ¤ÎÆÉ¤ß¹þ¤ß¤Ï¤¢¤ó¤Þ¤ê³è¤«¤·¤è¤¦¤¬¤Ê¤¤¤Î¤Ç¤¢¤Ã¤¿¡£»Äǰ¡£

*1 ¸½»þÅÀ¤Ç¤Ï¤½¤ÎÆüµ­¤Ï½ñ¤¤¤Æ¤Ê¤¤¤Ç¤¹¡ª

*2 ËÜÅö¤Ï ircd ¤â´Þ¤á¤ÆÀ©¸æ¤¹¤Ù¤­¤À¤È»×¤¦¤±¤É¡¢¤Þ¤À¤ä¤Ã¤Æ¤Ê¤¤¡£


2010-01-20 [ĹǯÆüµ­]

_ God¤Ç´Êñdaemonize

º£¤µ¤é¤Ê¤¬¤é

¤Ê¤¼ daemontools ¤ò»È¤¦¤Î¤« - kazuho¤Î¥á¥âÃÖ¤­¾ì

¤³¤ì¤òÆÉ¤ó¤Ç¡¢

Ä̾ï¤Î¥×¥í¥°¥é¥à¤ò¤½¤Î¤Þ¤Þ¥Ç¡¼¥â¥ó²½¤Ç¤­¤ë¤«¤é

¤È¤¤¤¦µ­½Ò¤Ë¤¦¤ó¤¦¤ó¤Èð÷¤¤¤Æ¤¤¤¿¡£*1

º£²ó¤Ï¡¢daemontools ¤â¤¤¤¤¤«¤â¤·¤ì¤Ê¤¤¤±¤É God ¤ò»È¤Ã¤Æ daemon ºî¤í¤¦¤¼¤Ã¤ÆÏᣤ³¤ì¤Ï monit ¤Ë¤Ï¿¿»÷¤Ç¤­¤Ê¤¤¤è¡£

cf. M/Monit | Wiki

God¤Ç¥ª¥ì¥ª¥ì¥Ç¡¼¥â¥ó¤òºî¤ë

Î㤨¤Ð°ÊÁ°ºî¤Ã¤¿ Rswatch ¤Ã¤Æ¤¤¤¦¥í¥°¤ò´Æ»ë¤¹¤ë¥Ä¡¼¥ë¤Ê¤ó¤«¤â¡¢°ì±þ daemon ¤Î¤è¤¦¤Ëư¤¯¤±¤É¡¢¤³¤ìÍî¤Á¤¿¤é¤É¤¦¤¹¤ó¤Î¤È¤«¡¢¥·¥¹¥Æ¥àµ¯Æ°»þ¤Ë¼«Æ°Åª¤Ëµ¯¤­¤ë¤è¤¦¤Ë¤¹¤ë¤Î¤É¤¦¤·¤è¤¦¡¢¤È¤«¤¤¤í¤¤¤í´ÉÍý¤·¤Ë¤¯¤¯¤Æ»ÅÊý¤Ê¤«¤Ã¤¿¡£¥Ç¡¼¥â¥ó¤òºî¤ë¤³¤È¤Ï¡¢¼Â¤Ï 1)ÌÜŪ¤Îưºî¤òºî¤ê¹þ¤à¤³¤È¡¢2)¥Ç¡¼¥â¥ó²½¤¹¤ë½èÍý¤òºî¤ê¹þ¤à¤³¤È¡¢¤ÎÆó¤Ä¤Ëʬ¤±¤é¤ì¤ë¡£¤½¤¦¡¢2 ¤ÏÌÜŪ¤¸¤ã¤Ê¤¤¡£´üÂÔ¤¹¤ëưºî¤Ç¤Ï¤¢¤ë¤±¤ì¤É¡£

God ¤ò»È¤¨¤Ð 2 ¤ÎÉôʬ¤Ï¤¹¤Ù¤Æ God Ǥ¤»¤Ë¤Ç¤­¤ë¡£

¤Þ¤¿¼«Ê¬¤ÎÃæ¤Ç¤Ï daemon ¤È¸À¤¦¤È¥µ¡¼¥Ð¤È¤«¤³¤¦¤¤¤¦´Æ»ë¥Ä¡¼¥ë¤ò¤¹¤°¤Ë»×¤¤É⤫¤Ù¤Á¤ã¤¦¤ó¤À¤±¤É¡¢Ê̤ˤ½¤ó¤ÊÌò¤ËΩ¤Ä¤â¤Î¤Ð¤«¤ê¤¬ daemon ¤È¤¤¤¦¤ï¤±¤¸¤ã¤Ê¤¤¡£¤³¤³¤Ç¤Ï

¤È¤ê¤¢¤¨¤º½ªÎ»¤·¤Ê¤¤¤â¤Î

¤ÏÁ´Éô daemon ¤È¸Æ¤Ö¤³¤È¤Ë¤¹¤ë¡£Î㤨¤Ð twitter ¤Î bot ¤Ê¤ó¤«¤Ï daemon ¤Ç¤¢¤ë¡£

God¤ò»È¤Ã¤¿´ðËÜŪ¤Êdaemon²½¤Îή¤ì

¼Â¤Ï Ruby ¤À¤±¤ÎÏäǤ¢¤ì¤ÐÊÌ¤Ë God ¤ò»È¤ï¤Ê¤¯¤Æ¤â Process.daemon ¤Ç¤â daemons ¤Ç¤â¤¤¤¤¤Î¤À¤¬¡¢¤³¤ì¤Ï¸å½Ò¤¹¤ë¤³¤È¤Ë¤·¤Æ God ¤ÎÏäò¿Ê¤á¤ë¡£

¥¹¥¯¥ê¥×¥È¤òÍѰÕ

¤Þ¤º¤Ï½ªÎ»¤·¤Ê¤¤¥×¥í¥°¥é¥à¤òºî¤ë¡£¤³¤ó¤Ê¤â¤Î¤Ç¤â¤¤¤¤¡£

#! /usr/bin/env ruby

require 'logger'
¡¡
i = 0
l = Logger.new( File.dirname( __FILE__ ) + '/counter.log' )
loop do
  l.info( i )
  i += 1
  sleep 1
end

¤³¤ì¤òÎ㤨¤Ð counter.rb ¤È¤¤¤¦Ì¾Á°¤ÇÍѰդ¹¤ë¡£¤³¤ì¤ò¼Â¹Ô¤¹¤ë¤ÈÅöÁ³1É䴤Ȥ˱䡹¤È¿ô»ú¤ò¿ô¤¨¾å¤²¤Æ¤¤¤¯Æ°¤­¤ò¤¹¤ë¡£

tail -f counter.log

¤Ç¡¢¤½¤ÎÍͻҤò³Îǧ¤Ç¤­¤ë¡£¤ï¤¶¤ï¤¶ÀäÂХѥ¹¤Ë¤·¤Æ¤¤¤ë¤Î¤Ï¡¢

daemon ²½¤·¤¿¤È¤­¤Ë¥«¥ì¥ó¥È¥Ç¥£¥ì¥¯¥È¥ê¤¬ÊѤï¤Ã¤Æ¤·¤Þ¤¦¤«¤é¡£

¤³¤ì¤Ï¤â¤¦¤½¤¦¤¤¤¦¤â¤Î¤Ê¤Î¤Ç´Î¤ËÌ¿¤¸¤Æ¤ª¤¯¡£

god¥Õ¥¡¥¤¥ë¤òÍѰÕ

Ʊ¤¸¥Ç¥£¥ì¥¯¥È¥ê¤Ë°Ê²¼¤ÎÆâÍÆ¤Ç God ¤ÎÀßÄê¥Õ¥¡¥¤¥ë¤òºî¤ë¡£

God.watch do |w|
  w.name = 'counter'
  w.interval = 5.seconds
  w.start = "ruby #{File.dirname( __FILE__ ) + '/counter.rb'}"
  w.behavior( :clean_pid_file )

  w.start_if do |start|
    start.condition( :process_running ) do |c|
      c.running = false
    end
  end
end

¤³¤ì¤ò counter.god ¤Î¤è¤¦¤Ê̾Á°¤ÇÊݸ¤¹¤ë¡£¥¹¥¯¥ê¥×¥È¤Î¥Ñ¥¹¤òÀäÂХѥ¹¤Ë¤·¤Æ¤¤¤ë¤Î¤Ï¤µ¤Ã¤­¤ÈƱ¤¸Íýͳ¡£¤¢¤ë¤¤¤Ï¼Â¹Ô¤¹¤ë¥×¥é¥°¥é¥à¤ò PATH ¤ÎÄ̤俤Ȥ³¤í¤ËÃÖ¤±¤Ð¤â¤¦¾¯¤·ÏäϴÊñ¡£

xig_installer ¤òºî¤Ã¤¿¤Î¤Ï¼Â¤Ï¤³¤Î¤¿¤á¤Ç¤¢¤ë¡£

¼Â¹Ô¥Õ¥¡¥¤¥ë¤Î¾ì½ê¤¬ÊѤï¤Ã¤Æ¤·¤Þ¤Ã¤¿¤é God ¤ÎÀßÄê¥Õ¥¡¥¤¥ë¤ò¤¤¤Á¤¤¤Á½ñ¤­´¹¤¨¤Ê¤¯¤Æ¤Ï¤Ê¤é¤Ê¤¤¡£¤³¤ì¤ÏÌÌÅݤ¯¤µ¤¤¤·¡¢¤Þ¤ºËº¤ì¤ë¡£

¢¨ ¤³¤³¤Ç¤Ï ruby ¤Ë PATH ¤¬Ä̤äƤ¤¤ë¤³¤È¤ò´üÂÔ¤·¤¿½ñ¤­Êý¤Ë¤Ê¤Ã¤Æ¤¤¤ë¤¬¡¢FreeBSD + ports ¤Î¤è¤¦¤Ë¥Ç¥Õ¥©¥ë¥È¤Î PATH ¤¬ /usr/bin ¤ÇÄɲ乤ë¥×¥í¥°¥é¥à¤¬¤¹¤Ù¤Æ /usr/local/bin ¤ËÆþ¤ë´Ä¶­¤Ï¡¢¤³¤ÎÉôʬ¤â¥Õ¥ë¥Ñ¥¹¤Ë¤·¤Æ¤ª¤¯¤Ù¤­¡£

god ·Ðͳ¤Çµ¯¤³¤¹

¤Þ¤º -D ¤òÉÕ¤±¤Æµ¯¤³¤¹¡£

god -D -c counter.god

¤¹¤ë¤È¥¹¥¯¥ê¥×¥È¤ò daemon ²½¤¹¤ëÍͻҡ¢¾õÂÖ¤ò´Æ»ë¤·¤Æ¤¤¤ëÍͻҤ¬¤½¤Î¤Þ¤Þ¥¿¡¼¥ß¥Ê¥ë¤Ëɽ¼¨¤µ¤ì¤ë¡£Àµ¾ï¤Ë daemon ²½¤Ç¤­¤Æ´Æ»ë¤Ç¤­¤Æ¤¤¤ì¤Ð ^C ¤Ç½ªÎ»¤¹¤ë¡£

¤³¤Î¤È¤­¡¢daemon ²½¤·¤¿¥¹¥¯¥ê¥×¥È¤Ï¤½¤Î¤Þ¤Þư¤­Â³¤±¤ë

¤¬¡¢¹²¤Æ¤º

god -c counter.god

¤ÈÂÇ¤Ã¤Æ god ¥×¥í¥»¥¹¤Î daemon ²½¤ò¹Ô¤¦¡£¤¹¤ë¤È

º£Æ°¤¤¤Æ¤¤¤ë¥×¥í¥»¥¹¤ò¤½¤Î¤Þ¤Þ´Æ»ëÂоݤˤǤ­¤ë

¤Î¤Ç¡¢¤³¤Î¾õÂÖ¤Ç

god stop counter

¤ÈÂǤƤлߤá¤é¤ì¤ë¡£¤¢¤ë¤¤¤Ï

god terminate

¤È¤¹¤ì¤Ð´Ý¤´¤ÈÁ´Éô½ªÎ»¤Ç¤­¤ë¡£

¤É¤¦¤À¤í¤¦¡£

ñ¤Ë½ªÎ»¤·¤Ê¤¤¥×¥í¥°¥é¥à¤òºî¤Ã¤¿¤À¤±¤Ê¤Î¤Ë God ¤ò³ú¤Þ¤»¤ë¤³¤È¤Ç¤Á¤ã¤ó¤È daemon ²½¤Ç¤­¤Æ¤¤¤ë¡£*2

¤Þ¤¿¡¢¤³¤³¤Þ¤Ç¤ÎÎã¤Ï¤¹¤Ù¤Æ Ruby ¤Ç½ñ¤¤¤Æ¤¤¤ë¤¬¡¢daemon ²½¤·¤¿¤¤¥×¥í¥°¥é¥à¤Ï²¿¤Ç½ñ¤«¤ì¤Æ¤¤¤Æ¤â´Ø·¸¤Ê¤¤¡£God¤Ë¥×¥í¥»¥¹¤Îµ¯Æ°½ç½ø¤ò¶µ¤¨¤¿¤¤ ¤Ê¤É¤Ç¿¨¤ì¤Æ¤¤¤ë tiarra ¤Ï Perl À½¤À¤·¡¢¤Ê¤ó¤Ç¤â¤è¤¤¡£

¤ª¤Þ¤± - Ruby¤Çdaemon¤òºî¤Ã¤Æ´ÉÍý¤¹¤ë¤½¤Î¾¤ÎÊýË¡

»à³è´Æ»ë¤ä¥ê¥½¡¼¥¹¾ÃÈñ¤ò´Æ»ë¤·¤Æ¼«Æ°Åª¤ËºÆµ¯Æ°¡¢¤Ê¤É¤Îµ¡Ç½¤¬Íפé¤Ê¤¤¾ì¹ç¤Ï°Ê²¼¤Î¥ê¥ó¥¯Àè¤â»²¹Í¤Ë¤Ê¤ë¡£

¤¿¤À¤·¤³¤ì¤é¤Î¾ðÊó¤À¤±¤Ç¤Ïºî¤Ã¤¿ daemon ¤ò¥³¥ó¥È¥í¡¼¥ë¤¹¤ë¤³¤È¤¬¤Ç¤­¤Ê¤¤¡£Ruby¥¹¥¯¥ê¥×¥È¸ÂÄê¤Ç¤¤¤¤¤Ê¤é°Ê²¼¤ò»È¤¦¤È God ¤è¤ê³Ú¤Ë´ÉÍý¤Ç¤­¤ë¡£

¤³¤ì¤ò»È¤¨¤Ð´ðËÜŪ¤Ë¤Ï

Daemons.run(¥Ç¡¼¥â¥ó²½¤·¤¿¤¤¥¹¥¯¥ê¥×¥È¤Î¥Õ¥¡¥¤¥ë̾)

¤À¤±¤ÇºÑ¤à¡£

¤Þ¡¢¤â¤Á¤í¤ó´Æ»ë¤Ï¤Ç¤­¤Ê¤¤¤±¤É¡£

*1 ËÜÅö¤ËÍý²ò¤Ç¤­¤Æ¤¤¤ë¤«¼«¿®¤¬¤Ê¤«¤Ã¤¿¤Î¤Ç¥Ö¥í¥°¤Î¥³¥á¥ó¥È¤Ç¤½¤Î³Îǧ¤â¤µ¤»¤Æ¤â¤é¤Ã¤¿

*2 ºÙ¤«¤¤ daemon ¤ÎÄêµÁ¤ÏÄ´¤Ù¤ë¤È¤¤¤í¤¤¤í½Ð¤Æ¤¯¤ë¤è¡ª


2010-01-21 [ĹǯÆüµ­]

_ rqr ¤ò»È¤Ã¤Æ Ruby ¤Ç QRCode ²èÁü¤òºî¤ë

¤µ¤¡¡¢º£¤µ¤éÆüµ­¥·¥ê¡¼¥º¤¬Éü³è¤·¤Þ¤·¤¿¤è¡£

QRCode ²èÁü¤ò Ruby ¤Çºî¤ë

QR¥³¡¼¥É¤ò»»½Ð¤¹¤ëÉôʬ¤Ï ext ¤À¤·¡¢²èÁü¤òÅǤ­½Ð¤¹Éôʬ¤Ï¥Í¥¤¥Æ¥£¥Ö¤Î¥é¥¤¥Ö¥é¥ê¤Ë°Í¸¤·¤Æ¤¤¤ë¤Î¤Ç¡¢Â¿¾¯½àÈ÷¤¬ÌÌÅݤÀ¤±¤É¤¿¤Ö¤ó¤½¤ì¤Ê¤ê¤Î®ÅÙ¤¬´üÂԤǤ­¤ë¡£

¼Â¤Ï°ÊÁ°¤«¤é one-liner ¤Ê¤ó¤«¤Ç»È¤Ã¤Æ¤Ï¤¤¤¿¤ó¤À¤±¤É¡¢²þ¤á¤ÆÄê·¿ºî¶È¤Ë»È¤¨¤ë¤è¤¦¤Ë¤Á¤ç¤Ã¤È¤·¤¿¥¹¥¯¥ê¥×¥È¤ò½ñ¤¤¤Æ¤ß¤¿¡£

¤Ç¡¢¤½¤Î¤È¤­¤Ëµ¤¤Å¤¤¤¿¤ó¤À¤±¤É¡¢¤³¤ì¡¢¥µ¥¤¥È¤Î¥µ¥ó¥×¥ë¥³¡¼¥É¤¬´Ö°ã¤Ã¤Æ¤¤¤ë¡£

RQR::QRCode.new
RQR::QRCode.create

¤¬Æ±¤¸¤è¤¦¤Ëư¤¯¤è¤¦¤Ë½ñ¤¤¤Æ¤¢¤ë¤ó¤À¤±¤É¡¢new ¤ÎÊý¤Ï block ¤Ï¼õ¤±¼è¤é¤Ê¤¤¡£create ¤ÎÊý¤Ï block ¤ò¼õ¤±¼è¤Ã¤Æ close ¤¹¤ë¤Þ¤ÇÁ´Éô¤Þ¤«¤Ê¤Ã¤Æ¤¯¤ì¤ë¡£¤¢¤È¡¢Windows ÈǤÇÌÌÇò¤¯¤Ê¤¤Æ°¤­¤ò¤¹¤ë¡£

2009-10-14 ¤Î twitter ¤Î¥í¥°¤è¤ê¡£

14:34:29 >wtnabe< ¤¢¡¼ rqr 0.2.2 ¤Ï Windows ¤Ç¥Ð¥°¤Ã¤Æ¤ë¤Î¤«
14:48:53 >wtnabe< ʬ¤«¤Ã¤Æ¤­¤¿¡£RQR::QRCode.new.save ¤À¤ÈÅܤé¤ì¤ë¡£
RQR::QRCode.new { |qr| qr.save } ¤À¤ÈÂç¾æÉס£¤Ç¤â close ¤¬¤Ê¤¤¤Ã¤ÆÅܤé
¤ì¤ë¤Î¤Ï¤Á¤ç¤Ã¤ÈÉ԰¤À¤Ê¤¡¡£

¤È¤¤¤¦¤³¤È¤Ç create »È¤Ã¤Æ¤ª¤¯¤Î¤¬¤¤¤Á¤Ð¤ó̵Æñ¤Ê¤Î¤«¤Ê¡£Windows ¤Ç¤Ê¤ó¤«Ê¸¶ç¸À¤ï¤ì¤ë¤Î¤Ïº£¤Î¤È¤³¤í°®¤ê¤Ä¤Ö¤·¤Æ¤ª¤¯¤·¤«¤Ê¤¤¤ß¤¿¤¤¡£

¢¨ ¤Ê¤ó¤«¡¢³±¤µ¤ó¤¬Èógem´Ä¶­¤Ç¥¤¥ó¥¹¥È¡¼¥ë¤·¤Æ¤ë¡£

²èÁü¤¬É¬Íפʤ¤¾ì¹ç¤Ï¾¤ÎÊýË¡¤Ç¤â¤¤¤¤¤±¤É

¼Â¤Ï¤â¤¦ Web ¾å¤Ë QR ¥³¡¼¥É¤òɽ¼¨¤µ¤»¤ë¤¿¤á¤À¤±¤Ê¤é¤³¤¦¤¤¤¦²èÁü¤òÀ¸À®¤¹¤ë¥Ä¡¼¥ë¤Ï¤Ê¤¯¤Æ¤â¤è¤«¤Ã¤¿¤ê¤¹¤ë¡£¤Ê¤¼¤Ê¤é JavaScript ¤¬¤¢¤ì¤ÐưŪ¤ËÀ¸À®¤Ç¤­¤ë¤«¤é¡£

¤Ç¤âÎ㤨¤Ð°õºþÍѤ˲èÁü¤òÍѰդ·¤¿¤¤¤È¤«¤¤¤¦¾ì¹ç¤Ï¤ä¤Ï¤ê¡Ö²èÁü¡×¤ò¼«Æ°À¸À®¤¹¤ëÊý¤¬³Ú¡£¼ÂºÝ¤Ë¤Ï¤³¤Î rqr ¤À¤±¤Ç¤ÏºÙ¤«¤¤Ä´À°¤ò¤¹¤ë¤Î¤ÏÂçÊѤʤΤǡ¢ImageMagick ¤Ê¤É¤ò³ú¤Þ¤»¤ëɬÍפ¬¤¢¤ë¤È»×¤¦¤±¤É*1¡£

Tags: Ruby

*1 ¼ÂºÝ¡¢·ï¤Î ImageMagick ¤Î¥ª¥×¥·¥ç¥ó¤òÄ´¤Ù¤¿¤Î¤Ï¤³¤Î¤¿¤á¡£


2010-01-22 [ĹǯÆüµ­]

_ ¥¤¥ó¥È¥égem server±¿Íѳ«»Ï

2009.10.29

09:14:00 >wtnabe< gemcutter ¥µ¡¼¥Ð¤ò¥¤¥ó¥È¥é¤ËΩ¤Æ¤é¤ì¤ë¤ÈÊØÍø¤À¤í¤¦¤Ê

2009.12.03

21:14:52 >wtnabe< ¥¤¥ó¥È¥é¤Ë gemcutter ¥µ¡¼¥Ð¤¬¤¢¤ë¤ÈÊØÍø¤À¤è¤Í

¼ò¤ò°û¤ó¤À¤È¤«¤Ç¤Ê¤¯¡¢Ê¿µ¤¤ÇƱ¤¸¤³¤È¤ò¤¯¤êÊÖ¤·¸À¤¦¤è¤¦¤Ë¤Ê¤Ã¤Æ¤­¤Æ¤¤¤ë¡£¤Þ¤¤¤ê¤Þ¤·¤¿¤Ê¡£

¤½¤ì¤Ï¤È¤â¤«¤¯¡¢gem server ¤¬´Êñ¤¹¤®¤Æ¥Ó¥Ó¤ë·ï ¤ò½ñ¤¤¤Æ¤«¤éÃΤé¤ó´Ö¤Ë¤º¤¤¤Ö¤ó»þ´Ö¤¬·Ð¤Ã¤Æ¤·¤Þ¤Ã¤¿¤¬¡¢¤ä¤Ã¤È³èÍѤ·»Ï¤á¤¿¡£

2010.01.22

11:37:34 >wtnabe< ¥¤¥ó¥È¥é¤Ë gem push ¤·¤¿¤¤¤·¤¿¤¤¤È»×¤Ã¤Æ¤¿¤±¤É¡¢¤È¤ê
¤¢¤¨¤º Rakefile ¤Ë scp ¤¹¤ë task ­¤·¤¿¡£permission ¤ò¹Í¤¨¤¿¤¯¤Ê¤¤¤«¤é
DAV ·Ðͳ¤Ë¤·¤¿Êý¤¬¤¤¤¤¤«¤Ê¤¡¡£

¤É¤¦¤·¤¿¤«¤È¤¤¤¦¤È¡¢cutagem ¤Çºî¤Ã¤¿ Rakefile ¤ËľÀܤ³¤ó¤Ê task ¤ò½ñ¤­Â­¤·¤Æ¤ªÃã¤òÂù¤·¤¿¡£²æ¤Ê¤¬¤é¤Ò¤É¤¤¡£

desc "push gem to intra gem server"
task :push_gem do
  name = "#{NAME}-#{VERS}.gem"
  sh %{scp name HOST:/PATH/TO/GEM_SERVER/gems}
end

¤³¤ó¤Ê¤ó¡£¥µ¡¼¥Ð¦¤Ç¤Ï

/etc/cron.hourly/generate_gem_index
#! /bin/sh

GEM_ROOT=/PATH/TO/GEM_SERVER

gem generate_index -d $GEM_ROOT
chown -R Web¥µ¡¼¥Ð¤Ë¤·¤¿¤ó¤À¤Ã¤± $GEM_ROOT

¤³¤ó¤Ê´¶¤¸¤Ç²ó¤·¤Æ¤ë¡£

scp ¤ÇÅꤲ¤ë¤Î¤ä¤á¤Æ DAV ¤ÇÅꤲ¤é¤ì¤ë¤è¤¦¤Ë¤¹¤ì¤Ð¸¢¸Â¤È¤« owner ¤È¤«ÌÌÅݤʤ³¤È¹Í¤¨¤ëɬÍפʤ¯¤Ê¤ë¤è¤¦¤Êµ¤¤â¤¹¤ë¤±¤É¡¢¤¢¤ó¤Þ¹Í¤¨¤Æ¤Ê¤¤¡£¤É¤¦¤»¤·¤Ð¤é¤¯¼«Ê¬¤·¤« push ¤·¤Ê¤¤¤À¤í¤¦¤·¡£

¤¢¤È¤Ï¥¤¥ó¥È¥é¤Ç¾¤Ëư¤¤¤Æ¤ë¥Û¥¹¥È¤Î

/etc/gemrc

¤Ë¡¢¤Ò¤Ã¤½¤ê

:sources:
  - http://HOST/PATH

¤Ç¡¢gem ¤òõ¤¹¥µ¡¼¥Ð¤ò½ñ¤­Â­¤·¤Æ¤ä¤ë¡£

¤Á¤Ê¤ß¤Ë¥¤¥ó¥È¥é¤Îgem¤Ï¥é¥¤¥Ö¥é¥ê¤Ç¤Ï¤Ê¤¯shlauncher¤Ç¸Ç¤á¤¿¥Ä¡¼¥ë·²¤ÎÇÛ¿®¤òÁÛÄꤷ¤Æ¤¤¤ë¡£

Tags: RubyGems Ruby

2010-01-24 [ĹǯÆüµ­]

_ freebsd-update ¤Ç 6.4-RELEASE ¤Ë

¼«Â𥵡¼¥Ð¤Î FreeBSD ¤Ï´ðËÜŪ¤Ë¤Ï¤ªµ¤³Ú¼Â¸³ÍѤʤó¤À¤±¤É¡¢DNS cache ¥µ¡¼¥Ð¤ò·ó¤Í¤Æ¤¤¤ë¤Î¤Ç»ö¸Î¤ë¤È¤Þ¤º¤¤¡£¤½¤¦¤¤¤¦°ÕÌ£¤â´Þ¤á¤Æ¸Å¤á¤Î¤â¤Î¤òÄɤ䫤±¤Æ¤ë¤ó¤À¤±¤É¡¢º£¤Þ¤Ç»È¤Ã¤Æ¤¤¤¿ 6.3 ¤¬ 2010ǯ1·î¤¤¤Ã¤Ñ¤¤¤Ç¥µ¥Ý¡¼¥È¤µ¤ì¤Ê¤¯¤Ê¤ë¤Î¤Ç 6.4 ¤Ë¾å¤²¤¿¡£

freebsd-update

¼ê½ç¤Ï¤³¤ó¤Ê´¶¤¸¡£

freebsd-update -r RELEASE upgrade
freebsd-update -r RELEASE install
shutdown -r now
freebsd-update install

library ¤¬¾å¤¬¤Ã¤Æ ports ¾å¤²¤í¤Ã¤Æ¸À¤ï¤ì¤¿¤Î¤Ç°Ê²¼¤Îºî¶È¤òÄɲá£

portupgrade -af
freebsd-update install

ǰ¤Î¤¿¤á¤â¤¦°ìÅٺƵ¯Æ°¤·¤È¤¤¤¿¡£ports ¤Î full rebuild ¤ÏÅÓÃæ¤ÇÀßÄê¤ò²¿¸Ä¤«Ê¹¤«¤ì¤Ê¤¬¤é¤Ç´ÝȾÆü°Ê¾å³Ý¤«¤Ã¤¿¤«¤Ê¡©

¤½¤¦¤·¤¿¤é ircd-hybrid, nadoka, tiarra ¤Îµ¯Æ°¼þ¤ê¤¬¥¤¥Þ¥¤¥Á¡¢nadoka ¤¬¤¦¤Þ¤¯¤¤¤Ã¤¿¤ê¤¤¤«¤Ê¤«¤Ã¤¿¤ê¤·¤Æ¤ë¡£¤â¤·¤«¤·¤Æ nadoka ¤¬ ircd ¤è¤êÀè¤Ëµ¯¤­¤¿¤ê¤·¤Æ¤ë¤Î¤«¤â¤·¤ì¤Ê¤¤¡£¤É¤¦¤Ë¤«¼êư¤Ç½çÈ֤⤭¤Ã¤Á¤ê°Õ¼±¤·¤ÆºÆµ¯Æ°¤·¤Æ°Õ¿Þ¤·¤¿Æ°¤­¤Ë¡£¤ä¤Ã¤Ñ ircd ¤â God ´ÉÍý¤Ë¤·¤Ê¤­¤ã¥À¥á¤À¤Ê¤¡¡£

Trac ¤¬ 0.11 ¤Çư¤«¤Ê¤¯¤Ê¤Ã¤¿

¢¨ ²ò·èºÑ¤ß¡£¤Ê¤¼¤« mod_fastcgi ¤¬Ìµ¸ú¤Ë¤Ê¤Ã¤Æ¤¿¡£¤³¤ì¤òÌᤷ¤¿¤À¤±¤Çư¤¤¤¿¡£

Trac, pysvn ¼þ¤ê¤Ï¤¤¤Ä¤â¤Á¤ç¤Ã¤È¥Ï¥Þ¤ë¤Î¤ÇÌÌÅݤÇÊüÃÖ¤·¤Æ¤¤¤¿¤ó¤À¤±¤É¡¢portupgrade -af ¤Ç°ì½ï¤Ë¾å¤¬¤Ã¤Æ¤·¤Þ¤Ã¤Æ°Æ¤ÎÄêÆ°¤«¤Ê¤¯¤Ê¤Ã¤¿¡£

¤É¤¦¤â PYTHON_EGG_CACHE ¤¬ÀßÄê¤Ç¤­¤Æ¤¤¤Ê¤¯¤Æ cache ¤òºî¤ë¥Ç¥£¥ì¥¯¥È¥ê¤¬¸«¤Ä¤«¤é¤Ê¤¤¤ß¤¿¤¤¤Ê¤ó¤À¤±¤É¡¢

Apache + FastCGI

¤Çư¤¯ÀßÄ꤬½Ð¤Æ¤³¤Ê¤¤¡£¤Ê¤ó¤« FastCgiConfig --initial-env ¤¸¤ã¤Ê¤¯¤Æ PythonOption ¤ÇÅϤ¹¤ß¤¿¤¤¤Ê¤ó¤À¤±¤É¡¢edgewall ¤ÎÊý¤Ë¥­¥Á¤Ã¤È½ñ¤«¤ì¤Æ¤Ê¤¤¤Ê¤¡¡£Python ÆÉ¤á¤ë¿Í¤¬¼«ÎϤDzò¼á¤·¤Æ¥Ö¥í¥°¤Ë½ñ¤¤¤Æ¤¢¤ë¤Î¤Ï¤¢¤ê¤¬¤¿¤¤¤ó¤À¤±¤É¡¢0.11 ¤¬½Ð¤Æ¤º¤¤¤Ö¤ó·Ð¤Ä¤Î¤Ë¾ðÊó¤¬À°Íý¤µ¤ì¤Æ¤Ê¤¤¤Î¤Ï Python À½¤Î¥Ä¡¼¥ë¤Ã¤Ý¤¯¤Ê¤¤°õ¾Ý¡£

¤È¤ê¤¢¤¨¤º¼«Âð¤Ç Trac ¤Ï½ÅÍפ¸¤ã¤Ê¤¤¤«¤éº£Åٹͤ¨¤è¤¦¡£


2010-01-26 [ĹǯÆüµ­]

_ Mechanize¤Ç̵Ãã¤ò¤¹¤ë

mechanize-0.9.3 Documentation

¼«Ê¬¤Ë¤È¤Ã¤Æ Mechanize ¤Ë¤è¤ë¼«Æ°²½¤Ï¤¿¤¤¤¬¤¤ÌµÍý¤òÄ̤¹¹Ô°Ù¤Ç¤¢¤ë¡£Ê¬¤«¤ê¤ä¤¹¤¯¸À¤¨¤Ð API ¤Ê¤ó¤«¤Ê¤¤¡¢¤¢¤ë¤¤¤Ï¤¢¤Ã¤Æ¤â­¤ê¤Ê¤¤¤ß¤¿¤¤¤Ê¾õÂ֤ǡ¢¤½¤ì¤Ç¤â¤É¤¦¤Ë¤«¼«Æ°²½¤·¤¿¤¤¤«¤é Mechanize ¤ò»È¤¦¡£

Mechanize ¤¬»ý¤Ã¤Æ¤¤¤ëɸ½àŪ¤Êµ¡Ç½¤À¤±¤ÇºÑ¤ó¤Ç¤¤¤ë¾ì¹ç¤Ï¤Þ¤À¤«¤Ê¤ê¥Þ¥·¤Ç¡¢¼ÂºÝ¤Î¤È¤³¤í̵Íý¤È¤¤¤¦¤«¡Ö̵Ãã¡×¤Ê¥ì¥Ù¥ë¤ËÆÍÆþ¤·¤Æ¤·¤Þ¤¦¤³¤È¤¬¡¢¤Ê¤¼¤«¤½¤ì¤Ê¤ê¤Ë¤¢¤Ã¤¿¤ê¤¹¤ë¡£¶ñÂÎŪ¤Ë¤Ï HTML ¤¬²õ¤ì¤Æ¤¤¤ë¤Î¤Ç¥Ñ¡¼¥¹¤Ë¼ºÇÔ¤·¤Æ¡¢¤¢¤ë¤Ï¤º¤ÎÍ×ÁǤ¬¤Ê¤¯¤Ê¤Ã¤Æ¤¤¤¿¤ê¤¹¤ë¾ì¹ç¤Ê¤É¤Ç¤¢¤ë¡£

º£²ó¤Ï¤½¤ó¤Ê̵Ãã¤Î°ìÉô¤ò¤´¾Ò²ð¡£

¥Ñ¡¼¥µ¤ò Hpricot ¤ËÊѤ¨¤ë

¤º¤Ð¤ê´ðËܤǤ·¤ç¤¦¡£

Mechanize ¤Ï 0.9 °Ê¹ß¥Ç¥Õ¥©¥ë¥È¥Ñ¡¼¥µ¤ò Hpricot ¤«¤é Nokogiri ¤ËÀÚ¤êÂØ¤¨¤Æ¤¤¤ë¤¬¡¢¤½¤â¤½¤â Nokogiri ¤Ï HTML ÍѤˤǤ­¤Æ¤¤¤Ê¤¤¡£XML ÍÑ¤ÎÆ»¶ñ¤Ë¡¢ Hpricot ¤Ë¤è¤¯»÷¤¿¥¤¥ó¥¿¡¼¥Õ¥§¥¤¥¹¤òÉÕ¤±¤¿¤â¤Î¤Ç¤¢¤ë¡£HTML ¤Ï¼«Í³Å٤ι⤤½ñ¼°¤Ç¡¢XML ÍѤΥΥ³¥®¥ê¤Ç¤Ï»õ¤³¤Ü¤ì¤òµ¯¤³¤¹¤³¤È¤¬¤è¤¯¤¢¤ë¡£

¤½¤³¤Ç¤³¤ÎÀßÄê¡Ê0.9.0 ¡Á 0.9.2¡Ë¡£

require 'hpricot'
WWW::Mechanize.html_parser = Hpricot

cf.

0.9.3 ¡Ê°Ê¹ß¡©¡Ë¤Ï¥µ¥Ö¥¯¥é¥¹¤ÎÍøÍѤËÃí°Õ

html_parser ¤¬¥¤¥ó¥¹¥¿¥ó¥¹¤Î¥¢¥¯¥»¥Ã¥µ¤È¤·¤ÆÄêµÁ¤µ¤ì¤¿¤Î¤Ç¥¤¥ó¥¹¥¿¥ó¥¹¤´¤È¤Ë parser ¤ò¥»¥Ã¥È¤Ç¤­¤ë¤è¤¦¤Ë¤Ê¤Ã¤¿¤Î¤Ï¤¤¤¤¤ó¤À¤±¤É¡¢Mechanize¥¯¥é¥¹¥ª¥Ö¥¸¥§¥¯¥È¤Î¥¤¥ó¥¹¥¿¥ó¥¹ÊÑ¿ô¤ò self.class ¤Ç»²¾È¤·¤Æ¼«¿È¤Ë½ñ¤­Ìᤷ¤Æ¤¤¤ë¤Î¤Ç¡¢

¥µ¥Ö¥¯¥é¥¹¤ËÈ¿±Ç¤µ¤ì¤Ê¤¤

¾õÂ֤ˤʤäƤ¤¤ë¡£¡Ê¾¯¤Ê¤¯¤È¤â Ruby 1.8.7 ¤Ç¤Ï parser ¤¬ nil ¤Ë¤Ê¤Ã¤ÆÆ°¤«¤Ê¤«¤Ã¤¿¡£¡ËÄêµÁÉôʬ¤Ï°Ê²¼¤Î¤è¤¦¤Ê´¶¤¸¡£

class Mechanize
  ...
  @html_parser = Nokogiri::HTML
  class << self; attr_accessor :html_parser, :log end
  def initialize
    ...
    @html_parser = self.class.html_parser
  end
  ...
end

ư¤«¤¹¤È¤³¤ó¤Ê´¶¤¸¡£

$ cat sub_mechanize.rb
class SubMechanize < WWW::Mechanize
end
$ irb
irb(main):001:0> require 'mechanize'
=> true
irb(main):002:0> a = WWW::Mechanize.new
=> (snip)irb(main):003:0> a.html_parser
=> Nokogiri::HTML
irb(main):004:0> require './sub_mechanize'
=> true
irb(main):005:0> b = SubMechanize.new
=> (snip)
irb(main):006:0> b.html_parser
=> nil

¶²¤é¤¯ Mechanize ¤Î¥¤¥ó¥¹¥¿¥ó¥¹¤Ë¤Ä¤¤¤Æ¤Ï html_parser ¤Î¥»¥Ã¥ÈÊýË¡¤Ë¸ß´¹À­¤ò¤È¤ê¤Ä¤Ä¥¤¥ó¥¹¥¿¥ó¥¹¤´¤È¤ËÀßÄê¤Ç¤­¤ë¤è¤¦¤Ë¤·¤¿¤«¤Ã¤¿¤¿¤á¤Ë¤³¤¦¤Ê¤Ã¤¿¤ó¤À¤í¤¦¤±¤É¡¢¤¤¤Ä¤â¥Ç¥Ð¥Ã¥°¤·¤ä¤¹¤¤¤è¤¦¤ËÆÈ¼«¤Î¥µ¥Ö¥¯¥é¥¹¤ò³ú¤Þ¤·¤Æ¤¤¤¿*1¤Î¤Ç¡¢¤Þ¤Ã¤¿¤¯ parse ¤Ç¤­¤Ê¤¤¸½¾Ý¤Ë¥Ï¥Þ¤Ã¤Æ¤·¤Þ¤Ã¤¿¡£»ÅÊý¤Ê¤¤¤Î¤Ç¥µ¥Ö¥¯¥é¥¹¤ÎÃæ¤ÇÆÈ¼«¤ËÄêµÁ¤¹¤ë¤³¤È¤Ë¤·¤¿¡£

class SubMechanize < WWW::Mechanize
  def initialize
    super
    @html_parser = Hpricot
  end
end

¤³¤ó¤Ê¤ó¤Ç¤¤¤¤¤Î¤«¤Ê¡£

cf. Ruby¤ÎMechanize¤Î0.9.3¤¬6·î8Æü¤Ë½Ð¤Æ¤¿¤Ã¤Ý¤¤ - ¤­¤¿¤â¤â¤ó¤¬¤¬¤­¤¿¤ó¡£

Field ¤òºî¤ë

¤³¤ì¤Ï¤Þ¤À½éµé¡£

Form#add_field!( name, value )

̵ÂÌ¤Ë JavaScript ¤ËʬΥ¤·¤¿¥Õ¥©¡¼¥à¤Î¾ì¹ç¡¢É¬Í×¤Ê field ¤¬ HTML ¾å¤Ë¸ºß¤·¤Ê¤¤¤³¤È¤¬¤è¤¯¤¢¤ë¡£¤½¤ÎÃͤò̵ÍýÌðÍý form ¾å¤ËÈ¿±Ç¤¹¤ë¤¿¤á¤Ë»È¤¦¡£

FileUpload ¤òºî¤ë

¤³¤ì¤Ëµ¤¤Å¤¤¤¿¤È¤­¤Ë¤Ï¤±¤Ã¤³¤¦´ò¤·¤«¤Ã¤¿¡£add_field! ¤Ç¤Ï Field ¤Ïºî¤ì¤Æ¤â FileUpload ¤Ïºî¤ì¤Ê¤¤¤«¤é¡£

¤É¤¦¤ä¤ë¤«¤È¤¤¤¦¤È¡¢Form ¥ª¥Ö¥¸¥§¥¯¥È¤ËÂФ·¤Æ instance_eval ¤ò»È¤¦¡£

Form#enctype = 'multipart/form-data'
Form#instance_eval {
  @file_uploads << WWW::Mechanize::Form::FileUpload.new( name[, filename] )
}

¤â¤È¤â¤È file_upload ¤¬Â¸ºß¤·¤Ê¤¤ form ¤È¤·¤Æ²ò¼á¤·¤¿¾ì¹ç¤Ï enctype ¤¬°ã¤¦¤³¤È¤¬¤¢¤ë¡Ê¤È¤¤¤¦¤«»ØÄꤷ¤Æ¤Ê¤¤¤«¤â¡Ë¤Î¤Ç¼ê¤ÇÊѹ¹¤·¤Æ¤¢¤²¤ë¤ÈµÈ¡£

Form ¤òºî¤ë

instance_eval() ¤ò»×¤¤½Ð¤·¤Æ¤·¤Þ¤¨¤Ð´Êñ¡£¤â¤¦ form ¤½¤Î¤â¤Î¤ò²ò¼á¤Ç¤­¤Þ¤»¤ó¤Ç¤·¤¿¤È¤¤¤¦¶§°­¤Ê HTML ¸þ¤±¡£

Page#instance_eval {
  @forms << WWW::Mechanize::Form.new( node[, mech, page] )
}

node ¤Ë¤Ï Hpricot::Elem ¥ª¥Ö¥¸¥§¥¯¥È¤òÆþ¤ì¤Æ¤¢¤²¤ì¤Ð ok.

¤³¤Î¤È¤­¡¢Hpricot::Elem ¤Ë¤Ê¤ì¤Ð¸µ¤Îʸ»úÎó¤Ï¤Ê¤ó¤Ç¤â¤è¤¤¤Î¤Ç¡¢

Form.new( Hpricot( String#scan( /<form.*?>.*?<\/form>/m ).to_s ).at( 'form' ) )

¤ß¤¿¤¤¤Ê¤³¤È¤â¤Ç¤­¤ë¡£HTML ¤¬²õ¤ì¤Æ¤¤¤ë¤Î¤ÇÀµµ¬É½¸½¤Ç¤¤¤Ã¤¿¤ó form ¤À¤±°ú¤Ã¤³È´¤¤¤Æ¡¢¤½¤ì¤ò Hpricot ¥ª¥Ö¥¸¥§¥¯¥È¤ËÌᤷ¤Æ¤ä¤Ã¤Æ Form ¤òºî¤ë¡£ÅÓÃæ¤ÎÀ°·Á¤â»×¤¤¤Î¤Þ¤Þ¡£

Page ¤òºî¤ë

Page ¤òºî¤ë¤Î¤Ï¤Á¤ç¤Ã¤È¼ê¤¬³Ý¤«¤ë¡£°ÊÁ°ºî¤Ã¤¿¤â¤Î¤ò gist ¤ËÃÖ¤¤¤Æ¤¢¤ë¤Î¤Ç»²¹Í¤Ë¤Ê¤ì¤Ð´ò¤·¤¤¡£

*1 http://gist.github.com/76140