第一回ももクロハッカソンに参加して Acme::MomoiroClover リリースしました

最近はかなこ推しになりつつある、週末エンジニアの secondlife ですこんにちは。
9/4(日)にももいろ週末エンジニアの方々と都内某所で、第一回ももクロハッカソンを開き参加し、Perl ライブラリの Acme::MomoiroClover を作りました。

何故今更 Acme::MomoiroClover を作ったかと云うと、今までに日本のアイドルの Acme シリーズは二つ、Acme::MorningMusume と Acme::AKB48 があります。その Acme が存在するアイドル2ユニットに共通していえることの一つに、どちらも紅白歌合戦に参加したことがあることが言えます。つまるところ、日本の Acme::アイドル が作られたのユニットは100%紅白出場しているため、ももクロちゃんの今の目標である紅白歌合戦出場をほんの少しでもサポートできたらと思い、験担ぎの意味を込めて作りました!!

使い方

至って簡単!

use Acme::MomoiroClover;
my $momoclo = Acme::MomoiroClover->new;

とふつうに使おうとすると

MomoiroClover is obsolete. Please use Acme::MomoiroClover::Z 

となって使うことができません…。(マシンの時刻が2011年4月10日以前なら利用できます)

というわけで今は Acme::MomoiroClover::Z を使いましょう。

use Acme::MomoiroClover::Z;
my $momoclo_z = Acme::MomoiroClover::Z->new;

APIAcme::MorningMusume とほぼ同じ*1ですが、各 member に say メソッドがあり、自分のカラーで発言することができます*2

use Acme::MomoiroClover::Z;

my @members = Acme::MomoiroClover::Z->new->members('active');
my $count = 0;
for my $member (@members) {
  $count = 0 if (++$count >= scalar(@members));
  $member->say($members[$count]->nick->[0] . "〜");
}

Acme::アイドル について

Acme::アイドルに新しい1ユニットを追加したわけですが、Acme::MorningMusume の作成者、id:antipop 御大にお言葉をいただきました。

  • 「本当に大好きな時期は、メンテナンスコストはどうってことないけど、メンバー変更の精神的ダメージがつらい」
  • YAMLなどでのクラス自動生成は邪道。一個一個メンバーのクラスファイルがないと愛がない」

とのことで、気を引き締めていきたいと思う所存であります。

ももクロハッカソンの週末エンジニアたち

BGM としてスピーカからももクロの曲を流しながら流しながら作業をしてたんですが、お気に入りの曲になるとみんな歌うたったりコール出したり踊ったりするのでノリノリで作業できて超楽しかったです!特にももクロちゃん自己紹介と怪盗少女の時はみんながみんなノリノリになって一体感あふれてわくわくすぎました、また開催したい!!1

*1:ほぼ id:antipop さん作の Acme::MorningMusume のコピペモジュールなので…

*2: ピンクは端末が 256色対応じゃないと表現できないので明るい紫でごまかしております…

闇RubyKaigi2011発表資料 - あなたの知らないREEの使い方

先日行われた RubyKaigi 2011 & 闇RubyKaigi 2011 で発表しました。RubyKaigi 2011 での会社的なちゃんとした(?)発表は、クックパッド開発者ブログをご覧下さい!

闇RubyKaigi2011の発表資料

RubyKaigi 1日目当日に闇RubyKaigiの追加募集があって、プレゼン時間2分とのことだったので応募したら通った*1ので発表しました。2分のLTぐらいならTAKESAKOさんじゃなくともサクっと作れるので、当日募集にはちょうど良い時間だと感じました!

プレゼン内容的にはREE使うとメモリバカ食いする設定が行え、テスト実行時間や development モードでの rails server の処理速度も速くなるので、特に MRI の 1.8.7 にこだわり無ければ REE の 1.8.7 を使うと速くなって幸せになれるよー、という話です。REE というと本番サーバで使うイメージが強く、その場にいた方々はみんなそんなイメージだったので周知のため応募しました。

なお僕の手元のMacBook Pro (8Gメモリ)ではこんな数値で使っていて、4並列テスト実行時にも問題無い感じです。マシンによっては値が大きすぎる等もあるので、適切に調節してお使い下さい。

export RUBY_HEAP_MIN_SLOTS=1000000
export RUBY_HEAP_SLOTS_INCREMENT=1000000
export RUBY_HEAP_SLOTS_GROWTH_FACTOR=1
export RUBY_GC_MALLOC_LIMIT=600000000
export RUBY_HEAP_FREE_MIN=2000000

*1:というか全員通りましたよね