時計を壊せ

駆け出してからそこそこ経ったWebプログラマーの雑記

初YAPCで初LTしてきました

YAPC::Asiaってなに_

今日はYAPC::Asiaでした。
YAPC::Asiaは技術的なトークを中心としたカンファレンスです。
Rubyで言うRuby会議みたいなものでしょうか。(行ったこと無いですが)


YAPC自体は世界中で行われていて、今回はそのアジア版という位置づけみたいです。
海外からのゲストスピーカーの方も多数いらっしゃいました。


YAPC::Asia今日もやるので興味のある方はぜひ!

感想

見ていたトークの感想はだいたいTwitteにつぶやいていたので幾つか抜粋してまとめてみました。

  • 今後のPerl: 互換性をあまり意識せずに最新の機能を使ってプログラミング出来るようになる。凄い。
  • Carton: 開発しているタイミングで依存しているモジュールとそのバージョンをコアモジュールかどうかを開発者が意識する事なく管理出来る。凄い。
  • はてな: JavaScriptフリーで本当に大丈夫なのだろうか・・・。
  • スイーツエリアで殆どみんな無言のなか、ももクロが流れていてまじシュール。
  • IDC移行: サービスを停止せずに違うネットワーク間を如何に移行するか。OpenVSNでVPNを貼った上で様々な工夫を凝らして問題を解決していた。凄い。
  • Mゲー: やはりユーザー数の多いサービスは大変な模様。しかしあえて一時的にレプリケーションを止めるなど様々な工夫を凝らして問題を解決していた。凄い。

LT

LTもして来ました。スライドはこちら
外で一人で脳内プレゼンリハしてたら、何やら @kfly8 君から電話が。

kfly8「プロジェクターの接続テストで呼ばれてるぞ!」
僕「えっ!そんなのやるの!」

となって慌てて最前列に向かう。(考えてみたらやるのは当然ですが)

  • 開始直前に接続テスト!が、動かない・・・・ッ!
  • しかもMBPもフリーズしてしまった!何が起こったのかとあわあわ。(この時点でだいぶ動揺してる)
  • 別室で試させて貰うが同様の現象。更に慌てる。このままではLTが出来ない!
  • 運営の方(すみません、名前は失念してしまいました)にPCをお借り出来る事に!(本当にありがとうございました)
  • どうやらMBPとプロジェクタをつなぐ奴がイカレてるらしい事に気付く。
  • 本番の所には運営が用意してくれた同じモノがあるが、本番ぶっつけで接続勝負するとかエンジニア的に無いだろうという事でやめる。
  • 順番が来たのでいざ登壇。
    • 人めっちゃいる!めっちゃいる!!
  • 落ち着け俺。2のn乗を数えて落ち着くんだ!
  • 操作ミスであわあわ
    • 今のでだいぶ時間無駄にしたんじゃね?ドキドキ
  • 時間のプレッシャーに負けて緊張しまくり。
    • 時間やばくね?時間やばくね?


オチを言おうとしたらドラでオチがつきました。

反省

  • 接続テストは早めに。
  • 時間をあえて意識しない。
  • スライド数は少なめに(調整しやすいので)
  • もっと場数を踏む。練習する。

で、LTで結局何を喋ったの?

Class::VirturlAccessorという勢いだけで作った小物モジュールの紹介でした。
アクセサのよくある問題点を解決出来る感じです。
中では大した事はやってないのでモジュールにするまでもないかもですが。


こんな感じで使います。

package Hoge;
use strict;
use warnings;
use parent qw/Fuga/;
use Class::VirturlAccessor (# Class::Accessor::Lite like interface
    ro => [qw/hoge fuga/],
    rw => [qw/foo/],
    disable => ($ENV{PLACK_ENV} eq 'deployment'), # If this is true value, access control disable. But fast!
);

sub new {
    my $class = shift;

    $class->SUPER::new(@_)->with_vaccessor;
}

sub some_method {
    my $self = shift;

    $self->{hoge} = 'some value'; # this is read only valiable! croak!
    $self->{fpp}  = 'some value'; # this is typo! croak!

    return $self->{hoge};         # this is ok!
}


これはクラスにblessされたhashrefに読み書きの制約条件を付けて、かつ存在しないキーにアクセスしようとした場合はtypoと見なして死んでくれる、
しかしVariable::Magicでhookしているので遅いので、本番環境では無効にする事も出来る。
という機能を持ったモジュールです。
Class::Accessor::Liteとかとも併用出来るので、Variable::Magicが嫌いで無ければぜひ使ってみてください!


でも次はもうちょっとまともなプレゼン出来るように頑張ります><
来年リベンジします!宜しくお願い致します!