Hatena::ブログ(Diary)

僕ト云フ事@はてな出張版

2009-10-05(月)

はてな市民復活のためのエントリです。

最近は些細なことでも http://vkgtaro.jp に書こうと思ってこっちは更新してないのでした。

まぁ、些細なこと書けてないですがw

一定期間おくとはてな市民から外れるのでたまに困る。

2009-08-14(金)

[] とりあえず多重継承をやめるよ

プログラミング言語 Ruby」が一段落した*1ので、次の積読まつもとゆきひろ コードの世界」を読み始めた。今、2章中盤くらい。

ずっと、「多重継承するとスパゲッティになるなぁ」と思ってたんだけど、いろいろ納得した。そおいうことかー!

Stream を継承した、ReadStream, WriteStrem があって、さらに ReadWriteStream を作るという話のとこで、「単一継承だとそうなるよね、どうするんだ?」とか思ったけど、そこで Mix-in ですか! Readable と Writable 作って、Mix-in ですよ。
Ruby は単一継承しかできなくて、こういう時どうするんだ、とか思ってたのも氷解した。やっぱり Module 作って include するのかなぁとか、ぼんやり思ってたのもだいぶしっくり来た。←というか、「プログラミング言語 Ruby ほんとにちゃんと読んだのかレベル」ですかねw

あと、Java などの静的言語における「仕様の継承」と「実装の継承」の話もあって、Javaインターフェイスは何となくわかった。Moose の Role は Javaインターフェイスじゃないとかって話題も少しわかった気がする。

PerlMoose があるから、多重継承はなるべく避けて Mix-in しよう。今まで Angelos 見て何となくまねてたけど、だいぶわかったんじゃないか?

あああああ、モダン Perl 入門にも Moose の Role はそういうもんだって書いてあったね。わかってるねん、わかってるねんで!

この本おもろいなぁ。理解が進むって楽しいなぁ。スーパープログラマにはなれなくても、ヘボプログラマのヘボは取れそう。周りに迷惑をかけることも減りそう >_<

追記

そして次のページ読んだら、「多重継承は良くないものだ」というのは誤解と書いてあった。「うまく使わないと問題が起きることがある」だそうだ。

そして、「Mix-in は多重継承と別物ではなくて、多重継承の使い方のテクニックの一つ」とあった。なるほど−。

*1Ruby プラットフォームの所に差し掛かったけど、もう使いながら見た方がよさそう。

2009-08-09(日)

[Keynote] Keynote のテーマを作る

ちなみに自分の KeynoteiWork 06 の Version 3。

  1. スライドを新規に作成、テーマは白紙がいい
  2. メニューの[表示]→[マスタースライドを表示]で左側にマスタースライドが出る。
    • マスタースライドに絵を置いたりしていくとウインドウに付いてるメニューからマスターで選択できるようになる
  3. 使いたいマスターを全部編集したら、[ファイル]→[テーマとして保存]で、保存

これで次回からテーマとして選べて、選択すると作ったマスタが使えるようになる。

20分

演劇だったらだいぶ長い。小劇場系のお芝居で長くてもたいていは2時間、その中で主役クラスの長い独白があっても20分ってのはなかなか無いと思う。
観客を20分つなぎ止めていられる人は相当なものだと思う。

まぁ、芝居ではないので話す内容をちゃんと作って、ゆっくりしっかり話せば何とかなるよ。緊張すると絶対早口になるからなぁ。

資料が一つできたのでさっき練習したら「えーっと」言いまくってたw
kansai.pm でも何か連呼してたんだよなぁ。たぶん本番でも言うなぁ……。

もう一回やって言葉に詰まるところを見直した方が良いかもしれないな。

資料的には詰め込もうと思うと20分は結構短いかも。LazyWay はどうだろうなぁ。20分ぶんの資料作れるかなぁw 今日はもう帰って明日の夜やろ。

2009-07-29(水)

[] Object.send でメソッドを呼ぶ

ruby変数に接頭辞がないから、perl で $obj->$method() みたいなことやるのにどうしたらいいんだろ、とか思ってたらプログラミング言語 Ruby に出てきた。

Object に send ってメソッドがあって、o.send :method_name で呼び出せる。

perl のこのコードは

my $hoge = Hoge->new;

foreach my $method ( qw/one two three/ ) {
    print $hoge->$method() . "\n";
}

package Hoge;

sub new {
    bless {}, shift;
}

sub one   { 1 }
sub two   { 2 }
sub three { 3 }

ruby で書くとこんな感じ

class Hoge
  def one; 1; end
  def two; 2; end
  def three; 3; end
end

hoge = Hoge.new

[:one, :two, :three].each {|x|
    puts hoge.send x
}

今はリフレクション、メタプログラミングの章に入ってきたところ。

2009-07-27(月)

週末日記

土曜日は陣馬山に登った。かなり一日が長く感じたのがよかった。帰る頃にはリフトに乗ったのが昨日かと思うくらい。

以前であれば、翌日は寝つぶすことが多かったんだけど、日曜日は会社のエアコン取り替え工事のため、朝8時に会社へ行き、エアコン工事のおじさんと談笑しつつ、lazy-people.org の cacti をいじるw

そのまま、ちょっとした雑務を片付けて、15時くらいにお昼を取って家に帰って、残ってる洗濯ものとかした。ズボンの泥が落ちてなかったw

今週末はなかなか充実したなぁ。(ちなみに先週末は実家に帰ってました。近い距離にもかかわらず約半年ぶりw サーセンw)