As Sloth As Possible

��ǽ�ʸ¤�ʥޥ���ΤǤ��ꤿ��

�������ͥ�

�ʤ�ǤʤΤ���ʹ����Ƥ�֤ʤ󤫲ˤ��ä�����ġפȤ�����

���丵���Ϥ�������Ū�����֤ʤ󤫻Ż��������ط��ʤ������ɽ񤭤����״����ä������ʤ�����ɡ�Go�Ȥ���ͷ��Ǥ����ˤҤ��ʤ��Ȥ���Rust���դ��Ƥ��ޤäƤء����򤽤��Ȥ����Ф��Ƥߤ뤳�Ȥˤʤꡢ�ִ���ʤ������Ȥ��Ȥ��ϤȤꤢ����Whitespace�ν����Ϥ��äƤߤ�Ȥʤ󤫴��줿�褦�ʵ�ʬ�ˤʤ�פȤ����ʤǤǤ��͡��ʤ󤫽������ä���

�����񤤤Ƥ�����κǿ���nightly��v0.12.0-pre�ˤǤϥ���ѥ����̤�Τ��ǧ�ѤߡʤȤ�����¿ʬ0.12.0�Ǥ����ӥ�ɤǤ��ʤ���ή�Ф��Ħ¤��Ф�Ȥ�ʬ����ʤ������졢0.10.0��0.11.0��0.12.0�Ǹߴ���̵�������ɥ�����ȸ��˹Ԥä���ɸ��饤�֥���ޤ�ۤȤ�ɤ�API��experimental���ä��ˡ�rust-albino������clone������ǿ���rustc���б�����cargo��rustup���ʤ󤫤�����ơ�

cargo build
����ȥӥ�ɤǤ��롣homebrew�Ǥ�������뤱�ɥХ��ʥ����0.11.0������������Υӥ�ɤ��Ȥ��ʤ���֤�����Τ���ͤ���nightly�ΥХ��ʥ�Ȥ����������

Albino�����ޥ�ɥ饤��ġ���ǡ������Ĥ�Whitespace��¹Ԥ�����ե�����֥뤷���ꤷ�Ƥ���롣�ǽ�����̤˥��󥿥ץ꥿��äƤ�������ɡ���Τ��Ȥ�Whitespace�ɤ�ʤ����񤱤ʤ����饢����֥����Ǥ�Ǥä������褦�����Ȥ����ν񤤤�DT�Ȥ���ư����������͡����Ȥ���äƤ��餤�Ĥδ֤ˤ�VM�ȥѡ�����ʬΥ��������ʪ�Ȥ��Ʋ��Τ��饤�֥��ˤʤä���ä��Τ�Whitebase��

��̩�˸��������Τ�Whitebace������Albino�Ϥ����Υ��󥿡��ե��������ä��ꤹ�뤱�ɺ٤������Ȥϵ��ˤ��ʤ������̾������ޤä��Τ�Whitebase�����ǡ�Whitespace��̿�᥻�åȤ���ä�VM�ȥѡ����Υ饤�֥��ʤΤǡ����ϡפȤ����Τ�ͳ��Ǥ��äƷ褷��˿19�Ф˸����ʤ���ĹΨ����Ϣˮ����ϤǤϤʤ�����碌�ƥġ��������Whitedevil�ˤ��褦���ʡ��Ȥ���ֹͤ������ɥ��ޥ��̾�Ȥ��Ƥ�Ĺ�����뤷rx78�Ȥ������ꥢ������Ϥ�ˤʤ�Τǥ���ӥΤˤ�����VM�ȥѡ�����ʬΥ������̤ɤ������櫓��Brainf*ck�����θ����Whitespace��̿�᥻�åȤ��Ѵ��Ǥ���褦�ˤʤä��Τǡ��������򤯤ʤ���Τޤ��򤯤ʤäƤ���פ��饢��ӥΤʤ�Ǥ���

����줿��Ρ�Rust���ʤ��ʤ����äƤ��Ƴڤ����Ȥ������Ȥ�ʬ���ä������ޤɤ��äݤ����֥��ޥ�ɷ��Υ��ޥ�ɤɤ���äƺ�äƤ�Τ��ʡ��äƤΤ�ʬ���ä���Whitespace�⤷����Brainf*ck�Υȡ����������ɽ�����֤����ƥ졼�����������Ǥ���д�ñ�˥��쥪����줬����饤�֥�꤬���褿�Τǡ����夵�äȸ�����äƥɥ��󥰤������Ȥ��ϰ�֤ǽ����褦�ˤʤä���Brainf*ck��Ǥ�դΥץ�����फ��Whitespace�Υ����ɤ������Ǥ���褦�ˤʤä���

���ʤä���Ρ����֡��빽��̵�̤ʻ��֡�

������ǥ󥦥����������Ѥ��Ƶס��������Ǥ�ʤ�������Ǥ����Τǻ����Ƥ�����

�֤��ä�����ʤ��衢������󡪡סֺ�ǽ��̵�̸�������ʤ��ơ�̵�̤��Τ�Τ��衢��������󡣡�

�����Ȳ����㤦�Ρ�

���⤽���ȯü�ˤĤ��Ƥ��ץ�����ߥ󥰸����DT���Ȥ��������򡢼ºݤθ�����ͤˤĤ��Ƥ�README�Ǥ��ɤ�Ǥ�餦�Ȥ��ơ����ǺƼ��������Τ��Ȥ����á�

3ǯ���˺�ä��Τϡ�Whitespace�Υȡ�������ִ����������Ϥ򥤥󥿥ץ꥿�Ȥ���Ruby�Ǽ����פ�����Τʤ�����ɡ�����פä�������ѥ��뤷�Ƥߤ����Ȼפ�Ω�äƤ��ޤ�����Ǥ��켫�Τ�LLVM���ɤ�ʬ����ʤ��ä��Ȥ���llvmruby���Τ��ץ��������ȤȤ�����ʬ����ʴ����ˤʤäƤ��ޤäƤ����Ȥ���������������Ǻ��ޤ��Ƥ�������ɡ�����ή�졢�ʤ󤫸��֤��Ƥߤ������̤�LLVM������֥��ɤ߽񤭤Ǥ���褦�ˤʤäƤ�����ruby-llvm��������ư���褦�ˤʤäƤ�ߤ����������Ȥ������ȤǺƼ������Ƥߤ뤳�Ȥˤ�����

����Ǻ��ľ�������ǡ�Whitespace���ִ��äƤΤ�ʤ�������򤯤ʤ��ʡפȻפä�VM�Υ������ƥ�����ȸ�����ͤ�ľ�����Ȥˤ����ʤѤäȸ���������ʬ����ʤ����ɡ���DT�ȿ�DT�δ֤˸ߴ�����̵���ˡ����Τ����Ǽºݤˤϥ��塼��󥰴�������ʤ��ʤäƤ�Ȼפ��������⤽������Ƚ���Ƥ�Τ��ɤ�����������Τ����ɡ��Ȥꤢ������Hi!�פäƽ��Ϥ���Τȥե��ܥʥå�����Ф��Τ�ư�����Τ��ɤ��Ȥ��롣

�������ɸ���ä���DT�����ɤ�ͥ��ƥ��֤ΥХ��ʥ�ˤޤǥ���ѥ��뤷�ƹ�®�˼¹ԡפäƤΤ�¸����ơ�DT���󥿥ץ꥿��250ms���餤������fib.dt�򥳥�ѥ��뤹���4ms���餤�Ƿ�̤��Ф�褦�ˤʤä��������褦��Ruby�Υ����ɤ�������100ms���餤���ä��Τ���Ũ��®�����ޤ�������ѥ��뼫�Τ�LLVM�ȥ���ѥ����Ǥ���Ƥ���Τ��礷�ư�ĥ��뤢��Ǥ�ʤ��Τ����ɤ⡣�����ƹ�®��ư��������ʤ���Ȥ����äʤΤ����ɤ⡣

�֤ä��㤱DT���LLVM������֥�������ڤ��˵����Ϲ⤤���񤭤䤹�������������Τ褦�˹�¤�ΤȤ��ؿ��ݥ��󥿤Ȥ��Ȥ���Τʡ�C�δؿ��Ƥ٤뤷���ǽ�C�ǽ񤤤Ƥ�VM�������LLVM������֥�ľ�ܽ񤯤褦�ˤ������ɡ��礷���Ѥ��ʤ���DT�ǽ񤯤��餤�ʤ�LLVM������֥�񤤤����������Ǥ���LLVM��̵�̸����������դ��Ƥ�������������

DT��¸�߰յ��ˤĤ��Ƥϵ���򺹤�����;�Ϥ�ʤ���̵���ȸ��äƤ������ɡ����β����ǥ쥸�����ޥ���ˤĤ��ƿ���Ĵ�٤ơ��ϡ�������Ԥ塼�����äƤ�����äƤ������Ƥ�Τ��������ٶ��ˤʤä��ΤǤ���Ϥ�����ɤ��ä����褯����ʤιͤ������ʤ���CPU�Ȥ�����ѥ���Ȥ���äƤ��ã�������˲���Ʊ�����������ʪ�ʤΤ���������������

��RubyKaigi������ä��鿿���ܤˤ�����פȤ����äƤ������ˡ��桹����̵�������֤��Ƥ������Ѥ�ʬ����䤹��������ֺ����ФƤ��ޤä��塢�Ƥ���ޤǾ�äƤ��Ƥ��ޤä������˥����ߥ󥰤�ƨ����faultier�Ǥ�����Ф�ϡ�

�������Τ��й����Ƥߤ�

���ɤ󤲤��Ф��ʤ�Ƥ�⤤�Ƥ⤤�����������Ȥ������ȤǤƤ�AA�Ͼ嵭�ε���Ʊ����������Ȥ碌�Ƥ��ä�����դ⤤���ʡ��Ȼפä��������ɽ�����Ƥߤ����礭�᤮�Ƽ�ʬ�Υ����ߥʥ��ɽ���Ǥ��ʤ��ä��ΤǤ��Ȥ����������ɤϤ���ʴ�����

# tewi.rb
eval$s=%w't=true;e="eval($s=join("<<34<<34<<",qw{$t=1;$s=~/"<<92<<"[[0-9,]+"<<92<
<"]/;$n=eval($&);$e=          "<<39<<"eval$s=%w"<<39<<    ".chr(39)."<<39<<($s+(
($s.length>1756)?"   ":"#"<<$    s.gsub(/[^0-9a-zA-   Z]/,      "")[0,(1755-$s.l
ength)]));e[-312,  311]=""<<39<<   ";$e.=          ("<<39<<"#"<   <39<<".substr(
join("<<39<<39<<  ",split(/[^0-9a-z              A-Z]/,$s)),0,(200  9-length($s)
))).chr(39)."<<  39<<".join"<<39<<";@o   =       map{$t=!$t;split(//  ,((!$t)?su
bstr($e,0,$_,"< <39<<39<<"):chr(32)x$_)         )}@$n;for(1..34){spli  ce(@o,$_*
81,0,chr(10))}  ;print(join("<<39<<39<<         ",@o).chr(10      )    )}))";o=[
101,10,24,4,40 ,3,8,4,18,3,4,6,33,2,13           ,3,6,10,1            2,3,30,2,1
7,14,17,2,27,  2,21,3,1,7,19    ,2                     ,              25,1,23,9,
21,2,23,2,23,  9,12,6,1,                           4                   ,23,1,23,
11,9,12,23,2, 13,4,2,2                   1                             ,1,14,23,
2,9,27,1,19   ,22,1,8         ,                  1    9   ,             1,29,20,
3,7,9,1,      18,1,4      ,         1        ,          3           ,    1,13,16
,6,6,6,      1,9,1,8                          ,1           ,    1    0,    1,11,
1,4,14,      6,7,26,                   2,1     1,1,4   ,1              ,4,   2,4
,12,6,7     ,19,3,5,             5,  3,2,14,3  ,3,1   0,5               ,8,13  ,
2,2,8,    2,4,3,3,15,          5,2    ,7    ,  4,11 ,10,3,              4,2,4,1,
2,4,    1,6,14,12,4,1      3  ,   6,1,     2,1,3,4,5,18,3,1,3   ,   1   ,3,12,3,
12,1   3,5,1,2,4,15             ,1,1, 11    ,10,3,14,12,6,1 ,           2,5,13,2
,1   ,1,1,6,12,2,16            ,11,7, 8,     13,2,1,7,13,1  , 1      8,10,8,6,14
,  1,2,10,10,1,20,1           2,5,3,1        2,1,6,13,7,2,  1       9,13,26,14,7
, 2,16,16,11,1,13,14          ,8,2,14,      16,13,7,5,15,1 0,          3,8,10,1,
8 ,25,10,1,4,13,27,23,            12,4,   2,12,5,1,1,1 ,8,1,1             3,17,1
0  ,1,3,5,1,12,14,4,8,             4,10,2,13,25,2,3,9,4,2,1,3              ,15,1
3,  33,4,5,1,4,3,20,                8,182].map{ |i|t=!t;((!t)              ?e.sl
ice  !(0,i):32.chr*                i)}.join;1.up       to(35               ){|i|
o[(i*   81)-1,0]          =        10.chr};puts(o)#ttrueeeva          l    sjoin
3434qwt1                           s920992nevale39evalsw39            chr3  939s
slength1     7 5        6             sgsub09azAZ01755s          l   ength e3123
1139e39              39su        bstr          jo             #t1s09nevaleevalsw
chr39tt  rue         eeva  l   sjoin3434qwt1s9             20992nevale39evalsw39
chr3939sslen    gth17 56sg   sub09azAZ01755slengt        he31231139e3939substrjo
in3939split09azAZs02009lengthschr3939join39omapttsplittsubstre03939chr32xnfor134
spliceo810chr10printjoin3939ochr10o10110244403841834633213361012330217141'.join

Gist�ˤ��֤��Ƥ���ޤ����Ϥ���

Quine����ʤ���

��Υ����ɤ򥳥ԥڤ���Ruby�˼¹Ԥ�����Ȳ���饳���ɤ��Ǥ��Τǡ�����򤵤��Ruby��ή������Ǽ¹Ԥ����Ƥ��ȡĤʤ�Ȥ������ȤǤ��礦�����顼���Ǥ��ǤϤ���ޤ��󤫡�Quine�ˤʤäƤͤ�����͡��������Υ���ǽ����

# tewi.pl��tewi.rb�ν��Ϸ�̡�
eval($s=join("",qw{$t=1;$s=~/\[[0-9,]+\]/;$n=eval($&);$e='eval$s=%w'.chr(39).'t=
true;e="eval($s=join(          "<<34<<34<<",qw{$t=1;$s=    ~/"<<92<<"[[0-9,]+"<<
92<<"]/;$n=eval($&)   ;$e="<<3    9<<"eval$s=%w"<<39   <<".      chr(39)."<<39<<
($s+(($s.length>17  56)?"":"#"<<$   s.gsub          (/[^0-9a-zA-   Z]/,"")[0,(17
55-$s.length)]));  e[-312,311]=""<<3              9<<";$e.=("<<39<<  "#"<<39<<".
substr(join("<<3  9<<39<<",split(/[^0-9   a       -zA-Z]/,$s)),0,(200  9-length(
$s)))).chr(39)." <<39<<".join"<<39<<";@o         =map{$t=!$t;split(//,  ((!$t)?s
ubstr($e,0,$_,"  <<39<<39<<"):chr(32)x$_         ))}@$n;for(1      .    .34){spl
ice(@o,$_*81,0, chr(10))};print(join("<           <39<<39<<            ",@o).chr
(10))}))";o=[1  01,10,24,4,40    ,3                     ,              8,4,18,3,
4,6,33,2,13,3,  6,10,12,3                           ,                   30,2,17,
14,17,2,27,2,2 1,3,1,7,                   1                             9,2,25,1
,23,9,21,2,2   3,2,23,         9                  ,    1   2             ,6,1,4,
23,1,23,1      1,9,12      ,         2        3          ,           2    ,13,4,
2,21,1,1      4,23,2,                          9,           2    7    ,1    ,19,
22,1,8,1      9,1,29,                   20,     3,7,9   ,1              ,18   ,1
,4,1,3,1     ,13,16,6             ,6  ,6,1,9,1  ,8,1   ,10               ,1,11  
,1,4,14    ,6,7,26,2,1          1,1    ,4    ,  1,4, 2,4,12              ,6,7,19
,3,5,    5,3,2,14,3,3,      1  0   ,5,8     ,13,2,2,8,2,4,3,3,   1   5   ,5,2,7,
4,11,   10,3,4,2,4,1             ,2,4, 1,    6,14,12,4,13,6, 1           ,2,1,3,
4,5   ,18,3,1,3,1,3,            12,3,1 2,     13,5,1,2,4,15  , 1      ,1,11,10,3
,1  4,12,6,1,2,5,13,           2,1,1,1        ,6,12,2,16,11  ,       7,8,13,2,1,
7, 13,1,18,10,8,6,14,          1,2,10,1      0,1,20,12,5,3, 12          ,1,6,13,
7, 2,19,13,26,14,7,2,16            ,16,1   1,1,13,14,8, 2,14,1             6,13,
7,  5,15,10,3,8,10,1,8,             25,10,1,4,13,27,23,12,4,2,              12,5
,1,  1,1,8,1,13,17,10                ,1,3,5,1,12 ,14,4,8,4,10,              2,13
,25,  2,3,9,4,2,1,3,                15,13,33,4,5,       1,4,3               ,20,
8,182]   .map{|i|          t        =!t;((!t)?e.slice!(0,i):3          2    .chr
*i)}.join                           ;1.upto(35){|i|o[(i*81)            -1,0  ]=1
0.chr};pu     t s        (             o)#ttrueeevalsjoi          n   3434q wt1s
920992ne              vale        39ev          al             sw39chr3939ssleng
th1756sg  sub         09az  A   Z01755slengthe3             1231139e3939substrjo
';$e.=('#'.su    bstr( join   ('',split(/[^0-9a-zA        -Z]/,$s)),0,(2009-leng
th($s)))).chr(39).'.join';@o=map{$t=!$t;split(//,((!$t)?substr($e,0,$_,''):chr(3
2)x$_))}@$n;for(1..34){splice(@o,$_*81,0,chr(10))};print(join('',@o).chr(10))}))

�����Ϥ����ɤ����Ƥ�館���ʬ����Ȼפ����ɡ��¤Ϥ��Υ����ɤϼ�ʬ���Ȥ���Ϥ��Ƥʤ���������Ϥ��Ƥ뤫�ȸ����ȡ�Perl�Υ����ɤ���Ϥ��Ƥ��롣��ǡ�����Perl�Υ����ɤϲ��򤹤뤫�Ȥ����ȡ��ǽ��Ruby�Υ����ɤ���Ϥ��롣�Ĥޤꡢ�ǽ�Υ����ɤϡ֡ؤ���Ruby�Υ����ɤ���Ϥ���Perl�Υ����ɡ٤���Ϥ���Ruby�Υ����ɡפǡ���Υ����ɤϡ֡ؤ���Perl�Υ����ɤ���Ϥ���Ruby�Υ����ɡ٤���Ϥ���Perl�פΥ����ɤˤʤäƤ��ơ����ߤ������ߤ��μ�ʬ���Ȥ����˽��Ϥ�����Ȥ������ֿͤϰ�ͤǤ������ƹԤ��ʤ�����פȤ�����å�����������ä����ɥ����ɤʤ櫓�Ǥ����ޤ����Ǥ���Ruby��Perl��������ä��Τǡ����Τޤ޿������Ƥ�Ĥޤ�ʤ��ä������Ǥ�������ʴ�����ͷ��Ǥߤ�Ȥ����衪

$ cat tewi.rb | ruby | perl | ruby | perl | ruby

���򤷤��Ρ�

�¤ΤȤ����̤ˤʤ�Ȥ������ȤϤʤ��ơ���äƤ뤳�Ȥϴ���Ū�ˤϤ��ɤ�Quine�Ȱ������ƥ���join��eval��Ȥä�Quine��Perl�Ǥ�Ruby�Ǥ�����Ʊ�����ΤǤǤ���Τǡ���ʬ���Ȥ��Ǥ���������Υ����ɤ��Ǥ��褦�˽񤭴�����ȴ�ñ�˹Ԥä����褿��Ǥ���褦�ˤʤ롣

# Ǥ�դ˲ù��Ǥ���Ruby�����ɤ���Ϥ��롢
# Ǥ�դ˲ù��Ǥ���Perl�����ɤ���Ϥ��롢
# Ǥ�դ˲ù��Ǥ���Ruby�����ɤ���
eval$s=%w'puts("eval(join("<<39<<39<<",qw{print("<
<39<<"eval$s=%w"<<
39<<".chr(39)."<<39<
<$s<<39<<".chr(39)."<<39<<".join"<<39<
<")}))")'.join

���Ȥϡ������ʬ�Υ����ɤ���Ĥ�AA��������뤳�Ȥˤʤ뤷��Perl��Ruby���ȥ�ƥ�뤬���ä���ʤΤǥǡ������϶�ͭ�������Τ����Υǡ�����񤭤������Ȥʤ��ή�Ф˸���AA�ǡ�������ʸ���������¤����Ĥ����顢ȿž������ȴ����AA�ˤ��������ʤߤˡ��Ƥ�����Ϥ��ɤ󤲤ΤȤ�AA�ǡ����������ϴ����Ƥ�ʸ������Υ����å���Perl�Ǽ�������Τ����ݤ��ä������ˡ�

���ȤϤޤ������ϻ��˿�����Ŭ���ʥ��ߤ��դ���ʸ����Ĵ�����Ƥ������ɡ�ʸ�����ƥ�������Ҥ���ñ�������Τ����ݽ����Ȥ���������١�chr(39)���Ѥ��ޤ��ꡣ���ȥɥåȤ�Ruby�ΥɥåȤʤΤ�Perl�ΥɥåȤʤΤ��ɤ��狼��ʤ��ʤä��ꤷ�ޤ���

�ޤȤ�

����ǡֲ��ϰ��β����äƤ����פȻפä���¿ʬ�餱�ʤ���Ȼפ��ޤ������٥١������Ǥ����㤦�ȸ�ϥǥХå���ʸ������Ĵ�������ݤʤ����ǡ���ȴ�ñ�ˤǤ��ޤ��������ʡ�ů��Ū�ʵ�ʬ�ˤʤ�ޤ���

�Ƕ�֥����������Ƥʤ��ʡ��ȻפäƤդȺǽ�������������3������������դˤʤäƤ������ɤ��ʤ����֥����񤤤Ƥʤ��Ȥ������Ȥϥ֥����˽񤱤�褦���ϼ��ʤ��Ȥ򤷤Ƥʤ��Ȥ������Ȥǡ�3����ְ�����٤ޤ��ϼ��Ǥ��ä��ˤ⤫����餺�ϼ��ʤ��Ȥ򤷤Ƥʤ��Ȥ����ΤϤȤƤ��ɤ��ʤ�������ϥ����ǥ�ƥ��ƥ��δ����Ǥ��롣

�Ȥ������Ȥǵס����ϼ��ʤ��Ȥ򤷤ʤ��ȤȻפ�Ω�ä��櫓�Ǥ������ʤ��ơ���������ñ���Ȭ������İ��᤮��Τǡ�Ȭ�����̾������ߤޤߤ����Ƥ�館��⥸�塼����äƤߤ������Ū�ˤ������ϼ��ˤʤä���

faultier's kamimamize at master - GitHub

��������ˤ��ƻȤ��ޤ���

$ cat kamimamizer.rb
#!/usr/bin/env ruby
# coding: utf-8
require 'kamimamize'

mayoi = Kamimamize::Coverter.new({
    :pattern => { :priority => 10 },
    :repeat  => { :priority => 5, :through => 0.4 },
    :swap    => { :through => 0.05, :appid => 'APPID' },
    :default => { :class => 'Kamimamize::Plugin::Random' }
})

puts mayoi.kamimamize('���ɡ���', '����餮')
puts mayoi.kamimamize('����', '�Ϥͤ���')

$ ./kamimamizer.rb
���ɡ������ڤ���
����󡡡ʤۤͤ��蘆���

̾���Ȥ����ɤߤ������ȥ��ߥޥޥ������줿̾�����ФƤ��ޤ������ߥޥޥ������ʤ�Ƥ���餷���Ǥ�����������Ǥ�����������Ǥ�����������

�������äȤ������⤹��ȡ������˥ץ饰���������������Kamimamize::Converter��new����ȡ�kamimamize����Ȥ��ˤ��Υץ饰����Τɤ줫��Ȥä�̾�����Ѵ����ޤ���priority���⤤�ۤ����˽�������ơ���ʬ�������Ǥ��ʤ�̾���ΤȤ��ϼ��Υץ饰�����Ǥ���ޤ���through�����ꤵ��Ƥ�����Τ��줰�餤�γ�����������Ȥ��Ǥ⥹�롼���Ƽ����Ϥ��ޤ�����������repeat�ץ饰�����4�䤯�餤�γ�Ψ�ǽ����Ǥ���Ȥ��Ǥ⥹�롼���ޤ��������Υץ饰���󤬥��롼����ȺǸ��default�Υץ饰���󤬽����ޤ����������ꤵ��Ƥʤ���random�ץ饰����default�ǡ��������Ȭ����ˤҤɤ����Ȥ�����ޤ���

�ץ饰����ϤȤꤢ����4�ĺ�äƤ��äơ�

  • Hash��YAML�ե�����Υѥ���̾���Ȥ�����б������Ѵ���̤Υꥹ�Ȥ��Ϥ��ȡ��б�����̾�����褿�Ȥ��Ѵ���̥ꥹ�Ȥ��椫���������֤�pattern�ץ饰���󡣲���ꥹ�Ȥ��Ϥ��ʤ��ȡ�Ȭ����פˤ���ȿ�����롣
  • Ʊ��ʸ����³��̾�����⤷���ϡ֡��פ��ޤޤ��̾���ΤȤ��ˤ��ο������䤷���긺�餷���ꤷ�Ƴ���repeat�ץ饰����
  • ̾�����ɤߤ��첻��Ҳ���Ŭ�����֤�������swap�ץ饰����Yahoo!�Υƥ����Ȳ���API��Ȥ��Τǥ��ץꥱ�������ID��ɬ�ס����ʤߤˡ�̾���λ��̤ò¸«¤Æ¤ï¿½ï¿½ï¿½ï¤±ï¿½Ç¤Ï¤Ê¤ï¿½ï¿½É¤ß¤ï¿½Å¬ï¿½ï¿½ï¿½ï¿½ï¿½Ö¤ï¿½ï¿½ï¿½ï¿½ï¿½ï¿½ï¿½ï¿½ï¿½ï¿½ï¿½Ê¤Î¤Ç¡ï¿½ï¿½ï¿½ï¿½ï¿½Ê¤Ë¾ï¿½ê¤¤ï¿½ï¿½ï¿½È¤Ï¸ï¿½ï¿½ï¿½Ê¤ï¿½ï¿½ï¿½
  • �����ꥹ�Ȥ����������֤�������random�ץ饰���������ꥹ�ȤϽ������������Ǥ��뤱�ɡ����ʤ���Ȭ����ˤҤɤ����Ȥ�����롣Converter��new����Ȥ�������Ū��default�����ꤷ�ʤ���硢���Υץ饰����through=0�ǰ��ָ�������ꤵ���ʤĤޤ�����Ǥ�default������ϰ�̣�ʤ��ˡ�

�����롣�������Ȱ��ɡ������ڤ����repeat�ץ饰����ǡ�������swap�ץ饰������Ѵ���̡�������Ŭ���ʤΤ�¿ʬ����ʤ����򤤷�̤ϽФʤ��Ȼפ����ɡ��㤨����줬���Ȥ������Ȱ�̣���������Ƴ�����Τ��ɤ�������������Τ��ФƤ���Ȥ������ɡ��ڤ���򥫥ߥޥޥ���������ڤ��ä����㤦�Ȥ��ˡ��Ŀ�Ū�ˤϱ������Ȥ��������Ѵ����줿�Τ����򤫤ä��Τ���­�Ǥ����Ҥ餬�ʤβ����֤�������ΤäƷ빽���ݤʤΤ衣�Ȥ�����Ȭ����ο����ä����󥹤˾��Ƥ뵤�����ʤ���

���Ȥ��������֤�������Ȥ���̾������θ��ä�ʬ������ܤˤ��Ȥ���spec���餤�񤯤Ȥ����������ɡ�¿ʬ˰���Ƥ��ʤ����������ۤ����ޤ�����ʬ�Ǹ����ʡ��ʤ�Ȥ����������ߥޥޥ������뤿�������Y!��API��Ȥ��Ȥ���̵�̸����򤷤����ä��������ä��ꤹ�롣Y!��API���򤫤ä�������Ƿ����Dz��ϤȤ�����ͷ��Ǥ����ɤ����ʤ��ä������̵�̸������Ƥߤ����ʤ���

¤Í¤ó¤É¤í¤¤¤É¤×¤Á ²½Êª¸ì¥»¥Ã¥È ¶¥ÎìÉ (¥Î¥ó¥¹¥±¡¼¥ëABS&amp;PVCÅÉÁõºÑ¤ß²Äư¥Õ¥£¥®¥å¥¢)
�ͤ�ɤ����ɤפ� ��ʪ�쥻�å� ¶���� (�Υ󥹥�����ABS&amp;PVC�����Ѥ߲�ư�ե����奢)
�������ߤ򸫤�
¤Í¤ó¤É¤í¤¤¤É¤×¤Á ²½Êª¸ì¥»¥Ã¥È ¶¥ÎÔå (¥Î¥ó¥¹¥±¡¼¥ëABS&amp;PVCÅÉÁõºÑ¤ß²Äư¥Õ¥£¥®¥å¥¢)
�ͤ�ɤ����ɤפ� ��ʪ�쥻�å� ¶���� (�Υ󥹥�����ABS&amp;PVC�����Ѥ߲�ư�ե����奢)
�������ߤ򸫤�

;��

��Τͤ�פ��β�ʪ�쥻�åȡ������񤤤Ƥ�����Ǥ�Amazon�Ǥϼ��ս�λ������äƤ��Ǥ���������򺣹����դ��Ƥ�Τ������������Ǥ��顢twitter��

��Ȭ����������Ƥ����Ȥ�����ŨŸ������@mayoi_hachikuji�ˤ�­������ƿ��줽���ˤʤ��Ȼפ��ʤ���ɤ��ˤ��뤫�Τ�ʤ��Τ����̤˿��ޤ��������꤬�Ȥ�Ȭ������繥����Ȭ�����

�����Ͻ��餷���褤��ŷ�����ä��Τǡ�����Ȥ��ä˴ط��ʤ������⺣���ȤƤܡ��äȥǥ����ץ쥤�˸����äƤ����Ȥ���������ʵ������դ�����

ͦ����Ф��ƹ��� �����ֻ��dzФ���HTTP���ơ�������������

���餢��ޤ��ޤ����ʤ�����������ε��Ԥ����˥���ѥ�����Ф����衣

���μ�Υͥ����繥ʪ�ʤΤ����ɡ�404�Ϥ��Ǥ���ֻ����㤦��󡢤Ƥ��Ǥ��������Ǥⲿ�ѥ�����⤢����ǡ��Ȥ����������Ƥ����Τ��ؾ褷�ƹͤ��Ƥߤ뤳�Ȥˤ�������ˤ�ä�400�ϥ쥹�ݥ󥹤��ФäƤ�ΤϤ���«���������ʤ���͡�������Υ쥹�ݥ󥹤ʤ�Ƽ����Ȥ����Ǥ��֤����Ǥ�400�Ϥ����Τ�ʤ���󡣤���󱳤���503�ʡ֤��������˥����ߥ󥰰����ʡס��֤������Ȥ��롣�ƥꥯ�����ȤϤ���ޤ���Ǥ�����200������������ʥ��ơ����������ɤ⤢��ޤ����͡����������Τ��ʡ��ȤäƤߤ����Ǥ���

��ͽ�۳���ȿ�������ä��Τ��ɵ��˸��Ƥ��̤������Υ��ơ����������ɤˤĤ��ƤϽ񤤤Ƥʤ��Ǥ���100�ϰ��ڽ񤤤Ƥʤ�����201�Ȥ����ͥ������פ��դ��ʤ��ä�����300�Ȥ�305�Ȥ���빽���򤤤ʤȺ����դ����ꤷ������400�Ϥ�WebDAV�Ȥ��Ǥ����ȤäƤʤ��褦�ʥޥ˥��å��ʥ��ơ����������ɤȤ����դ��������ɥ��롼���Ƥ뤷��500�Ϥϸ������Υͥ��ǸĿ�Ū�ˤ���­���Ƥ��Τ��ɤ����ʤȻפä��ꤷ�ޤ������䡢�פ��դ��ǽ񤤤Ƥ뤫�顢������Ŭ���ʤ�Ǥ����Ȥߤ��RFC�Ȥ��ɤ�Ȥ����衣

200�ϥ쥹�ݥ�

200 OK
�ֹ����Ǥ����դ���äƤ��������ס֤Ϥ��ġפ��äơ��褫�ä��͡������ۤ�Ȥ褫�ä��͡��ʤ���衣�̤��������ʤ�����
202 Accepted
�ֹ����Ǥ����դ���äƤ��������ס֡ļ�������ޤ����ס֤������Ρġס�����������Ǥ������Ԥ��������ס��Ȥꤢ�����������ʹ���ƤϤ�館���餷�����ԤƤФ��������������

300�ϥ쥹�ݥ�

303 See Other
�ֹ����Ǥ��פ��Ф��ơ֡Ĥ��ʤ��ˤϡ���äȤդ��路���ͤ�����Ȼפ��Ρġפ��֤��Ȥ��˻Ȥ������ʤߤˡ������ֻ��򤹤�Ȥ��ˡ�¿���οͤ�302�ʡֺ��ϻ䤸��ʤ��ơ����λҤ�������Ũ���Ȼפ��Ρסˤ��֤������¤��������ʤ����Ȥ����롣302���֤��줿��ʰ��Ū�ǤϤ��뤬�˴���Ū�ˤ�ï�Ǥ��줽�οͤȤ��դ��礨�����Ҳ𤵤줿�̤ʿͤ˹Ԥ��٤��Ǥ��뤬��303�ξ��ϡ����ʤ��ˤ���äȤդ��路���ͤ�����Ȼפ��ΡפʤΤǡ�ï����Τɤ���׵ᤫ�ˤ�äƤ�OK���֤äƤ����ǽ�������롣
304 Not Modified
�֤ޤ����ʤ����Ф��뵤�������Ѥ�äƤʤ��Ρס��ǽ���Ǥ��줿�Τ�OK���ä��Τ��ˤ�ä�������̣����äƤ��뤬���פ���ˡ֤��������ä��Τ�Ʊ�������顢�⤦����������ޤǤ�ʤ��פȤ������ȡ��㤦�ֻ����ߤ�����Ф��Ф餯�Ԥ�ɬ�פ����롣
305 Use Proxy
���äʤ�ޥ͡����㡼���̤���ʹ���ޤ��ס�����Ϣ����Ǥ�ľ�ܲ��ä��뤳�Ȥ�������Ƥ��ʤ��Τǡ�������٤��ͤ������򤪴ꤤ���뤳�Ȥˤʤ롣

400�ϥ쥹�ݥ�

400 Bad Request
�ֹ����Ǥ��פ��Ф����ֲ����äƤ뤫�狼��ʤ��ס�����˶줷����Ȥ����ֻ��򤹤�Ȥ��˻Ȥ�������λ�������󤷤����������ʤ�����������ְ㤨���������ʸ�����ɤ����˰տޤ��̤��Ƥʤ������β�ǽ�������롣���뤤�ϡ��֤��������򤷤Ƥ��롢�Ȥ������ȼ��Τ������ʥꥯ�����ȤǤ�����Ȥ������Ȥ�ն�ʤ�ɽ�����Ƥ����ǽ�����θ��������������
401 Unauthorized
��ݤ��׵ᤵ�줿�����֤��⤽���Ȥ��ʤ����Τ�礤�Ǥ���ʤ���Ǥ����ɡ���ï���ä������Ƥ����äƸ��ä�����ʤɤ��ֻ��򤹤�Ȥ��˻Ȥ������򤹤�ޤ��ˤޤ��ϲ��ä�����Ĥ��㤤�ޤ��礦��
402 Payment Required
���դ���äƤ⤤�����ɡ�����ʧ�äƲ�������
403 Forbidden
��Ⱦ��1km����˶��դ��ƤϤ����ʤ��ȡ���Ƚ��Ǹ���줿�Τ�˺��Ǥ�������
404 Not Found
ʸ���̤�˼����Ȥ�ʤ�С֤��οͤϤ��ʤ��ס��Ȥ˹Ԥä���α����ä����²Ȥˤ�������֤���ʻҤϤ����ˤϤ��ޤ���פäƸ���줿���ʤɤΤȤ��ˤϤ��Υ��ơ��������֤äƤ���Ȼפ��롣���������ݤ�����������ɡ����٤�����ͳ���ʤ������뤤����ͳ����������ʤ����˻Ȥ����Ȥ�¿���Τǡ���α��Ǥ����ǽ���⤢�롣
406 Not Acceptable
��ݤ��׵���Ф�����꤬���Ƥ����ΤȰ㤦��Τ����֤��ʤ����˻Ȥ������ݤǤϤʤ�����쥹�ݥ󥹤��֤äƤ��뤳�Ȥ⤢�롣�֤������äƤ����Τϴ򤷤����ɡ��䡢¿ʬ���ʤ��λפäƤ�褦�ʻҤ���ʤ���ġ������λ䡢���Ƥ����ġ����ȸ���줿��硢���������¦�˳и礬�����롣�ºݤϹ��ߤλҤ���ʤ��ä������٤Ǥ���Ф��������������Ȼפä���Ʊ�����ä������⤽��ʹ֤���ʤ��ä����ʤɤβ�ǽ�����θ����ɬ�פ����롣
408 Request Timeout
�֤⡼���������ȥ����������������Ȥ������ʤ餵�ä��ȸ��äƤ���ʤ������פȤ������դȤȤ���֤�������줿�̤�⤦��󷫤��֤��Ƥ⹽��ʤ��������ä��ȸ���ʤ����ܤ��롣
410 Gone
�֤��οͤϤ��ʤ������������٤���äƤϤ��ʤ��ס�404�Ȼ��Ƥ��뤬�����ä��Τ���궯���֤⤦��������˾��Ǥ�������ʤ��פ��Ȥ��̣���롣�����Ǥ����������ø�˺��Ʋ��������⤦���οͤϤ��ʤ���Ǥ�������������õ���Ʋ�������
413 Request Entity Too Large
��Ĺ�Ծ������ʬ�ˤʤ�ۤɤ�Ķ���Υ�֥쥿�������äƤ��ʤ��Dz��������Ť����ޤ���
418 I'm a teapot
�ֻ�Ͽʹ֤ǤϤʤ��ƥ����ݥåȤǤ��ס��ƥ����ݥåȤ��Ф��Ƹ�ݤ��׵᤹�뤢����԰٤ϡ����Υ��ơ����������ɤǽ���롣�ʤ���RFC�Ȥ����������ƤϤ����ΤΡ������������HTTP Status Code�ǤϤʤ�����Ū�ˤϥ����ץ��ա���ξ��̤Ǥ��롣
423 Locked
����ä�«�����Ƥ��ޤ��ʤΤ������ͤ��դ���äƤ���ͤ��Ф��ƹ��򤷤Ƥ��ޤä��Ȥ����֤���롣���ͤ�«�����򤱤�ޤǤϲ��٥ꥯ�����Ȥ��Ƥ��դ���äƤ�����ǽ���Ϥʤ��Ȼפ���

500�ϥ쥹�ݥ�

500 Internal Server Error
���򤵤줿¦��ͽ�����̻��֤˥ƥ�ѤäƤ��ޤäƤ�������֤����׹Ͳ�ϩ�ϥ��硼�����������äƽ��ɤ����褦��
501 Not Implemented
���դ��礦�äƤʤ�Ǥ������ס�¿ʬ���䤽�졢�Ǥ��ʤ������褯�狼��ʤ��פʤɤ��ֻ��ȤȤ�˻Ȥ��롣�׵ᤷ�Ƥ���¦�ϡ�����꤬�Ļ��Ǥʤ����ס���꤬���ܥåȤǤʤ������ʤɤ��ǧ����ɬ�פ����롣
502 Bad Gateway
���������������������ϼ����ä��衣;�פʤ��Ȥ��䤬�äơ������Τ�������̵������
503 Service Unavailable
�֤���äȺ����ֻ��Ǥ��ʤ��Ρס������οͤ˸�������Ƥ��Ƥ����ˤ��ֻ�����Ǥ��ʤ����䡢����μ�������ޤ�Ω��ľ�줺���������ä򤹤뵤ʬ�ǤϤʤ��Ȥ��˻Ȥ������ʤߤˡ����Υ��ơ�����������ȸ��ä�ɬ���������٤Ǥ��ä���Ω��ľ�����Ȥϸ¤�ʤ���ñ��˹�����Ф����������뵤���ʤ������ξ��⤢�ꡢ�Ȥˤ���ʬ���뤳�Ȥϡֺ�ʹ���Ƥ��ֻ����֤äƤ��ʤ��פȤ������ȤǤ��롣���ڤ����Ǥ���С֤���äȺ��פ��֤��ĤޤǡפʤΤ��򶵤��Ƥ���뤳�Ȥ⤢�뤬�������Ǥʤ���й��򤷤�¦�ˤ��鸫���500�ξ����纹�ʤ���

400��¿���ʤ���

��äѤ�ʹ��Ǥ��Ȥ����������줳��ͤ����Τʤ����������������ͳ�դ����Ƥ�֥���פʤ��Ȥ��Ѥ��Ϥʤ�������ɡ�������֤��줿�Ȥ��ˡ������סֲ��٤Ǥ�����װʳ��˥ѥ��������Ŭ�ڤ��б��򤷤������������٤��Ѥ�äƤ���󤸤�ʤ����Ȼפ�������ʤ�����ΤޤȤᡣ

�ɵ�

400�ϤΥͥ������Ǥˤ���Ĥ����ä����ɷ��¾�Τ����줿�Τǡ��ֹ�����Ǥ��Ȥ��Ρġפäƥ����ȥ���Ѥ�����

���ȡ�400�Ϥϴ���Ū�˥��饤����Ȥ���Υꥯ�����Ȥ����꤬����Ȥ��˻Ȥ���ΤʤΤˡ����򤵤줿��������Τ褦�ʽ����򤷤Ƥ�Ȥ���ľ���������򤵤��������𤷤Ƥ����ͤ����꤬����Τ�500�ϡ��ޤ����Ļ��䵡���˸�ݤ����ꥯ�����Ȥ��ɤä����Ȥ�����403 Forbidden�ʵ��⤷�ʤ��Ǥ�ʤ����ɤ⡣

MobileMe��iPhoneOS3.0��Ϣ�Ȥ��뿷��ǽ������Ȥ������Ƥɤ�ʵ�ǽ�ʤ��������

¥¿¥¹¥±¥Æ¡¼

���������ʤ󤫽��������줿���ʤˤ��줳�襤��

������Υ��ơ��������֤��פ����������ɤߤ����Ȥ����ꥯ�����������ä��Τǡ�������ľ����gist�˾夲�Ƥߤ���

gist: 112607 - GitHub

�����ξ��֤�rackup�����ư���ޤ���haml��rack�κǿ��Ǥ�ɬ�פ�¾���ä˲����פ�ʤ��Ϥ������ʤߤ�1.8.6��1.8.7��1.9.1�Ǥ�ư���Τ��ǧ�Ѥߡ����Passenger��ư�����Ȥ��ˤϡ���Passenger��Rack���ץ��ư�����פǽ񤤤��褦�ˡ�config.ru��Ʊ�����ؤ�public��tmp�äƥǥ��쥯�ȥ���äƤ�äơ������ȥ����Ȥ��Ƥ���RewindableInputWrapper��ͭ���ˤ��Ƥ��Ф����Ϥ���

�Ĥ��Ǥ�Rack::Test��Ȥäƽ񤤤�spec�ȡ��ºݤ�GET������POST�����ꤷ�Ƥɤ�ʥ쥹�ݥ��֤��Ƥ�Τ����륹����ץȤ��֤��Ȥ����Τǡ����ͤޤǤˡ�

�֤ä��㤱Rack��Haml(�Ȥ���Passenger)��ͷ�Ӥ����ä������ʤΤǡ���Sinatra�Τ��ڤ���͡��ס֤äƤ�����Apache����������Ǥʤ�Ȥ��ʤꤽ���ʡġפȤ������ĥå��ߤ�̵���������ǡ����ʤߤ�Rack�ǥ��쥪��WAF��ɤ����ˤϤ�������˰���Ƥ����Τǡ�����Ramaze�����ͷ��Ǥ��ꡣRamaze���󤤤��ʡ��������ä����ȤϤ�������Rack�������̵�̤ǤϤʤ��ơ������������Ȥ�äƤ���Ramaze�Υ������ɤ�Ǥ���Ƴ�ή�줬�Ϥ���ɤ��ä���

����Last-Modified�����դȤ��⤦�ۤ�Ⱦ��̤ʤΤǤ����������ͥ��˿����Ĥ��Ȥ�̵���������ǡ������Ĥ��ʤ衣���Ф˿����Ĥ��ʤ衣���Ф�����ʡ�

��ʬ���٤줿���ɾ�äƤߤ���

�����������Ū�˻ȤäƤƲ��˹Ԥ��ۤɲ������ʤäƤ��봶���ǡ�

  • Ruby
  • Objective-C
  • Perl
  • HTML
  • JavaScript
  • CSS
  • XML
  • SQL
  • C
  • PHP
  • Java
  • C#
  • ActionScript
  • Haskell
  • LLVM asm
  • Brainf*ck
  • DT
  • Whitespace
  • XSLT
  • �ƤäƤäơ�
  • VB
  • YARV opcode
  • Curry
  • Schema
  • Erlang
  • SmallTalk
  • Python
  • C++
  • D
  • Io
  • Grass

�פä����Ϥ��ä����ɡ�Low Layer�ʤΤ��������äƤʤ��ƻ�ǰ�ʴ��������Ȥʤ��Ѥʤ����äƤ�ʡ��ʤ����DT�äơ����ʤߤ�AS������ޤǤϰ���Ż��ǽ񤤤����ȤΤ����Ρ�Schema��겼�Ϥ��줳��Hello, world���餤������ä����Ȥʤ���Ρ���������C++�Ȥä����Ȥʤ����ʤ�Ǥ�����ObjC�Фä���񤤤Ƥ뤫�餫�ʡ�����

������¤˥Х������˥Х������˸����äƤ�Τ�´����Ƥ�faultier�Ǥ����ߤʤ��󤪵פ��֤ꡣ

�����������˸�����������������ʤ����Ȥ򥹥ơ�����������404��ɽ�魯�פäƤΤ����ѥĥܤ����ä��Τǡ������Ϥ��ä���������ºݤˤ����������Ƥߤ��衣�ʤ�Ȱʲ���URL��GET����ȡ�faultier������פäƥ꥽���������ޤɤ�ʥ��ơ������ʤΤ��֤��Ƥ��������

http://faultier.jp/resource/kanojo

�Ĥޤ�������������뤫�ɤ����ʤ�������ʤ��ȤϤɤ��Ǥ��ɤ��ơ��������GET/POST/PUT/DELETE���б����Ƥơ����줾��㤦�쥹�ݥ󥹤��֤��褦�˺�äƤ���Τǡ����ޤ�Ĥ��Ƥ�HTTP���饤����Ȥʴ����ξ�ǯ�����»νʽ��������Ϥ�����ʥꥯ�����Ȥ����äơ֥꥽����:faultier������פ򤤤��äƤߤ�Ȥ����Ȼפ�������ޤ��ɤ����褦�����ⵯ���ޤ��󤬡���������޻Ȥ�ʤ�����äƥ��ܤä�GET��POST�����������Ƥʤ������礦���ʤ���Ĥ��ʡ�GET����Ȥ���URL��������/put�Ȥ�/delete�Ȥ�����Ƥߤʤ衣����äݤ�ư�����뤫�顣

�ߤ��Ȥ�400�ϤΥ��ơ����������ɤФä���ˤʤä���ä����ɡ����ä�����ä��Τǡ����Τ�����418 I'm a teapot�פȤ����������ͽ�ꡣ�äƤ����400�Ϥ����������Ȥ��ʤߤˡ�GET����Ȥ���mode=prev�Ȥ�mode=next�äƥ�������դ���ȡ���������ס�̤�������פˤĤ��Ƥξ�����֤äƤ��롣�ɤ��Ǥ⤤���Ǥ��͡�

�ɵ�:418������������Ĥ��Ǥ�¿�����ơ����������ɤ򤤤��ä������Υꥯ�����Ȥˤ��Υ쥹�ݥ󥹤�����̵���������ߤ����Τ�����Ȥ���ʤΤǡ����ȡ�HEAD��˺��Ƥ��Τ�HEAD���б�������

Rack������Rack

�ͥ��ϥͥ��Ȥ����֤��Ȥ��Ȥ��ơ�����Ϥ����Rack��Haml��Ȥäƺ�äƤߤ������Ǥ��Ȥ����ȡ���Ruby��Atompub::Server�ߤ����κ�äƤơ�Rails��Merb�Υץ饰����⤽�Τ����񤯤Ĥ��ǤϤ��������ɡ��ޤ�ñ�Τǥ����ä�ư���κ�ꤿ���ʤȻפäƤ������������äƤ�Ȥ������ä����顣Haml�϶�̣�Ϥ��ä���������桹���뵡�񤬤ʤ��ä��Τǡ��Ĥ��ǡ�

�ʤ�Ȥ�������Rack����Ũ���ʤ����������٤Τ�Τ���Τˤ����Ȥ���WAF��Ȥ��Τ�ʤ���������֥��༣������֥ߥ���������Ф��ߤ����ǵ����Ҥ��������ɡ����Ȥ��ä�CGI�äƤΤ�ͤ����ߤ����ʤȤ��ˤ�ȤƤ��ɤ�����ñ��ǧ�ڤȤ������󥰤Ȥ����å����Ȥ���ź�դΥߥɥ륦�����Ȥ��м¸��Ǥ����㤦����WEBrick�Ȥ��Ǵ�ñ�˥�������Ķ��dz�ȯ�����к����㤦�Τ�̥��Ū������Ǥ�äƿ����ͤ��ʤ��Ƥ�WEBrik��thin��mongrel��fcgi��Passenger�ȿ���ʴĶ����б��Ǥ����㤦�Τ���Ũ��(�Ȥ�����������ä��դǡ����Τ���Υ��󥿡��ե������饤�֥��ʤ�����ɤ�)���ʤˤ��Rack::Test�����������롣����ʤ��礦��ʤ����ץ�Ǥ������Spec�񤤤������������ޤ��ñ���ä����顣

�ϥ�Ͽ��٤������ɤ�

Haml�����ϡ��ʤ�Ȥ��������빽��̯������ޤ����Τ��ˤ��ä��ꥷ��ץ�ʥƥ�ץ졼�Ȥ��񤱤������ɡ����ʸ��ʤ�Ƥ�HTML����ЪΥ�������ƤƤ���ä��񹳤��뤫�⡣��ľ�ؽ������ȹͤ������Ǥ�HTML��Ruby�򤽤Τޤ޽񤱤�erb�䤽������/�����ǤΥƥ�ץ졼�ȥ��󥸥�Τ���äݤɤȤäĤ��䤹���������롣��ͤǤ�äƤ�Ȥ��ϤȤ⤫�����ǥ����ʡ���ޡ������åѡ��Ȥ�ʬ�ȤǻŻ����Ƥ�ȡ�������Ϥ��ɤ��ʤ뤫�������ʤ�����ʤ���ʤ�ʤ��ƺ�Ȥ��Ť餤�󤸤�ʤ��Τ��ʡ��Ȥ��פäƤ��ޤ���

�Ȥϸ����Ի׵Ĥ�̥�Ϥ⤢��Τ�Τ��ǡ�ʸ������ʤ���񤤤Ƥ����ɿ�ʬ��ˤϤʤ�Ȥʤ�����Ƥ��ޤä�����̣�Ǥʤ󤫺��Ȥ��ˤϤ��Ф餯�ȤäƤߤ褦���ʤȻפäƤ��ꤹ�롣

�Ȥ�����

������äȤ����ɡ����������饨��ȥ꡼���Ƥ��̤˥ǡ����Ȥ���¸���Ƥʤ����᡼�����ä���⤷�ʤ��Τǡ��¿����������̾����夲��Ȥ����衪�ޤ�������̾��ꤿ����Ф���ʤȤ��ǿ����䤫��̾����Ƥ⺤�뤱�ɡ����ʤ���ͤ���ʿ͡�

���Υ֥����ؤΥ��������򸫤ơ��ɤ�ʿͤ�������Ƥ���Ƥ��������ʡ�����������ΤϷ빽���򤤡��㤨�С����Υ֥�����6��7��ϥ꡼������ͳ����Ƥ�Ȥ���IE6���ܰʾ�Mac Safari�Υ������������Ȥ������Τ���ԡ������������糵�οͤ�1���å����ˤĤ�1~2�ڡ��������ɤޤ��˵���Ȥ�����������Ǥ�֤��������Υ֥����ɤ�Ǥ�ΤϤ�äѲ���Ʊ��ο�ã�ʤ�������ʡפȿ�¬�Ǥ��ƥ˥�˥�Ǥ��롣�Ȥ�����������������ͤ�����Ψ�������ǽ񤤤Ƥ����Ƥ�������Ȥޤ��������ʤȤ����������뤱�ɡ�

�Ȥ����ǡ����򤤤Τ����֤ɤ�ʥ�����ɤǸ������Ƥ��Υ֥������褿���ס����ʤߤ�Google Analytics�Ǽ�줿������ɤξ��10�̤����졣

¸¡º÷¥­¡¼¥ï¡¼¥É

�ʤ�����졣���䡢LLVM�Ȥ�DataMapper�Ȥ��ϡ��ºݽ񤤤Ƥ뤷���狼�롣�Ȥ�����LLVM���DataMapper���MacRuby�Ǹ������Ƥܾۤ�̤Υڡ����˽ФƤ뤳�Ȥ������ä��������ʤ��������ʤ��������ä�����Ƥ���Ƥ�Τ�DT�Τ��ȤФä���񤤤ƤƤ����ʤ�����

����Ϥ���������ɡ��������Фդߤ�̼�ر��פȤ�����501������Ʈ�Ҷ��� �����CD�פäƲ�����������ˤĤ��ư������ڤ������Ȥʤ��������⤽��ɤä�����Τɤ�ʤ�ΤʤΤ����ɤ��Τ�ʤ���Ǥ��������䡢̾�����ΤäƤ롣�Ǥ�ɤä��⡢���餫�ˤ�ä���������ڡ����������͡ġ��äƤ����ɤ���äƤⲶ�Υ֥����ˤʤ�é���失�ʤ�������ɡĤʤ�Ǥ��줬������������ġ��������ܤ�ʤ�������ľ�˸����ʤ������ɤ���äƤ�����é���夤�������������������ˤʤ롣

�������ɤ��ͤ����顢���ޤǤ������˰��ڸ��ڤ��Ƥʤ��ä�������Υ�����ɤ��ä�������ɡ����ε�����񤤤������Ǥ��Υ�ɤǸ������ä�����褦�ˤʤ�ͤ��졣���������а����������Ȼ� �ܥǥ����ӥ��פʤ�ƤΤǤ��Υ֥������ä�����褦�ˤʤä���ä����㤬���뤷�ġ��Ҥ㡼�����ä���嵭�Υ�ɤǤ�������Ƥ��ޤ��Ǥ������ͤ˿������ʤ��������ȸ��äȤ��������֥����ϥե��������ǤϤ���ޤ��󤬡��ºߤΤդߤ�̼�Ȥ������CD�Ȥ���ڴط�����ޤ��󡣤Ĥ��Ǥ˸�����faultier�ϥܥǥ����ӥ�����ǤϤ���ޤ���

�������ɤ���̵�ط���ñ�������Ǥ����ʤ顢����ơ�������� ���Ť������פȤ����븶���� ������ޤäƤޤ����פȤ��Ǹ������Ƥ��줿���äȤ����󤸤�ʤ����ʤ����äƲ�����äƤ����������ϡ�

�ɵ�

Èþ¶×¤Ë´¶ÅŤ·¤¿¤¤

Google������ȿ��®�����䤷�ʤ��Ǥ����ġ���������ª����Ƥ��ޤä��ġ�

���ʤ�����ä�esoteric�����������Ȥ�0.0.2�˥С�����󥢥åפ��ޤ���������ѹ����ϰʲ����̤ꡣ

  • �Ƹ���ò¥³¥ï¿½Ñ¥ï¿½ï¿½ë¤·ï¿½Æ¤Ç¤ï¿½ï¿½ï¿½ï¿½ï¿½Ö¥ï¿½ï¿½ï¿½ï¿½É¤ï¿½ï¿½ï¿½ï¿½ï¿½ï¿½Î¥Ð¡ï¿½ï¿½ï¿½ï¿½ï¿½ï¿½Ç¤Ï»ï¿½ï¿½ó¥¢¥ï¿½ï¿½ï¿½Ö¥ï¿½Åªï¿½Ê²ï¿½ï¿½ï¿½ï¿½ï¿½ï¿½Ã¤ï¿½ï¿½ï¿½Î¤ï¿½ParseTree�ʤ󤫤Ǻ��褦��Ruby����ݹ�ʸ��(AST)Ū�ʲ������Ѥ�ä���VM�Ǥμ¹������������줿�����ɤ��Ŭ������Ȥ��Ǥ���褦�ˤʤ�Ȥ���¾��Ruby�饤�֥���Esoteric Language�ѡ������������褦�ˤʤ�Ȥ���̵�̤�̴�������봶���ǡ�
  • ����������VM�Ǥ�ư���ʤ��ʤä��Τǡ����ľ���ʤ��㤤���ʤ�������ɡ�����äȻ��֤����ꤽ���ʤΤǻ���VM�����������Τ���ꡢAST��Ruby2Ruby�Ȥ���Ruby�����ɤ��Ѵ��Ǥ���褦�˺�äƤ���Τǡ��Ȥꤢ����Ruby2Ruby��Ȥ��褦�ˤ��Ƹ��ⲽ�����Ȥˤ�����
  • ����ʪ�Ȥ���DT��Whitespace�Υ����ɤ�¹Բ�ǽ��Ruby������ץȤ��Ѵ����륳��ѥ����ɤ��Υġ��뤬���褿��C�ؤΥȥ�󥹥졼���⤢��ߤ������������������λȤ��������˥���ѥ��뤷�ƥХ��ʥ���줿�ꤷ�ޤ��͡�DT�ǥ��ޥ�ɤȤ�����褦�ˤʤ�͡��ޤä�����ꤿ���ʤ����ɤ͡�
  • Brainf*ck�Υѡ������ɲ�
  • �ƤäƤäơ��Υѡ������ɲá�������̤�λ��ͤ��������Ƥ�Ȼפ����ɡ��֡�\xAB�ס�\uABCD�ס�\d00000�ס����������ץ������󥹤Ȥ��ơ��������Τ�1ʸ���Ȱ����롣��ͽ��ˡפäƤΤϤޤ��������Ƥʤ������ȡ֤Ƥơ��פȡ֤Ƥá��פ���̯��ư���ò¤¹¤ï¿½Î¤ï¿½ï¿½è¤·ï¿½Æ¤Ê¤ï¿½ï¿½ï¿½ï¿½É¡ï¿½ï¿½Þ¤ï¿½ï¿½ï¿½ï¿½Î¤ï¿½ï¿½ï¿½ï¿½Ê¤ï¿½È¤ï¿½ï¿½ï¿½ï¿½ë¡£

�Ȥޤ�������ʴ��������Ϥޤ���VM�κƼ����ȡ�����Spec�񤯡����콪��ä���Ruby�Ǻ���̯�ʥץ�����ߥ󥰸��� ~Esoteric Language~�˺ܤäƤ�Starry��Bolic�Ǥ�������褦���ʡ����Ȥ����Ȥ���äƤߤ褦�����顣

��ʬ�ڤ����ʤäƤ����Ȥ��������ɥ����ޥ�SP��äƤ��Ƥ��ޤä��Τǡ����٤ߡ������������餤����Ż���˻�����ʤ�˰㤤�ʤ��ΤǤޤ����٤ߡ�������Ĥ�����¿ʬ˰���Ƥ����������ޤ�(ry���ޤ��ޤä����ä�����ޤ����ͤ���

�ץ�����ߥ󥰸���DT���ä��Ȥ����֤������饽�����򻯤�����פȸ���줿�Τǡ�DT�����ϤΥ����������ɤ�github�˾夲�Ƥߤ���

faultier's esoteric at master - GitHub

���Τ˸����ȡ�DT�ν����Ϥȸ�����������VM�Ȥ���Ǽ¹ԤǤ�����ָ�����Ǥ�����ѥ��鷲�Υ��åȡ��������DT����ѥ���ȥ���ץ�����äƤޤ���������������̵�̤�gemspec���äƤ���Τǡ�

$ sudo gem install faultier-esoteric --source http://gems.github.com

�Ȥ�����esoteric�����󥹥ȡ���Ǥ���ĤϤ����ʤˤ���gem���Τ���Ƥ��������github�Ǽ�ư�ӥ�ɤ�����Τ���ƤʤΤǡ��ʤ󤫤������ä����⤷��ʤ����Ƥ������Ƥ�gem�����줫������Ǥ����Τ��������ޤ������䡣�����Ǥ����������ȤǤ��Ƥ������1.8.6-p287��1.8.7-p72��1.9.1-p0�Ǥ�ư���ǧ�Ѥߡ��礷�����Ȥ�äƤʤ��ΤǤޤ�ư���Ϥ���

���ʤߤˡ�esoteric�˴ޤޤ�Ƥ륳��ѥ����Whitespace��DT�����Ǥ���HRK�������ᤷ�ơ�Nonowa�Ȳ��Τ�����Ǹ�����ͤ���ͤ�ľ�����ᡢDecade��faultier��˿�û����Ȥ�ѤƤʤ��Τǡ��ե���οͤ����ܤ�줽���ʤ��ᡢ���С������ǤΥ�꡼���ϸ�����ޤ��������С�����󡢤Ƥ��Ȥϡ�esoteric�ϥС�����󥢥åפ����Τ餷�������Τ���ˡ�ï������������¿ʬ���Υ�꡼��������Ǥ�Brainf*ck�Ȥ��ƤäƤäơ��Ȥ��������ޤ�Ƥơ����μ��Υ�꡼��������Ǥ�Nonowa���������줿�ꤷ�Ƥ����Ȼפ��������������顣˰���Ƥʤ��ä��顣

�����ǡ��Ȥ��������ɡ����󥹥ȡ��뤹���esm��whitespace��dt�λ��ĤΥ��ޥ�ɤ��Ȥ���褦�ˤʤ�Τǡ�

$ dt -v
esoteric 0.0.1, dt 0.0.1
$ dt hi.dt
Hi!

�ʤɤȤ�������ε����Υ����ɤ��¹ԤǤ����ꤹ�롣����Ǥ��ʤ��⺣������DTer��

�ޤ���������ϼ����ʤ��Ȥϻפ����ɡ�������ˤ����ꤿ�����äƿͤ�������֤١��̤ˤ��ʤ��Τ���˼����äƤ�����󤸤�ʤ�������顢�����ζ�̣�衢��̣�פȤ��᡼������äƤ����������̤ˤʤˤ⤷�ʤ����ɡ������˥�˥䤷�ޤ����Ĥޤ���github�ˤ����ΤʤΤǹ����ˤ����äƤ�����������������VM�Τ��ȤȤ������Ƥ����ͤ������餹������Ӥޤ���

�Ƕ��Ruby�Ǻ���̯�ʥץ�����ߥ󥰸��� ~Esoteric Language~�פ��ɤ�ǡ��Ĥ����äȤʤäƸ�������Ϥ��äƤߤ�������⡢���塼��󥰴����ʡ���ʪ��(ry �ޤ���Whitespace�Υȡ�������֤����������������ɡ�

������嵭���ܤ˽��äơ������������ɤ�Whitespace��̿�᥻�åȤ������ָ���˥���ѥ��뤷��VM�Ǽ¹Ԥ�����ˤ��Ƥߤ������Ȥϥѡ���������ʬ��Ŭ�����֤�����������ѥ������Ф���äݤ��Τ���ñ�˺��롣��ǡ������Ĥ��ͥ�������äƤߤ�������ɡ�������Ǥ���֤��硼��ʤ��Τ�DT��DT�Ǥϼ��Τ褦�ʥ�������¹Ԥ��뤳�Ȥ��Ǥ��ޤ���("Hi!\n"����Ϥ���)

�֡�������ơ��⤷������Ƹ��?��
�֤ɤɤ�Ƹ����㤦��á��ɤ�Ƹ����㤦��á��ɤɤɡ�Ƹ����㤦��á���
�֤��������ι��Ƥäפ꤬;�ײ����ʤ�w��
�֡Ĥɤɤɤɤ�Ƹ����㤦��á�Ƹ����㤦��á���Ƹ����㤦��á��ɤ�Ƹ����㤦��á���Ƹ����㤦��á���
�֤Ϥ��Ϥ�����狼�ä��äƤС�����ʤ˥७�ˤʤ�ʤ��Ǥ衣��
�֡Ĥɤɤɤɤ�Ƹ����㤦��á��ɤɤɤ�Ƹ����㤦��á���Ƹ����㤦��á���
�֤����顢�狼�ä��äƤС��⤦����ʤ����顣��
�֡Ĥɤɤɤɤ�Ƹ����㤦��á���Ƹ����㤦��á��ɡ�Ƹ����㤦��á���
�֤��䤽�Ρ��ʤ󤫡��ۤ�Ȥ����͡�����ʤ˵��ˤ��Ƥ�Ȼפ�ʤ��ä����顢���Ρġ�
�֤ɤɡġ�
��(�ۤ�ȥ��⤤�ʤ���)��
�֡ġ�

�Х�󥿥�����ȸ����Τ˰��β��򤷤Ƥ��Ǥ����͡��ͤϡ����ʤߤˡ֤ɡס�Ƹ����㤦��á��ס֡ġװʳ���ʸ��������̵�뤹��Τǡ������ν��֤ȿ��������äƤ�Фɤ�ʥ����Ȥ򶴤�Ǥ�����ʤ��������ȵ�ˡ�Ȥ����äˤʤ������ʤߤ˾嵭�Υ����ɤ���ͭ������ʬ��ȴ���Ф��Ȥ���ʴ���������ɤߤ䤹�����뤿��˲��Ԥ�����Ƥ��롣

�ɤɤ�Ƹ����㤦��á��ɤ�Ƹ����㤦��á��ɤɤɡ�
Ƹ����㤦��á��Ĥɤ�
�ɤɤ�Ƹ����㤦��á�Ƹ����㤦��á���Ƹ����㤦��á��ɤ�Ƹ����㤦��á���
Ƹ����㤦��á��Ĥɤ�
�ɤɤ�Ƹ����㤦��á��ɤɤɤ�Ƹ����㤦��á���
Ƹ����㤦��á��Ĥɤ�
�ɤɤ�Ƹ����㤦��á���Ƹ����㤦��á��ɡ�
Ƹ����㤦��á��Ĥɤ�
�ġġ�

����¾�ˡ֥����ɥ뤬�����ɤ������٤�ΤΥ﷿����HRK�פȤ�����9�Ĥ����������ѿȥҡ�����������Decade�פȤ���ä����ɡ��ɤ�⺣�ΤȤ���������Whitespace�ʤΤǤɤ�ʥ������ˤʤ뤫�������Ĥ��ޤ��͡��Ƥ��Ȥdz䰦���������ɤ�������Ϥ��§�黻�䥸����̿��������Ƥޤ��Τǡ��ե��ܥʥå������̵�¤˽��Ϥ���Ȥ�;͵���������ε��ˤʤ�Ф��ä�Web���ץꤰ�餤�񤱤ޤ��͡���ꤿ���ʤ����ɡ��Ƥ������ɤ��񤯤��Ȥ�������θ���Ƥʤ��Τǡ����⤦�����ʤäƻ�����ָ���񤤤Ƥ�����ִ����ƥ����������ɤˤ���äƤ�������ž�ݤʤ��Ȥ��ʤ��Ƚ񤱤ʤ����ޤ�����ʤ��

��������Whitespace�ˤ�˰�����Τǡ����ϲ����褦��Rubyʬ�Ͻ�ʬ�佼�Ǥ����Τǡ�Objective-C��VM�񤯤Ȥ���Parrot�ξ�ǽ����Ϻ��Ȥ����褦���ʡ��Ȥ����ؿ��������ޤ���äƤʤ��Τǡ�������������Τ⤤�����������Ϥ�Haskel�ǽ񤤤Ƥߤ�Ȥ��⤷���������硼��ʤ������ܤΡ֤ޤȤ�ʡ׸�����ͤ�ͤ���Ȥ��⤷�����ʡ�����äƤߤ�ȷ빽���򤤡��ϥޤ롣��ʬǾ̣���ۤ��줿������Ȥ�����������ϤΥ������Ǥ��ɤ�Ǥߤ褦��

�ȡ�����ʸ���ƨ��򤷤Ʋᤷ�������������󡢽��¤����������ä���������������DT�ʤ󤫺�ä��Τäơ��⤷������faultier�ä�Ƹ�Ĥ����������䤤�䤤�䡣�ɤɤɤɤ�Ƹ����㤦��á�

����

��θ���Ϥۤ�Ȥ��硼��ʤ��Ǥ�����Ruby�Ǻ���̯�ʥץ�����ߥ󥰸��� ~Esoteric Language~�����Ϥ����������ܤʤΤǸ���Τʤ��褦���Ѥʸ���⿧���Ҳ𤵤�Ƥ뤷��Ruby�ǥ����äȸ�������ϤĤ����꤫����񤤤Ƥ���Τǡ���������Ǥ���

Ruby¤Çºî¤ë´ñ̯¤Ê¥×¥í¥°¥é¥ß¥ó¥°¸À¸ì ~Esoteric Language~Ruby�Ǻ���̯�ʥץ�����ߥ󥰸��� ~Esoteric Language~
���ԡ��� ͪ
���丵���������ߥ�˥��������
ȯ������2008-12-20
���������١�4.0
�������ߤ򸫤�

�ɵ�

����񤤤�������������򸫤����Ƥ��󤬤ƤäƤäơ��Ȥ���äƤơ����ε����Τ���˸��������빽�ʥ֥��޿����ä��ꤷ�ơ���������˵��դ��Ƥʤ��餱����ʬ���̤��ġ�������󡢤����ȤΤΥ蘆����촰�������뤫�顣�⤦�ʤ�iPhone��ư���褦�ˤ����㤦���顣���ۤǤ��ʤ�����(���󥿥ץ꥿�ϵ����AppStore����Ͽ�Ǥ��ʤ��ä��Ϥ�)��

�֥����ͥ���
��̣�ˤĤ��ƶ����Ƥ������� �˻����桪

make; sudo make install �� sudo port install �� sudo gem install �� xcodebuild �� rake spec ���Ƥ롣

ef5f5a81.JPGǭ�⤦�ޤ����򿩤٤���夫��

�����Υڡ����Υȥåץ�