<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
    <title>D-6 [相変わらず根無し]</title>
    <link rel="alternate" type="text/html" href="http://mt.endeworks.jp/d-6/" />
    <link rel="self" type="application/atom+xml" href="http://mt.endeworks.jp/d-6/atom.xml" />
    <id>tag:mt.endeworks.jp,2007-07-27:/d-6//3</id>
    <updated>2010-02-04T03:33:34Z</updated>
    
    <generator uri="http://www.sixapart.com/movabletype/">Movable Type Open Source 4.1</generator>

<entry>
    <title>ディスプレイ富豪への道</title>
    <link rel="alternate" type="text/html" href="http://mt.endeworks.jp/d-6/2010/02/post-141.html" />
    <id>tag:mt.endeworks.jp,2010:/d-6//3.2449</id>

    <published>2010-02-04T03:10:59Z</published>
    <updated>2010-02-04T03:33:34Z</updated>

    <summary>昨日、なにか現実逃避をしていてマルチディスプレイに関しての記事を読んだのがきっか...</summary>
    <author>
        <name>D</name>
        
    </author>
    
        <category term="日常" scheme="http://www.sixapart.com/ns/types#category" />
    
    
    <content type="html" xml:lang="ja" xml:base="http://mt.endeworks.jp/d-6/">
        <![CDATA[<div>昨日、なにか現実逃避をしていてマルチディスプレイに関しての記事を読んだのがきっかけで、Buffalo社製の<a href="http://bit.ly/c6yfZx">ディスプレイ増設アダプタ</a>を衝動買いしてしまった。</div><div><br /></div><div>Macbookでもっとディスプレイを増やすというのは前前からしたかったんだけどご存じの通りデスクトップならカード刺せばいいだけだけど、ラップトップだと使える製品が結構限られてたわけで。ところがこいつUSBなんだよね。簡単じゃん！ってことで購入した次第（ちなみに上位機種もあったんだが、別にたいした用では使わないや、ってことで下位機種を選んだ）。</div>
<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=B0015XKAJW" style="width:120px;height:240px; float: right" scrolling="no" marginwidth="0" marginheight="0" frameborder="0"></iframe>

<div><br /></div><div>さて、それが早速届いたのが本日朝。箱を見るとMac用のドライバが入ってないのだが、Buffalo社のサイトを見てみるとどうやら<a href="http://buffalo.jp/download/driver/multi/gx-dvi_u2-mac.html">内蔵デバイスを作ってるところのサイトから適当に持ってこい</a>ということらしいので、<a href="http://displaylink.org/forum/showthread.php?p=146#post146">この辺り</a>からさっそく持ってきた。ベータとか書いてあるのが若干怖いけど、ドキドキしながらいれてみたら普通に動作した。</div><div><br /></div><div>遊んでるWindowsマシンが一台あったのでそこのモニターをかっぱらってきて、つなげてみたところ、やはり描画速度に若干難はあるものの、例えばWebページを見るだけとか、IRC画面を表示しておくだけとか、それだったら全く問題無し！これはいい。</div><div><br /></div><div>会社の机の制限のせいでまだどうやるのかわからないけど、できることならアームを使ってもう少し高さを調整したいなぁ・・・</div><div><br /></div><div>夢はMacbookのメインディスプレイ＋20~24インチモニターが三つです！</div><div><br /></div><div><span class="mt-enclosure mt-enclosure-image" style="display: inline;"><img alt="100204_1207~01.jpg" src="http://mt.endeworks.jp/d-6/100204_1207~01.jpg" width="320" height="240" class="mt-image-center" style="text-align: center; display: block; margin: 0 auto 20px;" /></span></div><div><br /></div>]]>
        
    </content>
</entry>

<entry>
    <title>Flashについて愚痴りたい</title>
    <link rel="alternate" type="text/html" href="http://mt.endeworks.jp/d-6/2010/02/flash-1.html" />
    <id>tag:mt.endeworks.jp,2010:/d-6//3.2448</id>

    <published>2010-02-02T11:35:21Z</published>
    <updated>2010-02-02T11:51:49Z</updated>

    <summary>ちょっとブラウザから永続的なソケット接続を確立したいと考えてFlashをサーバー...</summary>
    <author>
        <name>D</name>
        
    </author>
    
        <category term="日常" scheme="http://www.sixapart.com/ns/types#category" />
    
    <category term="actionscript" label="actionscript" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="flash" label="flash" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="ja" xml:base="http://mt.endeworks.jp/d-6/">
        <![CDATA[ちょっとブラウザから永続的なソケット接続を確立したいと考えてFlashをサーバーとJavascriptの間のプロキシとして使うことにした。<div><br /></div><div>で、自分はプログラマなわけだけどFlashとか全然わかんなかったので一から試行錯誤しながら覚え始めたのだがもうひとつひとつ罠にはまりまくっている。忘れないようにメモ（もし間違ってる事とかあったら教えて下さい！）</div><div><br /></div><div><ul><li>swfファイルが起動した時のエントリーポイントがわからない（int main()みたいなものはいったいどこにあるのかわからなかった）→ .flaファイルを作って、そこにドキュメントクラスに設定したクラス名が起動時にインスタンスが作成されるので、そいつのコンストラクタがエントリーポイント</li><li>crossdomain.xml的なものは、URLStreamとかを使ってるなら同サーバー内の/crossdomain.xmlにあればいいけど、XMLSocketやSocketを使ってる場合は同名サーバーのポート843にそれ用のちょこっとしたサービスをあける必要がある。なんでHTTPとか、汎用的なプロトコルじゃないのか意味不明。</li><li>ちなみに"&lt;policy-file-request/&gt;\0"っていうリクエストが来るのでXMLを返す。なんでHTTPじゃないのか（ｒｙ</li><li>この手のセキュリティエラーは明確な形ではエラーとして報告されることはない。願わくばデバッグモードとかオンにしたら「ポリシーファイルがとれなかったよ！」とか教えてくれればいいのに・・・</li><li>唯一の手がかりは IOErrorEvent.IO_ERROR, SecurityErrorEvent.SECURITY_ERRORとかに対してイベントリスナーを仕込んでおいて、イベント内容を出力すること。さらにそこでエラーの詳細が出ればいいのに、Error #xxxxとかコードしか出てこない。面倒くさいがぐぐれ。</li><li>正規表現を使うのは気をつける。ちょっと検証はしてないのでこれはあくまで自分の勘なんだけどこう、バックトラックが多く発生する正規表現を使うとありえないくらいパフォーマンスに影響がでるような・・・？正規表現をとっぱらってindexOf() と substr() で代用したら普通に動いた。</li></ul><div>とりあえず以上。</div></div>]]>
        
    </content>
</entry>

<entry>
    <title>国会議員がtwitterを使っているとかなんとか。</title>
    <link rel="alternate" type="text/html" href="http://mt.endeworks.jp/d-6/2010/01/twitter-1.html" />
    <id>tag:mt.endeworks.jp,2010:/d-6//3.2447</id>

    <published>2010-01-26T23:19:49Z</published>
    <updated>2010-01-26T23:28:21Z</updated>

    <summary>とくダネ！で国会議員によるtwitterの利用が話題になっていたが、すごくすごく...</summary>
    <author>
        <name>D</name>
        
    </author>
    
        <category term="日常" scheme="http://www.sixapart.com/ns/types#category" />
    
    
    <content type="html" xml:lang="ja" xml:base="http://mt.endeworks.jp/d-6/">
        <![CDATA[とくダネ！で国会議員によるtwitterの利用が話題になっていたが、すごくすごく腑に落ちないことがひとつ。山本一太議員がその中でtwitterのヘビーな利用者として紹介されていたのだが、すごく違和感を感じた。<div><br /></div><div>画面では<a href="http://twitter.com/ichita_y/status/8210662712">山本議員が「内閣・外交・国防合同部会」に出席しているところ</a>が映し出され、その間にtwitterで発言しているのをリポーターが携帯でそれを見る、というところが映し出されている。その部会中に20回あまりの発言がされたとテレビでは言っていたが・・・</div><div><br /></div><div>それってつまり仕事を<b>さぼってる</b>よね？</div><div><br /></div><div>俺もよく会議中とか自分のパソコンにノートを取ってるふりしてちょっと違う事しちゃうとか、他の仕事を片付けちゃうとかやるからよくわかるんだけど、PCいじくりながら本気の議論とか＊絶対＊にできないよね。</div><div><br /></div><div>政治がネットで発言することがなんとかとか言ってたけど、これはそういうのじゃないよ。国の将来を考えるべき立場の人が本業そっちのけでtwitter使ってるってだけじゃん！</div><div><br /></div><div>とくダネ！もとりあげかたおかしいだろ。なんかすげぇがっかりした。</div>]]>
        
    </content>
</entry>

<entry>
    <title>Linode</title>
    <link rel="alternate" type="text/html" href="http://mt.endeworks.jp/d-6/2010/01/linode.html" />
    <id>tag:mt.endeworks.jp,2010:/d-6//3.2445</id>

    <published>2010-01-26T03:54:45Z</published>
    <updated>2010-01-26T04:17:27Z</updated>

    <summary>某和製ホスティング業者の更新期限が近づいてきたので、色々検討した結果linode...</summary>
    <author>
        <name>D</name>
        
    </author>
    
        <category term="日常" scheme="http://www.sixapart.com/ns/types#category" />
    
    <category term="linode" label="linode" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="vps" label="vps" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="ja" xml:base="http://mt.endeworks.jp/d-6/">
        <![CDATA[某和製ホスティング業者の更新期限が近づいてきたので、色々検討した結果<a href="http://www.linode.com">linode</a>にサーバーを一台移設しました。このブログもそのVPSに移動しています。<div><br /></div><div>Linodeに限らず海外のVPSに関しては以前EC2を使っていた関係でlatencyを非常に心配していて、ずっと二の足を踏んでいたのですが知り合いの人に一通りping時間とかを聞いてみて悪くないと感じられたのでえいやっと1年分契約してみました。スペックはこちらのLinode 1440です。正直こんなに転送帯域必要ないんだけど、まぁRAMとストレージの兼ね合いでこの辺りがいいかと思って決めました。</div><div><br /></div><div><span class="mt-enclosure mt-enclosure-image" style="display: inline;"><img alt="linode_plans.png" src="http://mt.endeworks.jp/d-6/linode_plans.png" width="600" height="223" class="mt-image-center" style="text-align: center; display: block; margin: 0 auto 20px;" /></span></div><div><br /></div><div>Linodeがよい！とまずまっさきに感じられたのはバーチャルコンソールへのアクセスと、OSのインストールですかね。OSの種類は比較的限られているけど、実際そこまで気にするほどじゃないし。今回は最近33rpm氏が好きだから、という理由でUbuntuにしております（そういえば今回契約の切れるサーバーは、僕が管理してきた歴代の最後のFreeBSDマシンだ・・・）。とにかくその辺りの設定は楽だった。</div><div><br /></div><div>あとはログインしてみて、特に重さを感じる事はなかった。データセンターはカリフォルニアはうまってたのでダラスのヤツにしたけど、時間帯によって多少の差はあるものの、気になるほどじゃない。業務で使っててもたいしたlatencyじゃないし、そもそもマシン性能が高い感じ。perlのコンパイルとかもかなり速かった。</div><div><br /></div><div>そしてやっぱり値段かな。円高なのも手伝って、約8万円で1年分の料金。色々検討したんだけど国内のVPSのスペックは残念ながら正直微妙で、小さいサーバーのファームとして使うならいいけど普段から業務で使うサーバーとしてはどうかという感じだし、かといって専用サーバーのホスティングは結構高い（ちなみに某有名どころで借りてたのだけど、そこは1年で20万前後した - スペックはストレージ以外は遜色ないと思う）。それが10万円を切るお値段でこの性能ならこっちいっちゃうよな。</div><div><br /></div><div>本来なら日本で借りたいサーバーなんだけど、やっぱりコストパフォーマンスがなぁ。まぁどこの会社でも難しいとは思うんだけど、もう少し良い物が欲しい。ごてごてした追加機能とかいらないから、(1)簡単に立ち上げられ (2) 質実剛健スペックで (3) お得感がある って事だけに特化してもらえないもんだろうか。日本のホスティング業界の人、お願いします！</div><div><br /></div><div>それまでは linodeは結構おすすめですよ！ってことで〆</div><div><br /></div><div><br /></div><div><br /><div>なお、MTの移設に関してはPostgreSQLで最初運用していたものの、そのうちPostgreSQL自体を使わなくなってしまったのでこの際と思いMySQLに載せ替えました。移設作業は基本的に(1) MTの最初のウィザードを一通り実行する (2) pg_dumpで元のダンプを取る (3) ダンプファイルからPostgreSQL専用のSQLを全て除去する（最初のINSERTまでの全て）(4)それをmysqlに流し込む・・・という荒技で移設し、全く問題ありませんでした。<br /><div><br /></div></div></div>]]>
        
    </content>
</entry>

<entry>
    <title>Plack - Perlウェブサーバー</title>
    <link rel="alternate" type="text/html" href="http://mt.endeworks.jp/d-6/2010/01/plack-perl.html" />
    <id>tag:mt.endeworks.jp,2010:/d-6//3.2439</id>

    <published>2010-01-22T02:49:49Z</published>
    <updated>2010-01-22T02:59:15Z</updated>

    <summary>検索エンジンの皆様こんにちは。2010年以降のPerlウェブサーバーといえばPl...</summary>
    <author>
        <name>D</name>
        
    </author>
    
        <category term="日常" scheme="http://www.sixapart.com/ns/types#category" />
    
    <category term="perl" label="perl" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="ja" xml:base="http://mt.endeworks.jp/d-6/">
        <![CDATA[検索エンジンの皆様こんにちは。2010年以降のPerlウェブサーバーといえば<a href="http://plackperl.org/">Plack</a>/<a href="http://search.cpan.org/dist/PSGI">PSGI</a>ですね。そんなSEOな記事です。<div><br /></div><div>私がPerlでWebアプリ的な物を初めて書いたのは1999~2000年にかけての事なのでそれ以来ほぼ10年たっているわけです。その間に色々さわりました。ウェブサーバーとアプリをつなぐアダプターのレイヤーとしてはCGI.pm, mod_perl, FastCGIなどを使ってきました。フレームワークもMason, Sledge, Catalyst, AxKitなんかをさわってきました。</div><div><br /></div><div>どれもこれもいいところもあり悪いところもあり、それぞれコメントしたい部分はあるのですが、とにかくデプロイ方式が全然違うのでどうにもできん、という問題がずっとありました。</div><div><br /></div><div>しかし PSGIというPerlウェブアプリケーション用の規格ができたことにより、これは全く変わってきました。PSGI規格に準じていれば、フレームワークがなんだろうとサーバーがなんだろうと同じ方式でがっちゃんこできるのです。これはいままで「Perlをレンタルサーバーでデプロイできねぇよ」とか言ってた層には素晴らしい事で、ホスティングプロバイダのほうがそのPSGI形式さえサポートしてくれれば、がんがんデプロイできちゃったりするんですね。</div><div><br /></div><div>これは是非みなさん、まわりのPerlの事をちょっと遠くから見ていた人たちにも是非教えてあげて下さいね！</div><div><br /></div><div>日本語での記事が足りない気がしたので書いてみました。</div>]]>
        
    </content>
</entry>

<entry>
    <title>Data::Visitor::Encode is deprecated</title>
    <link rel="alternate" type="text/html" href="http://mt.endeworks.jp/d-6/2010/01/datavisitorencode-is-deprecate.html" />
    <id>tag:mt.endeworks.jp,2010:/d-6//3.2438</id>

    <published>2010-01-22T02:42:20Z</published>
    <updated>2010-01-22T02:45:19Z</updated>

    <summary>I&apos;ll support it for a while should there...</summary>
    <author>
        <name>D</name>
        
    </author>
    
        <category term="開発" scheme="http://www.sixapart.com/ns/types#category" />
    
    <category term="perl" label="perl" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="ja" xml:base="http://mt.endeworks.jp/d-6/">
        <![CDATA[<div><span class="mt-enclosure mt-enclosure-image" style="display: inline;"><img alt="dve_deprecated.png" src="http://mt.endeworks.jp/d-6/dve_deprecated.png" width="428" height="220" class="mt-image-center" style="text-align: center; display: block; margin: 0 auto 20px;" /></span></div><div><br /></div>I'll support it for a while should there be any problems , but in general, please consider using Data::Recursive::Encode instead.<div><br /></div><div>Data::Visitor::Encodeの開発を停止します。もうしばらくの間は問題等あればサポートしますが、基本的にはData::Recursive::Encodeを使って下さい。</div>]]>
        
    </content>
</entry>

<entry>
    <title>YPUNをやりたい</title>
    <link rel="alternate" type="text/html" href="http://mt.endeworks.jp/d-6/2010/01/ypun.html" />
    <id>tag:mt.endeworks.jp,2010:/d-6//3.2437</id>

    <published>2010-01-14T01:56:48Z</published>
    <updated>2010-01-14T02:09:09Z</updated>

    <summary>企画が出ただけの段階なので、まだなんとも言えないのですが、2010年5月〜7月く...</summary>
    <author>
        <name>D</name>
        
    </author>
    
        <category term="日常" scheme="http://www.sixapart.com/ns/types#category" />
    
    <category term="perl" label="perl" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="unconference" label="unconference" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="ja" xml:base="http://mt.endeworks.jp/d-6/">
        <![CDATA[企画が出ただけの段階なので、まだなんとも言えないのですが、2010年5月〜7月くらいに東京以外の某場所でYet another Perl UNconference (YPUN)を開催しようかという話が出ました。<div><br /></div><div>アンカンファレンスに関しては<a href="http://d.hatena.ne.jp/amachang/20091014/1255553340">こちらを参照</a>。</div><div><br /></div><div>まだこれから諸々調整があるのでぼかした言い方ばかりで申し訳ないのですが、一応考えているのはこんな感じ：</div><div><br /></div><div><ul><li>某地方都市で泊まりがけ</li><li>キーノートだけこちらで設定</li><li>地元企業もからめてBOF</li><li>あとはアンカンファレンスで話したい内容を思い思いに</li><li>Perlとはあるけど、ゆる〜〜〜〜〜い縛りで</li><li>なるたけうまく方々と調整して参加者は基本的に交通費だけで済ませることができるようにしたい！</li><li>今候補に挙がっている場所は某中部地方エリア</li><li>うまくいくようなら定期的に地方都市で巡回開催したい！</li></ul>ちなみに直接の発案者は僕じゃないので、この企画が本当に通るかどうかは Emersonさんに頼るところが大きいです！メアドをさらすわけにはいかないので・・・twitter で@okaihatuしちゃえ！ｗ</div>]]>
        
    </content>
</entry>

<entry>
    <title>Repeated dispatch with AnyEvent</title>
    <link rel="alternate" type="text/html" href="http://mt.endeworks.jp/d-6/2010/01/repeated-dispatch-with-anyeven.html" />
    <id>tag:mt.endeworks.jp,2010:/d-6//3.2436</id>

    <published>2010-01-08T12:40:48Z</published>
    <updated>2010-01-08T18:59:32Z</updated>

    <summary><![CDATA[update: そういわれればこの例だけだったらgoto \&amp;SUBでよ...]]></summary>
    <author>
        <name>D</name>
        
    </author>
    
        <category term="日常" scheme="http://www.sixapart.com/ns/types#category" />
    
    <category term="anyevent" label="AnyEvent" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="perl" label="perl" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="ja" xml:base="http://mt.endeworks.jp/d-6/">
        <![CDATA[<div>update: <a href="http://b.hatena.ne.jp/entry/mt.endeworks.jp/d-6/2010/01/repeated-dispatch-with-anyeven.html">そういわれればこの例だけだったらgoto \&amp;SUBでよかった！</a></div><div><br /></div><div><br /></div><div>例えば、AnyEvent::DBIで Q4Mを使って、＊常に＊なんらかのイベントをqueue_wait()する状態にしたいとする。するとexec()が終わったらまた同じexec()を呼ぶ事になるので、例えばこんなコードを書くかもしれない。</div><div><br /></div>

<pre class="code_listing">    use strict;
    use AnyEvent::DBI;

    my $sql = "SELECT ....  FROM queue_table WHERE queue_wait('queue_table', 10)";
    my $dispatch;
    $dispatch = sub {
         $dbh-&gt;exec( $sql, sub {
              # 返ってきた値でなんかする
              $dispatch-&gt;();
         });
    };

    $dispatch-&gt;();

    # まぁ他の事してるプログラムで使うだろうから、本来はいらないけど・・・
    AE::cv-&gt;recv;
</pre>

<div>でもこれだと再帰的に exec()を呼んで、さらにまた$dispatchからexecを呼んで・・・って事になってしまうよね。これを無くしたい。検証のためにもっとも単純なクロージャを使った再帰呼び出しをまず書いてみる。ここではスタックの深さをついでに表示しておく：</div>
  
<pre class="code_listing">use strict;
 
my $dispatch; $dispatch = sub {
    my $i = 0;
    while(1) {
        my @caller = caller($i++);
        # noop
        last if ! scalar @caller;
    }
    print "$i\n";
    $dispatch-&gt;();
};

$dispatch-&gt;();
</pre>

<div>このコードを実行すると、エラーを起こすまで、少しずつ表示される数が大きくなっていく。これは再帰的に関数を呼び出し続けている数なわけで、どこかの時点でdeep recursion云々言われる。当たり前だよね。</div><div><br /></div><div>さて、ではこれをAnyEventを使ってる場合はどうするか。まずひとつ簡単な方法としては idleウォッチャーを設定する事ができる：</div>

<pre class="code_listing">use strict;
use AnyEvent;

my $idle;
my $dispatch; $dispatch = sub {
    my $i = 0;
    while(1) {
        my @caller = caller($i++);
        # noop
        last if ! scalar @caller;
    }
    print "$i\n";
    <span style="color: #f00">$idle = AE::idle $dispatch;</span>

};

<span style="color: #f00">$idle = AE::idle $dispatch;</span>

AE::cv-&gt;recv;
</pre>

<div>このコードを実行した場合、自分の環境では"6"が繰り返し表示されるだけ。idle()はイベントループが「次にビジーでない状態」に与えられた関数を実行するウォッチャーなので、続々と実行してくれるわけです。</div><div><br /></div>

<div>「次にビジーでない状態」という曖昧な状態ではなく、確実にすぐ実行したい場合はタイマーを使ってもよいかも。この場合最初の引数に0を渡しておいてやれば、とにかく次の機会にすぐクロージャを実行してくれる。この場合も自分の環境では"6"が繰り返し表示される：</div>

<pre class="code_listing">use strict;
use AnyEvent;

my $count = 1;
my $w;
my $dispatch; $dispatch = sub {
    my $i = 0;
    while(1) {
        my @caller = caller($i++);
        # noop
        last if ! scalar @caller;
    }
    print "$i\n";
    <span style="color: #f00">$w = AE::timer 0, 0, $dispatch;</span>
};

<span style="color: #f00">$w = AE::timer 0, 0, $dispatch;</span>

AE::cv-&gt;recv;
</pre>

<div>というわけで、直接Perlの関数を呼び出すのではなく、イベントループに一旦預ける事によって再帰的呼び出しを続けるのを減らすことができるのです。</div>]]>
        
    </content>
</entry>

<entry>
    <title>正月</title>
    <link rel="alternate" type="text/html" href="http://mt.endeworks.jp/d-6/2010/01/post-139.html" />
    <id>tag:mt.endeworks.jp,2010:/d-6//3.2435</id>

    <published>2010-01-05T06:18:24Z</published>
    <updated>2010-01-05T06:23:55Z</updated>

    <summary>正月。うちは去年爺さまが亡くなったので、喪中でありました。そこまでする必要もない...</summary>
    <author>
        <name>D</name>
        
    </author>
    
        <category term="日常" scheme="http://www.sixapart.com/ns/types#category" />
    
    
    <content type="html" xml:lang="ja" xml:base="http://mt.endeworks.jp/d-6/">
        <![CDATA[正月。うちは去年爺さまが亡くなったので、喪中でありました。そこまでする必要もないんだろうけれども、親の意向で親戚への挨拶等ふくめなにもせず。大晦日と元日実家に帰って蕎麦を食べたり雑煮を食べたり。お節は基本的にはなし。<div><br /></div><div>正月らしくないと言えば、元日の夕飯が<a href="http://en.wikipedia.org/wiki/Feijoada">フェイジョアーダ</a>でした。フェイジョアーダといえばブラジルの豆と肉の煮込み料理で、黒豆を煮込むので黒豆と言えば正月とかに食べる甘い黒豆を想像する日本人の方にはちょっと微妙げな感じの料理です。これの肉無しバージョンをフェジョアン（フェイジャンか？日本語表記難しいね）と言って、こいつはブラジルの高校時代の昼食に毎日のように食っておりました。それ以外にも週末に外食で食ってたりしたんだから、俺相当いままで豆を食ってきたんだな・・・ちなみに日本に帰ってきても相変わらず豆好きです。</div><div><br /></div><div>ともあれ、そんな正月らしくない正月でありました。</div><div><br /></div><div>あとはウィイレを40時間ほどし、HEROESの第1シーズンを観て（まだ途中）、家族に麻雀を教えるなどしておりました。まぁそんなこんなで平和です。</div>]]>
        
    </content>
</entry>

<entry>
    <title>endeworks 2009年から2010年</title>
    <link rel="alternate" type="text/html" href="http://mt.endeworks.jp/d-6/2010/01/endeworks-2009-to-2010.html" />
    <id>tag:mt.endeworks.jp,2010:/d-6//3.2434</id>

    <published>2010-01-05T01:34:46Z</published>
    <updated>2010-01-05T01:56:15Z</updated>

    <summary>さて、2010年になっちゃいましたね。2009年は世間では景気が悪い景気が悪いと...</summary>
    <author>
        <name>D</name>
        
    </author>
    
        <category term="日常" scheme="http://www.sixapart.com/ns/types#category" />
    
    
    <content type="html" xml:lang="ja" xml:base="http://mt.endeworks.jp/d-6/">
        <![CDATA[<div>さて、2010年になっちゃいましたね。</div><div><br /></div>2009年は世間では景気が悪い景気が悪いと言っていたけれども、弊社<a href="http://www.endeworks.jp">endeworks</a>は意外と大丈夫でした。貸し渋りが云々と叫ばれる中で融資もしてもらえたし、数年前のどんぞこの時期と比べるとはるかに案件も切れずに推移できたし。それらはもうすぐ5年目に突入という時期で色々と準備等に慣れてきたり蒔いていた種が芽を出し始めたのと、なんといってもスタッフの皆が優秀であったからだと思います。<div><div><br /></div><div>endeworksのスタッフは自分とは違ってブログを書くとか目立つ行動をあまりしない人たちなので（まぁ正直零細企業社長としては「もっと目立てよ！」と思うところでもあるんだけど）僕を知っていても彼らの事はご存じじゃない方がほとんどだと思うけど、手前味噌ながら彼らはそれぞれの分野で素晴らしい職人であると思ってる。</div><div><br /></div><div>このブログを読んでいる人は僕がエンジニアリング系の人なのでそっち系の仕事はできると分かっていると思うし、実際一昨年Fさんが加入してくれてからすごい色々出来ることが増えたのだけれども、デザイン関係でも実は小物、印刷物、店舗等の大型のデザインまだ結構色々な事ができる人たちを揃えているし、お堅い系のサイトなんかも制作できたりするのですね。</div><div><br /></div><div>そういう様々な仕事でendeworksの屋台骨を支えてくれている間に自分はJPAをやったりなんだりしながら新しい事に色々挑戦できるという、なかなかいい循環が出来つつあった年が2009年という年だった・・・という感じ。</div><div><br /></div><div>2010年はこの流れを切らずにendeworksの財務体質を強化していくのと、さらに新しい事をやれる年にしていきたいです。</div></div>]]>
        
    </content>
</entry>

<entry>
    <title>perlism@twitter</title>
    <link rel="alternate" type="text/html" href="http://mt.endeworks.jp/d-6/2009/12/perlismtwitter.html" />
    <id>tag:mt.endeworks.jp,2009:/d-6//3.2433</id>

    <published>2009-12-28T02:54:22Z</published>
    <updated>2009-12-28T08:06:28Z</updated>

    <summary>なんとなくLDRでtwitterのPerlに関する発言を検索した結果を購読してた...</summary>
    <author>
        <name>D</name>
        
    </author>
    
        <category term="日常" scheme="http://www.sixapart.com/ns/types#category" />
    
    <category term="perl" label="perl" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="twitter" label="twitter" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="ja" xml:base="http://mt.endeworks.jp/d-6/">
        <![CDATA[なんとなくLDRでtwitterのPerlに関する発言を検索した結果を購読してたんだけど、面倒くさくなってきたので、@<a href="http://twitter.com/perlism">perlism</a>に投稿するボットを作った。単純にPerl関連の発言を持ってくるボットです。とりあえず日本語限定。よかったらフォローどうぞ。]]>
        
    </content>
</entry>

<entry>
    <title>クリスマスディナー</title>
    <link rel="alternate" type="text/html" href="http://mt.endeworks.jp/d-6/2009/12/post-140.html" />
    <id>tag:mt.endeworks.jp,2009:/d-6//3.2446</id>

    <published>2009-12-27T04:28:22Z</published>
    <updated>2010-01-26T04:39:59Z</updated>

    <summary>アメリカにいた頃はターキーとか、日本に帰ってきてから去年まで3年間ぐらい毎年チキ...</summary>
    <author>
        <name>D</name>
        
    </author>
    
        <category term="日常" scheme="http://www.sixapart.com/ns/types#category" />
    
    <category term="christmas" label="christmas" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="lamb" label="lamb" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="meatguy" label="meatguy" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="ja" xml:base="http://mt.endeworks.jp/d-6/">
        <![CDATA[アメリカにいた頃はターキーとか、日本に帰ってきてから去年まで3年間ぐらい毎年チキンを焼いてたんだけど、ことしはラムにしました。ラム！ラム！ラム！でっかいラム！<div><br /></div><div>ラムはもちろん<a href="http://www.themeatguy.jp/">The Meat Guy</a>で購入。ラムリブラック8本！アドレナリンー！冷凍で来るので、二晩前から冷蔵庫で自然解凍させ、約4時間前くらいに外に出しておいて塩こしょう、それに脂身のほうに串で穴を開けてその穴にローズマリーを詰めておくという作業を施しておいて寝かしておいた。これでしばらく放置。</div><div><br /></div><div>その間にミートソースを作成。といっても肉はあるので肉はあくまで出汁用。ハナマサで買ってきたでっかいタマネギ3個を盛大にみじん切りにして炒めて、チョップドトマトと肉と合わせてブイヨン、塩こしょう。コクを出したいので炒めるのとは別に少しオリーブオイル追加。あとは適当にハーブ（といってもオレガノくらい）。</div><div><br /></div><div>客人が来てから肉は料理開始。まず熱くしたフライパンで一気に焼き目をつける。もうこの時点でうまそう。うひー。脂身側を若干念入りに焼き付けて、200度のオーブンへ。あとは待つだけ。20分焼いて、その後様子を見ながら10分前後調整。</div><div><br /></div><div>もちろんこの間にパスタもゆでておく。今回はショートパスタにした。</div><div><br /></div><span class="mt-enclosure mt-enclosure-image" style="display: inline;"><img alt="091226_1823~01.JPG" src="http://mt.endeworks.jp/d-6/091226_1823~01.JPG" width="320" height="240" class="mt-image-left" style="float: left; margin: 0 20px 20px 0;" /></span><div>で、できあがったのがこれ。ラム肉久しぶり。ジンギスカンはうまいけど、あれじゃあ薄切り肉じゃん？これだとレアな塊肉にありつける。この瞬間のために朝から絶食しててよかった。うますぎて泣けた。</div><div><br /></div><div>ラム肉は癖があるけど、旨味という意味では同じ赤身でも普段食べてる牛肉とかは凌駕すると思う。もしお肉が好きなら是非どうぞ！Meat Guyならいつでもこの塊を買えるよ！</div>
<br style="clear: both" />]]>
        
    </content>
</entry>

<entry>
    <title>make bundle_local_lib</title>
    <link rel="alternate" type="text/html" href="http://mt.endeworks.jp/d-6/2009/12/make-bundle-local-lib.html" />
    <id>tag:mt.endeworks.jp,2009:/d-6//3.2432</id>

    <published>2009-12-17T08:41:32Z</published>
    <updated>2009-12-17T09:13:16Z</updated>

    <summary>最近、miyagawaさんが書いたこちらののツールを多少改変したものを使ってlo...</summary>
    <author>
        <name>D</name>
        
    </author>
    
        <category term="日常" scheme="http://www.sixapart.com/ns/types#category" />
    
    <category term="moduleinstall" label="Module::Install" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="perl" label="perl" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="ja" xml:base="http://mt.endeworks.jp/d-6/">
        <![CDATA[最近、miyagawaさんが書いた<a href="http://github.com/miyagawa/perl-app-builder">こちらののツール</a>を多少改変したものを使ってlocal::lib環境にCatalystアプリの全依存関係を突っ込んでからデプロイ、ということをしていました。<div><br /></div><div>が、このツール自体をコピペするのに疲れました。なので<a href="http://search.cpan.org/dist/App-BundleDeps">App::BundleDeps</a>と<a href="http://search.cpan.org/dist/Module-Install-Bundle-LocalLib">Module::Install::Bundle::LocalLib</a>というものを作りましたよ！M::I::Bundle::LocalLibのほうはMakefile.PLに1行だけ記述を入れておくとmake bundle_local_libと書くだけで./extlibにlocal::lib環境を作ってくれるというものです。</div><div><br /></div><div>俺的には超便利！</div><div><br /></div><div>想定している使い方はApp::BundleDepsのPOD(<a href="http://search.cpan.org/dist/App-BundleDeps/lib/App/BundleDeps.pm">cpan</a> <a href="http://github.com/lestrrat/App-BundleDeps/blob/master/lib/App/BundleDeps.pm">github</a>)を見てもらうのが一番よいかもしれません。</div><div><br /></div><div>これを使うとCatalystアプリのバージョン違いなんかのデプロイを比較的気軽に行う事ができるようになるので、是非さわってみて感想なんかを教えていただけると幸いです。</div><div><br /></div><div>あと、自分ではそんなに使わないんだけど折角Platypus対応コードをmiyagawaさんが書いてたので、それも同様にあげといたです</div><div><br /></div><div><b>追記</b>： Platypusのほうは make platypusってできるように0.00002で変更しておきました</div>]]>
        
    </content>
</entry>

<entry>
    <title>CGI.pmで作ったCGIをコマンドラインから実行する</title>
    <link rel="alternate" type="text/html" href="http://mt.endeworks.jp/d-6/2009/12/cgipmcgi.html" />
    <id>tag:mt.endeworks.jp,2009:/d-6//3.2431</id>

    <published>2009-12-08T04:19:02Z</published>
    <updated>2009-12-08T04:28:04Z</updated>

    <summary><![CDATA[某所での会話：   13:14 &lt;#perl6&gt; t****: y'...]]></summary>
    <author>
        <name>D</name>
        
    </author>
    
        <category term="日常" scheme="http://www.sixapart.com/ns/types#category" />
    
    <category term="cgi" label="cgi" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="perl" label="perl" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="ja" xml:base="http://mt.endeworks.jp/d-6/">
        <![CDATA[<div>某所での会話：</div>

 <div class="code_listing">
13:14 &lt;#perl6&gt; t****: y'know, one thing that got me into Ruby was that the CGI library would
auto-detect that I was testing it in a browser and take arguments as if I
was working in a browser.  Made troubleshooting a breeze...
13:14 &lt;#perl6&gt; t****: I mean, testing from the command line...
13:15 &lt;#perl6&gt; t****: I always wished the perl CGI module would do that...
13:16 &lt;#perl6&gt; P*******: eh? 
13:17 &lt;#perl6&gt; t****: When you write a ruby cgi program, and run it from the command line, it detects 
that you are in a command line and allows you to input stuff that it would normally 
get from the URL string.
13:17 &lt;#perl6&gt; t****: Maybe there is a way to do this with the perl cgi module, 
but I never learned how.
13:17 &lt;#perl6&gt; P*******: perl's CGI module has always done that.
13:18 &lt;#perl6&gt; P*******: you simply pass name=val on the command line
13:18 &lt;#perl6&gt; P*******: (or you could set some environment variables)
13:18 &lt;#perl6&gt; t****: hm...  Wish I had known that then...
</div>
<div>ええええええええええ。この機能ってすごい有名だと思ってた。</div>
<div>普通にCGI.pmのスクリプトはコマンドラインから実行できるお＞＜ デバッグとかにはとても便利です！</div>

<div class="code_listing">
   #!/usr/bin/perl
   use strict;
   use CGI;

   my $q = CGI-&gt;new();
   print $q-&gt;header(-content_type =&gt; 'text/plain', -charset =&gt; 'utf-8'),
       "Hello, ", $q-&gt;param('name') || "NoName", "!\n"
</div>

<div>こんなスクリプトを、以下のように実行すると、"Hello, lestrrat!"と本文に表示されます</div>

<div class="code_listing">
    % perl test.cgi name=lestrrat
    Content-Type: text/plain; charset=utf-8

    Hello, lestrrat!
</div>

<div>簡単！・・・まぁ、最近は生CGIでなんか書くってのもなくなってきたけどね</div>]]>
        
    </content>
</entry>

<entry>
    <title>COPPELION</title>
    <link rel="alternate" type="text/html" href="http://mt.endeworks.jp/d-6/2009/12/coppelion.html" />
    <id>tag:mt.endeworks.jp,2009:/d-6//3.2428</id>

    <published>2009-12-07T07:28:00Z</published>
    <updated>2009-12-07T07:32:20Z</updated>

    <summary>いつも行く本屋でいつもなんとなく気になってはいたものの、購入まで至ってなかったC...</summary>
    <author>
        <name>D</name>
        
    </author>
    
        <category term="日常" scheme="http://www.sixapart.com/ns/types#category" />
    
    
    <content type="html" xml:lang="ja" xml:base="http://mt.endeworks.jp/d-6/">
        <![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=406375572X" style="width:120px;height:240px; float: left" scrolling="no" marginwidth="0" marginheight="0" frameborder="0"></iframe>いつも行く本屋でいつもなんとなく気になってはいたものの、購入まで至ってなかったCOPPELION。<div><br /></div><div>パンチラの描き方にカサハラテツロー氏と同じ匂いを感じるので「きっとこの人はパンチラが描きたいんだろうなぁ」と思いつつ4巻まで一気に読んだ。</div><div><br /></div><div>今のところ、力押しなキャラ設定だけど、話の流れが結構良い。この後（あおりに能力がどうのこうの書いてあったから、スタンド的な意味で）ジョジョみたいにならないといいなぁ。荒廃した東京のサバイバルをもう少し読みたい気がする。</div>]]>
        
    </content>
</entry>

</feed>
