NeverBlog::Likk::Unexistable;

見なかったことにして下さい

YAPC::Fukuoka 前夜祭で「夏の夜を涼しくするPerlの話」というタイトルでLTしてきた

言いたいこと。

1. YAPC::Fukuoka 前夜祭でLTしてきた
2. Acme::Undead について
3. 場が温まってたのもあってそれなりに笑ってもらえた
4. 参加できなかった人にも伝えたいこと
5. トーク内容の感想とか全体の感想は別途書くよ

以下詳細という名のgdgdな何か

YAPC::Fukuoka お疲れ様でした。ブログに書くまでが YAPC::Fukuoka だそうです。

前述の通り、前夜祭で「夏の夜を涼しくするPerlの話」というタイトルでLTしてきました。
aizen.likk.jp
もともとは、某slack のチャンネルでゾンビとアンデッドの違いは何かという話をしていたときに、なんとなく思いついて、Acme::Undead を書いた感じです。
github.com
git log の initial commit を見るとわかりますが、今年始めのころ大体の挙動はできてました。このタイミングで微調整したり、LTのネタとして発表したりしたのは、どうせなら夏に話したいと思って放置していたせいです。そのままお蔵入りになりそうだったのは秘密です。


実装につきましては、use すると use したパッケージに Acme::Undead の _die() _bless() (と _sleep()) をそれぞれ die(), bless() (sleep()) という名前で export している形です
。例えば main パッケージで use して die を呼ぶと core の die を呼ぶのではなく Acme::Undead::_die() を export した main::die() を呼ぶ形になっております。
あまりないと思いますが、別の目的で元から main パッケージに sub die {} や sub bless {} があるとそれも上書きしてしまいます。(別の目的で書いてある実装があったら目的知りたいのでご連絡いただけると幸いです。)


実にしょうもないAcmeモジュールで、しょうもないネタLT だったので、ウケがとれなかったら、スライドのタイトルの涼しいを通り越して寒い感じになって耐えられそうにないなと思いましたが、場が温まってたこともあり、大ウケまでは行かなくてもそれなりにウケてもらえたようで何よりでした。結局暖かいのか涼しいのかよくわかんない。


スライドの中で、今回、前夜祭に来れなかった人にもどうしても伝えたいページがあります。
http://aizen.likk.jp/slide/acme_undead/#/step-6


JRPG的アンデッド
死者(アンデッド)
L 肉体がないよ派(ホーント)
L 幽霊・ゴースト
L レイス(生前は高位の者/死神)
L ポルターガイスト // 現象の方を指すケースが多い
L 肉体はあるよ派
L あるけど腐ってるよ派
L ゾンビ(操られた死体) // 本来はゴーレムに近い
L グール(死喰鬼)
L レベナント(死に戻り) // 我々のイメージするゾンビはこっちに近い
L あるけど本体は肉体じゃないよ派
L ワイト(肉体を覆う光が本体)
L あるけど骨だけだよ派
L スケルト
L 実は死んでないよ派
L 元は妖精だよ派(でもアンデッドのような特性があるよ)
L デュラハン
L バンシー
L 最初から生きて無いよ(アンデッドじゃないよ)派
L 材料が肉や骨なだけだよ派
L ボーンゴーレム
L フレッシュゴーレム

じゃなくて、こっち。
http://aizen.likk.jp/slide/acme_undead/#/step-20

last/next/redo は無名ブロックも対象になる

どうしてそういう実装になっているのかは分からないですが、以下のようなコードを書くと意図と違う挙動・あるいは実装者の意図と違う理解をメンテナがする可能性があるのでお気をつけください。(そもそもループの中で無名ブロックが必要なケースが出てきたらメソッド分けましょう)

    for (1..10){
        say $_;
            {
                last; #ここでループから抜けたい(実際は無名ブロックから抜けるだけ)
            }
    }

逆にそれを意図してハックっぽい感じのコードを書くとに書くといい感じに混乱を誘えそう