2008-12-02 [ĹǯÆüµ]
_ RotationMaker ¤òºî¤Ã¤¿
ºÇ¶á¤Ï iCal ¤Å¤¤¤Æ¤¤¤Þ¤¹¡£
/lang/ruby/misc/rotation-maker – CodeRepos::Share – Trac
¤³¤ì¤Ï²¿¤«¡©
README ¤è¤êÈ´¿è
- Î㤨¤ÐËè½µ·îÍˤ˲¿¤«¤ä¤ê¤Þ¤¹
- ¥á¥ó¥Ð¡¼¤¬ 5¿Í¤¤¤ÆÃ´Åö¤Ï 2¿Í¤º¤Ä¤È¤·¤Þ¤¹
- ¤¤¤Ä郎ôÅö¤¹¤ë¤Î¤«À衹¤ÎͽÄê¤ò»»½Ð¤·¤¿¤¤
- ¥Ï¥Ã¥Ô¡¼¥Þ¥ó¥Ç¡¼¤¬¤¢¤ë¤Î¤Ç¡¢¤½¤Î¾ì¹ç¤Ï²ÐÍˤ˥¹¥é¥¤¥É
¤ß¤¿¤¤¤Ê¤È¤¤ËÊØÍø¤«¤â¤·¤ì¤Ê¤¤¥Ä¡¼¥ë¤Ç¤¹¡£
»È¤¤Êý
¥ª¥×¥·¥ç¥ó¤òÍ¿¤¨¤º¤Ëµ¯Æ°¤¹¤ë¤È¤Ê¤ó¤È¤Ê¤¯Ê¬¤«¤ê¤Þ¤¹¡£¤¿¤Ö¤ó¡£
$ ruby rotation-maker.rb
Usage: rotation-maker [options]
-x, --exclude DATE
--exclude-from-ical ICS
--exclude-from-file FILE
--exmethod [METHOD]
-s, --dtstart DATE
-e, --dtend DATE
-i, --interval INTERVAL
-d, --date EVENT DATE
--date-from-ical ICS
--date-from-file FILE
-m, --member MEMBER
--member-from-file FILE
-a, --atonce NUMBER
-y, --yaml FILE
ºÇÄã¸ÂɬÍפʤâ¤Î¤Ï
- date
- member
¤Ç¤¹¡£-d ¤ä -m ¤òÊ£¿ô½ñ¤¤¤Æ¤â¤¤¤¤¤Ç¤¹¤¬¡¢¤½¤ì¤¾¤ì1¹Ô1¥¢¥¤¥Æ¥à·Á¼°¤Î¥Õ¥¡¥¤¥ë¤«¤éÆÉ¤ß¹þ¤Þ¤»¤ë¤³¤È¤â¤Ç¤¤Þ¤¹¡£
¤Þ¤¿¡¢date ¤Ç¤Ï¤Ê¤¯ -s START, -e END, -i INTERVAL ¤Ç¤¯¤êÊÖ¤·¤ÎͽÄê¤òµ½Ò¤¹¤ë¤³¤È¤â¤Ç¤¤Þ¤¹¡£INTERVAL ¤Ï´ðËÜŪ¤ËÀ°¿ô¤Ç¤¹¤¬¡¢activesupport ¤ò¥¤¥ó¥¹¥È¡¼¥ë¤·¤Æ¤¢¤ì¤Ð week, month, year ¤â»ØÄê¤Ç¤¤Þ¤¹¡£
exclude ¤Ç½ü³°¤¹¤ëÆüÉÕ¤ò»ØÄꤷ¤Þ¤¹¡£¥Ç¥Õ¥©¥ë¥È¤Ç¤Ï½ü³°Æü¤ËͽÄ꤬Åö¤¿¤Ã¤¿¤é¤½¤ÎÆü¤Ï¥¹¥¥Ã¥×¤·¤Þ¤¹¡£exmethod ¥ª¥×¥·¥ç¥ó¤Ë backload ¤òÍ¿¤¨¤Æ¤¤¤¿¤é¼¡¤ÎÆü¤Ë¤º¤é¤·¤Þ¤¹¡£¼¡¤ÎÆü¤â½ü³°Æü¤À¤Ã¤¿¤é½ü³°Æü¤Ç¤Ê¤¯¤Ê¤ë¤Þ¤Ç¥¹¥é¥¤¥É¤·¤Þ¤¹¡£*1
¤¢¡¢º£µ¤¤Å¤¤¤¿¤±¤É slide ¥ª¥×¥·¥ç¥ó¤Ï YAML ¤«¤é¤·¤«Í¿¤¨¤é¤ì¤Ê¤¤¤¸¤ã¤Ê¤¤¤«¡£¸å¤Çľ¤·¤Þ¤¹¡£
YAML ¤ÇÀßÄê¤ò½ñ¤¯¾ì¹ç¤Ï¤³¤ó¤Ê´¶¤¸¤Ç½ñ¤¤Þ¤¹¡£
dtstart: '2008-12-01' dtend: '2009-03-31' interval: week atonce: 2 exmethod: backload members: - abc - def - ghi - jkl - mno - pqr - stu excludes: # PATH or URI ical: http://www.google.com/calendar/ical/japanese%40holiday.calendar.google.com/public/basic.ics
½ÐÎÏÉôʬ¤Ï¼«Ê¬¤Ç½ñ¤¤¤Æ¤¯¤À¤µ¤¤^^;
Î㤨¤Ð¤³¤ó¤Ê´¶¤¸¤Î¤â¤Î¤òÍѰդ¹¤ë¤È iCal ·Á¼°¤ÇͽÄê¤òÅǤ½Ð¤»¤Þ¤¹¡£
#! /usr/bin/env ruby # -*- coding: utf-8 -*- require File.dirname( __FILE__ ) + '/rotation-maker' require 'erb' require 'nkf' def main rot = RotationMaker.new.run puts NKF::nkf( '-w -Lw', ERB.new( template, nil, '-' ).result( binding ) ) end def serialized_time( time ) return time.gsub( /-/, '' ) end def template return <<EOD BEGIN:VCALENDAR VERSION:2.0 BEGIN:VTIMEZONE TZID:Asia/Tokyo X-LIC-LOCATION:Asia/Tokyo BEGIN:STANDARD TZOFFSETFROM:+0900 TZOFFSETTO:+0900 TZNAME:JST DTSTART:19700101T000000 END:STANDARD END:VTIMEZONE <%- rot.each do |r| -%> BEGIN:VEVENT SUMMARY:¼ÒÆâÊÙ¶¯²ñ DESCRIPTION:ȯɽ <%= r['member'].join( ', ' ) %> DTSTART;TZID=Asia/Tokyo:<%= serialized_time( r['date'] ) %>T180000 DTEND;TZID=Asia/Tokyo:<%= serialized_time( r['date'] ) %>T190000 END:VEVENT <%- end -%> END:VCALENDAR EOD end main
·ë²Ì¤Ï¤³¤ó¤Ê´¶¤¸¡£

¤¢¡£¤¢¤ì¡© Google Calendar ¤Ë¤¢¤ë Japanese Holidays ¤ÎÀ®¿Í¤ÎÆü¤Î¾ðÊó¤¬
DTSTART;VALUE=DATE:20090112 DTEND;VALUE=DATE:20090113 DTSTAMP:20081203T115909Z
¤Ë¤Ê¤Ã¤Æ¤Þ¤¹¤Í¡£¸«¤¿ÌÜ¤Ï 12Æü¤À¤±¤Ë¸«¤¨¤ë¤ó¤À¤±¤É¡£¤¨¡¼¤Þ¤¡¡¢¤³¤ì¤Ï¥Ç¡¼¥¿¤ÎÌäÂê¤È¤¤¤¦¤³¤È¤Ç¡£
ÌäÂê¤È¤¤¤¦¤«
iCal ¤Î Rrule *2¤Ã¤Æ¡¢¤¯¤êÊÖ¤·¤Î½ªÎ»¤¬»ØÄꤵ¤ì¤Æ¤¤¤Ê¤¤¾ì¹ç¡¢Ìµ¸Â¤Ë³¤¤¤Æ¤·¤Þ¤¤¤Þ¤¹¤è¤Í¡© ¤³¤ì¤ò¤É¤¦°·¤Ã¤¿¤é¤¤¤¤¤Î¤«¤¬Á´Á³Ê¬¤«¤Ã¤Æ¤¤¤Þ¤»¤ó¡£º£²ó¡¢½ü³°Æü¤òÀßÄê¤Ç¤¤ë¤è¤¦¤Ë¤·¤¿¤¿¤á¡¢½ü³°Æü¤ò Array ¤Ë¤·¤Æ Array#include? ¤Ç¥Á¥§¥Ã¥¯¤·¤Æ¤¤¤ë¤Î¤Ç¤¹¤¬¡¢Array ¤Ç̵¸Â¤Ê¤ó¤Æ°·¤¨¤Ê¤¤¤Ç¤¹¤è¤Í¡£
¼ÂºÝ¤Ë¤Ï Vpim::Icalendar ¤¬¥¤¥Ù¥ó¥È¤ÎÆü»þ¾ðÊó¤ò DateTime ¤Ç¤Ï¤Ê¤¯ Time ¤Ç°·¤Ã¤Æ¤¤¤ë¤¿¤á¡¢2037ǯÌäÂê¤Ë°ú¤Ã¤«¤«¤Ã¤ÆÍ¸Â¤ÎÇÛÎó¤ò¼èÆÀ¤¹¤ë¤³¤È¤¬¤Ç¤¤Æ¤¤¤ë¤Î¤Ç¤¹¤¬¡¢ËÜÅö¤Ë̵¸Â¤Î¤â¤Î¤ò°·¤¤¤¿¤¤¾ì¹ç¤ÏÁ´Éô¤ò·×»»¤Ç°·¤¦ Array °Ê³°¤Î²¿¤«¤¬É¬Íפˤʤë¤ó¤¸¤ã¤Ê¤¤¤«¤È»×¤Ã¤Æ¤¤¤Þ¤¹¡£¤È¤Ë¤«¤¯Æ°¤¯¤â¤Î¤òºî¤ê¤¿¤«¤Ã¤¿¤Î¤Ç¤½¤ÎÊÕÆÍ¤Ã¹þ¤ó¤ÇÄ´¤Ù¤Æ¤Þ¤»¤ó¤¬¡£
¤Þ¤¿¤³¤Î¤¿¤á Time ¤Î ArgumentError ¤ò rescue ¤·¤Æ¤½¤Î¤Þ¤ÞÃΤé¤ó´é¤¹¤ë¤È¤¤¤¦Ë½µó¤Ë½Ð¤Æ¤¤¤Þ¤¹¡£¤³¤ó¤Ê¤ó¤¸¤ã¤¤¤«¤ó¤è¤Ê¤¡¡£limit ¤òÀߤ±¤ë¤è¤¦¤Ë¤·¤¿Êý¤¬¤¤¤¤¤Î¤«¡¢Icalendar ¤ËÌᤷ¤¿Êý¤¬¤¤¤¤¤Î¤«¡£Icalendar ¤Ï DateTime ¤Ç°·¤Ã¤Æ¤¤¤ë¤Î¤Ç¾¯¤Ê¤¯¤È¤â 2037ǯÌäÂê¤Ë¤Ï°ú¤Ã¤«¤«¤é¤Ê¤½¤¦¤Ê¤Î¤Ç¤¹¤¬¡£Icalendar ¤Ë¤³¤Î include?( date ) ¤ß¤¿¤¤¤ÊÊØÍø¥á¥½¥Ã¥É¤¬¤¢¤ì¤Ð Array ¤ËŸ³«¤¹¤ë¤³¤È¤Ê¤¯½èÍý¤ò³¤±¤é¤ì¤ë¤Î¤«¤Ê¡£¤¿¤À¡¢¼ÂºÝ¤Ë¤Ï¤É¤³¤«¤Ç¶èÀÚ¤é¤Ê¤¤¤È½èÍý¤¬½ª¤ï¤é¤Ê¤¤¤Î¤Ç¤É¤Ã¤Á¤ß¤Á limit ¤ÏÍפë¤Î¤«¡£
Icalendar ¤Ï Icalendar ¤Ç to_ical ¤¬¥Þ¥ë¥Á¥Ð¥¤¥Èʸ»úÎó¤ò¤Ö¤Ã¤¿ÀÚ¤ëÌäÂ꤬¤¢¤ë¤·¤Ê¤¡¡£¤Õ¡¼¤àǺ¤Þ¤·¤¤¡£
²¿¤«¤´Â¸ÃΤÎÊý¤Ï¥Ä¥Ã¥³¥ß¤¯¤À¤µ¤¤¡£
TODO ¤È¤«
slide ¥ª¥×¥·¥ç¥ó¤ò¥³¥Þ¥ó¥É¥é¥¤¥ó¤«¤é¤âÍ¿¤¨¤é¤ì¤ë¤è¤¦¤Ë¤¹¤ëslide ¥ª¥×¥·¥ç¥ó¤ÇͽÄê¤ÎÁ°Åݤ·¤â¤Ç¤¤ë¤è¤¦¤Ë¤¹¤ë- ÅÚÆü¤ò½ü³°¤¹¤ë¤Î¤Ï¤â¤Ã¤È´Êñ¤Ë¤Ç¤¤Æ¤â¤¤¤¤¤è¤¦¤Êµ¤¤¬¤¹¤ë
¤²¡£
*atonce ¤ò¥³¥Þ¥ó¥É¥é¥¤¥ó¤«¤éÍ¿¤¨¤é¤ì¤ë¤è¤¦¤Ë¤¹¤ë¡ä¡ã
»²¹Í
- http://icalendar.rubyforge.org/
- vPim - vCard and iCalendar support for Ruby
- RFC 2445 - Internet Calendaring and Scheduling Core Object Specification (iCalendar)
2008-12-04 Äɵ
Á°¤Î¥¨¥ó¥È¥ê¤Î¥Ä¡¼¥ë¤â°ì½ï¤Ë checkout ¤Ç¤¤ë¤è¤¦¤Ë¤·¤Þ¤·¤¿¡£¼ê·Ú¤Ë cat ¤Ç¤¤ë¤Ê¤é·î¿å¶â¥«¥ì¥ó¥À¡¼¤È¤«¤Ç¤â³ä¤È¤¹¤°ºî¤ì¤ë¤Î¤Ç¡¢¤³¤Ã¤Á¤Ç´èÄ¥¤ê¤¹¤®¤ëɬÍפʤ¤¤«¤Ê¤¡¤È¤¤¤¦µ¤¤¬¤·¤Æ¤¤Þ¤·¤¿¡£
2008-12-04 [ĹǯÆüµ]
_ AutoPagerize ¤ò¥¤¥ó¥È¥é¥¢¥×¥ê¤Ç
AutoPagerize ¤ò¾ïÍѤ¹¤ë¤è¤¦¤Ë¤Ê¤Ã¤Æ¤«¤é½é¤á¤Æ CodeRepos ¤Î Trac ¤ò¸«¤Ë¹Ô¤Ã¤Æµ¤¤Å¤¤¤¿¡£
²¿¤â¤»¤º¤Ë changeset ¤òÁ̤ì¤ë¡ª
AutoPagerize ¤Î¥á¥ê¥Ã¥È¤ÏÍý²ò¤·¤Æ¤¤¤¿¤Ä¤â¤ê¤À¤Ã¤¿¤±¤É¡¢º£²ó¤¬¤¤¤Á¤Ð¤ó´¶Æ°¤·¤¿¡£¤Ê¤ó¤Ç¤«¤Ê¤È»×¤Ã¤¿¤ó¤À¤±¤É¡¢ÉáÃÊ AutoPagerize ¤ÎÂоݤˤʤë¥Ú¡¼¥¸¤Ï
- ¥Ë¥å¡¼¥¹¥µ¥¤¥È¤Îʬ³äµ»ö¡ÊºÇ¶á¤³¤ì¿¤¹¤®¡Ë
- ¸¡º÷·ë²Ì°ìÍ÷
¤¯¤é¤¤¤Ç¡¢¼Â¤Ï¤³¤ÎÆó¤Ä¤Ï AutoPagerize ¤¬¤Ê¤¯¤Æ¤â¤¢¤ëÄøÅÙ¤ÎʬÎ̤ξðÊó¤ò°ìÌܤdzÎǧ¤Ç¤¤ë¡£
¤·¤«¤· changeset ¤Î¾ì¹ç¤Ï¶Ëü¤ÊÏᢤۤȤó¤É¾ðÊóÎ̤Τʤ¤ changeset ¤¬ÅÓÃæ¤Çº®¤¶¤Ã¤Æ¤¤¤¿¤ê¤¹¤ë*1¤Î¤Ç¡¢°ì¤Ä¤º¤Ä¤á¤¯¤é¤Ê¤±¤ì¤Ð¤¤¤±¤Ê¤¤¾õÂÖ¤¬·ë¹½¥¹¥È¥ì¥¹¤À¤Ã¤¿¤è¤¦¤À¡£¼«³Ð¤Ï¤Ê¤«¤Ã¤¿¤±¤É¡¢AutoPagerize ¤¬Íø¤¤¤¿¤È¤¤Î¶Ã¤¤Î¤Ç¤«¤µ¤¬¤½¤ì¤ò¼¨¤·¤Æ¤¤¤ë¡£¤Ê¤ë¤Û¤É¡¢¤³¤ì¤¬¡Ö¥¼¥í¥¯¥ê¥Ã¥¯¤Ë¤¹¤ë³×Ì¿¡×¤Ê¤ï¤±¤À¡£
¤È¤¤¤¦¤³¤È¤ÇÁᮥ¤¥ó¥È¥é¤Î Trac ¤Ç¤â AutoPagerize ¤¬Íø¤¯¤è¤¦¤Ë¤·¤¿¤¤¤Ê¤È»×¤Ã¤¿¤ó¤À¤±¤É¡¢¤³¤³¤ÇÆó¤ÄÌäÂ꤬¡£
- ¥¤¥ó¥È¥é¥¢¥×¥ê¤Î SITEINFO ¤ò Wedata ¤Ë¾å¤²¤ë¤ï¤±¤Ë¤Ï¤¤¤«¤Ê¤¤
- ¤«¤È¤¤¤Ã¤Æ localhost ¤Î AutoPagerize ¤ò½ñ¤´¹¤¨¤ëÊýË¡¤Ç¤Ï²¸·Ã¤Ëͤ«¤ì¤ë¤Î¤Ï¼«Ê¬°ì¿Í¡£´î¤Ó¤òʬ¤«¤Á¹ç¤¦¤³¤È¤¬¤Ç¤¤Ê¤¤¡£
¤½¤³¤Çº£²ó¤Ï¥¤¥ó¥È¥éÆâ¤Ë HTTP ¤Ç JSON ¤òÄ󶡤·¤Æ¤¯¤ì¤ë¾ì½ê¤òÍѰդ¹¤ë¤³¤È¤Ë¤·¤¿¡£¤³¤ì¤Ê¤éºÇ½é¤Î°ì²ó¤Ï AutoPagerize ¤Î½ñ¤´¹¤¨¤¬É¬ÍפÀ¤±¤É¡¢°Ê¹ß¤Ï SITEINFO ¤òÄɲ䷤Ƥ¤¤¯¤È¤É¤ó¤É¤óÂбþ¥¢¥×¥ê¤òÁý¤ä¤¹¤³¤È¤¬¤Ç¤¤ë¡£
¥¤¥ó¥È¥é¤Î HTTP ¤Ç JSON ¤ò serve
¤¦¤Á¤Î¾ì¹ç¡¢Subversion ¤ò WebDAV ¤Ç±¿ÍѤ·¤Æ¤¤¤ë¤Î¤Ç¡¢Web ¥µ¡¼¥Ð¼þ¤ê¤ÇÆÃ¤Ë¤ä¤ë¤³¤È¤Ï¤Ê¤¤¡£¶ñÂÎŪ¤ÊÊýË¡¤Ï
JSON ¤ò Subversion ¥ê¥Ý¥¸¥È¥ê¤ËÆÍ¤Ã¹þ¤ó¤Ç¤½¤Î URL ¤ò AutoPagerize ¤Ë¶µ¤¨¤Æ¤ä¤ë¤À¤±
¥³¡¼¥É¾å¤Ç¤Ï
var SITEINFO_IMPORT_URLS = [ 'http://wedata.net/databases/AutoPagerize/items.json', ]
¤Ë¥¤¥ó¥È¥é¤Î JSON ¤Î URL ¤ò½ñ¤Â¤·¤Æ¤ä¤ì¤Ð¥ª¡¼¥±¡¼¡£
JSON ¥Õ¥¡¥¤¥ë¤òºî¤ë
SITEINFO ¤òºî¤ë¤Ë¤Ï¤Þ¤ººÇ½é
var SITEINFO = [
{
url: ,
nextLink,
pageElement,
exampleUrl
}
]
¤ò½ñ¤´¹¤¨¤Æ¤¤¤¯¡£¤³¤Î²áÄø¤Ï Wedata ¤Ë¾å¤²¤ë¾ì¹ç¤È°ì½ï¡£
Wedata ¤Ë¾å¤²¤ë¾ì¹ç¤Ï¤³¤Î¤Þ¤Þ¤Ç¤¤¢¤¬¤Ã¤¿¤â¤Î¤ò¥³¥Ô¥Ú¤¹¤ë¤À¤±¤Ç¤è¤¤¡£AutoPagerize ¤Ç¤Ï JSON ¤ò¼õ¤±¼è¤Ã¤Æ¥Ñ¡¼¥¹¤¹¤ë¤¬¡¢Àè¤Û¤É¥³¥Ô¥Ú¤·¤¿¥Ç¡¼¥¿¤ò Wedata ¦¤Ç JSON ¤Ë¤·¤ÆÄ󶡤·¤Æ¤¯¤ì¤ë¤Î¤Ç Wedata ¤Ë¾å¤²¤ë¾ì¹ç¤Ïñ¤Ê¤ë¥³¥Ô¥Ú¤Ç¤è¤¤¤Î¤À¡£
¤·¤«¤·¥¤¥ó¥È¥é JSON ¤Î¾ì¹ç¤Ï
¼«Ê¬¤Ç Wedata ·Á¼°¤Ë¹ç¤ï¤»¤Æ JSON ¤Ë¥¨¥ó¥³¡¼¥É¤·¤Æ¤ä¤ëɬÍפ¬¤¢¤ë
¤³¤³¤À¤±¤¬°ã¤¦¡£
¤Þ¤º Wedata ¤«¤é¤É¤¦¤¤¤¦¥Õ¥©¡¼¥Þ¥Ã¥È¤Ç¥Ç¡¼¥¿¤¬Íè¤Æ¤¤¤ë¤Î¤«³Îǧ¡£¤³¤Î´Ö ºî¤Ã¤¿¤â¤Î¤Ç¸«¤Æ¤ß¤ë¤È¤³¤ó¤Ê´¶¤¸¡£
{
"name": "i\u30bf\u30a6\u30f3\u30da\u30fc\u30b8 (Lite)",
"updated_at": "2008-11-29T21:33:09+09:00",
"database_resource_url": "http:\/\/wedata.net\/databases\/AutoPagerize",
"created_by": "wtnabe",
"resource_url": "http:\/\/wedata.net\/items\/25850",
"data": {
"pageElement": "\/\/table[descendant::hr][position() > 1]",
"url": "^http:\/\/(?:www\\.)?itp\\.ne\\.jp\/servlet\/jp\\.ne\\.itp ...",
"nextLink": "\/\/a[text() = \"\u6b21\u3000\u30da\u30fc\u30b8\"]",
"exampleUrl": "http:\/\/itp.ne.jp\/servlet\/jp.ne.itp.sear.SKWSVmai ..."
},
"created_at": "2008-11-28T11:18:17+09:00"
}
¤È¤¤¤¦¤³¤È¤Ï
{
"data": {
"pageElement": "",
"url": "",
"nextLink": "",
"exampleUrl": ""
}
}
¤¬¤¢¤ì¤Ð¤¤¤¤¤ó¤À¤Ê¡£Á´ÂΤȤ·¤Æ¤Ï
[
{
"data": {
"pageElement": "",
"url": "",
"nextLink": "",
"exampleUrl": ""
}
},
{
"data": {
"pageElement": "",
"url": "",
"nextLink": "",
"exampleUrl": ""
}
},
...
]
¤³¤ó¤Ê´¶¤¸¤Ë¤Ê¤ë¡£
JSON ¤Ï°Õ³°¤Ê¤Û¤É¤¤Ã¤Á¤ê¤·¤Æ¤¤¤Æ¡¢key ¤âʸ»úÎó¤Ç¤Ê¤±¤ì¤Ð¤¤¤±¤Ê¤¤¤È¤«Ê¸»úÎó¤Ï " ¤Ç°Ï¤àɬÍפ¬¤¢¤Ã¤¿¤ê¤¹¤ë¤ó¤À¤±¤É¡¢¤½¤¦¤¤¤¦¤Î¤Ï¤¤¤Á¤¤¤Á¼«Ê¬¤Çµ¤¤Ë¤¹¤ë¤Î¤Ï¤Ð¤«¤é¤·¤¤¤Î¤Ç¡¢´°À®¤·¤¿¤éŬÅö¤Ê¥Ä¡¼¥ë¤ò»È¤Ã¤Æ¥¨¥ó¥³¡¼¥É¤¹¤ë¤È¤è¤¤¡£
¼«Ê¬¤Î¾ì¹ç¤Ï AutoPagerize Æâ¤ËľÀܽñ¤¤¤¿ SITEINFO ¤òÊÌ¥Õ¥¡¥¤¥ë¤Ë½ñ¤½Ð¤·¤Æ¡¢Ruby ¤Ê¤ê PHP ¤Ê¤ê¤Ç¥¨¥ó¥³¡¼¥É¤·¤Æ¡¢¤½¤ì¤òÀè¤Û¤É¤Î JSON ¥Õ¥¡¥¤¥ë¤ÎÊý¤Ë¥³¥Ô¥Ú¤·¤Æ¤¤¤ë¡£
¥¤¥ó¥È¥é AutoPagerize¡¢¤³¤ì¤ÏÊØÍø¡£
¤Á¤Ê¤ß¤Ë Trac ¤Î SITEINFO ¤Ï 0.10 ·Ï¤È 0.11 ·Ï¤Ç°Û¤Ê¤ë¡£CodeRepos ¤Ï¤³¤ÎÃʳ¬¤Ç 0.11 ·Ï¤Ç¥¤¥ó¥È¥é¤Î¤â¤Î¤Ï 0.10 ·Ï¤À¤Ã¤¿¤Î¤Ç´Ý¤´¤È¥³¥Ô¥Ú¤·¤¿¤À¤±¤Ç¤Ïư¤«¤Ê¤«¤Ã¤¿¡£
*1 typo ¤òľ¤·¤¿¤È¤«
2008-12-05 [ĹǯÆüµ]
_ php-shell ¤¬ÊØÍø¤¹¤®¤Æ¥ä¥Ð¤¤·ï
PHP ¤Ë¤Ï php -a ¤È¤¤¤¦¥¤¥ó¥¿¥é¥¯¥Æ¥£¥Ö¥â¡¼¥É¤¬°ì±þ¤¢¤ë¤ó¤À¤±¤É¡¢¤³¤ì¤¬¥Ó¥Ã¥¯¥ê¤¹¤ë¤¯¤é¤¤»È¤¨¤Ê¤¤¡£¤¤¤Á¤Ð¤ó¥Ó¥Ã¥¯¥ê¤Ê¤Î¤Ï
readline ¥â¥¸¥å¡¼¥ë¤òÆÉ¤ß¹þ¤ó¤Ç¤¤¤Ê¤¤¤È <?php ?> ¤ò¾Êά¤Ç¤¤Ê¤¤
¤Ã¤Æ¤³¤È¡£²¿¤½¤ì¡© PHP ¤ò½ñ¤¯¤è¤Ã¤ÆºÇ½é¤ËÌÀ¼¨¤·¤Æ¤ë¤Î¤Ë <?php ¤ò¾Êά¤Ç¤¤Ê¤¤¤È¤Ï¡£
¤³¤ì¤Ë¥Ó¥Ã¥¯¥ê¤·¤Æ¥¤¥ó¥¿¥é¥¯¥Æ¥£¥Ö¥·¥§¥ë¤òõ¤·¤Æ¤ß¤¿¤é¡¢¤¤¤¯¤Ä¤«¸«¤Ä¤«¤Ã¤¿¡£Ãæ¤Ç¤â¤³¤ì¤Ï¤¹¤´¤¤¡£
- PHP 5 °Ê¹ß
- pear ¥³¥Þ¥ó¥É¤Ç¥¤¥ó¥¹¥È¡¼¥ë¤Ç¤¡¢irb ¤Î¤è¤¦¤Ë¼Â¹Ô¥Õ¥¡¥¤¥ë¤È¤·¤Æ¥¤¥ó¥¹¥È¡¼¥ë¤µ¤ì¤ë
- ¥Ó¥ë¥É»þ¤Î --with-readline ¤Ç¤Ï¤Ê¤¯¡¢readline.so ¤òÄɲ乤ë·Á¤ÇÍøÍѤǤ¤ë
- ¤Ä¤Þ¤êÊä´°¤¬¸ú¤¯
- ´Ø¿ô¤Î»È¤¤Êý¤ò¤½¤Î¾ì¤ÇÄ´¤Ù¤é¤ì¤ë
¤É¤¦¤Ç¤¹¡£¤Ê¤«¤Ê¤«¤¹¤´¤¤¤Ã¤·¤ç¡£
Î㤨¤Ð¤³¤ó¤ÊÉ÷¤Ë»È¤¨¤ë¡£
$ php-shell.sh PHP-Shell - Version 0.3.1, with readline() support (c) 2006, Jan Kneschke <jan@kneschke.de> >> use '?' to open the inline help >> get_<TAB> get_browser( get_headers( get_cfg_var( get_html_translation_table( get_class( get_include_path( get_class_methods( get_included_files( get_class_vars( get_loaded_extensions( get_current_user( get_magic_quotes_gpc( get_declared_classes( get_magic_quotes_runtime( get_declared_interfaces( get_meta_tags( get_defined_constants( get_object_vars( get_defined_functions( get_parent_class( get_defined_vars( get_required_files( get_extension_funcs( get_resource_type( >> ? get_class() '/** * Retrieves the class name * * @params [object object] * @return string */ '
¤É¤¦¤Ç¤¹¤«¡£
¢¨ ¤¿¤À¡¢PHP ¤Ç¤Ï readline ¥â¥¸¥å¡¼¥ë¼«ÂΤ¬¥Ý¥Ô¥å¥é¡¼¤Ç¤Ê¤¤¤Î¤«¡¢¼ê¸µ¤Î´Ä¶¤Ç¤Ï¥·¥¹¥Æ¥àɸ½à¤Î¥Ñ¥Ã¥±¡¼¥¸¤À¤±¤Ç readline ¤¬Í¸ú¤Ê PHP ¤ò¹½ÃۤǤ¤¿¤Î¤Ï CentOS ¤À¤±¤À¤Ã¤¿¡£Debian ¤â MacPorts, Fink ¤â¥À¥á¤À¤Ã¤¿¡£FreeBSD ¤Ç¤Ï¤¿¤Ö¤ó¥¤¥±¤ë¤±¤É»î¤·¤Æ¤Ê¤¤¡£
¤ª¤Þ¤±1¡Ê2·î4Æü¤Ëµ¤¤Å¤¤¤¿¡Ë
>> ?
'Inline Help:
>> quit
leaves the shell
>> ?
show this help
>> ? license
show license of the shell
>> :set <var>
set a shell variable
>> ? <var>
show the DocComment a Class, Method or Function
e.g.: ? fopen(), ? PHP_Shell, ? $__shell
>> p <var>
print the variable verbosly
>> r <filename>
load a php-script and execute each line
'
¤Ê¤ó¤È¡¢p ¤âÄêµÁ¤µ¤ì¤Æ¤¤¤ë¡£irb »È¤¤¤Ê¤é¤³¤ì¤ò»È¤ï¤º¤Ë²¿¤ò»È¤¦¤Î¤À¤È¤¤¤¦ÏäǤ¹¤è¡ª ¤Þ¤¡Ãæ¿È¤Ï¤¿¤À¤Î var_export() ¤Ê¤ó¤À¤±¤É¡£
¤ª¤Þ¤±2¡ÊƱ¤¸¤¯2·î4Æü¤Ëµ¤¤Å¤¤¤¿¡Ë
¤³¤¦¤¤¤¦»È¤¤Êý¤¬¤Ê¤«¤Ê¤«ÊØÍø¤«¤â¡£
php -c INIFILE -q /PATH/TO/php-shell-cmd.php
¥Ç¥Õ¥©¥ë¥È¤Î php-shell.sh ¤òµ¯Æ°¤¹¤ë¤À¤±¤À¤È¡¢Î㤨¤Ð°Æ·ïÆÈ¼«¤ÎÀßÄê¤Ê¤É¤òÈ¿±Ç¤µ¤»¤ë¤³¤È¤¬¤Ç¤¤Ê¤¤¡£¤½¤³¤Ç¤³¤ÎÊýË¡¡£¤³¤ì¤Ê¤é¥é¥¤¥Ö¥é¥ê¤ÎÆÉ¤ß¹þ¤ß¤â¥¹¥à¡¼¥º¤Ë¹Ô¤¨¤ë¡£php-shell ¤ÏÁȤ߹þ¤ß¤Î´Ø¿ô¤À¤±¤Ç¤Ï¤Ê¤¯¤Æ PHP ¤Ç½ñ¤«¤ì¤¿¥é¥¤¥Ö¥é¥ê¤Ë¤Ä¤¤¤Æ¤â ? ¤Ç phpdoc ¥³¥á¥ó¥È¤òɽ¼¨¤µ¤»¤ë¤³¤È¤¬¤Ç¤¤ë¤Î¤Ç¡¢¿¿ÌÌÌܤ˽ñ¤«¤ì¤¿¥é¥¤¥Ö¥é¥ê¤ò»È¤Ã¤Æ¤¤¤ë¤È¤â¤Î¤¹¤´¤¯ÊØÍø¤Ë»È¤¨¤ë¡£
¥ª¥ì¡© ¥ª¥ì¤Ï¤â¤Á¤í¤óÂç¿¿ÌÌÌܤ˺î¤Ã¤Æ¤¤¤ë¤«¤éÄ¶ÊØÍø¤Ë»È¤Ã¤Æ¤¤¤ë¤è¡ª
2008-12-06 [ĹǯÆüµ]
_ CGI ¤ò rackup ¤·¤Æ¤ß¤¿
Ruby ¤Ï¼«Ê¬¤ÎÂç¹¥¤¤Ê¸À¸ì¤À¤¬¡¢¼Â¤ÏŤ¯±¿ÍѤ¹¤ë Web ¥¢¥×¥ê¤ò Ruby ¤Ç½ñ¤¤¤¿¤³¤È¤Ï¤Ê¤¤¡£cgi.rb ¤ÎɾȽ¤Ï¤º¤¤¤Ö¤óÁ°¤«¤é˧¤·¤¯¤Ê¤¤¤·¡¢·èÄêÂǤȤʤë¥Õ¥ì¡¼¥à¥ï¡¼¥¯¤ÎÉԺߤ¬Ä¹¤¯Â³¤¤¤¿¤³¤È¡¢¤¹¤Ç¤Ë PHP ¤ò»È¤Ã¤Æ¤¤¤¿¤³¤È¤¬Â礤ÊÍýͳ¤À¤Ã¤¿¡£
Rails ¤¬Åо줷¤¿¡£ÊÙ¶¯¤·¤¿¡£¡Ö¤¦¡¼¤ó¡¢¤Ê¤ó¤« DBMS ¤È¤«Íפé¤Ê¤¤¤ó¤À¤±¤É¡¢¤É¤¦¤·¤¿¤é¤¤¤¤¤Î¤è¡©¡×¤È»×¤Ã¤Æ¤¤¤ë¤¦¤Á¤ËÀ¤´Ö¤Ç¤Ï¤¹¤Ã¤«¤êÄêÃå¡¢Âå¤ï¤ê¤Ë¼«Ê¬¤ÎÃæ¤Ç¤Ï¶½Ì£¤ÏÇö¤ì¤Æ¤¤¤Ã¤¿¡£¤½¤¦¤³¤¦¤·¤Æ¤¤¤ë¤¦¤Á¤Ë Rails ¤ÎÌäÂêÅÀ¤â¤Á¤ç¤³¤Á¤ç¤³»ØÅ¦¤µ¤ì¤ë¤è¤¦¤Ë¤Ê¤ê¡¢prototype.js ¤È¤È¤â¤ËÀè¶î¼Ô¤æ¤¨¤Î¶ìÆñ¤òÌ£¤ï¤Ã¤Æ¤¤¤ë¤Ê¤¡¤È´¶¤¸¤Æ¤¤¤ëº£Æü¤³¤Îº¢¡£
Merb ¤À¤Ê¤ó¤À¤È¸À¤ï¤ì¤Æ¤¤¤¿Ãæ¡¢Rack ¤¬Åо줷¤¿¡£¤³¤ì¤À¡ª¤È»×¤Ã¤¿¡£¤³¤¦¤¤¤¦¥·¥ó¥×¥ë¤Ê¤ä¤Ä¤¬Íߤ·¤«¤Ã¤¿¤ó¤À¤è¡ª¡¡¤·¤«¤·¤½¤ì¤«¤éÆÃ¤Ë²¿¤ÎÍýͳ¤â¤Ê¤¤¤Þ¤Þ°ìǯȾ¤Î·îÆü¤¬Î®¤ì¤¿¡£¤Ê¤ó¤«¤³¤ó¤Ê¤ó¤Ð¤Ã¤«¤À¤Ê¡£RSS ¤ÎÅоì¤Ë¤è¤ê¾ðÊó¤Î¼ý½¸¤Ï®¤¯¤Ê¤Ã¤¿¤±¤É¡¢Ãμ±¤Ë¤¹¤ë¤¿¤á¤Î»þ´Ö¡¢¼ê¤òư¤«¤·¤Æ¡Ö¤Ä¤«¤à¡×¤Þ¤Ç¤Î»þ´Ö¤Ï¡¢¼«Ê¬¤È¤¤¤¦¿Í´Ö¤ÎÀǽ¤¬ÊѤï¤é¤Ê¤¤*1¤Î¤Ç¤Á¤Ã¤È¤âû¤¯¤Ê¤é¤Ê¤¤¡£
¤½¤ó¤Ê¥ª¥ì¸ì¤ê¤Ï¤É¤¦¤Ç¤â¤è¤¯¡¢º£²ó¤Ï¤è¤¦¤ä¤¯¼«Ê¬¤Ç Rack ¤ò»È¤Ã¤Æ¤ß¤Þ¤·¤¿¤è¤È¤¤¤¦¤ªÏᣤ·¤«¤â¡¢¤¢¤ó¤Þ¤ê¸«¤Ê¤¤¡¢WEBrick ¤È CGI ¤ÎÆóËÜΩ¤Æ¡£»î¤·¤¿¤Î¤Ï gem ¤ÇÆþ¤ì¤¿ rack 0.4.0
Rack ¤Î»È¤¤Êý¤ÏÆóÃʳ¬¤¢¤ë
Ķ´Êñ¤Ê¥Á¥å¡¼¥È¥ê¥¢¥ë¤òÆÉ¤ó¤Ç¤â¥ê¥Õ¥¡¥ì¥ó¥¹¤ò¸«¤Æ¤â¤³¤Î°ã¤¤¤òÌÀ³Î¤Ë°Õ¼±¤¹¤ë¤³¤È¤¬¤Ç¤¤Ê¤¯¤Æ¶ìÏ«¤·¤¿¡£Rack ¤Îµ¡Ç½¤Ë¤Ï°Ê²¼¤ÎÆóÃʳ¬¤¬¤¢¤ë¡£
- Handler ¤Ë¤è¤Ã¤Æ¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¥µ¡¼¥Ð¤Î°ã¤¤¤òÃê¾Ý²½¤¹¤ë
- rackup ¤Ë¤è¤Ã¤ÆÊØÍø¤Ê¥ß¥É¥ë¥¦¥§¥¢¤ò»È¤¦
¤³¤Î°ã¤¤¤Ï
- ruby ¤«¤éľÀÜ Rack::Handler::FOO.run( App.new )
- rackup ¤«¤é run( App.new )
¤Î°ã¤¤¤«¤é¤¯¤ë¡£Íפ¹¤ë¤Ë
¥ß¥É¥ë¥¦¥§¥¢¤ò use ¤·¤¿¤±¤ì¤Ð rackup ¤·¤í
¤Ã¤Æ¤³¤È¡£
µÕ¤Ë¸À¤¦¤È rackup ¤·¤Ê¤¯¤Æ¤â Request, Response ¤ÎÃê¾Ý²½¤Ï¹Ô¤¨¤ë¤Î¤Ç´ðËÜŪ¤Ê¤³¤È¤Ï¤Ç¤¤ë¡£
¤Ç¤Ï¤½¤ì¤¾¤ì¤ÎÊýË¡¤ò¤â¤¦¾¯¤·¾Ü¤·¤¯¸«¤Æ¤ß¤ë¡£
¢¨ ¥Ö¥³¥á¤¤¤¿¤À¤¤Þ¤·¤¿¡£¥ß¥É¥ë¥¦¥§¥¢¤ÎÃæ¤Ë¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤òÆÍ¤Ã¹þ¤ó¤Ç¡¢¥ß¥É¥ë¥¦¥§¥¢¤ò Handler ¤ËÅϤ¹¤È¤¤¤¦ÊýË¡¤â¤¢¤ë¤è¤¦¤Ç¤¹¡£¤Ê¤ó¤«¤Á¤ç¤Ã¤ÈÉԻ׵Ĥʴ¶¤¸¤â¤·¤Þ¤¹¤¬¡¢¤½¤â¤½¤âÆâÉô¤Ç¤Ï¥ß¥É¥ë¥¦¥§¥¢¤Ç¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤òºÆµ¢Åª¤Ë wrap ¤¹¤ë¹½Â¤¤Î¤è¤¦¤Ç¤¹¡£
lib/rack/lobster.rb at master from chneukirchen's rack ¡½ GitHub
ruby ¤«¤éľÀÜ Handler ¤ò¸Æ¤ÖÊýË¡
WEBrick ¤ÎÎã
komagata ¤µ¤ó¤Îµ»ö¤«¤éÇÒ¼Ú¡£
¥¦¥Î¥¦¥é¥Ü Unoh Labs: Rack¤ÇWeb¥¢¥×¥ê¤ÎWeb¥µ¡¼¥Ð¡¼°Í¸¤ò̵¤¯¤¹
#!/usr/bin/env ruby
require 'rubygems'
require 'rack'
class HelloRack
def call(env)
[200, {"Content-Type" => "text/plain"}, ["Hello, Rack"]]
end
end
Rack::Handler::WEBrick.run HelloRack.new, :Port => 3000
¤³¤Î hello-rack.rb ¤ò
ruby hello-rack.rb
¤Çµ¯¤³¤·¡¢¤³¤ì¤Ë¥Ö¥é¥¦¥¶¤«¤é¥¢¥¯¥»¥¹¤¹¤ë¤È
Hello, Rack
¤Èɽ¼¨¤µ¤ì¤ë¡£¤¦¤à¡£
CGI ¤ÎÎã
Ʊ¤¸¤³¤È¤Ï CGI ¤Ç¤âÅöÁ³¤Ç¤¤ë¡£
#!/usr/bin/env ruby
require 'rubygems'
require 'rack'
class HelloRack
def call(env)
[200, {"Content-Type" => "text/plain"}, ["Hello, Rack"]]
end
end
Rack::Handler::CGI.run HelloRack.new
¤³¤ó¤Ê´¶¤¸¤Ç Handler ¤ò CGI ¤Ë¤·¤Æ¤ä¤ì¤Ð ok. ¤³¤ì¤ò
- Web ¥µ¡¼¥ÐÇÛ²¼¤Î CGI ¤Î¼Â¹Ô²Äǽ¤Ê¥Ç¥£¥ì¥¯¥È¥ê¤ËÃÖ¤¤¤Æ
- ¼Â¹Ô¸¢¸Â¤òÉÕ¤±¤Æ
¥Ö¥é¥¦¥¶¤«¤é¥¢¥¯¥»¥¹¤·¤Æ¤ä¤ë¤È¤µ¤Ã¤¤ÈƱ¤¸¤è¤¦¤Ë
Hello, Rack
¤Èɽ¼¨¤µ¤ì¤ë¡£¤á¤Ç¤¿¤·¤á¤Ç¤¿¤·¡£
¤³¤ì¤Ç cgi.rb ¤ò»È¤ï¤Ê¤¯¤Æ¤â Ruby ¤Ç CGI ¤ò½ñ¤±¤ë¤è¤¦¤Ë¤Ê¤Ã¤¿¤è¡ª
¡ÊCGIAlt ¤¬¤¢¤ë¤È¤«¸À¤ï¤Ê¤¤¤Ç¤Í¡£¡Ë
µ¤¤ò¤Ä¤±¤Ê¤¤ã¤¤¤±¤Ê¤¤¤³¤È
°Ê²¼¤Ï¼«Ê¬¤Î¤¿¤á¤Î¥á¥â
- CGI ¤Î¾ì¹ç¤Ï Web ¥µ¡¼¥Ð¤¬¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤ò¾¡¼ê¤Ëµ¯¤³¤·¤Æ¤¯¤ì¤ë¤±¤É¡¢¼Â¹Ô¸¢¸Â¤ÎÉÕÍ¿¤¬É¬Í×
- WEBrick¡Ê¤Ê¤É¡Ë¤Î¾ì¹ç¤Ï¼«Ê¬¤Ç¥¢¥×¥ê¤òµ¯¤³¤·¤Æ¤ä¤é¤Ê¤¤¤È¤¤¤±¤Ê¤¤
¼«Ê¬¤Î¾ì¹ç¤ÏÀ¸ CGI ¤ò¿¨¤ëµ¡²ñ¤¬¸º¤Ã¤Æ¤¤¤ë¤Î¤Ç¼Â¹Ô¸¢¸Â¤ÎÉÕÍ¿¤ò¤·¤ç¤Ã¤Á¤å¤¦Ëº¤ì¤ë¡£
¤Ç¤â Rack ¤ÎËÜÅö¤Î°ÒÎϤòÌ£¤ï¤¦¤Ê¤é rackup
rackup ¤Ï
rackup -s webrick [config file]
¤Ê¤É¤È¤·¤Æ server(handler) ¤ò»ØÄꤷ¤Æ¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¥µ¡¼¥Ð¤òµ¯Æ°¤¹¤ë¡£rackup ¤¬¹Ô¤ï¤ì¤ë¤È¡¢Ãæ¤Ç
Rack::Builder
¤¬¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¥µ¡¼¥Ð¤Î´Ä¶¤òºî¤Ã¤Æ¤¯¤ì¡¢¼«Ê¬¤Î½ñ¤¤¤¿¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤Ï¤³¤ÎÃæ¤Ç¼Â¹Ô¤µ¤ì¤ë¡£
¤³¤³¤Ç½é¤á¤Æ use ¤¬»È¤¨¤ë¤è¤¦¤Ë¤Ê¤ë¡£
¤â¤¦¤Á¤ç¤Ã¤ÈºÙ¤«¤¯¸«¤Æ¤ß¤è¤¦¡£
use ¤Ï Rack::Builder ¤Î instance_method
Rack ¤Ç¥ß¥É¥ë¥¦¥§¥¢¤òÄɲ乤ë use ¤Ï Rack::Builder ¤Î instance_method ¤È¤Ê¤Ã¤Æ¤¤¤ë¡£
irb(main):001:0> require 'rack' => true irb(main):002:0> Rack::Builder.methods.grep( /use/ ) => [] irb(main):003:0> Rack::Builder.instance_methods.grep( /use/ ) => ["use"]
¤Ä¤Þ¤ê
require 'rack'
¤·¤¿¤À¤±¤Ç¤Ï use ¤Ï»È¤¨¤Ê¤¤¡£
rackup ¤Îή¤ì
rackup ¤òÆÉ¤ó¤Ç¤ß¤ë¤È¡¢¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤Ï rackup ¤ÎÃæ¤Ç°Ê²¼¤Î¤è¤¦¤Ë¼Â¹Ô¤µ¤ì¤Æ¤¤¤ë¡£¡Ê¾ÜºÙ¤ÏüÀޤäƤ¢¤ë¡Ë
Rack::Builder.new {
run inner_app
}
¤Ä¤Þ¤ê¤½¤¦¤¤¤¦¤³¤È¡£Rack ¤ÎÊØÍøµ¡Ç½¤ò»È¤¤¤¿¤±¤ì¤Ð rackup ¤¹¤Ù¤·¡£
¤Ç¤Ï¼ÂºÝ¤Ë rackup ¤·¤Æ¤ß¤ë¡£
WEBrick ¤ÎÎã
ľÀܵ¯Æ°¤Ç use ¤Î»È¤¨¤Ê¤¤ÍÍ»Ò
¤µ¤¤Û¤É¤Î hello-rack.rb ¤Ë use ¤ò²Ã¤¨¤ë¡£
#!/usr/bin/env ruby
require 'rubygems'
require 'rack'
use Rack::ShowExceptions
class HelloRack
def call(env)
[200, {"Content-Type" => "text/plain"}, ["Hello, Rack"]]
end
end
Rack::Handler.WEBrick.run HelloRack.new, :Port => 3000
¤¹¤ë¤È¡¢ÅöÁ³¤Ê¤¬¤é
$ ruby hello-rack.rb hello-rack.rb:6: undefined method `use' for main:Object (NoMethodError)
Åܤé¤ì¤ë¡£use ¤Ê¤ó¤Æ»È¤¨¤Ê¤¤¡£
rackup ¤·¤Æ¤ß¤ë
#! /usr/bin/env ruby
require 'rubygems'
require 'rack'
use Rack::ShowExceptions
class HelloRack
def call(env)
[200, {"Content-Type" => "text/plain"}, ["Hello, Rack"]]
cho_www
end
end
run HelloRack.new
¤³¤³¤ÇÃíÌܤ·¤Æ¤Û¤·¤¤¤Î¤Ï¡¢
- cho_www ¤È¤¤¤¦ syntax error ¤ò¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤ÎÃæ¤Ë»Å¹þ¤ó¤Ç¤¢¤ë¤È¤³¤í
- run ¤Î¸Æ¤ÓÊý¤òÊѤ¨¤¿¤È¤³¤í
¤É¤¦¤â
rackup ¤¹¤ë¤È¤¤Ï Handler ¤Ï³°¤«¤é¡Êrackup ¤Î -s ¥ª¥×¥·¥ç¥ó¤Ç¡Ë»ØÄꤷ¤Æ¤¢¤²¤¿Êý¤¬¤Ê¤ó¤«¤¦¤Þ¤¯¤¤¤¯´¶¤¸¡£
¤³¤ì¤ò hello-rack.ru ¤Î̾Á°¤ÇÊݸ¤·¡¢
rackup -s webrick -p 3000 hello-rack.ru

¤Ç¼Â¹Ô¡£
¤´Í÷¤Î¤è¤¦¤Ë¥Ö¥é¥¦¥¶¾å¤Ë Exception ¤òɽ¼¨¤Ç¤¤ë¡£²èÁü¤Ç¤ÏüÀޤäƤ¢¤ë¤¬ TraceBack ¤âɽ¼¨¤Ç¤¤ë¡£ÅöÁ³¤Î¤³¤È¤Ê¤¬¤é cho_www ¤òºï½ü¤¹¤ì¤ÐÉáÄÌ¤ËÆ°¤¯¡£
CGI ¤ÎÎã
ľÀܵ¯¤³¤·¤Æ use ¤·¤Æ¥À¥á¤Ê¤Î¤Ï¤µ¤Ã¤ WEBrick ¤Ç¸«¤¿¤Î¤Ç¾Êά¡£
rackup ¤¹¤ë
ru ¥Õ¥¡¥¤¥ë¤Ï¤µ¤Ã¤ÍѰդ·¤¿ hello-rack.ru ¤ò¤½¤Î¤Þ¤ÞÍøÍÑ¡£CGI ¤ÎÊý¤Ï°Ê²¼¤Î¤è¤¦¤Ë¤¹¤ë¡£
#! /bin/sh /opt/local/bin/rackup hello-rack.ru

¥Ñ¥¹¤¬ /opt/local/bin ¤Ê¤Î¤Ï MacPorts ¤ÇÆþ¤ì¤¿ Ruby ¤Ç gem ¤ò»È¤Ã¤Æ¥¤¥ó¥¹¥È¡¼¥ë¤·¤Æ¤¤¤ë¤«¤é¡£rackup ¤Î¥Ñ¥¹¤ÏŬµ¹Ä´À°¤¹¤ë¤³¤È¡£
¤³¤ì¤ò hello-rack.cgi ¤Î̾Á°¤ÇÊݸ¡¢¤´¤Ë¤ç¤´¤Ë¤ç¤·¤Æ¥Ö¥é¥¦¥¶¤«¤é¥¢¥¯¥»¥¹¤·¤Æ¤ß¤ë¡£²èÁü¤ÎÃæ¤Î URL ¤Î°ã¤¤¤ËÃíÌÜ¡£³Î¤«¤Ë CGI ¤Çư¤¤¤Æ¤¤¤ë¡£
¤¿¤À¤·¡¢ÅöÁ³¤Î¤³¤È¤Ê¤¬¤é CGI ¤Ç rackup ¤¹¤ë¤Î¤ÏÉé²ÙŪ¤Ë¤ÏÉÔÍø¡£
½¾Íè¤Îή¤ì
- shebang ¤«¤é Ruby ¤òµ¯Æ°
- ¼«Ê¬¼«¿È¤òÆÉ¤ß¹þ¤Þ¤»¤ë
rackup »þ¤Îή¤ì
- shebang ¤Ç sh ¤ä¾¤Î¥¤¥ó¥¿¥×¥ê¥¿¤«¤é
- rackup ¥³¥Þ¥ó¥É¤ò¸Æ¤Ó½Ð¤·
- ¤½¤³¤«¤é ruby ¤¬¸Æ¤Ð¤ì
- ¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤¬¥í¡¼¥É¤µ¤ì¤ë
¤È¤¤¤¦Ä¹¤¤Æ»¤Î¤ê¤òÍפ¹¤ë¤è¤¦¤Ë¤Ê¤Ã¤Æ¤·¤Þ¤¦¡£¤Ç¤â¥á¥ê¥Ã¥È¤Ç¤«¤¤¤·¡£
¤ï¤¶¤ï¤¶ÊÌ¥×¥í¥»¥¹¤Î rackup ¤«¤éµ¯Æ°¤·¤Ê¤¯¤Æ¤â¤¤¤ó¤¸¤ã¤Í¡©¤È»×¤¤¤¿¤¤¤Î¤Ïʬ¤«¤ë¡£¼«Ê¬¤â»×¤Ã¤¿¡£¤Ç¤â·ë¶É rackup ¤ÈƱ¤¸¤È¤Þ¤Ç¤Ï¤¤¤«¤Ê¤¤¤Þ¤Ç¤â»÷¤¿¤è¤¦¤Êή¤ì¤Ç Rack::Builder ¤ò¸Æ¤ó¤Ç¤¢¤²¤Ê¤¤ã¤¤¤±¤Ê¤¤¤Î¤Ç¡¢Rack ¤ËÍê¤ë¤¦¤Þ¤ß¤¬Çö¤ì¤Á¤ã¤¦¤è¤Í¡©¤È»×¤¦¤Î¤Ç¤½¤¦¤¤¤¦¤³¤È¤Ï¤·¤Ê¤¤¤³¤È¤Ë¤·¤¿¡£
¤Þ¤È¤á
²¿¤Ï¤È¤â¤¢¤ì¡¢Rack ¤Î´ðËÜŪ¤Ê»È¤¤Êý¤Ïʬ¤«¤Ã¤¿¡£map ¤È¤«¤Ïʬ¤«¤Ã¤Æ¤Ê¤¤¤±¤É¡¢¤³¤ì¤Ç
- WEBrick ¤Ç³«È¯
- ¤È¤ê¤¢¤¨¤º CGI ¤Ç deploy
- Éé²ÙŪ¤Ë¤Þ¤º¤¤¤Î¤Ç FastCGI ¤Ë¤·¤Þ¤·¤ç¤¦¤«
¤È¤¤¤Ã¤¿½ÀÆð¤Ê±¿ÍѤ¬²Äǽ¤Ë¤Ê¤Ã¤¿¡£
¤è¤·¤è¤·¡£
»²¹Í
- KoshigoeBLOG: Rack²òÀâ¤ò»î¤ß¤Æ¼ºÇÔ¤·¤Ä¤Ä¤â»¯¤¹¡¢¤Î´¬
- Greenbear Laboratory - RackÆüËܸì¥ê¥Õ¥¡¥ì¥ó¥¹
- Rack¤òÆÉ¤à¤Î¤Þ¤È¤á - I am Cruby!
- Ëþ¤»¤ëÆÚ¡£Ì²¤¿¤²¤Ê¥Ý¥Á¡£:CGI ¤«¤é Mongrel ¤Þ¤Ç¡¢Rack ¤Ç Web ¥¢¥×¥ê¤ò Web ¥µ¡¼¥Ð¤«¤éÃê¾Ý²½¤¹¤ë
- ¥¦¥Î¥¦¥é¥Ü Unoh Labs: Rack¤ÇWeb¥¢¥×¥ê¤ÎWeb¥µ¡¼¥Ð¡¼°Í¸¤ò̵¤¯¤¹
*1 ¤È¤¤¤¦¤«²ÃÎð¤È¤È¤â¤ËÍî¤Á¤ë°ìÊý¤À¤¼¡ª ¥ª¥ì¤Ï10Âå¤Î¼ã¼Ô¤¸¤ã¤Í¤§¡ª
2008-12-10 [ĹǯÆüµ]
_ RedHat ·Ï Linux ÍÑ¿·¤·¤á¤Î PHP + MySQL ¤Î¤¢¤ë¥ê¥Ý¥¸¥È¥ê
»È¤Ã¤¿¤³¤È¤Ï¤Ê¤¤¤±¤É¡¢¿·¤·¤¤ PHP ¤ò»È¤¤¤¿¤¤¤±¤ÉÌîÎÉ¥Ó¥ë¥É¤â¼«ÎϥХåڡ¼¥¸¥ó¥°¤â¤¤¤ä¡¢¤Ã¤Æ¤¤¤¦¾ì¹ç¤Ë¤â¤·¤«¤·¤Æ»È¤¨¤ë¤Î¤«¤Ê¡©
¤Ç¤â¼«Ê¬¤Ç»È¤¤¤¿¤¤¥â¥¸¥å¡¼¥ë¤¬¥Ñ¥Ã¥±¡¼¥¸¤Ë¤Ê¤Ã¤Æ¤Ê¤«¤Ã¤¿¤é¤ä¤Ã¤Ñ¼«Ê¬¤Ç¤ä¤é¤Ê¤¤¤È¥À¥á¤Êµ¤¤¬¤¹¤ë¤Ê¡£
2008-12-12 [ĹǯÆüµ]
_ SimmpleTest ¤Î¥µ¥¤¥È¤¬°ú¤Ã±Û¤·¤Æ¤¿
¤·¤«¤â¸Å¤¤Êý¤ÏÊüÃÖ¤À¤Ã¤¿¤ó¤ÇÊѲ½¤Ëµ¤¤Å¤«¤Ê¤«¤Ã¤¿¡£¤ª¤¤¤ª¤¤¡£
SimpleTest - Unit Testing for PHP
1.0.1 ¤¬½Ð¤Þ¤·¤¿¡£PHP 4.2 ¤«¤é 5.3 ¤Þ¤Ç¥«¥Ð¡¼¤¹¤ë¥Æ¥¹¥È¥Ä¡¼¥ë¤Ç¤¹¤è¡¢¤È¤Ç¤«¤Ç¤«½ñ¤«¤ì¤Æ¤¤¤ë¤ó¤À¤±¤É¡¢º¸¤ÎÊý¤Ë¤³¤Ã¤½¤ê¤³¤Î¥ê¥ê¡¼¥¹¤¬ PHP 4 ¸ß´¹¤ÇºÇ¸å¤À¤è¤È½ñ¤«¤ì¤Æ¤¤¤ë¡£¤Ä¤Þ¤ê¡¢
PHP 4 ¤«¤é 5 ¤Î°Ü¹Ô¤Ë³è¤«¤»¤ë¤Î¤Ï SimpleTest 1.0.1 ¤Þ¤Ç¤À¤è
¤È¤¤¤¦¤³¤È¡£
¢¨ ¥µ¥ó¥×¥ë¤ò¸«¤ë¤È SimpleTest ¤ÎÊý¤Ë¤â BDD ¤Î±Æ¶Á¤¬½Ð¤Æ¤¤¤ëµ¤¤¬¤¹¤ë¡£¤¿¤À PHP ¤ÊÀ¤³¦¤Î¥Æ¥¹¥È¥Ä¡¼¥ë¤Ç¤Ï¿·¤·¤¯½Ð¤Æ¤¤¿ PHPSpec ¤Ê¤ó¤«¤âƱ¤¸¤Ê¤ó¤À¤±¤É´Ø¿ô̾¤ò Behavior ¤Ë¤¹¤ë¥¢¥×¥í¡¼¥Á¤¬Â¿¤¤¡£¤Ç¤â¤³¤ìÀäÂÐ¥À¥á¤À¤È»×¤¦¤ó¤À¤è¤Ê¡£´Ø¿ô̾¤Ë»È¤¨¤ëʸ»ú¤Ë¤ÏÀ©¸Â¤¬Â¿¤¹¤®¤ë¡£¤¿¤À¤Ç¤µ¤¨ Ruby ¤È°ã¤Ã¤Æ ? ¤È¤«»È¤¨¤Ê¤¤¤ó¤À¤«¤é¡£¤ªÁ°¤é RSpec ¤Î¾å¤ÃÌ̤À¤±¿¿»÷¤·¤Æ´î¤ó¤Ç¤ë¤ó¤¸¤ã¤Í¤¨¡£
¼êÁ°Ì£Á¹¤ÊÏäÀ¤±¤É¡¢¼«Ê¬¤¬Í¤«¤Ã¤Æ¤¤¤ë´Ä¶¤Ç PHP 4 ¤Î¤â¤Î¤Ï¤â¤¦¤Ê¤¤¡£¤³¤ì¤Ï 1ǯÁ°»¶¡¹¶ìÏ«¤·¤¿À®²Ì¤À¡£¤½¤ÎºÝ¡¢
- SimpleTest ¤Ë¤è¤ë¥æ¥Ë¥Ã¥È¥Æ¥¹¥È
- ¤ª¼êÀ½¤Î¥Á¥§¥Ã¥«¡ÊÍפÏÊÒ¤Ãü¤«¤é¥¹¥¯¥ê¥×¥È¤òµ¯¤³¤·¤Þ¤¯¤Ã¤ÆÃ×̿Ū¤Ê¥¨¥é¡¼¤òÅǤ½Ð¤µ¤»¤ë¤â¤Î¡Ë
¤¬Âç³èÌö¤·¤Æ¤¯¤ì¤¿¡£
¼Â¤Ï SimpleTest ¤ÎÁ°¤Ë PHPUnit ¤ò¤Á¤ç¤Ã¤È¤À¤±»È¤Ã¤Æ¤¤¤¿¤³¤È¤â¤¢¤Ã¤¿¤ó¤À¤±¤É¡¢¤½¤Î¸å¤¹¤° SimpleTest ¤Ë¾è¤ê´¹¤¨¤¿¡£Íýͳ¤Ï
- PHPUnit ¤Ï PHP 4, 5 ¤ÎξÂбþ¤Ç¤Ï¤Ê¤«¤Ã¤¿
- SimpleTest ¤ÎÊý¤¬¥Æ¥¹¥È·ë²Ì¤Îɽ¼¨¤¬É¸½à¤ÇÇɼê¤á¤Ç¡¢¤Á¤ç¤Ã¤È³Ú¤·¤½¤¦¤À¤Ã¤¿¤Î¤ÇƳÆþ¤Î¿´ÍýŪ¥Ï¡¼¥É¥ë¤ò²¼¤²¤Æ¤¯¤ì¤¿
¤ÎÆó¤Ä¤¬Â礤«¤Ã¤¿¡£¼«Ê¬°ì¿Í¤À¤Ã¤¿¤é 1 ¤À¤±¤Ç½½Ê¬¤Ë°Ü¹ÔÍýͳ¤Ë¤Ê¤ë¤ó¤À¤±¤É¡¢Â¾¤Î¿Í¤Ë¤â»È¤Ã¤Æ¤â¤é¤ª¤¦¤È»×¤¦¤È 2 ¤ÎÍýͳ¤âƱ¤¸¤¯¤é¤¤¤ËÂ礤ʤâ¤Î¤Ë¤Ê¤Ã¤Æ¤¯¤ë¡£
¥¤¥ó¥¹¥È¡¼¥ë¤Ïº£¤Þ¤Ç¤º¤Ã¤È pearified.com ¤Î 1.0 ¤ò»È¤Ã¤Æ¤¤¤¿¤ó¤À¤±¤É¡¢¤Ê¤ó¤« pearified ¤â¤³¤Î¤Þ¤ÞÊüÃ֥ץ쥤¤ÊÆ÷¤¤¤¬¤×¤ó¤×¤ó¤¹¤ë¤Î¤Ç¡¢¼«Á°¤Ç pear ¥Ñ¥Ã¥±¡¼¥¸¥ó¥°¤·¤è¤¦¤«¤Ê¤È»×¤¤»Ï¤á¤Æ¤¤¤ë¡£¤Þ¤¡¡¢³«È¯´Ä¶¤À¤±¤Ê¤é¥Ñ¥Ã¥±¡¼¥¸¥ó¥°¤¹¤ëɬÍפâ¤Ê¤¤¤Ã¤Á¤ã¤Ê¤¤¤·¡¢ºÇ¶áή¹Ô¤ê¤Î¥Õ¥ì¡¼¥à¥ï¡¼¥¯¤Ï pear »È¤ï¤Ê¤¤¤Î¤â¿¤¤¤ó¤À¤±¤É¤Í¡£¤Ç¤â pear ¥Ñ¥Ã¥±¡¼¥¸¤Ë¤·¤Ê¤¤¤ó¤Ê¤é¤»¤á¤Æ¥ê¥Ý¥¸¥È¥ê¤Ç¤Á¤ã¤ó¤È¥¿¥°¤ÏÂǤäȤ¤¤Æ¤Û¤·¤¤¤ï¡£svn co ¤Ï¼Â¼Á trunk ¤Î¤ß¤È¤«¤¤¤ä¤¹¤®¤ë¡£
2008-12-16 [ĹǯÆüµ]
_ Routing ¤Î¤ªÊÙ¶¯
Rack ¤Ë¶½Ì£¤ò»ý¤Ã¤¿¤Ä¤¤¤Ç¤Ë°ÊÁ°¤«¤é¥Á¥§¥Ã¥¯¤À¤±¤·¤Æ¤ª¤¤¤¿
Horde/Routes: Elegant URL Handling
¤òºÇ¶áÆÉ¤ó¤Ç¤¤¤¿¡£¤³¤ÎÏäò twitter ¤È #openpear ¤È #coderepos ¤Ë¿¶¤Ã¤¿¤éÈ¿±þ¤¬¤¢¤Ã¤¿¤Î¤Ï coderepos ¤À¤±¤À¤Ã¤¿¡£¤½¤³¤Ç
- Routes (PythonÈÇ¡£Rails¤Î routing Éôʬ¤Î¸µ¡£¡Ë
- PEAR :: Package :: Net_URL_Mapper¡Ê¾å¤Î routes.py ¤ò»²¹Í¤Ë¤·¤¿ PHP ÈÇ¡Ë
¤òÃΤä¿¡£ÏäϤ½¤Î¤Þ¤Þ RouterCon ÊýÌ̤عԤäƴ°Á´¤Ë¥Í¥¿¤È¤·¤Æ¾º²Ú¤¹¤ë¤³¤È¤¬¤Ç¤¤¿¡£¹ç¾§¡£
¤Þ¡¢¤½¤ì¤Ï¤È¤â¤«¤¯¡¢
- PHP ¤ÎÀ¤³¦¤Ï¥Õ¥ì¡¼¥à¥ï¡¼¥¯¤Ë¿¾¯ÉÔËþ¤¬¤¢¤Ã¤Æ¤â²æËý¤·¤Æ»È¤¦¤·¡¢Router ¤Ë¶½Ì£¤¢¤ë¿Í¤Ï¤¢¤ó¤Þ¤ê¤¤¤Ê¤¤¤ó¤¸¤ã¡©
- ¤Ê¤ó¤À¤«¤ó¤À¤Ç¤ß¤ó¤Ê routes.py ¤ò»²¹Í¤Ë¤·¤Æ¤¤¤ë
¤È¤¤¤¦Ïäϻ²¹Í¤Ë¤Ê¤Ã¤¿¤·¡¢¤Ê¤«¤Ê¤«¶½Ì£¿¼¤«¤Ã¤¿¡£¤¤¤Á¤Ð¤ó¶¦´¶¤ò³Ð¤¨¤¿¤Î¤Ï
11:08:15 <tokuhirom__> ¤¦¤ï¡¼ 11:08:31 <tokuhirom__> ¤»¤Ã¤«¤¯¤Î routes.py ¤Î¥«¥Ã¥³¥¤¥¤DSL¤¬ 11:08:35 <tokuhirom__> array() ¤Ë¤è¤Ã¤ÆÂæÌµ¤·¤À¡¼
¤¤¤ä¤Þ¤Ã¤¿¤¯ :-) ¥Û¥ó¥È PHP ¤Ï¥¥Ä¤¤¤Ã¤¹¡£array() ¤Î¥Ò¥É¤µ¤ÏÈȺáµé¤Ç¤¹¡£ÊØÍø¤Ê¤Î¤Ïʬ¤«¤Ã¤¿¤«¤é¡¢¤â¤¦°ì¤ÄƧ¤ß¹þ¤ó¤Ç array ¤Ëʬ²ò¤·¤Æ¤¯¤ì¤ë¥ì¥¤¥ä¡¼¤ò¶´¤Þ¤Ê¤¤¤È DSL ¤È¤·¤Æ¤Ïµ¡Ç½¤·¤Ê¤¤¤è¤Ê¡£¤Þ¤¡¸½¼ÂŪ¤Ë¤Ï»þ´Ö¤È¤«¥â¥í¥â¥í¤Î·ó¤Í¹ç¤¤¤Ç array() ¤à¤½Ð¤·¤Ã¤Æ¼«Ê¬¤Ç¤â¤è¤¯¤ä¤ë¤ó¤À¤±¤É¤µ¡£
¤¢¤È¤³¤ÎÊÕ
11:40:35 <kazuho> ¥ë¡¼¥¿¡¼¤ÎÄêµÁ¤Ã¤Æ¤Ê¤ó¤¹¤«¡© 11:41:14 <tokuhirom__> ¤Ê¤ó¤À¤í¤¦ 11:41:27 <kazuho> HTTP::Router ¤¢¤¿¤êÆÉ¤á¤Ð¤ï¤«¤ê¤Þ¤¹¡© 11:41:39 <tokuhirom__> Web Application ¤Ë¤ª¤¤¤Æ¡¢¥³¥ó¥È¥í¡¼¥é¡¼ and/or ¥¢¥¯¥·¥ç¥ó¤È URL ¤È¤Î¥Þ¥Ã¥Ô¥ó¥°¤òÄêµÁ¤¹¤ë¤â¤Î 11:41:41 <tokuhirom__> ¤«¤Ê¡£ 11:41:48 <kazuho> ÁÐÊý¸þ¡© 11:42:00 <tokuhirom__> URL => Controller/Action 11:42:05 <tokuhirom__> ¤Ç¤¹¤Í¡£ 11:42:12 <tokuhirom__> µÕÊý¸þ¤Ï optional ¤ÊÍ×ÁǤǤϤʤ¤¤«¤È¡£ 11:42:38 <kazuho> ¤¢¤¶¡¼¤¹¡£¤¸¤ã¤¢¡¢¤½¤ì¤âÏÀÅÀ¤Ç¤¹¤«¤Í¡£¤¢¤Þ¤ê¼ûÍפʤ¤¤Î¤«¤Ê¡¼
¼ÂºÝ View ¤ò½ñ¤¯¤È¤¤Ë¤Ï狼¤¬µÕÊý¸þ¤ÎÉôʬ¤òôÅö¤·¤Ê¤¤¤È°Õ¿Þ¤·¤¿ Routing ¤Ë¥Þ¥Ã¥Á¤·¤Ê¤¤ URL ¤ò´Êñ¤ËÀ¸À®¤Ç¤¤Æ¡¢¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤È¤·¤Æ´ÉÍý¤·¤¤ì¤Ê¤¯¤Ê¤Ã¤Æ¤·¤Þ¤¦¡£Rails Ū¤Ë¤Ï Helper ¤¬¤³¤ÎÉôʬ¤òôÅö¤¹¤ë¤³¤È¤Ë¤·¤Æ¤¢¤ë¤Î¤«¤Ê¡© ¾¯¤Ê¤¯¤È¤â Rails ·Ï¤Î CakePHP ¤Ç¤Ï View ¤Î Helper ¤ÇÂбþ¤¹¤ëÊý¿Ë¤Ë¤Ê¤Ã¤Æ¤ë¤ß¤¿¤¤¡£¥Õ¥ë¥¹¥¿¥Ã¥¯¤Î¥Õ¥ì¡¼¥à¥ï¡¼¥¯¤Ç¤Ï¤Þ¤¡¤É¤³¤Ç½èÍý¤·¤Æ¤âÌäÂê¤Ê¤¤¤ä¤Í¡£
ÏäÏÌá¤Ã¤Æ Horde/Routes ¤È¤â¤¦°ì¤Ä»÷¤¿¥é¥¤¥Ö¥é¥ê¤Ç¤¢¤ë Net_URL_Mapper ¤Ç¤Ï¡¢Horde/Routes ¤À¤±¤¬µÕÊý¸þ¤Î URL ¤ÎÁȤßΩ¤Æµ¡Ç½¤â»ý¤Ã¤Æ¤ª¤ê¡¢Ã±ÂΤΠrouting ¥é¥¤¥Ö¥é¥ê¤È¤·¤Æ°·¤¤¤ä¤¹¤¤¤Î¤Ç¤Ï¤Ê¤¤¤«¤È»×¤¦¡£Â®ÅÙº¹¤È¤«¤Ï·×¤Ã¤Æ¤Ê¤¤¤Î¤Ç¤³¤ì¤À¤±¤Ç°ì³µ¤Ë Horde/Routes ¤ÎÊý¤¬Í¥½¨¤È¤Ï¸À¤¤ÀÚ¤ì¤Ê¤¤¤±¤É¡¢Ã±ÂΤΠrouter, mapper ¤Ï¸Ä¿ÍŪ¤Ë¤ÏµÕÊý¸þ¤ÎÊÑ´¹¤â»ý¤Ã¤Æ¤¤¤Æ¤¯¤ì¤ëÊý¤¬°Â¿´´¶¤¬¤¢¤ë¡£
¾¤Ë Zend Framework ¤â¸«¤Æ¤ß¤¿¤±¤É¡¢¤³¤Î routing ¤Ï Rails É÷¤Î¤è¤¦¤ÇÈù̯¤Ë°ã¤¦¡£¤Þ¤¿ Zend Framework ¤ÏÁ·ë¹ç¤ò°Õ¼±¤·¤Æ¤ª¤ê¡¢Router ¤È Dispatcher ¤òÊÌ¡¹¤ËÍøÍѤǤ¤½¤¦¤Ë¸«¤¨¤ë¤ó¤À¤±¤É¡¢¼ÂºÝ½èÍý¤òÄɤ¤¤«¤±¤Æ¹Ô¤¯¤È PHP 5 ¤«¤éÆþ¤Ã¤¿¥¿¥¤¥×¥Ò¥ó¥Æ¥£¥ó¥°¤¬¼ÙË⤷¤Æ¤ª¤ê¡¢duck type Ū¤ËÊ̤ʥ饤¥Ö¥é¥ê¤òÆÍ¤Ã¹þ¤à¤Î¤Ï¤Á¤ç¤Ã¤ÈÆñ¤·¤½¤¦¤Ê´¶¤¸¡£ÊѤʤȤ³¤í¤Ç Java Ū¤Ê¹Í¤¨Êý¤Ë¿¶¤Ã¤Á¤ã¤¦¤Î¤Ï¤Á¤ç¤Ã¤È´ªÊÛ¤·¤Æ¤Û¤·¤¤¡£PHP ¤Ã¤Æ³«È¯¼Ô¤ÎÌܻؤ¹Êý¸þ¤È¥æ¡¼¥¶¡¼¤ÎÌܻؤ¹Êý¸þ¤¬¹ç¤Ã¤Æ¤Ê¤¤¤ó¤¸¤ã¤Ê¤¤¤«¡£
2008-12-18 [ĹǯÆüµ]
_ Capistrano ¤Ï»×¤Ã¤¿¤è¤ê¥·¥ó¥×¥ë¤Ç»×¤Ã¤¿¤è¤ê¤¹¤´¤¤
¥·¥¹¥Æ¥à´ÉÍý¼Ô¤Î¤ß¤Ê¤µ¤ó¡¢¤³¤ó¤Ë¤Á¤Ï¡£º£Æü¤Ï Rails ¥¢¥×¥ê¤Î deploy ¥Ä¡¼¥ë¤È¤·¤ÆÍ̾¤Ê¡Ê¤é¤·¤¤¡ËCapistrano ¤Ë¤Ä¤¤¤Æ¤Ç¤¹¡£¾Ò²ð¡© ¤¤¤¨¤¤¤¨¡£¾Ò²ð¤Ï¤¹¤Ç¤ËÍ̾¤Ê¿Í¤¿¤Á¤Ë¤è¤Ã¤Æ¤Ê¤µ¤ì¤Æ¤¤¤Þ¤¹¡£¥ï¥¿¥·¤¬¤·¤¿¤¤¤Î¤Ï¸¡Æ¤¡£¤³¤¤¤Ä¤Ï¤É¤³¤Ë¤É¤Î¤è¤¦¤Ë»È¤¨¤½¤¦¤«¡£
¥·¥¹¥Æ¥à´ÉÍý¤ÎÏäʤΤˤʤó¤Ç Puppet ¤¸¤ã¤Ê¤¤¤Î¡©¤È»×¤¦¤«¤â¤·¤ì¤Þ¤»¤ó¡£¤½¤ì¤Ï¡¢°ÊÁ° Puppet ¤Î OSX Âбþ¤¬¤¢¤Þ¤ê¤è¤¯¤Ê¤«¤Ã¤¿¤³¤È¤È¡¢¤Þ¤¿¼«Ê¬¤Î´Ä¶¤¬ PPC Mac ¤À¤Ã¤¿¤¿¤á¡¢²¾ÁÛ¥Þ¥·¥ó¤ò»È¤Ã¤ÆÂ¾¤Î OS ¤òư¤«¤¹¤Î¤â¸½¼ÂŪ¤Ç¤Ê¤¯¡¢ÌÌÅݤˤʤäƤ·¤Þ¤Ã¤Æ¤¤¤¿¤«¤é¤Ç¤¹¡£
¤Ç¡¢½ä¤ê½ä¤Ã¤Æ Capistrano ¤Ã¤Æ¼Â¤Ï deploy °Ê³°¤Ë¤â·ë¹½»È¤¨¤½¤¦¤¸¤ã¤Ê¤¤¡©¤È»×¤¨¤Þ¤·¤¿¤è¤È¤¤¤¦¤ªÏá£ÁÛÄꤷ¤Æ¤¤¤ë¥Ð¡¼¥¸¥ç¥ó¤Ï Capistrano 2.5.3 ¤Ç¤¹¡£
¤Ê¤ª¡¢Îã¤Ë¤è¤Ã¤Æ±³½ñ¤¤¤Æ¤ë²ÄǽÀ¤¬¤¢¤ê¤Þ¤¹¡£¼±¼Ô¤Î¥Ä¥Ã¥³¥ß¤ªÂÔ¤Á¤·¤Æ¤ª¤ê¤Þ¤¹¡£
Capistrano ¤Îưºî¤ËɬÍ×¤Ê¤Î¤Ï Ruby ¤È ssh ¤À¤±
- Puppet ¤Ï daemon ¤ò¤¤¤¯¤Ä¤«ÍѰդ·¤Æ¤ä¤ëɬÍפ¬¤¢¤ê¤Þ¤¹¡£
- https ¤ò»È¤Ã¤Æ¤¯¤ì¤ë¤Î¤Ç fw friendly ¤Ç¤¹¤¬¡¢¤½¤ì¤Ë¤·¤¿¤Ã¤Æ¤¤¤í¤¤¤í½àÈ÷¤¬É¬ÍפǤ¹¡£
- Capistrano ¤Î½àÈ÷¤ÇÂç»ö¤Ê¤Î¤Ï°Ê²¼¤Î2ÅÀ¤À¤±¡£
- Capistrano*1 ¤ò¥»¥Ã¥È¥¢¥Ã¥×¤¹¤ë1Âæ¤Î¥Þ¥·¥ó
- ´ÉÍý¤µ¤ì¤ëÊý¤Î¥Þ¥·¥ó¤Ë¤Ï sshd ¤Èºî¶ÈÍѤΠssh ¥¢¥«¥¦¥ó¥È
¤·¤«¤â Puppet ¤È°ã¤¤ C/S Êý¼°¤Ç¤Ï¤Ê¤¤¤¿¤á¡¢Capistrano ¤Î¥»¥Ã¥È¥¢¥Ã¥×¤¬É¬Íפʥޥ·¥ó¤Ï1Âæ¤À¤±¤Ç¤¹¡£
¤Ê¤ó¤«¡¢¤Á¤ç¤Ã¤È¤ª¼ê·Ú¤Ê´¶¤¸¤¬¤·¤Þ¤»¤ó¤«¡£
Capistrano ¼«ÂÎ¤Ï Windows ¤Ç¤âư¤¯
°Í¸¤·¤Æ¤¤¤ë gem ¥Ñ¥Ã¥±¡¼¥¸¤Ï°Ê²¼¤ÎÄ̤ꡣ
$ gem dependency capistrano Gem capistrano-2.5.3 net-ssh (>= 2.0.0, runtime) net-sftp (>= 2.0.0, runtime) net-scp (>= 1.0.0, runtime) net-ssh-gateway (>= 1.0.0, runtime) highline (>= 0, runtime) echoe (>= 0, runtime)
¤¢¤È echoe ¤¬¤³¤ó¤Ê´¶¤¸¡£*2
$ gem dependency echoe Gem echoe-3.0.2 rake (>= 0, runtime) rubyforge (>= 1.0.0, runtime) highline (>= 0, runtime)
ext ¤Ê¥é¥¤¥Ö¥é¥ê¤Ï¤Ê¤¤¤Î¤Ç Capistrano ¼«ÂÎ¤Ï Windows ¤Ç¤âư¤«¤»¤Þ¤¹¡£*3¼«Ê¬¤Ç¼ÂºÝ¤Ë³Îǧ¤Ï¤·¤Æ¤Ê¤¤¤Ç¤¹¤±¤É¡¢Æ°¤«¤·¤Æ¤¤¤ëÎã¤Ïõ¤»¤Ð¤¹¤°¸«¤Ä¤«¤ê¤Þ¤¹¡£
¤¿¤À´ÉÍýÂÐ¾Ý¤Ï ssh ¤Ç¤Ê¤ó¤Ç¤â¤Ç¤¤ë Un*x ·Ï¥·¥¹¥Æ¥à¤¸¤ã¤Ê¤¤¤È Capistrano ¤ÎÍøÍѤ˻ÝÌ£¤Ï¤Ê¤¤¤Ç¤·¤ç¤¦¡£
Íפ¹¤ë¤Ë¤Ç¤¤ë¤³¤È¤Ï ssh HOST COMMAND
ssh ¤Ï interactive ¤Ê login shell ¤òÄ󶡤¹¤ë¤À¤±¤Ç¤Ï¤Ê¤¯¡¢
ssh HOST COMMAND
¤Î·Á¤Ç
HOST ¤ËÀܳ¤·¤Æ COMMAND ¤Ë½ñ¤«¤ì¤¿½èÍý¤ò¼Â¹Ô¤·¤Æ½ªÎ»¤¹¤ë
¤È¤¤¤¦»È¤¤Êý¤â¤Ç¤¤Þ¤¹¡£Â绨ÇĤ˸À¤¦¤È Capistrano ¤Ï¤³¤Îµ¡Ç½¤ò¤è¤êÊØÍø¤Ë»È¤¦¤¿¤á¤Ë
- ÀܳÀè¤Î´ÉÍý¤ÈÀܳ¤Î¼«Æ°²½
- ÀܳÀè¤Èºî¶ÈÆâÍÆ¤Î¥»¥Ã¥È¤ò¥¿¥¹¥¯¤Ç´ÉÍý
- ¥¿¥¹¥¯¤Î¼Â¹Ô
¤òÄ󶡤·¤Æ¤¯¤ì¤ë¤â¤Î¤Ç¤¹¡£¤½¤·¤Æ
¤½¤Î¤¿¤á¤Ë Rake ¤Ë¤è¤¯»÷¤¿ DSL ¤ò»È¤¦
¤è¤¦¤Ë¤Ê¤Ã¤Æ¤¤¤Þ¤¹¡£
deploy ¥Ä¡¼¥ë¤È¤·¤Æ¾Ò²ð¤µ¤ì¤ë¤³¤È¤Î¿¤¤ Capistrano ¤Ç¤¹¤¬¡¢¤½¤ì¤Ï deploy ÍѤΥ¿¥¹¥¯¤¬¤¢¤é¤«¤¸¤áÄêµÁ¤µ¤ì¤Æ¤¤¤Æ¡¢ÊÑ¿ô¤ò¥»¥Ã¥È¤¹¤ë¤À¤±¤ÇÊØÍø¤Ë»È¤¨¤ë¤è¤¦¤Ë¤·¤Æ¤¢¤ë¤«¤é¤Ç¤¢¤Ã¤Æ¡¢
¥¿¥¹¥¯¤òÍѰդ¹¤ì¤Ð ssh ¤Ç¤Ç¤¤ë»Å»ö¤Ï¤Ê¤ó¤Ç¤â¤Ç¤¤Þ¤¹¤·¡¢remote ¤Î»Å»ö¤À¤±¤Ç¤Ê¤¯ local ¤Î»Å»ö¤â¤Ç¤¤Þ¤¹¡£
¤¿¤Ö¤ó¡£
¤¿¤À¤·¡¢Puppet ¤È°ã¤¤¡¢ÀܳÀè¤Î¥µ¡¼¥Ð OS ¤ÎÃê¾Ý²½¤Ê¤É¤Ï¹Ô¤Ã¤Æ¤¯¤ì¤Ê¤¤¤¿¤á¡¢´ðËÜŪ¤Ë¤½¤ÎÉôʬ¤ÏÀ¸¤ÇÁê¼ê¤·¤Ê¤¤¤È¤¤¤±¤Þ¤»¤ó¡£µÕ¤Ë Puppet ¤Î¤è¤¦¤ËÆÈ¼«Ê¸Ë¡¤Î½¬ÆÀ¤òÍ׵ᤷ¤Þ¤»¤ó¡£
¤È¤¤¤¦¤³¤È¤Ï½¾Íè¤ÎÊýË¡¤«¤é¤Î°Ü¹Ô¥³¥¹¥È¤¬¾®¤µ¤¤
¤Þ¤È¤â¤Ê´ÉÍý¼Ô¤Ê¤é¡¢¥µ¡¼¥Ð¾å¤Î¤¿¤¤¤Æ¤¤¤Îºî¶È¤Ï sh ¤ä Perl¡¢Ruby ¤Ê¤É¤Î¥¹¥¯¥ê¥×¥È¤Ç¤¢¤ëÄøÅÙ¼«Æ°²½¤µ¤ì¤Æ¤¤¤ë¤È»×¤¤¤Þ¤¹¡£¤³¤ì¤¬ cron ¥¸¥ç¥Ö¤È¤·¤Æ´ÉÍý¤Ç¤¤ë¤Ê¤é¼êºî¶È¤Ï¤º¤¤¤Ö¤ó¸º¤Ã¤Æ¤¤¤ë¤Ï¤º¤Ç¤¹¡£¤¿¤À¡¢
´°Á´¤ËÄê´ü¼Â¹Ô¤Ë¤Ê¤Ã¤Æ¤¤¤Ê¤¤ºî¶È
¤âÃæ¤Ë¤Ï¤¢¤ë¤Ç¤·¤ç¤¦¡£¤½¤Î¾ì¹ç¡¢¤·¤Ö¤·¤Ö¸Ä¡¹¤Î¥µ¡¼¥Ð¤Ë¥í¥°¥¤¥ó¤·¤Æ¥¹¥¯¥ê¥×¥È¤ò¼Â¹Ô¤·¤Æ¤¤¤Þ¤»¤ó¤«¡© ÃѤº¤«¤·¤Ê¤¬¤é¼«Ê¬¤Ï¤½¤¦¤Ç¤¹¡£¤·¤«¤· Capistrano ¤òƳÆþ¤¹¤ì¤Ð
ºÇ¸å¤Î¡Ö¥í¥°¥¤¥ó -> ¼Â¹Ô¡×¤ÎÉôʬ¤ò¼«Æ°²½¡¢´ÉÍý¤Ç¤¤Þ¤¹¡£
¤½¤¦¤Ç¤¹¡£¸Ä¡¹¤Î¥µ¡¼¥Ð¤Î´ÉÍýÊýË¡¤òÂçÉý¤ËÊѤ¨¤ëɬÍפϤ¢¤ê¤Þ¤»¤ó¡£¡Ö¥í¥°¥¤¥ó -> ¼Â¹Ô¡×¤È¤¤¤¦¡¢ºÇ¸å¤Ë»Ä¤Ã¤¿¼êºî¶ÈÉôʬ¤ò Capistrano ¤Î¥¿¥¹¥¯¤È¤·¤Æ´ÉÍý¤Ç¤¤ë¤è¤¦¤Ë¤Ê¤ë¤À¤±¤Ê¤Î¤Ç¤¹¡£¤·¤«¤â¥µ¡¼¥Ð¦¤Ï´ðËÜŪ¤Ë¤¤¤¸¤ëɬÍפ¬¤¢¤ê¤Þ¤»¤ó¡£
¤³¤ì¤¬Ê£¿ô¤Î¥µ¡¼¥Ð¾å¤Îºî¶È¤Ê¤éÌܤ˸«¤¨¤Æ³Ú¤Ë¤Ê¤ê¤Þ¤¹¤·¡¢¥µ¡¼¥Ð¤Î¿ô¤¬¤½¤ì¤Û¤É¿¤¯¤Ê¤¯¤Æ¤â
°ìÄê¤Î¥ï¡¼¥¯¥Õ¥í¡¼¤òÊݾڤ·¤ä¤¹¤¯¤Ê¤ê¤Þ¤¹¡£
¤Ä¤Þ¤ê
´ÉÍýºî¶È¤Î¶¦Í¡¢°ú¤·Ñ¤®¤ò³Ú¤Ë¤·¤Æ¤¯¤ì¤Þ¤¹¡£
¤â¤Á¤í¤óÆÈ¼«¥¿¥¹¥¯¤Î´ÉÍý¤Î¤¿¤á¤Ë¤Ï Ruby ¤È Rake ¤Ø¤ÎÍý²ò¤òÍ׵᤹¤ë¤Î¤Ç¡¢³Ú¤Ë¤Ê¤ë°ìÊý¤Ç¤Ï¤¢¤ê¤Þ¤»¤ó¡£¤·¤«¤â Rake ¤â Capistrano ¤â¤½¤ó¤Ê¤Ë¥É¥¥å¥á¥ó¥È¤¬½¼¼Â¤·¤Æ¤¤¤ë¤ï¤±¤Ç¤â¤¢¤ê¤Þ¤»¤ó¡£¤·¤«¤·¡¢¥¹¥¯¥ê¥×¥È¤ò½ñ¤¤¤Æ¼«Æ°²½¤·¤Æ¡¢¼êºî¶È¤Ë¤è¤ë¥ß¥¹¤ò¸º¤é¤»¤ë¤è¤¦¤Ë¤·¤Æ¤¢¤ë¤Ï¤º¤Ê¤Î¤Ë¡¢¤Ê¤ó¤È¤Ê¤¯Â°¿ÍŪ¤Êºî¶È¤¬»Ä¤Ã¤Á¤ã¤¦Éôʬ¤¬¤¢¤Ã¤Æ¡¢¤Ê¤ó¤«µ¤»ý¤Á°¤¤¤Ê¤¡¤È´¶¤¸¤Æ¤¤¤ë¤è¤¦¤Ê¾ì¹ç¤Ë¤Ï Capistrano ¤ÎƳÆþ¤Ï½½Ê¬¤Ë¸¡Æ¤¤Î²ÁÃͤ¬¤¢¤ë¤ó¤¸¤ã¤Ê¤¤¤Ç¤·¤ç¤¦¤«¡£
Ķ´Êñ¤ÊÎã
¤¨¡¼¤È³µÇ°¤ÎÏ䫤饤¥ó¥¹¥È¡¼¥ë¤ÎÊýË¡¤ò¤¹¤ÃÈô¤Ð¤·¤Æ¤¤¤¤Ê¤ê¼ÂÎã¤ËÆþ¤ê¤Þ¤¹¡£*4
¥«¥ì¥ó¥È¥Ç¥£¥ì¥¯¥È¥ê¤Ë°Ê²¼¤Î¤è¤¦¤ÊÆâÍÆ¤Ç Capfile ¤È¤¤¤¦Ì¾Á°¤Î¥Õ¥¡¥¤¥ë¤òºî¤Ã¤Æ¤¯¤À¤µ¤¤¡£¤³¤³¤Ç¥í¥°¥¤¥óÀè¤Î¥µ¡¼¥Ð¤Î¥æ¡¼¥¶¡¼Ì¾¡¢¥Ñ¥¹¥ï¡¼¥É¤Ï°ìÃפ·¤Æ¤¤¤ë¤â¤Î¤È¤·¤Þ¤¹¡£
role :server, 'server1, 'server2' set :user, 'user' set :password, 'password' desc "reporting disk usage with 'df -h'" task :check_disk, :roles => :server do run 'df -h' end
¤Ç
cap check_disk
¤È¼Â¹Ô¤¹¤ë¤È
* executing `check_disk' * executing "df -h" servers: ["server1", "server2"] [server1] executing command [server2] executing command ** [out :: server1] Filesystem Size Used Avail Use% Mounted on ** [out :: server1] /dev/xvda1 32G 24G 7.2G 77% / ** [out :: server1] tmpfs 201M 0 201M 0% /dev/shm ** [out :: server2] Filesystem Size Used Avail Use% Mounted on ** [out :: server2] /dev/mapper/XXX 17G 14G 2.1G 88% / ** [out :: server2] /dev/xvda1 99M 27M 67M 29% /boot ** [out :: server2] tmpfs 181M 0 181M 0% /dev/shm command finished
¤ß¤¿¤¤¤Ê·ë²Ì¤¬ÆÀ¤é¤ì¤Þ¤¹¡£¤Ä¤Þ¤ê¡¢server1, server2 ¤Ë¥í¥°¥¤¥ó¤·¤Æ¼ÂºÝ¤Ë df -h ¤·¤¿·ë²Ì¤ò¤½¤Î¤Þ¤Þ¡¢Capistrano ¤ò¥¤¥ó¥¹¥È¡¼¥ë¤·¤¿¥Þ¥·¥ó¾å¤Ç³Îǧ¤Ç¤¤¿¤È¤¤¤¦¤³¤È¤Ç¤¹¡£
¤É¤¦¤Ç¤¹¡¢¤Ê¤«¤Ê¤«ÌÌÇò¤¯¤Ê¤¤¤Ç¤¹¤«¡£
¾ðÊó¼ý½¸¤¬³Ú¤Ë¤Ê¤ë¤Ï¤º
¤³¤ì¤Ï¤Á¤ç¤Ã¤È¤¤¤¤¹¤®¤Æ¤ë¤«¤Ê¡©¤È»×¤ï¤Ê¤¯¤â¤Ê¤¤¤Î¤Ç¤¹¤¬¡¢cron ¥¸¥ç¥Ö¤Î¼Â¹Ô¤ò Capistrano ¥Þ¥·¥ó¤Ë½¸Ã椵¤»¤ë¤³¤È¤â²Äǽ¤Ç¤¹¤Í¡£¤³¤¦¤¹¤ë¤È
- ¸Ä¡¹¤Î¥µ¡¼¥Ð¤Ç crond ¤¬ÉÔÍ×
- cron ¥¸¥ç¥Ö¤Î¥ì¥Ý¡¼¥È¥á¡¼¥ë¤ò Capistrano ¥Þ¥·¥ó¾å¤Ë½¸Ìó²Äǽ
- cron ¥¸¥ç¥Ö¤ÎÍͻҤò°ì¥«½ê¤Ç³Îǧ¤Ç¤¤ë¤Î¤Ç¡¢¥¹¥±¥¸¥å¡¼¥ë¤ò¹Í¤¨¤ä¤¹¤¯¤Ê¤ë
¤È¤¤¤¦¥á¥ê¥Ã¥È¤¬¤¢¤ê¤Þ¤¹¡£¤â¤Á¤í¤ó¥Ç¥á¥ê¥Ã¥È¤äÉ԰ºàÎÁ¤â¤¢¤Ã¤Æ¡¢
- ssh login ¤Î¥³¥¹¥È
- Ť¤»þ´Ö³Ý¤«¤ë»Å»ö¤ò¤µ¤»¤¿¤È¤¤Î ssh connection ¤Ï¤É¤¦¤Ê¤ë¡©
¤Ê¤ó¤«¤¬µ¤¤Ë¤Ê¤ë¤È¤³¤í¤Ç¤¹¡£¤Þ¤À¸«Íî¤È¤·¤Æ¤ë¤³¤È¤â¤¢¤ë¤«¤â¤·¤ì¤Þ¤»¤ó¡£
cron ¤Î¥ì¥Ý¡¼¥È¤Î¼õ¤±¼è¤ê¤¬ÌÌÅݤ¯¤µ¤¤
¤¿¤À¡¢cron ¤Ï¥ì¥Ý¡¼¥È¤Î¥á¡¼¥ë¤Î¼õ¤±¼è¤ê¤¬ÌÌÅݤÀ¤Ê¤È°ÊÁ°¤«¤é´¶¤¸¤Æ¤¤¤¿¤Î¤Ç¡¢¤³¤ÎÌäÂê¤ò²ò·è¤·¤ä¤¹¤¯¤Ê¤ë¤È¤·¤¿¤é¤È¤Æ¤â´ò¤·¤¤¤Ç¤¹¡£¤È¤¤¤¦¤Î¤â¡¢cron ¤Î¥ì¥Ý¡¼¥È¤Ï´ðËÜŪ¤Ë¥í¡¼¥«¥ë¤Î¥¢¥«¥¦¥ó¥È¤Ë¥á¡¼¥ë¤µ¤ì¤ë¤Î¤Ç¤¹¤¬¡¢
¤É¤¦¤ä¤Ã¤ÆÆÉ¤à¤Î¡©
¤È¤¤¤¦ÌäÂ꤬¤Ä¤¤Þ¤È¤¤¤Þ¤¹¡£º£»×¤¤¤Ä¤¯¤Î¤Ï
- ¸Ä¡¹¤Î¥µ¡¼¥Ð¤Ë¥í¥°¥¤¥ó¤·¤ÆÆÉ¤à
- ¸Ä¡¹¤Î¥µ¡¼¥Ð¤Ë POP ¥µ¡¼¥ÐΩ¤Æ¤ë
- forward ¤¹¤ë
- mail -> html -> feed ÊÑ´¹¤·¤Æ feed reader ¤ÇÆÉ¤à
¤¯¤é¤¤¤Ç¤¹¤«¤Í¡£¿ô¤¬Áý¤¨¤Æ¤¯¤ì¤ÐÅöÁ³ 1, 2 ¤Ï¥Ê¥·¤À¤È»×¤¦¤ó¤Ç¤¹¤¬¡¢
forward ¤¹¤ë¾ì¹ç¡¢forward Àè¤Î¥µ¡¼¥Ð¤Ë¤Ï SMTP ¥µ¡¼¥Ð¤È SMTP ¤ÎÄ̤ë·ê¤¬É¬Í×
¤Ë¤Ê¤ê¤Þ¤¹¡£¤³¤ì¤¬¤Þ¤¿Çº¤Þ¤·¤¤¡£¥á¡¼¥ë¥µ¡¼¥Ð¤¬ LAN Æâ¤Ë¤¢¤ë¤Ê¤é LAN Æâ¤Î¥ì¥Ý¡¼¥È¤Ïʸ¶ç¤Ê¤· LAN Æâ¤Î¥á¡¼¥ë¥µ¡¼¥Ð¤Ç½èÍý¤¹¤ì¤Ð¤¤¤¤¤Ç¤¹¡£¤Ç¤â¥¤¥ó¥¿¡¼¥Í¥Ã¥È¸þ¤±¤Ë¸ø³«¤·¤Æ¤¤¤ë¥µ¡¼¥Ð¤Î¥á¡¼¥ë¤Ï¤É¤¦¤·¤Þ¤·¤ç¤¦¡© LAN Æâ¤Î¥µ¡¼¥Ð¸þ¤±¤Ë forward ¡© fw ¤ÇÊĤ¸¤Æ¤Þ¤»¤ó¤«¡© ¤¸¤ã¤¢¥¤¥ó¥¿¡¼¥Í¥Ã¥È¾å¤Î SMTP ¥µ¡¼¥Ð¤ËžÁ÷¡© OBP25 ¤È¤«¤Ë°ú¤Ã¤«¤«¤ê¤Þ¤»¤ó¤«¡© ¤½¤ì¤Ë¥¤¥ó¥¿¡¼¥Í¥Ã¥È¾å¤ËÃÖ¤¤¤¿ SMTP ¥µ¡¼¥Ð¤Ï¤¢¤Ã¤È¤¤¤¦´Ö¤Ë spam ¤ä¥¨¥é¡¼¥á¡¼¥ë¤ÎÍò¤Ë°û¤ß¹þ¤Þ¤ì¤Æ¤·¤Þ¤¤¤Þ¤¹¡£¤¹¤ë¤Èº£ÅÙ¤Ï spam filter ¤À anti virus ¤À¡Ä¡£¤Õ¡¼¡£°ã¤¦¤ó¤À¤è¡¢¥ª¥ì¤Ï¤½¤ó¤Ê¤³¤È¤·¤¿¤¤¤ó¤¸¤ã¤Ê¤¤¤Î¡£Íפ¹¤ë¤Ë
forward ¤â°Õ³°¤ËÌÌÅݤʤΤǤ¹¡£
¤â¤¦°ì¤Ä¡¢¥á¡¼¥ë¤Ã¤¿¤Ã¤Æ¤³¤ó¤Ê¤ÎÊÖ¿®¤ÎɬÍפâ¤Ê¤¤¤·¡¢¤ß¤ó¤Ê feed reader ¤ÇÆÉ¤ß¤¿¤¤¤Ê¤¡¤È°ÊÁ°¤«¤é»×¤Ã¤Æ¤¤¤Þ¤·¤¿¡£¼ÂºÝ¡¢mail -> html -> feed ÊÑ´¹¤ò¤·¤Æ¤¤¤ë¿Í¤Ï¸«¤«¤±¤Þ¤¹¡£HTML ¤Ë¤·¤Æ URI ¤¬ÉÕ¤±¤ÐÆâÍÆ¤Î¶¦Í¤â³Ú¤Ç¤¹¡£*5¤·¤«¤·¤É¤¦¤·¤Æ¤âžÁ÷¤ÎÉôʬ¤¬¥Í¥Ã¥¯¤Ë¤Ê¤ê¤Þ¤¹¡£³Æ¥µ¡¼¥Ð¤Ç feed ÅǤ¤¤Æ¤½¤ìpla ¤Ç¼ý½¸¤·¤Æ¤â¤¤¤¤¤Ç¤¹¤±¤É¡¢¤Ê¤ó¤«¤½¤ì¤â¤É¤¦¤Ê¤ó¤À¤È¡£
¤Ç¤â Capistrano ¤«¤é¥¿¥¹¥¯¤ò¼Â¹Ô¤¹¤ì¤Ð¡¢¼«Æ°Åª¤Ë¡¢¾¯¤Ê¤¯¤È¤â stdout ¤ä stderr ¤ÎÆâÍÆ¤Ï¼èÆÀ¤Ç¤¤Þ¤¹¡£·ë²Ì¤ò¥Õ¥¡¥¤¥ë¤ËÍî¤È¤¹¥¿¥¤¥×¤Ç¤â¥Õ¥¡¥¤¥ë¤ÎžÁ÷¤¬²Äǽ*6¤Ê¤Î¤Ç¤½¤ì¤ò¼èÆÀ¤·¤Æ¤¯¤ì¤Ð¥ª¥Ã¥±¡¼¤Ç¤¹¡£
¤Æ¤³¤È¤Ï¡¢¥ì¥Ý¡¼¥È¤Î¼ý½¸¤ÎÉôʬ¤Ï¼«Æ°Åª¤Ë¥¯¥ê¥¢¤·¤Æ¤·¤Þ¤¤¤Þ¤¹¡£¤ª¤¦¡¢¤Ê¤ó¤«¤³¤ìÌÌÇò¤½¤¦¤¸¤ã¤ó¡£
¤Ç¤¤½¤¦¤Ê¤³¤È¤Î°ìÍ÷
¥¯¥é¥¹¤Î°ìÍ÷¤«¤é°ìÉô¤òÈ´¿è¡£
Capistrano::Configuration Capistrano::Configuration::Actions Capistrano::Configuration::Actions::FileTransfer Capistrano::Configuration::Actions::Inspect Capistrano::Configuration::Actions::Invocation Capistrano::Configuration::Actions::Invocation::ClassMethods Capistrano::Configuration::Callbacks Capistrano::Configuration::Connections Capistrano::Configuration::Execution Capistrano::Configuration::Loading Capistrano::Configuration::Loading::ClassMethods Capistrano::Configuration::Namespaces Capistrano::Configuration::Namespaces::Namespace Capistrano::Configuration::Roles Capistrano::Configuration::Servers Capistrano::Configuration::Variables Capistrano::Deploy Capistrano::Deploy::Dependencies Capistrano::Deploy::LocalDependency Capistrano::Deploy::RemoteDependency Capistrano::Deploy::SCM Capistrano::Deploy::SCM::Accurev Capistrano::Deploy::SCM::Accurev::InternalRevision Capistrano::Deploy::SCM::Base Capistrano::Deploy::SCM::Base::LocalProxy Capistrano::Deploy::SCM::Bzr Capistrano::Deploy::SCM::Cvs Capistrano::Deploy::SCM::Darcs Capistrano::Deploy::SCM::Git Capistrano::Deploy::SCM::Mercurial Capistrano::Deploy::SCM::None Capistrano::Deploy::SCM::Perforce Capistrano::Deploy::SCM::Subversion Capistrano::Deploy::Strategy Capistrano::Deploy::Strategy::Base Capistrano::Deploy::Strategy::Checkout Capistrano::Deploy::Strategy::Copy Capistrano::Deploy::Strategy::Export Capistrano::Deploy::Strategy::Remote Capistrano::Deploy::Strategy::RemoteCache
¤¤¤ä¡¼¤³¤¦¤·¤Æ¸«¤ë¤È Deploy ¤Î½¼¼Â¤Ã¤×¤ê¤¬¤ä¤Ï¤ê¤¹¤´¤¤¤Ç¤¹¤Í¡£Mercurial ¤ä Bzr ¤Ê¤ó¤ÆÊ¸»ú¤â¸«¤¨¤ë¤Î¤Ç¡¢¤³¤ì¤é¤ò»È¤Ã¤¿ deploy ¤â¤Ç¤¤ë¤ó¤Ç¤·¤ç¤¦¡£
»È¤¨¤½¤¦¤Ê¥ê¥½¡¼¥¹
Capistrano ¼«ÂΤ¬ github ¤Ç¥Û¥¹¥Æ¥£¥ó¥°¤µ¤ì¤Æ¤¤¤ë¤¿¤á¤«¡¢github ¤Ç¸¡º÷¤¹¤ë¤È¤¤¤Á¤Ð¤ó¤¿¤¯¤µ¤ó°ú¤Ã¤«¤«¤ë¤è¤¦¤Ç¤¹¡£
- Capistrano ÆþÌç - Ruby on Rails with OIAX
- ¤Þ¤È¤Þ¤Ã¤ÆÆüËܸì¤ÇÆÉ¤á¤ë¤Î¤Ã¤Æ¤³¤ì¤¯¤é¤¤¡©
¤¢¤È¤Ï¥·¥¹¥Æ¥à´ÉÍý·Ï¤Î¥ì¥·¥Ô¤¬ºÜ¤Ã¤Æ¤½¤¦¤Ê¤È¤³¤í¤È¤«¡£¤Þ¤À¤¢¤ó¤Þ¤Á¤ã¤ó¤È¸«¤Æ¤Ê¤¤¤Ç¤¹¤±¤É¡£
- deprec - Trac
- sauliusgrigaitis's centostrano at master ¡½ GitHub
- ¢ª ¡Æcapitate¡Ç: Capistrano recipes, plugins and templates.
- vigetlabs's capistrano_rsync_with_remote_cache at master ¡½ GitHub
- capistrano-mailer - Google Code
- Capistrano 2.1¸þ¤±¤ÎAPT¥ì¥·¥Ô : \ay diary
- Andrew Beacock's Blog: A Capistrano recipe for restarting Apache 2 (on Linux)
- Capistrano¤Ç¥¿¥¹¥¯¤òDRY²½¤·¤¿¤¤¤È¤¤Ï Capistrano.plugin ¤¬ÊØÍø - Ⱦ±£ÆÛÆüµ
ºÇ¸å¤Ë¡£
¤ß¤ó¤Ê¡¢¼ÂºÝ¤Ë»î¤·¤Æ¥ª¥é¤Ë¤ä¤êÊý¤ò¶µ¤¨¤Æ¤¯¤ì¡ª
*1 ÅöÁ³¡¢Ruby ¤âɬÍ×
*2 ¤³¤ì recursive ¤Ë¼è¤ì¤Ê¤¤¤Î¤«¤Ê¡© ¤â¤·¤«¤·¤Æ»È¤Ã¤Æ¤ë gem ¤¬¸Å¤¤¡©
*3 ¸ø³«¸°Ç§¾Ú¤òÍøÍѤ¹¤ë¤¿¤á¤Î¸°ºîÀ®¤Ë¤Ï Putty ¤Ê¤É¤Î ssh ¥¯¥é¥¤¥¢¥ó¥È¤¬¤¿¤Ö¤óɬÍפǤ¹¡£
*4 ¼ÂºÝ¡¢rubygems ¤µ¤¨Æ°¤¤¤Æ¤¤¤ì¤Ð¥¤¥ó¥¹¥È¡¼¥ë¤Ï¤½¤ì¤¯¤é¤¤´Êñ¤Ç¤¹¡£
*5 Î㤨¤Ð´ÉÍýÍѤΥ᡼¥ë¤òÊ£¿ô¿Í¤Ç¼õ¿®¤·¤Æ¤¤¤Æ¡¢²¿¤«µ¤¤Ë¤Ê¤ë¥¢¥é¡¼¥È¤¬¤¢¤Ã¤¿¤È¤·¤Þ¤¹¡£¤³¤Î¾ðÊó¤ò¶¦Í¤·¤¿¤¤¤ï¤±¤Ç¤¹¤¬¡¢¥á¡¼¥ë¤ò°ì°Õ¤ËÆÃÄꤹ¤ë¤Î¤Ï Message-ID ¤Ç¤¹¡£¤·¤«¤· Message-ID ¤Î³Îǧ¤ä¸¡º÷¤ÎÍÆ°×¤Ê¥á¡¼¥é¡¼¤Ï²Éʹ¤Ë¤·¤ÆÃΤê¤Þ¤»¤ó¡£
*6 ¤ä¤êÊý¤Ï¤Þ¤Àʬ¤«¤Ã¤Æ¤Þ¤»¤ó¡ª
2008-12-24 [ĹǯÆüµ]
_ OOo 3 ¤¬Í׵᤹¤ë¥Ð¡¼¥¸¥ç¥ó
- MacOSX 10.4 °Ê¹ß
- 2.x ¤Î»þÂå¤Ï NeoOffice ¤ò»È¤¦É¬Íפ¢¤ê
- Windows 2000 °Ê¹ß
- 2.x ¤Î»þÂå¤Ï 98 °Ê¹ß¤Ç¤âư¤¯
2008-12-27 [ĹǯÆüµ]
_ colordiff ¤Ç¿§¤È¤ê¤É¤ê¤ÊÀ¤³¦¤Ø
¼Â¤Ïº£¤Þ¤Ç diff ¤Ï¤¹¤Ù¤Æ¥â¥Î¥¯¥í¤Ç¸«¤Æ¤¤¤¿¡£Emacs ¤Î vc-diff °Ê³°¤Ç¤Ï¡£¤É¤¦¤Ë¤«¤Ê¤é¤ó¤«¤Ê¤¡¤È»×¤Ã¤Æ¤Ï¤¤¤¿¤¬¤³¤ó¤Ê¤â¤ó¤«¤Ê¤È¤â»×¤Ã¤ÆÄ¹¤¤¤³¤È²á¤´¤·¤Æ¤¤¤¿¡£
¤·¤«¤·
coderepos ¤Î commit ¿ô¥Ê¥ó¥Ð¡¼£±¤Î¿Í¤¬ github ¤òÎý½¬¤·¤¿¥á¥â - TokuLog ²þ¤áBÆüµ
¤òÆÉ¤ó¤Ç git ¤Ç¤ÏÀßÄ꼡Âè¤Ç color ½ÐÎϤǤ¤ë¤³¤È¤¬Ê¬¤«¤Ã¤¿¡£¤À¤Ã¤¿¤é¾¤Î¥Ä¡¼¥ë¤Ç¤â¤½¤¦¤¤¤¦ÊýË¡¤Ïɬ¤º¤¢¤ë¤Ï¤º¤À¤È»×¤Ã¤Æ¥°¥°¤Ã¤¿¤é¤¤¤¤Ê¤ê
¤¬½Ð¤Æ¤¤¿¡£¤½¤³¤éÃæ¤Ç¥Ñ¥Ã¥±¡¼¥¸¤È¤·¤ÆÍøÍѤǤ¤ë¤ß¤¿¤¤¤Ê¤Î¤Ç»È¤¤»Ï¤á¤ë¤Î¤Ï½½Ê¬´Êñ¡£Ãæ¿È¤Ï Perl ¥¹¥¯¥ê¥×¥È¤Ç¡¢diff ¤Î½ÐÎϤò²òÀϤ·¤Æ¥¨¥¹¥±¡¼¥×¥·¡¼¥±¥ó¥¹¤Ç¿§¤Å¤±¤·¤Æ¤¯¤ì¤ë¡£
»È¤¤Êý¤Ï
diff [options] FILE1 FILE2 | colordiff
¤ß¤¿¤¤¤Ê¤Î¤Ç¤â¤¤¤¤¤·¡¢
colordiff [options] FILE1 FILE2
¤Ç¤â¤¤¤¤¡£´ðËÜŪ¤Ë diff ¤ÎÂå¤ï¤ê¤È¤·¤Æ»È¤¨¤ë¤è¤¦¤ËÇÛ褵¤ì¤Æ¤¤¤ë¤è¤¦¤À¡£¼ê¤Ã¼è¤êÁ᤯¤Ï
svn diff | colordiff
¤ß¤¿¤¤¤Ë¤·¤Æ¤â»È¤¨¤ë¡£Ä´»Ò¤Ë¾è¤Ã¤Æ
.subversion/config
¤Ç
diff-cmd = colordiff
¤Ë¤·¤Æ¤ß¤¿¤±¤É¡¢¤³¤ì¤Ï¼ºÇÔ¡£¤È¤¤¤¦¤Î¤â Emacs ¤Î vc-diff ¤¬¥¨¥¹¥±¡¼¥×¥·¡¼¥±¥ó¥¹¤ò¤½¤Î¤Þ¤ÞÅǤ½Ð¤·¤Æ°ÕÌ£ÉÔÌÀ¤Ë¤Ê¤Ã¤Æ¤·¤Þ¤¦¤«¤é¡£¤È¤¤¤¦¤³¤È¤Ï
svn diff | colordiff hg diff | colordiff git diff
¤Ç color ½ÐÎϤǤ¤ë¤Ã¤Æ´¶¤¸¤«¡£
¤Þ¤¿¡¢ÉáÃÊ¥Ú¡¼¥¸¥ã¤È¤·¤Æ less ¤ò»È¤Ã¤Æ¤¤¤ë¤ó¤À¤±¤É¡¢less ¤Ïɸ½à¤Ç¤Ï¥¨¥¹¥±¡¼¥×¥·¡¼¥±¥ó¥¹¤Ë¤è¤ë¿§¤Å¤±¤Ë¤ÏÂбþ¤·¤Æ¤¤¤Ê¤¤¡£man ¤òÆÉ¤à¤È
-R or --RAW-CONTROL-CHARS
Like -r, but only ANSI "color" escape sequences are output in
"raw" form. Unlike -r, the screen appearance is maintained cor-
rectly in most cases. ANSI "color" escape sequences are
sequences of the form:
¤È¤¤¤¦¤³¤È¤Ï¡¢-r ¤« -R ¤Ç¥¨¥¹¥±¡¼¥×¥·¡¼¥±¥ó¥¹¤ò¤½¤Î¤Þ¤Þ terminal ¤Ë²ò¼á¤µ¤»¤é¤ì¤½¤¦¡£
ºÇ½ªÅª¤Ë¤Ï .zshrc ¤Ç
export LESS=R alias diff='colordiff -u'
¤·¤È¤¤¤¿¡£´Êñ¤Ê¿§¤Å¤±¤À¤±¤É¡¢Ê¬¤«¤ê¤ä¤¹¤µ¤¬Ãʰ㤤¤À¡£¤³¤ê¤ãÊØÍø¡£
¤¢¤ÈľÀÜ´Ø·¸¤Ê¤¤¤±¤É
alias ls='ls --color=auto'
¤ò
alias ls='ls --color'
¤Ë¤·¤¿¡£¡ÊBSD ¤Ç¤Ï export CLICOLOR_FORCE=1 ¡Ë¤³¤ì¤Ç ls ¤Î½ÐÎϤò less ¤ËÅϤ·¤Æ¤â¿§ÉÕ¤¤Ç¸«¤ë¤³¤È¤¬¤Ç¤¤ë¡£
_ ¤°¤ê¤â¤ó¥¢¥Ã¥×¥Ç¡¼¥È»þ¤Ï load ½ç¤ËÃí°Õ
¤Þ¤¡ÊÌ¤Ë LDRize ¤Ë¸Â¤Ã¤¿¤³¤È¤¸¤ã¤Ê¤¤¤ó¤À¤í¤¦¤±¤É¡£JavaScript ¤Ë¤Ï require ¤Î»ÅÁȤߤ¬¤Ê¤¤¤³¤È¤¬¸¶°ø¡¢¤È¤¤¤¦¤³¤È¤Ê¤Î¤«¤Ê¡©
¤È¤Ë¤«¤¯
- minibuffer
- AutoPagerize
- LDRize
¤Î½çÈÖ¤ò¼é¤ë¤³¤È¡£¤É¤ì¤«¥¢¥Ã¥×¥Ç¡¼¥È¤¹¤ë¤È¿·¤·¤¯¤Ê¤Ã¤¿¤â¤Î¤¬ºÇ¸å¤ËÆÉ¤ß¹þ¤Þ¤ì¤ë¤è¤¦¤Ë¤Ê¤Ã¤Æ¤·¤Þ¤¦¤Î¤Ç¡¢¤½¤ÎÅÔÅÙ½¤Àµ¤¬É¬Íס£
¤Á¤ç¤Ã¤È¥á¥ó¥É¥¤¤±¤É¤·¤ç¤¦¤¬¤Ê¤¤¤Î¤«¤Ê¡£
2008-12-28 [ĹǯÆüµ]
_ Webby ¤ÇÀÅŪ¥µ¥¤¥ÈºîÀ®
Rake ¤ÎÎý½¬²ÝÂê¤È¤·¤Æ°ÊÁ°Ä´¤Ù¤Æ¤ª¤¤¤¿
¤ò»î¤½¤¦¤«¤È»×¤Ã¤Æ¤¤¤¿¤ó¤À¤±¤É¡¢¤Á¤ç¤Ã¤ÈÄ´¤Ù¤¿¤é
¤ò¸«¤Ä¤±¤¿¡£¤³¤Ã¤Á¤ÎÊý¤¬¤¤¤¤¤«¤â¤·¤ó¤Ê¤¤¡£
rote ¤Ï
- Textile ¤Ê¤É¤Ç½ñ¤«¤ì¤¿¥³¥ó¥Æ¥ó¥Ä¥Õ¥¡¥¤¥ë
- ¥á¥¿¥Ç¡¼¥¿¤òµ½Ò¤¹¤ë rb ¥Õ¥¡¥¤¥ë
¤¬Ê¬Î¥¤·¤Æ¤¤¤¿¤ó¤À¤±¤É¡¢webby ¤Ç¤Ï¤³¤ì¤¬°ì¤Ä¤Î¥Õ¥¡¥¤¥ë¤Ë¤Þ¤È¤Þ¤Ã¤Æ¤¤¤ë¡£¥Õ¥©¡¼¥Þ¥Ã¥È¤Ï¤³¤ó¤Ê´¶¤¸¡£
--- RFC822 É÷¤Î¥á¥¿¥Ç¡¼¥¿ --- Textile ¤Ê¤É¤Ç½ñ¤«¤ì¤¿¥³¥ó¥Æ¥ó¥Ä
¥³¥ó¥Æ¥ó¥Ä¤Î½èÍý¤Ï filter ¤Ç»ØÄꤹ¤ë¡£filter ¤Ë¤Ï Textile ¤Ê¤É¤Î½ñ¼°¤Î¾¤Ë erb ¤â»ØÄê¤Ç¤¤ë¤Î¤Ç¡¢¥³¥ó¥Æ¥ó¥Ä¤ÎÃæ¤Ë Ruby ¤Ç°·¤¨¤ëÊÑ¿ô¤ä½èÍý¤ò¼«Í³¤ËËä¤á¹þ¤à¤³¤È¤¬¤Ç¤¤ë¡£¤³¤ì¤ÏÊØÍø¤À¡£
»È¤¤Êý
Rails ¤Î¤è¤¦¤Ë webby-gen ¥³¥Þ¥ó¥É¤Ç¥µ¥¤¥È¤Î¤Ò¤Ê·Á¤òºî¤ë¡£¤³¤Î¤È¤»ØÄê¤Ç¤¤ë¤Î¤Ï 0.9.3 ¤Ç
- blog
- presenation
- tumblog
- website
¤Î4¼ïÎà¡£¤½¤ì¤¾¤ìŬ¤·¤¿ task ¤¬ÍøÍѤǤ¤ë¤è¤¦¤Ë¤Ê¤ë¡£
blog
»î¤·¤Ë blog ¤òºî¤ë¤È task ¤Ë
blog:post
¤¬¤Ç¤¤Æ¡¢¤³¤ì¤ò¸Æ¤Ö¤È¸Æ¤ó¤ÀÅöÆü¤Îǯ·î¤Î¥Ç¥£¥ì¥¯¥È¥ê¤ò
YYYY/MM
¤Ç·¡¤ë¡£blog:post »þ¤Ë path ¤ÎÆþÎϤòµá¤á¤é¤ì¤ë¤¬¡¢¤³¤ì¤òÆþ¤ì¤Æ
YYYY/MM/path
¤Ê¥¨¥ó¥È¥ê¤Ë¤Ê¤ë¡£Type Pad É÷¤È¤¤¤¦¤«³¤³°¤Î blog ¥Ä¡¼¥ë¤ÇºÇ¤â¥Ý¥Ô¥å¥é¡¼¤Ê URL ¤«¤Ê¡£
website
¤³¤ì¤¬ website ¤Ë¤Ê¤ë¤È
create:page
¤Ë¤Ê¤ë¡£
deploy
Capistrano ¤Ç¤Ï¤Ê¤¤¤±¤ì¤É rsync ¤Ê¤É¤ò»È¤Ã¤¿ deploy ¤â¹Ô¤¨¤ë¡£¤¿¤À¤· ftp ¤Ç¤Ï¹Ô¤¨¤Ê¤¤¡£¤¦¡¼¤ó¡¢¤â¤Ã¤¿¤¤¤Ê¤¤¡£ftp ¤ËÂбþ¤¹¤ì¤Ð»È¤¨¤ë¥·¡¼¥ó¤Ï¤¿¤¯¤µ¤ó¤¢¤ê¤½¤¦¤Ê¤Î¤Ë¡£¤Þ¡¢output ¤·¤¿¤â¤Î¤ò sitecopy ¤Ê¤É¤Ç mirroring ¤¹¤ì¤Ð¤¤¤¤¤Ã¤Á¤ã¤¤¤¤¤ó¤À¤±¤É¡£
autobuild
ÌÌÇò¤¤µ¡Ç½¤È¤·¤ÆºÇ¸å¤Ë autobuild ¤ò¾Ò²ð¤·¤Æ¤ª¤¯¡£¤³¤Î¥¿¥¹¥¯¤ò¼Â¹Ô¤¹¤ë¤È¥Õ¥¡¥¤¥ë¤Î¹¹¿·¤ò´Æ»ë¤·¤Æ¼«Æ°Åª¤Ë HTML ¤Î½ÐÎϤò¹Ô¤Ã¤Æ¤¯¤ì¡¢¤Ê¤ª¤«¤Ä WEBrick ¤Ç serve ¤·¤Æ¤¯¤ì¤ë¡£
ÀµÄ¾¡¢¤³¤Î¥Ä¡¼¥ë¤Ë¶½Ì£¤ò»ý¤Ä¿Í¤Ï¼«Ê¬¤Ç Web ¥µ¡¼¥Ð¤¯¤é¤¤Î©¤Æ¤é¤ì¤ëµ¤¤â¤¹¤ë¤¬¡¢¤½¤¦¤Ç¤Ê¤¤¿Í¤Ç¤â¤³¤Î autobuild ¤òÍøÍѤ¹¤ì¤Ð¥µ¥¤¥È¤Î¸¡¾Ú¤ò¹Ô¤¤¤ä¤¹¤¤¡£
2008-12-30 [ĹǯÆüµ]
_ ri ¤Ã¤Æ¥á¥½¥Ã¥É¤â°ú¤±¤¿¤Î¤«
$ ri String
---------------------------------------------------------- Class: String
A +String+ object holds and manipulates an arbitrary sequence of
bytes, typically representing characters. String objects may be
created using +String::new+ or as literals.
...
¤·¤«¸«¤¿¤³¤È¤Ê¤«¤Ã¤¿¤±¤É¡¢
$ ri String.sub
------------------------------------------------------------- String#sub
str.sub(pattern, replacement) => new_str
str.sub(pattern) {|match| block } => new_str
------------------------------------------------------------------------
...
¤³¤ó¤Ê´¶¤¸¡£
ºÇ¶á¤Ï irb ¤Ç¥á¥½¥Ã¥É¸¡º÷¤¹¤ë¤³¤È¤¬Â¿¤«¤Ã¤¿¤ó¤À¤±¤É¡¢¤³¤ì¤À¤±¤Ç¤Ï°ú¿ô¤Ë¤Ä¤¤¤Æ¤Ï²¿¤âʬ¤«¤é¤Ê¤¤¡£ri ¤Ç°ú¤¯¤È¤Á¤ã¤ó¤È¤½¤ÎÊÕ¤ÎÀâÌÀ¤âʬ¤«¤ë¤Î¤ÇÊØÍø¡£
¤Ê¤ë¤Û¤É¡£
¤¢¤È¤Ï¤â¤¦¾¯¤·Á᤯ɽ¼¨¤·¤Æ¤¯¤ì¤ë¤È´ò¤·¤¤¤ó¤À¤±¤É¡¢¤½¤ì¤ÏìÔÂô¤À¤í¤¦¤«¡£
_ ´Ä¶¤ÎȽÊ̤äƿ¿ÌÌÌܤˤä¤ë¤ÈÌÌÅݤ¯¤µ¤¤
ǯ¤ÎÀ¥¤ÎÂçÁݽü¤È¤¤¤¦¤³¤È¤Ç¡Ê½ñ¤¤¤¿¤Î¤Ï°ã¤¦¤±¤É¼ÂºÝ¤Ë¼Â¹Ô¤·¤Æ¤¤¤¿¤Î¤ÏǯËö¤À¤Ã¤¿¤Î¤Ç¤¹¡Ë¡¢.emacs, .zshrc ¤Ê¤É¤òÀ°Íý¤·¤Æ¤¤¤ë¡£
- .emacs, .zshrc ¤Ç´Ä¶¤òȽÊ̤·¡¢FreeBSD, Linux, MacOSX ¤Ç°ì¤Ä¤ÎÀßÄê¥Õ¥¡¥¤¥ë¤òÍøÍѤ¹¤ë
- ¤³¤Î°ì¤Ä¤Î¥Õ¥¡¥¤¥ë¤ò¥Ð¡¼¥¸¥ç¥ó´ÉÍý¤¹¤ë
¤È¤¤¤¦¤³¤È¤ò»î¤ß¤Æ¤¤¤ë¡£
¤Þ¤¿¥É¥Ã¥È¥Õ¥¡¥¤¥ë¤ò¥Ð¡¼¥¸¥ç¥ó´ÉÍý¤¹¤ë¤È¸À¤Ã¤Æ¤â¥Û¡¼¥à¥Ç¥£¥ì¥¯¥È¥ê¤ò´Ý¤´¤È¥Ð¡¼¥¸¥ç¥ó´ÉÍý¤¹¤ë¤ï¤±¤Ë¤Ï¤¤¤«¤Ê¤¤¡Ê¸½¼ÂŪ¤¸¤ã¤Ê¤¤¡Ë¤Î¤Ç¡¢dot-files/ ¥Ç¥£¥ì¥¯¥È¥ê¤ò·¡¤Ã¤Æ¤³¤³¤Ë¥É¥Ã¥È¥Õ¥¡¥¤¥ë¤òÃÖ¤¡¢rake ¤ò»È¤Ã¤Æ¥Û¡¼¥à¥Ç¥£¥ì¥¯¥È¥ê°Ê²¼¤Ë¥ê¥ó¥¯¤òÄ¥¤ë¤è¤¦¤Ë¤·¤Æ¤ß¤¿¡£
Í×¤Ï rake task ºî¤ê¤ÎÎý½¬¤Ç¤¢¤ë¡£¼Â¤Ï¤¢¤ó¤À¤± Capistrano ¤ò»ý¤Á¾å¤²¤Æ¤ª¤¤¤Æ¸½Ãʳ¬¤Ç Rakefile ¤ò¤Û¤È¤ó¤É½ñ¤±¤Ê¤¤¤Î¤Ç¤¢¤Ã¤¿¡£
2008-12-31 [ĹǯÆüµ]
_ 2008ǯ¿¶¤êÊÖ¤ê
¤ò¡¢¾®Àµ·î¤Ë½ñ¤¯¥é¥¤¥Õ¥Ï¥Ã¥¯¡£
2008ǯ¤ÎƬ¤Ï¤½¤ÎÁ°¤Îǯ¤«¤é¤Î PHP 4 -> 5, PostgreSQL 7 -> 8 ¤Î°Ü¹Ô¡¢¥µ¡¼¥Ð¥ê¥×¥ì¥¤¥¹ºî¶È¤Ë³Ý¤«¤ê¤Ã¤¤ê¤Ç¤½¤ì°Ê³°¤è¤¯Ê¬¤«¤é¤Ê¤¯¤Ê¤Ã¤Æ¤¿¡£
¤½¤ÎÀ®²Ì¤¬¤³¤ÎÊդꡣ
- PHP ¤ÎÀßÄê¤Ã¤Æ PHP ¤Ç½ñ¤¤¤¿Êý¤¬¤è¤¯¤Ê¤¤¡©
- svn¥ê¥Ý¥¸¥È¥êÆâ¤Î¥ä¥Ð¤²¤Ê¥Õ¥¡¥¤¥ë¤ò¤¢¤Ö¤ê½Ð¤¹ÊýË¡
- Rswatch ¤Ê¤ó¤Æ¤â¤Î¤ò½ñ¤¤¤Æ¤ß¤Þ¤·¤¿
- run-parts(periodic)¤Ç mail ¤ÎÁ÷¿®Àè¤òÊѹ¹¤¹¤ë
- OpenSSH ¤Ë¤Ç¤¤ë¤³¤È¡Ê¤Î°ìÉô¡Ë¥Ò¥¹¥È¥ê
- OpenSSH ¤ò Zebedee Âå¤ï¤ê¤Ë»È¤¦
- Rsync 3 ¤ò»î¤¹
¥í¥¯¤Ê´Æ»ë¤¬¤Ç¤¤Æ¤¤¤Ê¤«¤Ã¤¿¸Å¤¤¥·¥¹¥Æ¥à¤ò¤É¤¦¤Ë¤«°Ü¹Ô¤µ¤»¤ë¤¿¤á¤Ë¤¢¤ì¤³¤ì¹©Éפ·¤Æ¤¿»þ´ü¡£º£¤âËÜÅö¤Î°ÕÌ£¤Ç¸½ÂåŪ¤Ê´ÉÍý¤Ï¤Ç¤¤Æ¤¤¤Ê¤¤¤ó¤À¤í¤¦¤±¤É¡¢°ÊÁ°¤è¤ê¤Ï¤À¤¤¤Ö¥Þ¥·¤Ê¤Î¤â´Ö°ã¤¤¤Ê¤¤¡£º£¸å¤ÏºÇ¶á¥Ï¥Þ¤Ã¤Æ¤ë Rake ( Capistrano ) ¤Ç¤è¤ê³Î¼Â¤Êºî¶È¤Ë¾º²Ú¤Ç¤¤ë¤è¤¦¤Ë¤·¤Æ¤¤¤¯Í½Äê¡£
¼¡¡¢´Æ»ë·Ò¤¬¤ê¤È¤¤¤¦¤«¤â¤Ã¤È feed ¤òÊØÍø¤Ë¡¢¤È¤¤¤¦¤³¤È¤Ç Yapra ¤ò»È¤¤»Ï¤á¤¿¡£Àª¤¤Í¾¤Ã¤Æ Yahoo! Pipes ¤â»Ï¤á¤Æ¤ß¤¿¡£¤Þ¤¿ Yapra ·Ò¤¬¤ê¤Ç¡¢Ä¹¤¤¤Ä¤¤¢¤¤¤Î Ruby ¤ò¤è¤¦¤ä¤¯ Web ÊýÌ̤˳èÍѤ·»Ï¤á¤¿¡£
- Yet Another Pragger -- BONNOH FRACTION 13
- º£¤´¤í scraping ¤Ë¶ìÏ«¤·¤Æ¤¤¤ëÏÃ
- º£¤µ¤é¤Ê¤¬¤é Hpricot ¤ÏÊØÍø
- Yapra ¤Î Feed::Custom ¤Ç attribute ¤ò°·¤¨¤ë¤è¤¦¤Ë¤¹¤ë
- Yapra ¤Ç FreeNAS News ¤ÎÌîÎÉ feed ¤òºî¤Ã¤¿
- Yapra ¤ÇÅǤ¤¤¿ feed ¤ò¼ÂºÝ¤Ë¹ØÆÉ¤¹¤ëÁ°¤Ë
- ¤¤à¤é¤µ¤ó¤Î»¨µÄ¡feed²½·×²è
- Yahoo! Pipes »Ï¤á¤Þ¤·¤¿
- Yapra ¤Ç Trac ¤Î timeline feed ¤ò 1ËܤË
- Trac ¤Î feed ¤ò merge ¤¹¤ë Yapra ¤Î YAML ¤ò ERB ¤Çºî¤ë
feed ¤òÍøÍѤ¹¤ë¤À¤±¤Ç¤Ê¤¯¡¢¥ê¥½¡¼¥¹¤«¤é API ¤òÍѰդ·¤¿¤ê feed ¤òÅǤ¤¤¿¤ê¤â¤·¤Æ¤¿¡£ÍפϺ£¤Ë¤Ê¤Ã¤Æ HTTP Header ¤òÊÙ¶¯¤·Ä¾¤·¤¿¤È¤¤¤¦¤³¤È¤Ç¤¹¤Ê¡£
- ¥ê¥½¡¼¥¹»Ø¸þ¤Î URI À߷פËǺ¤à
- JSON¤Î»ÅÍͤˤÁ¤ç¤Ã¤ÈǺ¤à
- ETag ¤Ã¤ÆÆÃ¤Ë½ñ¼°¤Ê¤¤¤Î¡©
- rest-client ¤¬ÊØÍø
- Ķº£¤µ¤é FeedBurner ¤Î¤ªÊÙ¶¯
- Last-Modified ¤È HTTP date ¤È RFC 1123
¤Þ¤¿ rest-client ¤ä Yapra ¤Î±Æ¶Á¤â¤¢¤Ã¤Æ git ¤È github ¤ò»Ï¤á¤¿¡£
- wtnabe's Profile - GitHub
- github ¤Ï git 1.4.x ¤Ç¤Ï»È¤¨¤Ê¤¤¤ß¤¿¤¤
- ¤À¤¤¤Ö git ¤Ä¤«¤á¤Æ¤¤¿
- git ¤Î pull request ¤Ï fork Á°Äó¤Ã¤ÆÍý²ò¤Ç¹ç¤Ã¤Æ¤Þ¤¹¤«
- git ¤Ç svn status ¤Î¤è¤¦¤Ê¤â¤Î
- revert, reset, rebase, ...
¤Ç¤âÀµÄ¾¡¢git ¤Î¥á¥â¤¬Â¿¤¤¤Î¤Ï git ¤¬¤è¤¯Ê¬¤«¤é¤Ê¤¤¾Úµò¡£¼ÂºÝ¡¢git ¤ò»Ï¤á¤ëÁ°¤«¤é Mercurial ¤ò»È¤Ã¤Æ¤¤¤ë¤¬¡¢Mercurial ¤Î¥á¥â¤Ï¼Â¤Ï°ìÀڤʤ¤¡£¤³¤ì¤Ï¾¯¤Ê¤¯¤È¤â Subversion ¤«¤é¤Î°Ü¹Ô¤Ë¤Ä¤¤¤Æ¤Ï¡¢¤¢¤¯¤Þ¤Ç¸Ä¿ÍŪ¤Ê´¶ÁÛ¤À¤±¤É°µÅÝŪ¤Ë Mercurial ¤ÎÊý¤¬³Ú¤À¤«¤é¡£
¾¡¢
- Growl
- iCal
- Rake ( Capistrano )
- AutoPagerize
Êդ꤬ºÙ¤«¤¯Ç®¤«¤Ã¤¿¤È¤³¤í¡£¤Þ¤¿ Rack ¤ä Routing¡¢jQuery ¤Ê¤É¤â´Þ¤á¤Æ
2008ǯ¤ÏÁ´ÂÎŪ¤Ë Web ¤È Ruby ¤Ç½¼¼Â¤·¤Æ¤¿Ç¯¤À¤Ã¤¿¡Ê¤Ê¤Î¤Ë Rails ¤Ï¥Î¡¼¥¿¥Ã¥Á¡Ë
¤È¸À¤Ã¤Æ¤¤¤¤¤ó¤¸¤ã¤Ê¤¤¤«¤È»×¤¦¡£¤¢¤È¤Þ¤¡ Mac ¤â OSX 10.5 ¤Ë°Ü¹Ô¤·¤Æ¡¢°ÊÁ°¤è¤ê¤¤¤í¤ó¤Ê¤³¤È¤¬²÷Ŭ¤Ë¤Ê¤Ã¤¿¤«¤Ê¡£
2009ǯ¤â´ðËÜŪ¤Ë¤Ï¤³¤ÎÏ©Àþ¤Ç´èÄ¥¤ë´¶¤¸¤Ç¹Í¤¨¤Æ¤¤¤ë¡£¤È¤ê¤¢¤¨¤º¤Ï Rake ¤È´Æ»ëǽÎϤζ¯²½¤«¤Ê¡£¤³¤ì¤Þ¤Ç¤Ï¤¢¤Þ¤ê¥Í¥Ã¥È¥¦¥©¥Ã¥Á¥ã¡¼¤Î¥¹¥¥ë¤Ë¶½Ì£¤Ê¤«¤Ã¤¿¤ó¤À¤±¤É¡¢¤½¤Ã¤ÁÊýÌ̤ò¶¯¤¯¤·¤Æ¤¤¤¤¿¤¤¤«¤Ê¤È»×¤Ã¤Æ¤¤¤ë¡£
¤¢¤È¤Ï»æ¤ò´Þ¤á¤Æ»¨Â¿¤Ê¾ðÊó¤Î°·¤¤¤ò¤â¤¦¾¯¤·¤¦¤Þ¤¯²ó¤·¤Æ¤¤¤¤¿¤¤¡£¤¢¤ó¤Þ¤êÍ̾¤¹¤®¤Æ¸À¤¦¤Î¤â¤Ï¤Ð¤«¤é¤ì¤ë¤±¤É GTD ¤È¤«¥é¥¤¥Õ¥Ï¥Ã¥¯¤È¤«¤â¤â¤¦¾¯¤·°Õ¼±¤·¤¿Êý¤¬¤¤¤¤¤Î¤«¤â¡£
¿ÈÂΤâÏ«¤ê¤Ä¤ÄÃ䨤ʤª¤µ¤Ë¤ã¤¤¤«¤ó¤«¤Ê¡¼¤Ê¤ó¤Æ¤³¤È¤âµ¤¤Ë¤Ê¤Ã¤Æ¤¤¤ë¡£¤â¤¦¤¤¤¤¤ª¤Ã¤µ¤ó¤À¤·¤Ê¡£ºÇ½é¤«¤é̵Íý¤ÎÍø¤¯¿ÈÂΤǤϤʤ¤¤¬¡¢ÌµÍý¤»¤º¡¢¤¤¤¤Íî¤È¤·¤É¤³¤í¤ò¸«¤Ä¤±¤ëÌܤâÍܤäƤ¤¤«¤Ê¤¤ã¤Ê¡£¥¬¥à¥·¥ã¥é¤Ê¤À¤±¤Ç¤Ï¤â¤¦¥À¥á¤Ê¤ó¤À¡£¤½¤³¤Ï¤â¤¦Äü¤á¤Ä¤¤¤¿¤è¡¢¤µ¤¹¤¬¤Ë¡£
_ Johann [ÂçÊÑʬ¤«¤ê¤ä¤¹¤¤¤Ç¤¹¡£»²¹Í¤Ë¤µ¤»¤Æ¤¤¤¿¤À¤¤Þ¤¹¡£]