第35回 Ruby勉強会@関西にいってきた

久しぶりの勉強会。昔の職場での知り合いをMLで見つけたのがキッカケ(それも迷惑メール落ちしていたのを偶然拾った)。折角なので、と京都駅で合流してから行った。
行きがけ、Twitterを見ていたら知ってる人たちがどんどん結集している。スタッフ側の人たちだからそりゃそうなんだけど、僕も少し早めに行って何か手伝えば良かったかな、とか思った。たいしてお役には立てないんだろうけれども。
途中尼崎辺りでゲリラ雨状態で、「うわ、京都大丈夫かな」とか焦った。着いてみるとそこまでヒドくなかった。けど例によって傘忘れ、京都駅で購入。どんどん安物の傘が増えて行っている。

RubyKaigi2009 報告会

先週のRubyKaigiの模様の報告。扇子とかいいなあ、とか、楽しそうだなあ、とか、来年こそは行ってみようかなあ、とか思った。*1
給電所の話聞いて、ああ、こういうの必要だよなあ、とか思った。給電スポットって普通の街角に無いのだけれど、将来的にはそういった物が当たり前のように整備されるのかな。そうなるとACアダプタを「ザクっと」挿す現在の方式では難しいかな。PCを置くと自動的に電磁誘導方式で給電してくれるスポット付きのテーブル、なんてのが喫茶店とか待合室とか会議室に常備されるのが理想的か。
ujihisaのSkype発表が新鮮だった。途中から回線が可笑しくなってロボティック発表になってしまったけど、「画像などはなるべく流さないようにしましょう」とか言われていたらしいfj時代のインターネットを知る人からすると隔世の感の光景だったのかもしれない。

Ruby/SDLの紹介およびその過去と未来について

SDLはお仕事でDirectFB関連を調べたときにちょっと弄ったくらい。まあそれの単なるRubyバインディングかな、とか思っていたけれど、結構大変なプロジェクトだった。MacOSXで動かない(動かすの大変)とか問題はある物の、やはり成長して行くプロジェクトを支え続けるというのは大変なお仕事。Ruby/SDL自身の説明よりもそっちが印象深かった。メインの内容としてはSDLやゲープロに関わったことがある人にとってはまあ当たり前な感じの話だった。フィードバックエフェクトとか重力モーションとかだと短いソースの割には感動的な絵が出せるので、今回のように「簡単わかりやすい」系だけでなく、そういう「短いわかりにくいハデ」系をサンプルとして挙げた方が良かったんじゃないかと思った。
大林さんの肩書きを聞いて驚いた。僕もまた学生に戻りたくなったw

自由ソフトウェアとしてのRuby

かずひこさんの発表。余談だけど「量彦」さんと書くのだということをはじめて知った。自由ソフトウェアとオープンソースとか、あらゆる形態を混同している、というか未だに混乱しまくっている僕にとっては結構敷居の高い話だった。「オープンソースソフトウェアの育て方」でも買って再勉強しようと思った。
http://stack.nayutaya.jp/book/4873114128

Ruby 初級者向けレッスン第 29 回

okkezさんの初心者向けレッスン。今回はclassやmodule/変数のクラスの説明をして、それでもって何かしらclassやmoduleを設計するというお題。複数人で開発するとき以外で privateとかprotectedを使う利点ってあるのかなあ、とか前から思ってたりして、聞けば良かった。
yuyaさんが僕らのグループのTAをしてくれた(感激)。ローカル変数、クラス変数、インスタンス変数、グローバル変数の他にもう一つあるんだけどね、という話が出た。さっとは思い浮かばなかったんだけど、丁度直前に squeaksmalltalkを弄っていたので、クラスインスタンス変数というのを言われて、「あー、あれかー」と鈍い頭をさらしてしまった。ちと勉強になった。

演習内容としては、すごいくだらない物を作ってしまった。どっちかというと原題通りに「たいやき」にこだわるよりも、「前進翼」、「マシンガン」、「ロケット砲」、「ローター」、「ロケットエンジン」、「ジェットエンジン」、「プロペラ」とかのモジュールを用意して、 AirPlaneクラスの派生で いろんな戦闘機を作った方が面白かった方がかもしれない。

module Yakitate
    attr_reader :created_at, :cream
    def init
        @created_at = Time.now
    end

    def yakitate?
        (Time.now.to_i - created_at.to_i) <= 10
    end
end

class Food
    include Yakitate
    def initialize
        super()
        init
    end
end

class Taiyaki  < Food
    attr_reader :cream
    def initialize(cream)
        super()
        @cream = cream
    end
end

class Takoyaki < Food
    def initialize()
        super()
    end
    # 
end

class Okonomiyaki < Food
    attr_reader :topping
    def initialize(topping)
        super()
        @topping = topping
    end
    # 
end

class Akashiyaki < Food
    def initialize()
        super
    end
    # 
end

懇親会

は今回パスしました。行きたいんだけど、ちょっとね。。

全体

やはり勉強会に出るといろいろと勉強するネタとエネルギーを吸収できてすばらしい(Romantic Rubyとか...SlideShareみて仰け反ったw)。なんとか続けたいのと uuuuのほうも次は僕から都合のつきそうな日時を提案してなんとか出ようと思った。勉強会はその内容自身以上に出席する意義がある。
okkezさんが「るりま」刷新計画のボランティア募集の話をしていた。お役に立てるなら何かしてみたい気もするけど、正直僕になんかできるとは思えない。。。
なんかできそうなことがあるか聞いてみようかな。
とか思いながら帰りました。

*1:てか来年京都?ホント?