<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0">
    <channel>
        <title>D-6 [相変わらず根無し]</title>
        <link>http://mt.endeworks.jp/d-6/</link>
        <description></description>
        <language>ja</language>
        <copyright>Copyright 2010</copyright>
        <lastBuildDate>Wed, 17 Mar 2010 20:32:55 +0900</lastBuildDate>
        <generator>http://www.sixapart.com/movabletype/</generator>
        <docs>http://www.rssboard.org/rss-specification</docs>
        
        <item>
            <title>オープンソースと人生</title>
            <description><![CDATA[<div>タイトルほどの内容はない。</div><div><br /></div>Perl6 の開発チームの人の家族の方が<a href="http://use.perl.org/~pmichaud/journal/40248">癌の再発で手術、入院</a>という状態になっているそうだ。<div><br /></div><div>どんなオープンソースのプロジェクトでもそうだけど、そのプロダクト以上に重要な人生の節目には当然<span class="Apple-style-span" style="text-decoration: line-through;">プロダクトのほうが</span>プロダクトじゃないほうが優先されるよね。そのときにこそそのプロダクトにまつわるコミュニティ作りの力が一番試されるんだろうなぁ。人が1人いなくなったらメンテされなくなる事の無いように運営していくのも大切な事だ。</div><div><br /></div><div>ちなみにPerl6 のほうはすでに他の人達がどうするかを協議している模様。</div><div><br /></div><div>追記：普通に逆のこと書いてた。間違ってた</div>]]></description>
            <link>http://mt.endeworks.jp/d-6/2010/03/post-147.html</link>
            <guid>http://mt.endeworks.jp/d-6/2010/03/post-147.html</guid>
            
                <category domain="http://www.sixapart.com/ns/types#category">日常</category>
            
            
            <pubDate>Wed, 17 Mar 2010 20:32:55 +0900</pubDate>
        </item>
        
        <item>
            <title>JPA Many a TODO</title>
            <description><![CDATA[<div><a href="http://japan.perlassociation.org">JPA</a>でやんなきゃいけない事、手伝って欲しいことがいっぱいあるのでとりあえずメモ</div><div><br /></div><div><ul><li>2010年度マニフェスト的なものを書かないといけないかなぁ。</li><li>JPAの日常業務をボランティアで手伝ってもらえる人を募集したい。メールへの反応、YAPC準備、研修準備。毎回お願いしてると結局俺がボトルネックになるので、ボランティアチームがいたらすごい嬉しい。特にYAPCは俺は前線に＊出てはいけない＊。YAPCで目立ちたい！人が前線に出るべき。LLにならってブレストをやったら人来るかな？</li><li>JPA PressがGoogle 検索に表れないので、どうにかする必要あり。この間のヤツからAdobeなんちゃらに文字データを入れ込んだはずなんだけど、検索にでてこないんだよな。どうすればいいの？</li><li>TPF本家ともっと緊密に行動する。特にGrantは使えると思う。ドキュメンテーション回りを特にどうにかしたい。</li></ul></div><div><br /></div><div>こっから下はまだ希望の段階。</div><div><br /></div><ul><li>希望： どこかの大学・専門学校でPerlを教えているところと連携。ツテがあまりありませんので、連絡してもらえると嬉しい。</li><li>希望： 全然声を掛けてないけど、なんらかの枠でDBI/Devel::NYTProfの作者のTim Bunce氏をYAPCに呼べたらなーと思ってるんだけど、ぶっちゃけ予算がありません。旅費をスポンサーしてもいいという企業・個人の方はいませんか。</li><li>希望： 北海道・東北エリアでの Perl Mongerグループの創設。MLとかそういうのは別口でやってもらうにしても、PMのページをJPAで持つのはありかなぁ。</li><li>希望： JPA会員だよ！ってな感じのブログパーツを作成したい。これもぶっちゃけ今は予算がないので、できればボランティアでお願いしたい。</li></ul>]]></description>
            <link>http://mt.endeworks.jp/d-6/2010/03/jpa-many-a-todo.html</link>
            <guid>http://mt.endeworks.jp/d-6/2010/03/jpa-many-a-todo.html</guid>
            
                <category domain="http://www.sixapart.com/ns/types#category">日常</category>
            
            
                <category domain="http://www.sixapart.com/ns/types#tag">jpa</category>
            
                <category domain="http://www.sixapart.com/ns/types#tag">perl</category>
            
            <pubDate>Wed, 17 Mar 2010 10:06:33 +0900</pubDate>
        </item>
        
        <item>
            <title>AnyEvent::AIOをとりあえず試す</title>
            <description><![CDATA[<div>まだこう、細かいpros/consがわからないのでなんとも言えないんだけど、とりあえずaio_open/aio_writeと普通のopen/print/closeで同じ事した場合とでベンチマークとか取ってみた。これでいいのかなー</div><div><br /></div><div>環境はMac OS X 10.5.8, 2.4 GHz Intel Core 2 Duo, 4GM RAM.</div><div><br /></div>
<pre class="code_listing">Comparing with buffer size 10...
         Rate normal    aio
normal 80.0/s     --   -19%
aio    99.0/s    24%     --
Comparing with buffer size 100...
         Rate normal    aio
normal 80.0/s     --   -18%
aio    97.1/s    21%     --
Comparing with buffer size 1000...
         Rate normal    aio
normal 76.9/s     --   -13%
aio    88.5/s    15%     --
Comparing with buffer size 10000...
         Rate normal    aio
normal 52.4/s     --   -27%
aio    71.9/s    37%     --
Comparing with buffer size 100000...
         Rate normal    aio
normal 15.9/s     --   -63%
aio    42.7/s   169%     --
</pre>
<div><br /></div>
<div>コードはこちら、<a href="http://gist.github.com/328974">github</a>で。</div>
<script src="http://gist.github.com/328974.js?file=gistfile1.PL"></script>]]></description>
            <link>http://mt.endeworks.jp/d-6/2010/03/anyevent-aio.html</link>
            <guid>http://mt.endeworks.jp/d-6/2010/03/anyevent-aio.html</guid>
            
                <category domain="http://www.sixapart.com/ns/types#category">開発</category>
            
            
                <category domain="http://www.sixapart.com/ns/types#tag">anyevent</category>
            
                <category domain="http://www.sixapart.com/ns/types#tag">perl</category>
            
            <pubDate>Thu, 11 Mar 2010 21:05:29 +0900</pubDate>
        </item>
        
        <item>
            <title>CGIをPlackで開発(2)</title>
            <description><![CDATA[<a href="http://mt.endeworks.jp/d-6/2010/03/cgi-development-with-plack.html">前のエントリ</a>書いたら宮川さんにオススメ方法を教えてもらった<div><br /></div><blockquote class="webkit-indent-blockquote" style="margin: 0 0 0 40px; border: none; padding: 0px;"><a href="http://twitter.com/miyagawa/status/10271128928">http://twitter.com/miyagawa/status/10271128928</a></blockquote><blockquote class="webkit-indent-blockquote" style="margin: 0 0 0 40px; border: none; padding: 0px;"><a href="http://twitter.com/miyagawa/status/10271128928"></a>plackup \</blockquote><blockquote class="webkit-indent-blockquote" style="margin: 0 0 0 40px; border: none; padding: 0px;">&nbsp;&nbsp; &nbsp; &nbsp;-L Shotgun</blockquote><blockquote class="webkit-indent-blockquote" style="margin: 0 0 0 40px; border: none; padding: 0px;">&nbsp;&nbsp; &nbsp; &nbsp;-MPlack::App::WrapCGI</blockquote><blockquote class="webkit-indent-blockquote" style="margin: 0 0 0 40px; border: none; padding: 0px;">&nbsp;&nbsp; &nbsp; &nbsp;-e 'Plack::App::WrapCGI-&gt;new(script =&gt; "/path/to/cgiscript.cgi")'</blockquote><blockquote class="webkit-indent-blockquote" style="margin: 0 0 0 40px; border: none; padding: 0px;"><div><br /></div></blockquote>だそうです！これなら全ての要件を満たせるもよう！そしてapp.psgiを作る必要ありません。<div><br /></div><div>今これやってみて一つだけ問題点。<span class="Apple-style-span" style="text-decoration: line-through;">多分POD入りのCGIは動かない。</span>それと、__DATA__は見てくれるけど、__END__があると動かない。__END__さっき簡単なパッチのpull requestを送っておきました！</div><div><br /></div><div>なお、-L Shotgunを使うと CGIファイルの中身は実行時までコンパイルされないのでご注意（つまり、plackup -rもいらないってことですね）</div>]]></description>
            <link>http://mt.endeworks.jp/d-6/2010/03/cgi-development-with-plack-2.html</link>
            <guid>http://mt.endeworks.jp/d-6/2010/03/cgi-development-with-plack-2.html</guid>
            
                <category domain="http://www.sixapart.com/ns/types#category">開発</category>
            
            
                <category domain="http://www.sixapart.com/ns/types#tag">cgi</category>
            
                <category domain="http://www.sixapart.com/ns/types#tag">perl</category>
            
                <category domain="http://www.sixapart.com/ns/types#tag">plack</category>
            
            <pubDate>Wed, 10 Mar 2010 23:16:37 +0900</pubDate>
        </item>
        
        <item>
            <title>CGIをPlackで開発</title>
            <description><![CDATA[ちょっと案件で簡単なCGIスクリプトをを開発することになった。StarmanとかTwiggyでほとんど全て書いているのに今更CGIとかそういう突っ込みはとりあえずおいておいて・・・環境を作るのも面倒くさいし、簡単にサーバーを立ち上げたり落としたりしたい。<div><div><br /></div><div>そこで<a href="http://plackperl.org">Plack</a>です！</div><div><br /></div><div>追記：その後もらったコメントによると、<a href="http://mt.endeworks.jp/d-6/2010/03/cgi-development-with-plack-2.html">こちらのほうがよさそうです</a>。</div><div><br /></div><div><br /></div><div><br /></div><div><br /></div><div><br /></div><div><br /></div><div><br /></div><div>具体的にはplackupと<a href="http://search.cpan.org/dist/CGI-Emulate-PSGI">CGI::Emulate::PSGI</a>を使います。</div><div><br /></div><div>何も考えずにとりあえず開発したいので、以下のようにapp.psgiにコードを書いていく。</div>
<pre class="code_listing">use strict;
use CGI::Emulate::PSGI;
return CGI::Emulate::PSGI-&gt;handler(sub {
    CGI::initialize_globals(); # 重要
<span style="color: #f00"># ここから</span>
#!/usr/bin/env perl
use strict;
use warnings;
use CGI;
use CGI::Carp qw(fatalsToBrowser);

sub main {
    my $q = CGI-&gt;new();
    ....
}

main();

<span style="color: #f00"># ここまでがCGIのコード</span>
});
</pre>
<div>あとで本当に単純にコピペしたいのでshebangもそのまま書いちゃうし、インデントもその部分だけファイルに書いたかのように記述していっちゃいます。</div><div><br /></div><div>これを以下のように-rオプションをつけて起動。app.psgiのCGIコードに変更を加える度にサーバーも再起動して新しいコードを適用してくれる。</div>

<pre class="code_listing">plackup -r -a app.psgi
</pre>
<div><br /></div><div><br /></div><div>これはいいわー。</div></div>]]></description>
            <link>http://mt.endeworks.jp/d-6/2010/03/cgi-development-with-plack.html</link>
            <guid>http://mt.endeworks.jp/d-6/2010/03/cgi-development-with-plack.html</guid>
            
                <category domain="http://www.sixapart.com/ns/types#category">日常</category>
            
            
                <category domain="http://www.sixapart.com/ns/types#tag">cgi</category>
            
                <category domain="http://www.sixapart.com/ns/types#tag">perl</category>
            
                <category domain="http://www.sixapart.com/ns/types#tag">plack</category>
            
            <pubDate>Wed, 10 Mar 2010 20:59:26 +0900</pubDate>
        </item>
        
        <item>
            <title>学生諸君、Perlを勉強したまえ（ただし書き付き）</title>
            <description><![CDATA[（はいはい、まず言語論争するつもりないから、そういうコメント禁止ね）<div><br /></div><div>1. 論旨</div><div><br /></div><div>新たな就職氷河期到来が叫ばれる昨今、就職に困っている学生さんもたくさんおろう。「技術があればチャンスはあるかも」って思う人もたくさんおろう。その際にプログラミングでもいっちょやってみっか、って思う人もたくさんおろう。</div><div><br /></div><div>そこでとりあえず言語を選ぶよね。「就職を有利にするため」という条件をクリアするためにあなたなら何を選ぶ？Java? C#? Ruby? PHP? （ちなみに自分は大学を卒業した時点で一番得意だったのはJavaですよ）</div><div><br /></div><div>色々選択肢はあるのは当たり前なので他の言語も排除はしないけど、僕としては自分の今持っている情報と経験から、Perlは覚えておいて損は全くない！と言い切れる。それは至極単純な理由で、需要より供給が圧倒的に少ないから。</div><div><br /></div><div>就職情報サイトで一番多く当たる言語とかはもちろんそれだけ需要があるという事でもあるのは当然だけれども、それはつまり供給もほうも当然多いのです。競争も激しいし、当然ながら1人当たりの価値は下がります（この場合の価値というのは給料という意味ではなく、採用する企業側からみたあなたの価値.... 採用するときにどれだけハングリーな目で見てもらえるか、です）</div><div><br /></div><div><a href="http://japan.perlassociation.org">JPA</a>の会員になってくれてる企業のうち<a href="http://japan.perlassociation.org/recruit">アクティブに採用を検討している会社</a>は（採用基準も高いところも多いけれど）、それはそれは切実にPerlエンジニアをほしがってます。今から少しでも多くPerlの知識を身につけておけば、競争が比較的少ない分野で輝くことができる可能性が高いわけですよ。</div><div><br /></div><div>あなたのゴールはなんですか？クールな言語を覚えること？流行物やバズワードに乗ること？それとも・・・仕事を見つけること？重要なのは採用してもらい、社会に出て、そこで経験を積むことなはず。</div><div><br /></div><div>株式相場でもそうだけれども、勝ちたいなら基本的には逆張りしないといけないですよ。そういう意味で全く持って Perlは良いオプションだと思います。</div><div><br /></div><div>ちなみに名の通ってるPerlを使用している企業の中ではWeb系の企業が多いのでPerlを選ぶ＝Web系のキャリアに就くと思っている人もいるかもしれないが、Perlはもともと面倒なシステム管理タスクなどを簡単に包括的に行うためのツールとして作られているので、Web系に限らずその後もっと広いシステム領域に自分の仕事を広げていくつもりだったとしてPerlという言語は悪いチョイスではないと思います。</div><div><br /></div><div>2. ただし書き</div><div><br /></div><div>・・・とここまで書いておいてなんだけど、だからと言ってPerl勉強すればいいってもんじゃない。色々なただし書きがついてきます。</div><div><br /></div><div>ここからはまとまりにくいのだけど、とりあえず羅列してみる：</div><div><br /></div><div><ul><li>今回僕はPerlを便利なツールで、覚えておいて損はない、そして今ならある程度のPerl力があれば就職できる可能性が高いよ！って言いたいだけ。</li><li>Perlを覚える事にしたとしても、それだけでは何にもならない。優秀なプログラマーは第1言語以外のどの言語を与えても資料さえあればそれなりのものが作れる。重要なのは言語の仕様ではなくて、プログラムを書く時の考え方だから。だから他の言語も一緒に覚えればいいと思う。</li><li>Perlに関してはバッシングが結構ひどいけど、少なくとも「言語仕様」を叩く人の言うことは8割ほど引いて聞いておけ。他人のコードを読めないとのたまう人は自分が得意とする言語・環境以外のデバッグができないだけだし、まずいコードを書く人はどの言語で書かせてもまずいコードを書く。</li></ul><div><br /></div><div>3. ということで</div><div><br /></div>今はPerlは戦略的に就活を行うなら、早い内から手に入れておいて役に立つスキルのひとつだと思う。ただし<a href="http://ejje.weblio.jp/content/YMMV">YMMV</a></div><div><br /></div><div>4. ついでに</div><div><br /></div><div>あくまで個人的な意見ですが、今から新たにPerlの何かを覚える目標としては<a href="http://plackperl.org">Plack/PSG</a>Iともっと進んだところでは<a href="http://gihyo.jp/dev/serial/01/modern-perl/0013">非同期プログラミング</a>はいい題材だと思います。技術的なレベルはちょっと高いけど、その辺りを目指すと外れはないかな〜。まぁこれは本当に個人的意見なので初心者には辛いかもしれません。</div><div><br /></div><div>あとこれからPerlを覚えようって方には（もっと他にもあるだろうけど）とりあえず<a href="http://japan.perlassociation.org/books">Perl関連書籍</a>や<a href="http://japan.perlassociation.org/resource">Perl関連資料</a>のページも作りましたよ。</div><div><br /></div><div>あと、Perlメインでなくてもいいので、<a href="http://wiki.perlassociation.org/jobs">Perlで開発を受注できる！という会社の方は是非こちらに書き込んでください</a>！数が揃えばJPAサイトのほうに移します。</div>]]></description>
            <link>http://mt.endeworks.jp/d-6/2010/03/learn-perl-now.html</link>
            <guid>http://mt.endeworks.jp/d-6/2010/03/learn-perl-now.html</guid>
            
                <category domain="http://www.sixapart.com/ns/types#category">仕事</category>
            
            
                <category domain="http://www.sixapart.com/ns/types#tag">perl</category>
            
            <pubDate>Wed, 10 Mar 2010 14:43:10 +0900</pubDate>
        </item>
        
        <item>
            <title>古いtweetを探すのは骨が折れる</title>
            <description><![CDATA[松濤であった爆発の件について、そういえばtwitter使ってたなーと思って探したら全然見あたらない。なにせ4年近く前のことなのでそもそもそこにたどり着くラインがないのだ。<div><br /></div><div>なので、一個だけブクマされてたtweetから超ローテクな方法で残りのヤツを捜した。その方法とは・・・一個ずつIDを増やして、HTTP GETが通ったらOKというだけ。一旦書いてから走らせてそのまま放置して一晩おいておいたら大体とれてたくさい。</div><div><br /></div><div>というわけで、松濤温泉施設爆発時の俺のtweet → <a href="http://mt.endeworks.jp/d-6/2006/06/shoutou.html">ここ</a>。</div><div><br /></div><div><br /></div>
<pre class="code_listing">use strict;
use LWP::UserAgent;

my $base = 110764722;
my $ua = LWP::UserAgent-&gt;new();
my $i = $base;
while(1) {
    my $res = $ua-&gt;head("http://twitter.com/lestrrat/statuses/$i");
    if ($res-&gt;is_success) {
        print "http://twitter.com/lestrrat/statuses/$i\n";
    }
    $i++;
}
</pre>
<div>やー、ローテクですね。あまりオススメしませんｗ</div>]]></description>
            <link>http://mt.endeworks.jp/d-6/2010/03/old-tweets.html</link>
            <guid>http://mt.endeworks.jp/d-6/2010/03/old-tweets.html</guid>
            
            
                <category domain="http://www.sixapart.com/ns/types#tag">perl</category>
            
            <pubDate>Tue, 09 Mar 2010 09:15:53 +0900</pubDate>
        </item>
        
        <item>
            <title>LLふんふん2010のブレストに行ってきた</title>
            <description><![CDATA[<span class="mt-enclosure mt-enclosure-image" style="display: inline;"><img alt="100305_2046~02.jpg" src="http://mt.endeworks.jp/d-6/100305_2046~02.jpg" width="160" height="120" class="mt-image-left" style="float: left; margin: 0 20px 20px 0;" /></span>
<div><a href="http://yokohama.pm.org/">Yokohama Perl Mongers</a>のみんなが関内に向かう途中で電車が止まって右往左往している間、僕は昨年 <a href="http://ll.jus.or.jp/2009/">LLTVに出させてもらった</a>縁から<a href="http://asciimw.jp/">アスキーメディアワークス</a>さんでPerlの権益のために声を張ろうと思ってLLふんふん2010のブレストに行ってきましたよ。</div>
<div><br /></div><div>結果的には声を張るような状況ではなく、ドミノピザと景品で当てたという<a href="http://www.brussels.co.jp/">ブラッセルズ</a>のケグからビールをぐびぐび飲みながら壁にペタペタとネタを貼っていくという2時間でありました。最後の片付けはバスの時間あやばかったのでバックれました。すみません。</div><div><br /></div><div>というわけで今年は7/31に虎ノ門の<a href="http://www.nissho.or.jp/nissho-hall/index.html">ニッショーホール</a>で開催だそうです。内容はまだ未定。今回のブレスト内でのネタがどれだけ反映されるのでしょうね。</div><div><br /></div><div>YAPCは多分10月ですよ（ぼそ）</div>]]></description>
            <link>http://mt.endeworks.jp/d-6/2010/03/ll2010.html</link>
            <guid>http://mt.endeworks.jp/d-6/2010/03/ll2010.html</guid>
            
                <category domain="http://www.sixapart.com/ns/types#category">日常</category>
            
            
            <pubDate>Sat, 06 Mar 2010 10:52:27 +0900</pubDate>
        </item>
        
        <item>
            <title>Perlで受注できる企業リスト</title>
            <description><![CDATA[Perlを使うことのできる中小企業（地方企業含む）って結構いると思うんだけど、そういうのをとりまとめたリストを作って公表するとか、もしくは弊社(endeworks)と取引のあるところと今後の仕事の際にそういう会社に仕事を流して関係を築いていくとか、そういうのって需要あるのかなぁ？<div><br /></div><div>発注したい側、受注したい側、両方とも意見が聞けると嬉しい。</div><div><br /></div><div>追記1: 見切り発車で<a href="http://wiki.perlassociation.org/jobs">こんなwikiページも作ってみました</a>。よろしかったら書き込んでください！</div><div><br /></div><div>追記2: リンク先間違ってました！直しました！</div>]]></description>
            <link>http://mt.endeworks.jp/d-6/2010/03/perl-company-list.html</link>
            <guid>http://mt.endeworks.jp/d-6/2010/03/perl-company-list.html</guid>
            
                <category domain="http://www.sixapart.com/ns/types#category">日常</category>
            
            
                <category domain="http://www.sixapart.com/ns/types#tag">perl</category>
            
            <pubDate>Fri, 05 Mar 2010 07:23:26 +0900</pubDate>
        </item>
        
        <item>
            <title>ループを使わずに配列を逆にするヤツ</title>
            <description><![CDATA[<div>「だからどうだ」ってことですけど、（perlだとreverseあるので本来なら1オペで終わっちゃうけど）とりあえずループを使わずに与えた配列を逆にするコードの自己最短コードはこうなりました：</div><div><br /></div>

<pre class="code_listing">sub r{@_?(pop,r(@_)):()};
</pre>

<div>もう少し読みやすく展開するとこんな感じですね。ただの再帰処理です：</div><div><br /></div>

<pre class="code_listing">sub myreverse {
   if (@_ &gt; 0) {
      return (pop @_, myreverse(@_));
   } else {
      return ();
   }
}
</pre>

<div>popで配列の最後の要素を最初に回して、残りを再帰処理してるだけー</div>]]></description>
            <link>http://mt.endeworks.jp/d-6/2010/03/post-146.html</link>
            <guid>http://mt.endeworks.jp/d-6/2010/03/post-146.html</guid>
            
                <category domain="http://www.sixapart.com/ns/types#category">日常</category>
            
            
                <category domain="http://www.sixapart.com/ns/types#tag">perl</category>
            
            <pubDate>Thu, 04 Mar 2010 18:32:05 +0900</pubDate>
        </item>
        
        <item>
            <title>王道キムチ</title>
            <description><![CDATA[<img src="http://www.akimoto.co.jp/images/push/ichioshi_wando_logo.jpg" width="150" style="float: left; padding: 10px" />
<div>今日家に帰ってきたら相方は豚キムチを作ってたのだけど、横でお手伝いにジャガイモをむきがてら<a href="http://www.akimoto.co.jp/push/wando_kimchi2.html">そのキムチ</a>をつまんでみたところ・・・うまい！うまいじゃないか！スーパーで買ってきたキムチにしては格段にうまいぞ、これ！</div><div><br /></div><div>本場のキムチに関して特にうんちくは持ってないので比べてみてどうなのかはわからんけど、この「<a href="http://www.akimoto.co.jp/push/wando_kimchi2.html">王道キムチ</a>」っていう商品は浅漬けでしっかり辛くて甘みもあり、俺の好みにバッチリ。思わず残ってたものを全部食ってしまい、その後ネットを調べたら検索にヒットする結果がかなりべた褒めしているではないか。みんなも好きなんだね！</div><div><br /></div><div>というわけで王道キムチ、オススメです。</div>]]></description>
            <link>http://mt.endeworks.jp/d-6/2010/03/post-145.html</link>
            <guid>http://mt.endeworks.jp/d-6/2010/03/post-145.html</guid>
            
                <category domain="http://www.sixapart.com/ns/types#category">日常</category>
            
            
            <pubDate>Mon, 01 Mar 2010 20:12:58 +0900</pubDate>
        </item>
        
        <item>
            <title>モヤモヤさまぁ〜ず２ DVD 7,8,9</title>
            <description><![CDATA[<iframe src="http://rcm-jp.amazon.co.jp/e/cm?lt1=_blank&amp;bc1=FFFFFF&amp;IS2=1&amp;bg1=FFFFFF&amp;fc1=000000&amp;lc1=0000FF&amp;t=d604-22&amp;o=9&amp;p=8&amp;l=as1&amp;m=amazon&amp;f=ifr&amp;asins=B002YYXXEK" style="width:120px;height:240px; float: left" scrolling="no" marginwidth="0" marginheight="0" frameborder="0"></iframe>
<iframe src="http://rcm-jp.amazon.co.jp/e/cm?lt1=_blank&amp;bc1=FFFFFF&amp;IS2=1&amp;bg1=FFFFFF&amp;fc1=000000&amp;lc1=0000FF&amp;t=d604-22&amp;o=9&amp;p=8&amp;l=as1&amp;m=amazon&amp;f=ifr&amp;asins=B002YYXXEU" style="width:120px;height:240px;float:left" scrolling="no" marginwidth="0" marginheight="0" frameborder="0"></iframe>
<div>モヤモヤさまぁ〜ず２のDVD 7, 8, 9を予約購入。大江アナが相変わらず美しいので、見ながらそう呟いていると横の相方からつめた〜〜〜〜〜い一言が飛んでくるのだが、こればっかりは辞めるつもりはないのであった。我慢せよ。</div><div><br /></div><div>ところで今回のDVDの予約購入特典として「雨の幡ヶ谷」エピソードとかが＊抽選で＊あたるらしいんだけど・・・なんで？なんでいれてくれないの？！意味がわかりません！</div><div><br /></div><div>テレビシリーズもののDVDでこうしてエピソードが削られたりするのが本当に嫌なんですけど、なんとかならないですかね。諸事情で出せないエピソードがたまにあるのはまぁしょうがないけど、しれーっと削られてるのはわざわざ金を出して買ってる身としてはかなり遺憾ですね。ちなみに特にひどいと感じたのは「内村プロデュース」編集しすぎじゃ！。あと、「<a href="http://www.amazon.co.jp/gp/product/B002GP7QBS?ie=UTF8&amp;tag=d604-22&amp;linkCode=as2&amp;camp=247&amp;creative=1211&amp;creativeASIN=B002GP7QBS">くりぃむナントカ]</a><img src="http://www.assoc-amazon.jp/e/ir?t=d604-22&amp;l=as2&amp;o=9&amp;a=B002GP7QBS" width="1" height="1" border="0" alt="" style="border:none !important; margin:0px !important;" />」シリーズも妙に混ぜないで全部出して下さいよ・・・。</div><div><br /></div>

<div>こんどゴールデンに行くみたいだけど、今まで通りのテイストでちゃんとやってくれるのかなぁ。フォーマット変えられたら、すぐ見るの辞めるとおもうので、そこのところ是非がんばってください＞伊藤P</div><div><br /></div><div>ちなみに特典のテレ東モヤモヤは結構楽しめました。</div>]]></description>
            <link>http://mt.endeworks.jp/d-6/2010/02/post-144.html</link>
            <guid>http://mt.endeworks.jp/d-6/2010/02/post-144.html</guid>
            
                <category domain="http://www.sixapart.com/ns/types#category">日常</category>
            
            
            <pubDate>Thu, 25 Feb 2010 10:29:05 +0900</pubDate>
        </item>
        
        <item>
            <title>業務連絡</title>
            <description><![CDATA[本日携帯を忘れていますので、携帯へ連絡しても見られません :(<div><br /></div><div>連絡はtwitterかdaisuke＠弊社まで。</div>]]></description>
            <link>http://mt.endeworks.jp/d-6/2010/02/post-143.html</link>
            <guid>http://mt.endeworks.jp/d-6/2010/02/post-143.html</guid>
            
                <category domain="http://www.sixapart.com/ns/types#category">日常</category>
            
            
            <pubDate>Thu, 25 Feb 2010 08:38:32 +0900</pubDate>
        </item>
        
        <item>
            <title>問屋の話。</title>
            <description><![CDATA[某出版社さんに打ち合わせに行ってきたのだけど、このように自分が普段触れない業界の方と話してると必ず思い出す話がある。それはdaibaさんに紹介してもらったこれ→「<a href="http://itpro.nikkeibp.co.jp/article/COLUMN/20090528/330813/">ムダと一緒に捨てたもの</a>」。<div><br /></div><div>問屋というシステムと現代のムダを削る話なのだが、まぁ現在の状況がいいとか悪いとかは自分で調べてもないのでとりあえずざっと斜め読みしてもらって、キモは2ページ目の「<a href="http://itpro.nikkeibp.co.jp/article/COLUMN/20090528/330813/?P=2">問屋の裏機能</a>」あたりから「<a href="http://itpro.nikkeibp.co.jp/article/COLUMN/20090528/330813/?P=3">そのせいで技術も低下する</a>」のあたり。</div><div><br /></div><div>出版社の方と話している限り僕は「（物を作るという意味での）作家」側にいるわけだが、話している際に市場のニーズの事や、現実的な流通の経路やビジネスモデルなんかの話をしてもらってそれに合わせて内容を調節していくという事をしていると作家としての「こういうものを書きたい」と思ってる自分とは別に事情とかを聞いて「なるほど」と思っている冷静な自分が同時に考えている。そして毎回非常にそのやりとりとそれをしている事自体がおもしろい。</div><div><br /></div><div>そういうわけで、話終わった後「彼らはいい『問屋さん』だよなぁ」と思っていつも帰路につく。これで彼らがいなかったらきっとただの垂れ流ししか作れてないと思うのだ。</div><div><br /></div><div>ネットの時代は様々なコンテンツに関して制限がなくなって、大変素晴らしい事もたくさんあるんだけど、やはり問屋というもの自体は必要だと感じる。要はその二つがちゃんと両立できればいいんじゃないかな。「ムダがある」と分かっていても、市場のニーズや目利きをちゃんとできる問屋方式と、そこに選ばれなかったけど隠れた才能やニーズが本当はあった場合に使える作家→消費者の直接取引と、両方。もうインターネットを含む情報の氾濫の時代は終わらないと思うから、逆に守るべきは問屋方式なんじゃないかなぁ。</div><div><br /></div><div>かく言う自分も本当はできればプログラマー・デザイナーの問屋方式に近い形で仕事できたらいいなぁと思ってる。そういえば今月の始めで<a href="http://www.endeworks.jp">endeworks</a>も5年目でした。会社は10年もってやっと一人前らしいのであと6年くらい。まだ折り返し地点に到達してないんだなぁ。普段コードの事ばかり書いてるけどデザイン業務とか色々できるので是非一度声をかけてみてくださいね！</div><div><br /></div><div><br /></div>]]></description>
            <link>http://mt.endeworks.jp/d-6/2010/02/post-142.html</link>
            <guid>http://mt.endeworks.jp/d-6/2010/02/post-142.html</guid>
            
                <category domain="http://www.sixapart.com/ns/types#category">日常</category>
            
            
            <pubDate>Wed, 24 Feb 2010 14:48:10 +0900</pubDate>
        </item>
        
        <item>
            <title>Plack/Starman Daemontools Run File With Complete Deploy Bundle</title>
            <description><![CDATA[<ul>
<li>注１：まだ本番にはデプロイしてませんが、確認テストでは使いました（単位テストでは使わない。あくまで本番さながらの形で動いているのを確認したい時だけ）。</li>
<li>注２：以下スクリプトは<i>開発者</i>の労力を減らすためのスクリプトで、万全なデプロイ方法だとか言うわけではありません。</li>
<li>注３：正直シェルスクリプトは素人です。</li>
</ul>
<div><br /></div><div><ul><li>追記：envdirはどうか、と言われた件。最初それを思い出せなくてcat ENVなんてしてたんだけど、設定値をもらって後からフックしたいところがあるからenvdirではそれを実現できない・・・気がする。ので、今回は以下で。</li><li>hirose31 さんが美しい スクリプトを提供してくれたので、それをベースにしてgithubにあげておけました。<a href="http://github.com/lestrrat/daemontools-plack-runner/blob/master/run"><b>最新版はここです</b></a>。</li></ul><div><br /></div></div><div>ここ最近のPlackだとかStarmanとかを使ったWebアプリケーションのバンドル・デプロイについてちょっと固まりつつあるので、書いてみる</div><div><br /></div><div>まず アプリケーションと、その依存関係。デプロイ側のサーバーにはlocal::libと必要な<a href="http://search.cpan.org/dist/Module-Install">Module::Install</a>系のモジュール、それに<a href="http://search.cpan.org/dist/Module-Install-Bundle-LocalLib">Module::Install::Bundle::LocalLib</a>がインストールされている前提です。アプリケーションの依存関係は全部Makefile.PLに書きます。</div><div><br /></div>

<pre class="code_listing">use inc::Module::Install;

name 'MyApp';

..... # 必要な事色々 ....

# Plack stuff
requires 'Plack' =&gt; '0.9910'; # or 1.00 when the time comes
requires 'Starman';
requires 'Server::Starter';
requires 'Net::Server::SS::PreFork';

bundle_local_lib;

WriteAll;
</pre>

<div><br /></div>
<div>こんな風にしておく。で、デプロイする際には <pre class="code_listing">make bundle_local_lib</pre>する。するとextlibというディレクトリに依存関係が全部入ります。このextlibは一旦安定稼働するのを確認したら、依存関係のアップグレード時には一旦別のところに待避させるとかコピーするとかしてからアップグレードを行ってみるという事ができる。万が一動かない場合はすぐ元のextlibに戻せば良いってわけだ。</div>
<div><br /></div>
<div>ってなわけで、Plackを含めた全ての依存関係をextlib以下にある。</div>
<div><br /></div>
<div>で、これをdaemontoolsで動かすのでrunファイルが欲しい。作る。今までdaemontoolsで運用してて開発→デプロイで面倒くさいなーと思ってたのがこのrunファイルの細かい設定を変えていくことなんだけど、今回はこれを分離してみた:</div>
<pre class="code_listing">#!/bin/sh

# ENVというファイルが このファイルと同じディレクトリか
# pwdにあれば、それを読み込んで、そこから環境変数を広う。
# 例えば後で出てくる PSGI_FILEの場所を明示的に指定したければ
# PSGI_FILE=/path/to/app.psgi とかENVファイルに書いておく。
if [ -f `dirname $0`/ENV ]; then
    ENV_FILE=`dirname $0`/ENV
    export `cat $ENV_FILE`
elif [ -f ENV ]; then
    export `cat ENV`
fi

if [ -z $APP_HOME ]; then
    APP_HOME=`pwd`;
fi
export APP_HOME
if [ -z $CATALYST_HOME ]; then
    CATALYST_HOME=$APP_HOME
    export CATALYST_HOME
fi

if [ -z $CATALYST_CONFIG ]; then
    if [ -f "catalyst.yaml" ]; then
        CATALYST_CONFIG=catalyst.yaml
        export CATALYST_CONFIG
    fi
fi

if [ ! -z $DEBUG ]; then
    DBIC_TRACE=2
    export DBIC_TRACE
fi

if [ -z $PLACK_SERVER ]; then
    PLACK_SERVER=Starman
fi

if [ -z $PSGI_FILE ]; then
    PSGI_FILE=app.psgi
fi

if [ -z $PORT ]; then
    PORT=5000
fi

if [ -z $USER ]; then
    USER=www
fi

if [ -z $PERL ]; then
    PERL=`which perl`
fi

EXTLIB=$APP_HOME/extlib

# start_serverを通して plackupを実行するのだが、こいつらはextlibの中に
# あるので、それを指定して実行する（local::lib設定もつけないと依存関係が
# みつからない状態になってしまう)
exec setuidgid $USER \
    $PERL -Mlocal::lib=$EXTLIB \
    $EXTLIB/bin/start_server --port $PORT -- \
    $PERL -Mlocal::lib=$EXTLIB \
    $EXTLIB/bin/plackup -s $PLACK_SERVER -a $PSGI_FILE -p $PORT 2&gt;&amp;1
</pre>
<div><br /></div>
<div>こんな感じ。これでENVの中身を変えてsvc -tするとその設定が反映される、と。</div>

<div><br /></div>
<div>自分の場合はPSGIファイルの中にももう少し仕掛けを入れていく必要があったので、ENVから可変な情報をもらっていくようにした：</div>

<pre class="code_listing">use strict;
use lib "$ENV{CATALYST_HOME}/lib"; # パスを通す
use local::lib "$ENV{CATALYST_HOME}/extlib"; # ついでにlocal::libのパスも通す

use MyApp;
use Plack::Builder;

MyApp-&gt;setup_engine('PSGI');

builder {
    # リバースプロキシ使う場合はenableしちゃう
    if ($ENV{USE_PROXY}) {
        enable "Plack::Middleware::ReverseProxy";
    }
    return sub { MyApp-&gt;run(@_) };
};
</pre>

<div>これをレポジトリに入れておき、デプロイするときにはdaemontoolsあたりからsymlinkしておいて動かす。開発時にもrunファイルを実行すれば本番さながらの感じでサーバーが立ち上がる（ただし、実際にはテストは全然違う方法で動かしてる）</div><div><br /></div>

<div>誰かの役に立つなら幸い。なんか突っ込みがあればお願いします。</div>]]></description>
            <link>http://mt.endeworks.jp/d-6/2010/02/plack-starman-daemontools-deploy.html</link>
            <guid>http://mt.endeworks.jp/d-6/2010/02/plack-starman-daemontools-deploy.html</guid>
            
                <category domain="http://www.sixapart.com/ns/types#category">日常</category>
            
            
                <category domain="http://www.sixapart.com/ns/types#tag">daemontools</category>
            
                <category domain="http://www.sixapart.com/ns/types#tag">perl</category>
            
                <category domain="http://www.sixapart.com/ns/types#tag">plack</category>
            
                <category domain="http://www.sixapart.com/ns/types#tag">starman</category>
            
            <pubDate>Tue, 23 Feb 2010 17:56:18 +0900</pubDate>
        </item>
        
    </channel>
</rss>
