App::mgen書いたよ

WAFの上で開発していると名前空間のネストが長くなりがちなので、自動でモジュールファイルを生成してくれるモジュールを作成しました。Catalystについてくるhelperみたいなもんです。
こういうのはvimスニペットでやっちゃう方も多いと思いますが、個人的にこちらの方が使い勝手がいいので別途作ってしまいました。

App::mgen - Generate the single module file - metacpan.org

使い方はこんな感じです

ただのモジュールファイルを作りたい

コマンド
$ mgen Module
結果
package Module;

use strict;
use warnings;


1;
__END__
=head1 NAME
...

名前空間を指定したい

コマンド
$ pwd
/home/user/lib
$ cd ./MyApp/Namespace
$ MGEN_ROOT=`pwd` mgen Module;
結果
package MyApp::Namespace::Module;

use strict;
use warnings;


1;
__END__
=head1 NAME
...

名前空間を指定したい2

コマンド
$ pwd
/home/user/lib
$ ls
$ mgen MyApp::Namespace::Module;
$ cd ./MyApp/Namespace
$ ls -a
. .. Module.pm
結果
package MyApp::Namespace::Module;

use strict;
use warnings;


1;
__END__
=head1 NAME
...

名前空間を指定したいけどディレクトリは掘って欲しくない

コマンド
$ pwd
/home/user/lib
$ ls
$ mgen --current MyApp::Namespace::Module;
$ ls -a
. .. Module.pm

Mooseを使いたい

コマンド
$ mgen --moose Module
結果
package Module;

use strict;
use warnings;

use Moose;

1;
__END__
=head1 NAME
...

さらにnamespace::autoclearnを挿入したい

コマンド
$ mgen --autoclearn Module
結果
package Module;

use strict;
use warnings;
use Moose;

use namespace::autoclearn;


1;
__END__
=head1 NAME
...

さらに__PACKAGE__->meta->make_immutableを挿入したい

コマンド
$ mgen --moose --immutable Module
結果
package Module;

use strict;
use warnings;
use Moose;

__PACKAGE__->meta->make_immutable;
1;
__END__
=head1 NAME
...

簡易シグネチャを登録したい

コマンド
$ MGEN_USER="jiwasaki" mgen --moose --immutable Module
結果
package Module;

# 2011/10/18 jiwasaki

use strict;
use warnings;
use Moose;

__PACKAGE__->meta->make_immutable;
1;
__END__
=head1 NAME
...

他にも色々オプションがありますが、PODで大体分かると思います。
というわけで、初めてCPANにモジュールをアップロードしてみました!

社内でParumonプレイレポート


Parumonとは、YAPC::Asia 2011のどんぞこ楽屋ブースで販売されたカードゲームです。
『迫り来る納期の攻撃を耐えながら、CPANモジュールを駆使してプロジェクトを完遂しよう!』
それはお昼休みの事でした。
@aloelightさんの収集により、我々は会議室(小)へ集められていました。
その手には、昼食。お昼を食べる気満々です。
※ちなみに、奥に見えるダンボールはYAPC::Asia 2011のノベルティに入れられてたノートのあまりです。

しかし、本命はParumon。
新人のいない新人研修です。YAPC::Asiaでは誰もプロジェクトを達成できなかった雪辱を果すべく立ち上がりました!

今回は4人プレイ。
@aloelightさん、@koji_magiさん、あとは同じチームの社員さんと僕です。
慎重さを大切に、まかまかさんの言う事を信じペアプロを意識してプレイ開始!

前半からクリア条件が引き上げられたり、CPANアクセス障害が起こったりと前途多難です。
しかし、ここに居るのは何かと歴戦のPerl Monger達。この程度じゃ折れません。
※実際はルール改定の力に助けられた形になりました
※現行ルールだと『仕様確定』カードの恩恵が無くなった?

ゲームは進んでいきます。
何とかイベントカードの試練も乗り越え、追加クリア条件である『テスト多め』も着々とこなしていきます。
仲間のHPが低いかつ出したいモジュールがある場合はペアプロもこなしていきます。いけます、いけますよ!


そして・・・

ついにやりました!進歩率129、テスト4つ。プロジェクト達成です!
12ターンかかり、1ゲーム20分でした。
使ってないモジュールをuseしてたりと、実際にやってたらぶん殴られそうな事も色々やってますが、達成できたので御の字です。
慎重に行動し、必要なところでペアプロを行うと案外すんなり達成できました。やはりYAPC期間中に達成できなかったのはお酒の力でしょうか。
プレイ中盤ではモジュールの依存関係の話で盛り上がったりと、研修にも最適なゲームだと思いました!

部数も少ないレア物と化したParumonですが、持ってる方は積極的にお友達や新人とプレイしましょう!
北海道勢では僕と@aloelightさんが確保してるので、Hokkaido.pm開催時にもプレイする事が出来ます。

YAPC::Asia 2011 レポート

ブログに書くまでが勉強会、ブログに書くまでがYAPC
常識ですね! 僕は常識人なので書いちゃいます

※セッションレポートは随時更新予定です

0日目

初のYAPC::Asia、本番の前に前夜祭があります。
0日目なのに濃すぎる一日、YAPCの恐ろしさの一端を垣間見る事が出来ました

前夜祭:Reject Conf

会場内についた時点で、お酒の匂いしかしなく酔っぱらい以外居ないような状況でした。
数々のカンファレンス等に参加してきましたが、ここまでフリーダムなのは恐らくYAPCだけです。
僕も例に漏れずビールを飲みながら雑談していたのですが。
肝心のRejectConfですが、ビール持ったまま入れないという事で聞けていません(満員御礼で入れなかったしね!)
無尽蔵に陳列されているビールは無くなる事はありませんでした

2次会

全員泥酔したまま、2次会会場へ。
飲み残しのビール缶をもったまま数十人が店に襲撃する姿はシュールです。
店の前でビールを落としてぶちまける人など阿鼻叫喚。
巷でよく耳にしたり、お世話になっているCPAN Autherさん達とも間近で交流する事が出来、貴重な経験が出来ました。

帰宅後

ホテル帰宅後の数時間は記憶がありませんでした。
スライドちょっと書いて寝た事は覚えています。
蒲田->石川台->東工大 という移動フローなので疲れるのは当たり前ですよね!


※画質悪いですがご了承下さい

1日目

過去最多だらけの新感覚YAPC::Asia 2011、始まります。

ハイライト

印象的だったセッションのハイライトです

@tomita さん 『CPANモジュールガイド編集後記+』
トミールさんのセッションです。
編集後記、という事で紹介できなかったモジュールを紹介するセッションでした。
今注目されてきている噂の"Mo"や"DBI"周りのモジュールの紹介が多かったです。
中でもDancerを特に押しており、とりあえずプライベートで弄ってみます!

@dankogai さん 『A Language for getting the job done』
Dan Kogaiさんのセッションです。
色んなjobの話から始まり、仕事という括りでのjobのトークを繰り広げていました。
Paid vs Freeということで、オープンソースの認識の話も出てきており、
「最近は無料で公開する部分と、有料で提供する部分の折り合いが出来てきたのではないか」、と
Dan KogaiさんはDeNAGREEを見ていて思う、と仰っていたのが印象的です。

Dont be adraid to give away dots.
You will be paid to connect them.

@maka2_donzoko さん 『Perl Mongerなりきりカードゲームの考案と実践』
まかまかさんのセッションです。
今、全国のPerl Mongersを魅了して止まない新感覚カードゲーム『Parumon』(ぱるもん)の解説です!
後半では実際に視聴者参加型のデモプレイを披露してくれました!
会場は大盛り上がりで、一気にParumon熱が強まりました。
残念ながらこのセッション時点で在庫はかなり薄くなっており、第2版や拡張パックが望まれます。
僕と@aloelightさんは無事入手する事ができたので、会社で遊ぼうと思っています(怒られなければ)。

@techno_neko さん 『perl meets beats』
我らが北海道のPerl仙人、techno_nekoさんのセッションです。
前回のHokkaido.pmのセッションより数ヶ月、そこには期待に目を輝かせたHokkaido.pmメンバーがいました。
セッション内容自体は、Waveの仕様や実際の生成やGrooveを生み出すまで本当に丁寧に解説していて、非常に参考になりました。
DTMとか音楽に手をつけてる人にとっては見慣れた図も多かったのではないでしょうか?
ただ、「声が高いとかネタにするのはちょっと卑怯だよね」という身内の声があったのが気がかりでした!

Lightning Talks 1日目
始まってからも募集していたライトニングトーク枠です。
並んでいる人達の中には見慣れた顔も・・・
@charsbarさんは前回のHokkaido.pmと同じ『今年の夏は・・・』の内容でした、
@keroyonn_さんはあろうことか翌日のネタを出してしまいました。
@onagataniさんは「すごい!まともに話してる!」と尊敬の意を表してたんですが、
途中でダウンタイムとか言い出したんで、「あー・・・」ってなったのは言わずもがなです。

懇親会

すごいぜYAPC!なんと懇親会無料、ATNDに登録した人数だけでも200名超!
飲み放題食べ放題の2時間?でした。
憧れのアノ人やよく目にする人、色んな人と交流し、関わりが出来ました。
無料な上まで人脈までなんとかなっちゃうなんて!感謝せざる終えません。
僕が@aloelightさんと「パルモンやりますかー」とか言ったらその場でゲームが始まっちゃいました。
ご迷惑おかけしてたらすいませんっ

後記

とにかくYAPCに参加している人は個性的でフリーダムです。
他の言語には絶対無い場を作り出しており、
Perlが僕を魅了して止まないのもこの空気が一役買っているからかもしれません。
そんな雰囲気を感じさせてくれたYAPC::Asia 2011 1日目でした。




※画質がすこぶる悪いです

2日目

寝坊した上に、全身筋肉痛。でも意外と早く着きました
※二日目のセッションハイライトは更新途中です

ハイライト

午前中はスイーツエリアでスライドの確認作業と修正作業を行っていました

@hiratara さん 『Monados in Perl
hirataraさんのセッションです。
会場が満席で立ち見の人が多かったのが印象的です。
最近流行の圏論モナドの話でした。
Hokkaido.pmでもやまかわさんの手により高階Perlというタイトルでセッションが行われたのも記憶にあるかと思います。
スタート圏論関数型言語が流行っている最中、非常にキャッチーなセッションだったのではないでしょうか。

@egopro さん 『仙台で1年間 PM をやってみた』
招待LTからEikichi Gotohさんのセッションです。
実は僕も宮城の仙台生まれでして、非常に心を打たれたセッションでもあります。
Sendai.pmは是非もっともっと盛り上がってほしいです!
僕も里帰りついでにタイミングを見計らって遊びにいこうと思います。

僕の発表

実は、LTは僕初めてなんですよ。YAPC::AsiaでLT童貞捨てました!
今までは20分〜50分セッションを何回かやってきたのですが、LTはまた違った緊張感が走りますねー。
LTにはもっと慣れたいので、積極的にネタ出ししていこうと考えています(Sapporo.cppやHokkaido.pmにて)
ちなみに、Perlbindは細々と開発中です。今後どのようなインターフェイスになっていくのか、等は機会があれば話したいと思います。
僕もまだまだembed周りのドキュメントを網羅しているわけではないので、まだまだ勉強の身です。
ただ、バインドやXSモジュールを作るつもりがなくても、embed周りはPerl Mongerなら読んでしかるべきと思っています。
Perlの言語仕様や実装方式そのものが理解できるので、今まで以上に行動範囲が広くなります。
読んでない方は、テストを走らせている暇な時間などにコーヒーを飲みながら読んで、弄ってみて下さい。

勝手に後夜祭

ATND登録していた時点で補欠枠だったのでいけるかどうか心配でしたが、なんとか枠がとれていけることに!
80人の大所帯で目黒駅まで移動です。昨年同様、しゃぶしゃぶ食べ放題でした。
前日や前々日と異なった方々との交流が出来たので御の字です。
数十分経ったあたりからちらほらと立ち話が出るようになり、そのうち席なんて関係ないような状態になっていました。
もちろん後半ではParumonのゲームが行われていましたよ!

後記

2日目は自分のLTにかかりきの部分がありましたが、それも踏まえて貴重な経験が出来ました。
今回行われたセッションの中でも意外だったのが、perlembedを扱ったセッションが多いという事。
僕のはC++と結びつけるという誰得なトークだったのですが、オーディオに結びつけたり等、非常にユニークなものが多く、大変勉強になりました。まだまだPerlの可能性は広がっていると実感しています。
なので、1日目とはやはり違った楽しみ方が出来ました。

終わりに

憧れのYAPC::Asiaは予想以上に楽しく、身になるものでした。
YAPC::Asia 2011のテーマであるRevolutionEvolutionは違いなく、様々なものが進化しています!
また、それを作り上げているのが全国のPerl Mongersなのだと実感しました。
YAPC::Asia貴重な経験をありがとう!
また、この期間に関わった&ご迷惑をおかけした皆様に感謝します。

謝辞

今回、YAPC::Asia 2011への費用を支援して頂いた(株)スカイアークシステム様、
この場をお借りしてお礼申し上げます。ありがとうございました!
今後も何かと関わることも多いと思いますが、よろしくお願いします

App::cpanminusのアレコレ

Perlを使ったプロジェクトではローカル環境にモジュールをインストールすることが多いかと思われます。
App::cpanminusが登場した昨今、ローカルにインストールする煩わしさも消えたかのように思えましたが世の中はそう上手くもいかないようで・・・

普段は以下のようなコマンドでCPANモジュールをインストールしているかと思います

cpanm -L extlib/ Text::MeCab

外部ライブラリ等に依存することない普通のモジュールは無事依存関係も解消され、1発でインストールが通るはずです。
しかし、外部ライブラリに依存するモジュールをインストールする場合は、Makefile.PLの中でしばしばライブラリのパスを聞かれたり、設定情報を聞かれたりします。今まで通りのやり方ではすっ飛ばされてインストールが失敗してしまいます。
そのような場合はcpanmに以下のオプションを付け加えましょう

cpanm -L extlib/ --interactive Text::MeCab

interactiveオプションを付け加えます。

 --interactive             Turns on interactive configure (required for Task:: modules)

このオプションをつけることによって対話形式で設定を行うことが出来るようになるでしょう。


ついでに、もしも失敗した時のために、以下のオプションもつけ加えることをオススメします

cpanm -L extlib/ --interactive --prompt Text::MeCab

promptオプションは設定・ビルド・テストのいずれかが失敗した場合にプロンプトが表示され、その後の行動を選択する事ができます。lookを指定した場合、一時的にシェルが該当モジュールのディレクトリ(~/.cpanm/latest-build)で立ち上がるので、失敗した原因を調べましょう(なお、この時点ではbuild.logは生成されていないので見ることが出来ません)。



めかぶの場合:

$ cpanm -L extlib/ --interactive --prompt Text::MeCab
--> Working on Text::MeCab
Fetching http://search.cpan.org/CPAN/authors/id/D/DM/DMAKI/Text-MeCab-0.20012.tar.gz ... OK
Configuring Text-MeCab-0.20012 ... Path to mecab config?  /home/project/mecab/lib
Can't proceed without mecab-config. Aborting...
Configuring Text-MeCab failed.
You can s)kip, r)etry or l)ook ? [s]

ゲームプログラミング 札幌 1.0で発表してきました

札幌を離れる前にささっと書いちゃいます

スライド

発表に使用したスライドはこちら(修正版)

反省

各所からご指摘があり、文字が小さいなど至らぬ点があり誠に申し訳ございませんでした。
これは次回以降のセッションで修正します。


その他の反省点は

  • 図を使い忘れてたので、今一受講者に伝わりにくかった
  • サンプルデモとしてもう1つあったのが公開出来なかった
  • リハできんかった

というところでしょうか。
割とセッションの数はこなしているつもりですが、精進が足りぬようです・・・


兎にも角にも、50分(実際は約40分でしたが)という今までに無い長さでだいぶ緊張しましたー!
スライドは早めに作ろうね!

感想

『Unity入門』 @mswar777さん

みちばなさんが行ったUnity入門のセッション。
最初に既存のサンプルデモを流して、後半に実際にゲームを構築するといった形でした。
レベルデザインなんかも直感的に操作出来、簡単なゲーム程度なら仰ってた通りPGはいらなそうな感じ。
嬉しいやら悲しいやら・・・
噂には聞いていたものの、実際にどのように開発するのかは理解していなかったため、貴重なセッションでした。

『cocos2dによるiPhoneゲーム開発入門』 @giginetさん

主催のぎぎねっとさんのセッション。
かわずと!でも紹介していたcocos2dゲーム開発入門です。
内容的には開発のチュートリアルを超丁寧に説明する、といった形でした。
スライドも観やすく良くできていたので理解しやすかったですねー
終盤では噂の「かわずたんたたき」も出てきて実際にcocos2dを使ったデモを披露して会場を沸かせていました。

LT @U_TASさん、@nazoさん、@geekdrumsさん、@infosiaさん

とにかく勢いのあるLTでした!
@nazoさんと@geekdrumsさんのLTが秀逸でした。特に@nazoさんのLTはユーモアに溢れていましたね。
個人的に気になっていた@infosiaさんのSquirrelを使って開発するゲームエンジンの話が興味深かったです。
やはり、今後はSquirrelなんだなぁ・・・と、今後は僕もSquirrelを採用していこうかと考えています。
@U_TASさんは今回ニアミスが発生してしまいまいたが、今度は製作した音ゲーについても聞いてみたいです!

懇親会

やったらオシャレな店で立食形式の懇親会。パンっぽいのが評判。
やはり立食形式というのが功を奏したのか、至る所で交流が行われ賑やかな感じでしたねー
個人的にはようやく@geekdrumsさんと話せて満足です。
あと、@infosiaさんが噂のゲームエンジンemo-frameworkを実演。これはすごいですよ!

残念ながら時間の都合上2次会には参加できませんでした

あとがき

今後も継続してゲームプログラミング勉強会 札幌を開催していく意向らしいです。
僕も毎回セッションできたり、参加できたりということは出来ないとは思いますが、今後も発展を願って協力していこうと思います。
反省点も色々のこりますが、今回はお疲れ様でした。来てくださった方々に感謝です。

Hokkaido.pm #5 参加レポート(感想文)

ちょっと遅めですが、ブログに書くまでが勉強会。もちろん書きます。ギネスを飲みながら
(各セッションのタイトルが間違っているかもしれません、ご了承下さい)


* 今年の夏休みは : @charsbar
毎度お馴染みのPerl仙人ことcharsbarさん。毎回遠路遥々来て頂き、ありがたいことです・・・
今回はSDL(Simple DirectMedia Layer for Perl)というPerlSDLをバインドするモジュールのご紹介。
SDLはGDIやXlibが適当に切り替えられるので、プラットフォームを気にすることなく使えるのがミソですね。
わりとヌルヌル動いていたのが印象的でした(あれで6000行はないと思いますが・・・)。
PerlSDLは盲点だったので、早速弄ってみようかと思います。
YAPCでゲーム発表するとイイかんじらしいですよ!



* mod_perl温故知新 : @xtetsuji
mod_perlですよ、mod_perl。よくお世話になっていました(過去形)。
といっても現状でも使用しているんですが、プライベートでは完全にnginx+Plackに移行してしまったため、直接触れる機会はすこぶる減ってしまいました。
このセッションはスゲーです。mod_perlは古いとかじゃなくて、現状で使っている場面も沢山あるんで、非常に需要のあるセッションだったと思います。
実際、mod_perlって日本語の資料がまったく無くて、英語が苦手な人は弄るのに躊躇してしまうんですよね。
mod_rewrite*1などの貴重な話も出てきました。



* libperl++ : @lapis_tw
僕のセッション(一人反省会)です。
結局libperl++動きませんでしたー!というお話。
libperl++についてはこちら → https://github.com/Leont/libperl--
誰も使っていないライブラリにロマンを感じていたんですが、これはあまりに怪しすぎましたね!
気が付けばPerlのコードが一切でていなく、完全にC++のセッション&売名行為でした。
次回への布石ともとられる今回のセッションでしたが、

  1. libperl++のパッチを書いて動いた報告
  2. 新しくC++Perlバインディングを書く
  3. 諦めてほかのネタを探す


この3つが候補として上がっています。さあ、どうしましょうか。
そもそもC++Perlバインディングなんて誰も必要としていない気が・・・!
でも、C++Perlって聞いたら絡めたくなりますよね?ね? 僕だけでしょうか



* @nekokakさんのセッション
DeNAのお母さん役ことゲストの@nekokakさん。あの@nekokakさんですよ!
懇親会で@onagataniさんがアイドルとか仰ってました。あながち間違ってはいないと思います。
発表の内容はPerl、というよりもエンジニアリング的な部分のお話でした。
「ドッグフードをたべよ*2」等、現状にとても一致していたため(的確に的を得ている)、非常に共感できる部分も多く、@nekokakさんの意外な経歴も明らかになり、有意義なひと時を過ごせました。
自分で作ったモジュールに愛着を持つことは良いですが、その使い時を見分けることが重要(状況を判断する)というと言う所がぐっと来ましたねー
(紹介されたエンジニア含め)こんなエンジニアになりたいと強く思わせるセッションでした。

あ、YAPCについてはネタこそ決まってはいませんが、LT枠が取れたらいいなとか思ってます。



* テスト駆動開発について : @dont_cocoa
TDD導入してないのが許されるのは小学生までだよねー。とも言われ始めているTDDのセッションです。
PerlはTDDの先駆者とも言われる言語なので、このようなセッションがある事は意義がありますよねー
内容的には先日あったTDDからの体験談みたいな感じでした。
失敗するようなテストを書き、それが通るような実装を書くといったポピュラーなTDDのお話です。
軌道に乗るとTDDって時間コストを2割も削減できるんですねぇ・・・ 僕はまだその境地まで達していないのでなんとか頑張りたいものです。
ただ、Test::MoreやTest::Exception等のテスト用のモジュール紹介とかもあったらうれしかったなー、という気持ちがしなくもないです。



* LT1. Base64を再実装する : @akiym
噂の高校生、@akiymさんのセッションです。高校生でAcmeとかすごい!(高校生でAcmeっていいんだろうか・・・)
既にあるAcme::Base64がイケてないので再実装するお話でした。実装した結果がAcme::Collector64という名前空間で、
ちゃんと日本語になってます。復活の呪文にどうぞ、ということでした。
@akiymさんは既にCPAN Authorであったり(まだ違うそうです)、pull-reqを送ったりと高校生らしからぬ行動派です。見習わなければいけませんねぇ



* LT2. 道具のいらないHelloWorld : @koji**
いつも僕の向かいの席にいる@koji**さんのLTです。
こうきたか、やられた!という感じです。新感覚ですね。
確かに-eオプションつけてワンライナーは便利ですよねぇ、簡単に動作確認を行えますし。
ノートパソコンは早く買ったほうがいいと思いますよ!新型のMBAをオススメします。



* LT4. ウヰスキーPSGI : @hiratara
お忙しい中、遠路遥々@hirataraさんが来て下さいました。ありがとうございます。
Cで記述されたWSGI、uWSGIのセッションです。WSGIってうぃすきーって読むんですねー! ここでもう勉強になりました。
僕はいつも、だぶりゅーえすじーあい、と呼んでましたから。(PSGIはそのまま ぴーえすじーあい)。
nginxにも標準対応が検討されているが、まだちょっと開発途上とのこと。
フェイルオーバーやラウンドロビンによるロードバランシングなどがサポートされているため、今後に期待というところでしょうか。



* LT5. perl meets beats : @techno_neko
北海道のPerl仙人こと@techno_nekoさんのLT。ついにPerlのLTだ!
内容はPerlでwave出力するというもの。waveも実際はプレーンテキストなので、フォーマットさえ分かってれば作れちゃいますね。Perlでそれを行う、というところは盲点でした。
波形合成によってちゃんとリズムも刻めてたので、感動モノですね! Perlでオーディオはかなりそそられました
@onagataniさんが「それどのソフト使って作ったの?」とか言ったせいで皆不信感をもってましたが!*3
※この後perl meets $_ みたいなのが流行ったみたいです。確かにこれはパクりたい。



* LT6. 次世代ゲームプラットフォーム Perl : @keroyonn_
トリを勤めるのはお馴染みの@keroyonn_さん。ついに新しいLTです!
ということで、いきなり出てきた言葉が次世代ゲームプラットフォームはPerlだとかなんとか。
『何言ってんだこの人』とか『マジキチ』とか内心思ってましたが、考えてみれば確かにそうだ!
確かにLinuxPerlは標準装備ですし、プラットフォームの台数は圧倒的に多いですよね。狙い目かもしれません。
サンプルデモまで用意してくれたので会場は大盛り上がりです。コンソールで動くマリオらしき物体、マリオクラスなど若干危ない匂いがしましたが。
@charsbarさんもゲーム関連のセッションだったため、確かにこの夏のYAPCはねらい目かもしれません。



* 懇親会 1次会
カニづくし、船盛りづくし。うにまであるし! うにー!
最後は寿司まで出てきて大満足ですよ。3500円であれはかなり楽しめましたね〜 また行きたいです。
Hokkaido.pmに来れば、北海道の海鮮をコンプリートできる!
地方の方をお招きする場合は北海道ビール園をオススメします。

今回のYAPCにはスカイアークシステムさんもスポンサーとなるらしく、社長がご挨拶に来てました。
僕はスカイアークシステムさん(のマスコット)が大好きです!グッズ下さい!待ってます!
スカイアークシステムさんはこちら



* 懇親会 2次会
お店は適当にはいった焼き鳥屋さん。スガイの隣あたりにあるやつです。更にとなりには名古屋名物の某手羽先屋が出来てました。
@onagatanisanはKamui愛しすぎだと思います。Amon2もいいと思いますよ!Amon2::Simpleとか惹かれますし!
ただ、Perlについてあそこまで熱く語れる人達ってのは尊敬できますねー 愛が感じられます。
Perl Monger怖い!とかいう話も出てきましたが、言語に関わらず、その言語をしゃぶり尽そうとしている人達は相応にして畏怖されるものですよね。
某闇の軍団とか関数言語都市とかその代表例ですよ。かっこいー



以上で僕の勉強会は終わります!

*1:リクエストの書き換えやリダイレクトを司るApacheモジュール

*2:オレオレモジュールを自分自身のために作る・使う

*3:後々疑惑は晴れましたが

さくらVPS環境に GCC 4.6.1 を導入

いい加減さくらVPSCentOS 5.5 x86_64)に最新版のGCCを入れようと決起。それのメモ。
初期で導入されているのは4.1.2のため、/usr/local上に自前でビルドします。依存関係が多いので、正直しんどい!
makeが正常に通ったと確認できる頃にはスズメが鳴いていました

# version 4.1.2
gcc (GCC) 4.1.2 20080704 (Red Hat 4.1.2-50)
Copyright (C) 2006 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

# version 4.6.1
gcc (GCC) 4.6.1
Copyright (C) 2011 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

依存解消する際に参考にしたのはこちら


導入するGCCのバージョンは最新バージョンの4.6.1
バグもだいぶ解消されているらしいので、わりかし安心して導入できます。

導入手順は普通にconfigureとmake && make installを叩くだけなんですが・・・
依存解消として以下のライブラリを順番に導入する必要があります。これらの作業は/usr/local/src上で行っています。

  1. GMP : TOPのDownloadリンクより入手。configure時に --enable-cxx オプションを指定。
  2. MPFR : Latest releaseよりDownloadページへ推移。お好みの形式のMPFRを入手。
  3. MPC : DownloadページのLatest versionに有り。リンクがそのままtar.gz形式になっています。
  4. CLooG : DownloadのLatest Sourcesより入手してください。
  5. PPL : DownloadよりGet It!のSource distributionsにあります。お好みの形式をどうぞ。(リンクが変更されました。Impatient?のdownload areaというリンクからFTPにアクセスできます。)
  6. PolyLib : Getting the PolyLibの[source]->[C source]、polylib_src/リンクから移動し、最新版を入手
  7. cloog-ppl : ここのFTPにも存在しますが、Gitもあります。(前者のリンクは先頭をftpに変えてください)。PPLを使うため、configure時に--with-pplが必要です。
# ./configure --with-gmp=/usr/local --with-mpfr=/usr/local --with-mpc=/usr/local --disable-multilib

あとは適当にgccのconfigureして、何時も通りmakeとmake install行えばオッケーなはず!
さくらVPSの一番下のグレードなので、何かと根気が要ります。
さくらVPSの初期状態が何も入ってないような状況なので、他の環境でも難なくこれでビルドできるはずです!


※変更:2011/10/10:PPLのダウンロード方法を更新
※追加:2011/10/10:cloog-pplのオプションについて記述