<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet href="rss.css" type="text/css"?>
<rdf:RDF xmlns="http://purl.org/rss/1.0/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:xhtml="http://www.w3.org/1999/xhtml" xml:lang="ja-JP">
	<channel rdf:about="http://www.donzoko.net/cgi-bin/tdiary/rdf.xml">
	<title>どんぞこ日誌(without comments)</title>
	<link>http://www.donzoko.net/cgi-bin/tdiary/</link>
	<xhtml:link rel="alternate" media="handheld" type="text/html" href="http://www.donzoko.net/cgi-bin/tdiary/" />
	<description></description>
	<dc:creator>まかまか</dc:creator>
	<dc:rights>Copyright 2012 まかまか &lt;wepmaster@donzoko.net&gt;, copyright of comments by respective authors</dc:rights>
	<items><rdf:Seq>
<rdf:li rdf:resource="http://www.donzoko.net/cgi-bin/tdiary/20120501.html#p01"/>
<rdf:li rdf:resource="http://www.donzoko.net/cgi-bin/tdiary/20120326.html#p01"/>
<rdf:li rdf:resource="http://www.donzoko.net/cgi-bin/tdiary/20120227.html#p01"/>
</rdf:Seq></items>
</channel>
<item rdf:about="http://www.donzoko.net/cgi-bin/tdiary/20120501.html#p01">
<link>http://www.donzoko.net/cgi-bin/tdiary/20120501.html#p01</link>
<xhtml:link rel="alternate" media="handheld" type="text/html" href="http://www.donzoko.net/cgi-bin/tdiary/20120501.html#p01" />
<dc:date>2012-05-01T11:38:41+09:00</dc:date>
<title>Hachioji.pm #16 と(」・ω・)」うー(/・ω・)/にゃーbot</title>
<dc:creator>まかまか</dc:creator>
<dc:subject>近況</dc:subject>
<description> Hachipji.pm #16の参加報告です。今回はハッカソンの方にも参加しました。他の方のレポートはHachiiojipm.orgからご覧下さい。 現在Hachipji.pmではYet Another IRC（仮）をつくっていています。IRCとの違いの一つとして、サーバ側でメッセージログを保存していて接続が切れたユーザーが後で再ログインするとメッセージがダーっと流れる機能があります。YAIRCについてはこちらの覚書を。実際に稼働しているものはuzullaさんが運営しているhttp://yairc.cfe.jp:3000/にあります。 さてこのシステム、socket.ioのPerl実装であるPocketIOを..</description>
<content:encoded><![CDATA[<h3>Hachioji.pm #16 と(」・ω・)」うー(/・ω・)/にゃーbot</h3><p>　<a href="http://atnd.org/events/26970">Hachipji.pm #16</a>の参加報告です。今回はハッカソンの方にも参加しました。他の方のレポートは<a href="http://hachiojipm.org/?p=284">Hachiiojipm.org</a>からご覧下さい。</p><p>　現在Hachipji.pmではYet Another IRC（仮）をつくっていています。IRCとの違いの一つとして、サーバ側でメッセージログを保存していて接続が切れたユーザーが後で再ログインするとメッセージがダーっと流れる機能があります。YAIRCについては<a href="https://docs.google.com/document/d/1r8W9pe7oMuFqbybc_EQR0nz040bcU6sYWyLJSnrM-YM/edit?pli=1">こちらの覚書</a>を。実際に稼働しているものはuzullaさんが運営している<a href="http://yairc.cfe.jp:3000/">http://yairc.cfe.jp:3000/</a>にあります。</p><p>　さてこのシステム、socket.ioのPerl実装である<a href="http://search.cpan.org/dist/PocketIO">PocketIO</a>を使っているのですが、PocketIOは基本的にサーバ側を書くためのパッケージで、クライアントの実装はないのです。同じような質問に対して作者は「クライアントつくるのは簡単だよ。でもPocketIOはサーバ側の実装だからクライアントのサンプルないよ！」<a href="https://github.com/vti/pocketio/issues/16">てな感じのこといってる</a>ので、<a href="https://github.com/makamaka/AnyEvent-PocketIO-Client">PocketIO::Client::IO</a>をつくってみました。まあクライアントないとテスト書きづらいですしね。以下に簡単なbotのサンプルを</p><p><pre>
 # ユーザーのメッセージに (」・ω・)」うー が含まれていると
 # (/・ω・)/にゃー と返す
 use strict;
 use warnings;
 use PocketIO::Client::IO;
 use AnyEvent;
 use utf8;
 
 my $url    = "http://localhost:3000/";
 my $socket = PocketIO::Client::IO->connect( $url );
 
 exit unless $socket;
 
 my $time = $ARGV[0] || 3600;
 
 my $cv = AnyEvent->condvar;
 my $w  = AnyEvent->timer( after => $time, cb => $cv );
 
 $socket->on('ping pong', sub {
    if ( $_[1] eq 'FAIL' ) {
        print "ping pong FAIL\n";
        $socket->emit('nickname', 'nyal_bot');
        say_hello( $socket );
    }
 });
 
 # サーバからemitされるイベントを登録
 # github.com/vti/pocketio/
 # にある最新のバージョンなら不要
 $socket->on('join_tag', sub {});
 $socket->on('nicknames', sub {});
 $socket->on('announcement', sub {});
 $socket->on('nickname', sub {});
 $socket->on('user message log', sub {});
 
 # このボット唯一の機能
 $socket->on('user message', sub {
    my $text = $_[1]->{text};
    if ( $text =~ /\(」・ω・\)」うー/ ) {
        $socket->emit('user message', '(/・ω・)/にゃー');
    }
 });
 
 my $timer;
 $socket->on('connect' => sub {
    $socket->emit('nickname', 'nyal_bot');
    $socket->emit('join_tag', { PUBLIC => 'PUBLIC' });
    say_hello( $socket );
 
    $timer = AnyEvent->timer( after => 5, interval => 10,
        cb => sub {
            $socket->emit('ping pong', 'ping');
        }
    );
 
 });
 
 $cv->wait; 
 
 sub say_hello {
    shift->emit('user message',
        "いつもニコニコあなたの隣に這いよる混沌"
       ."にゃるらとボットです！　"
       ."どうぞにゃるボとお呼びくださいね"
    )
 }
</pre></p><p>　運がよければ先程のサイトにてこのボットがいるのを見かけられるかもしれません。それから、現在のところPocketIO::Client::IOがサポートしているtransportはwebsocketのみです。パッチウエルカムでございます。</p><p>　さて、Hachipji.pm本編ですが、今回のLTテーマは「<a href="http://nyaruko.com/">(」・ω・)」うー(/・ω・)/にゃー</a>」です。すいません、このテーマなら間口が広がるのではないかと思ったのですが、冷静に考えると間口が狭まってますね。私はワインのコルク抜きをもっていきました。スクリュー側を上にして回転させる側を上げ下げすると<pre>
 　 ｜
 　/｜\　　　　(」・ω・)」うー
 　 ○
 
  　↓
 
 　＼／
 　 ｜　　　　(/・ω・)/にゃー
 　 ○
</pre>……実際にやって楽しんでみてください。</p><p>　なお、CPANには既にクトゥルフネタとして<a href="http://search.cpan.org/dist/Acme-Phlegethoth/">Acme::Phlegethoth</a>があります。useするとあなたのソースコードを禍々しいものにしてくれますね！　<a href="http://www.slideshare.net/hondallica/hachiojipm16">禍々しい</a>ものにしてくれますね！　大事なことなので二回言いました。</p>]]></content:encoded>
</item>
<item rdf:about="http://www.donzoko.net/cgi-bin/tdiary/20120326.html#p01">
<link>http://www.donzoko.net/cgi-bin/tdiary/20120326.html#p01</link>
<xhtml:link rel="alternate" media="handheld" type="text/html" href="http://www.donzoko.net/cgi-bin/tdiary/20120326.html#p01" />
<dc:date>2012-03-26T16:16:00+09:00</dc:date>
<title>Hachioji.pm #15 に参加しました</title>
<dc:creator>まかまか</dc:creator>
<dc:subject>近況</dc:subject>
<description> Hachipji.pm #15に参加しました。Preの方は今回参加できませんでした。詳しい内容や他の方のレポートはHachiiojipm.orgからご覧下さい。 今回のLTテーマは「すあまとほん」と聞いて、資料に「すあま」を配布しました。あと「本」ということで前日に書店で見つけて衝動買いした『ぞわぞわした生きものたち』を紹介しました。Hachioji.pmのLTはいつも混迷を深めますね（当日の雰囲気はuzullaさんの写真で）。 今後はPre Hachioji.pmでircに代わるコミュニケーションツールを作ろうという流れです。次回あたりはまだ実際のコーディングまで..</description>
<content:encoded><![CDATA[<h3>Hachioji.pm #15 に参加しました</h3><p>　<a href="http://www.atnd.org/events/25926">Hachipji.pm #15</a>に参加しました。Preの方は今回参加できませんでした。詳しい内容や他の方のレポートは<a href="http://hachiojipm.org/?p=263">Hachiiojipm.org</a>からご覧下さい。</p><p>　今回のLTテーマは「すあまとほん」と聞いて、資料に「<a href="https://www.google.co.jp/search?q=%E3%81%99%E3%81%82%E3%81%BE&oe=utf-8&rls=org.mozilla:ja:official&hl=ja&client=firefox&um=1&ie=UTF-8&tbm=isch&source=og&sa=N&tab=wi&ei=BxNwT9jcAeL2mAXW1dnCBg&biw=1005&bih=785&sei=ChNwT9G2FuPjmAWZpsyiBg">すあま</a>」を配布しました。あと「本」ということで前日に書店で見つけて衝動買いした<a href="http://booklog.jp/users/donzoko/archives/1/4797344113">『ぞわぞわした生きものたち』</a>を紹介しました。Hachioji.pmのLTはいつも混迷を深めますね（当日の雰囲気は<a href="https://plus.google.com/photos/114651309588721895816/albums/5723877826596438113#photos/114651309588721895816/albums/5723877826596438113/5723878318253956050">uzullaさんの写真</a>で）。</p>
<p>　今後はPre Hachioji.pmでircに代わるコミュニケーションツールを作ろうという流れです。次回あたりはまだ実際のコーディングまでいたらないかもですが、興味のある方は是非ご参加ください！次回は4/28です。</p>]]></content:encoded>
</item>
<item rdf:about="http://www.donzoko.net/cgi-bin/tdiary/20120227.html#p01">
<link>http://www.donzoko.net/cgi-bin/tdiary/20120227.html#p01</link>
<xhtml:link rel="alternate" media="handheld" type="text/html" href="http://www.donzoko.net/cgi-bin/tdiary/20120227.html#p01" />
<dc:date>2012-02-27T13:21:21+09:00</dc:date>
<title>Hachioji.pm #14 に参加しました</title>
<dc:creator>まかまか</dc:creator>
<dc:subject>近況</dc:subject>
<description> Pre Hachioji.pm #14とHachipji.pm #14に参加しました。詳しい内容や他の方のレポートリンクはHachiiojipm.orgをご参照ください。午前〜夕方まではハッカソン的なもので、テーマはFacebookアプリでしたので、とりあえずそれ用にParumonをWebゲームにすることを目標にしました。まあ、課題がいくつかあって、第一にFacebook使っていない。アカウントは前につくったんですけど。とりあえずhachipji.pmの人を登録し始めてみたり。それと、ブラウザを使ったゲーム開発経験がないのでそこからですよ！ 会場についてからはWebSocketの勉強から。..</description>
<content:encoded><![CDATA[<h3>Hachioji.pm #14 に参加しました</h3><p>　Pre Hachioji.pm #14とHachipji.pm #14に参加しました。詳しい内容や他の方のレポートリンクは<a href="http://hachiojipm.org/?p=238">Hachiiojipm.org</a>をご参照ください。</p><p>午前〜夕方まではハッカソン的なもので、テーマはFacebookアプリでしたので、とりあえずそれ用に<a href="/parumon/">Parumon</a>をWebゲームにすることを目標にしました。まあ、課題がいくつかあって、第一にFacebook使っていない。アカウントは前につくったんですけど。とりあえずhachipji.pmの人を登録し始めてみたり。それと、ブラウザを使ったゲーム開発経験がないのでそこからですよ！　会場についてからはWebSocketの勉強から。hide_o_55さんのブログにあったので<a href="http://search.cpan.org/dist/PocketIO/">PocketIO</a>を入れてサンプルコードを動かしたり。成果発表の時にはとりあえず1ターン目にuse strictしないとHPが減る、というデモを行いました。夏ぐらいには完成を目指すといったら大変だと突っ込まれたので、ぼちぼちやっていきます。</p><p>　その後は居酒屋に移動してHachioji.pmの始まりです。テーマは浮気。私は普段LTをパワポで書いてますがWordに浮気してみましたよと。<p><pre>
 テーマは浮気
 N88Basicで書きますよー
 10 PRINT "Hello Word."
</pre></p><p>で、これを次のコマンドで実行すると</p>
<p><pre>
 $ perl -Microsoft::Word uwaki.doc
 Hello Word.
</pre></p>
<p>これはdoc形式のファイルに書かれたスクリプトを実行するモジュール<a href="http://search.cpan.org/dist/Acme-RunDoc/">Acme::RunDoc</a>に付属するicrosoft::Wordを利用したネタです。Perlスクリプト自体は背景色と同じにして、それ以外の文字はこれまた背景色の'#'でコメントアウトしてあります。</p><p>
<pre>
 #テーマは浮気
 #N88Basicで書きますよー
 #10 PRINT "Hello Word."
 use 5.014;
 say "Hello Word.";
</pre></p>
<p>実際は↑こんな感じですね。
</p>
<p>　hachipji.pm初の試みだったハッカソン（他の参加者の方も、ハッカソンというよりはもくもく会云々と仰ってましたが）ですが、主催のuzullaさんとhirobanexさんお疲れ様でした。ありがとうございます。それとhondallicaさん差し入れありがとうございます。自分はこういう機会がないと普段の仕事から離れたことになかなか取り組まないので、非常によい場だったなと思いましたし、とても楽しかったです。さて、次回のHachipji.pmは3/24です。興味のある方はぜひぜひご参加ください！</p>]]></content:encoded>
</item>
</rdf:RDF>

