2008年 02月 10日

ねむい

ねむい。でもねむい、とだけ書くような日記になんの価値があるのだろうか。それでも、ねむい、とだけ書いて寝たい気分だった。途中でそれになんの価値があるのかを考えたくなった。でもやめた。ねむいからだ。

中途半端さとバランス

Ruby を中途半端に感じるのは、Ruby がいろんな言語のいいとこどりをしてバランスをたもとうとしてるからで、嫌な人は嫌なんだと思う。極端な感じの人はたぶんあわない。

これ使っとけばマジカンペキー、なんていう言語は全然ないと思うけど、Ruby みたいに、いろんな言語からいろいろとりいれている言語をメインにすると、他の言語を学ぶときのハードルが低くなる。オブジェクト指向言語を学ぶときも、関数指向の言語を学ぶときも、「Ruby では……」を考えると良さが見えてくる (共通しているならそこは重要だってことが想像つく)。

僕にとっては Ruby はそれ自体がプログラミングの先生だ。雑誌の記事をいくらよんでもよさを実感できなかったオブジェクト指向を教えてくれたし、高階関数のエッセンスも教えてくれた。そういう機能を、コードを綺麗に書こうとしようとするだけで、自然と使わざるを得ないような感じになっているのがいいんだと思う。

2008年 02月 09日

ブロックのブロック引数 (ruby1.8系)

def foo(&block)
    obj = Object.new
    (class <<obj; self; end).__send__(:define_method, :_) do
        Proc.new == block # true / expect false
    end
    obj
end
p foo {
    # A
}._ {
    # B
}

なんでブロックの中の Proc.new が外のブロック引数で生成されるんだ…… 1.8 ってブロックのブロック引数とれないのかなぁ…… 1.9 なら |&block| できるけど……

citrus

あたらしくプラグインをつくったときは引数なしで reload してから reload PluginName

citrus

もう名前は citrus でいいやという気分だけど、ディレクトリ構成をどうするかで悩む。ruby/citrus に今のブランチをうつしてしまって、chokan を削除するようにしたいけど、svn up していきなり chokan がきえたらびびるよね

2008年 02月 08日

chokan, citrus, 必須プラグイン

基本的につかうプラグインは決まっているので、必須プラグインはさっさと実装してあとはオンデマンドで移植する。

  • URIInformation
    • URI をあつかうのではなく、スキームごとに別のプラグインに
    • HTTP
      • HTTP 内で mixi をアカウントログインするとかはまた後でかんがえる
  • PlusPlusbot
    • 移植は簡単だけどデータを移行し忘れないように
  • Eval
  • JSEval

ぐらいかな。あとあんまつかってない。PHP でフィリピンペソはちゃんと出したいけど

古いほうの chokan とめた。今プラギンはうえのしか有効になってない