K.Sasada's Home Page

Diary - 2007 October

研究日記

神無月

_31(Wed)

人は何時までも待ってはくれないのだよなぁ.

_kou(Wed Oct 31 20:59:06 JST 2007)

 みつを。

_kt(Thu Nov 01 09:58:10 JST 2007)

 意味深...

_30(Tue)

発表資料,落ちがないなー.どうしよう.


終わり.やっぱりあんまりおもしろくなかったか.すみません.

_29(Mon)

ヨーロッパ行きを正式にキャンセルした.orz

_28(Sun)

No XXX, My Life という言葉を知った.色々入りそうだ.


書き途中の長文メールが消えた orz Thunderbirdの不安定さをなめていた.うううう.


Mail\Local Folders\Unsent Messagesというファイルに残っていた! 助かった!

_27(Sat)

いつの間にか過ぎてた.

_26(Fri)

いつの間にか過ぎてた.

_25(Thu)

名刺がない.30日どうしよう.

_24(Wed)

ストールマンさんは話がうまいなあ.

_23(Tue)

_かくたに(Wed Oct 24 01:01:15 JST 2007)

 「最速Ruby研究所」を松江に設立。

_22(Mon)

ええと,あれになれませんでした.

_21(Sun)

あああ.

_20(Sat)

10/20だ.


RHG行きたかったな orz

_19(Fri)

【珊瑚】 他人の目の届かないところでジッと努力をする。縁の下の力持ち的存在。それが珊瑚紋のあなた。なかなか注目は浴びないかも知れません。しかし、いつの日かあなたの努力が多くの人々の心を突き動かし、感謝される瞬間が訪れるはず。その素晴らしい努力を怠らず、有意義な人生を歩んでください。

_18(Thu)

もう 18 日が終わる ... orz


昨日はお祝いありがとうございました.でも,何がどううれしいんだか,誰もわかっていなかったようなふいんきだった気がします.

_yadokarielectric(Fri Oct 19 09:52:05 JST 2007)

 賞うんぬんというよりみんなささださんと飲みたかっただけですよ

_17(Wed)

http://www.itmedia.co.jp/enterprise/articles/0710/17/news080.html

うーん,やってなかったのか.


また迷惑をかけてしまった.すみませんすみません.


大学職員を辞めるタイミングというのはどういうときなんだろう.

_16(Tue)

http://pub.cozmixng.org/~the-rwiki/rw-cgi.rb?cmd=view;name=m17nWorking

時間制限がある中,いろいろ議論.

しかし,Skype で会議はやっぱりつらいなあ.


昼飯時間をすっとばしてしまって済みません>まつもとさん


今日も進まず.

_15(Mon)

議論するために RubyGems 0.9.5 beta を読んだ.

RubyGems

用語の定義
* RubyGems : パッケージ管理ソフトウェア
* Ruby Gem もしくは単に Gem : RubyGems によってインストールされるパッケージ
* activate : $LOAD_PATH に適切なパスを加えること
* autorequire : gem メソッド,require_gem メソッドを実行したとき,同時に require する
* gem spec : Gem の依存関係など,設定を記述したファイル

require(path) の手順 [rubygems/custom_require.rb] :
- 前提:Kernel#require は Kernel#gem_original_require に改名
- まず従来の require
- LoadError だったら
  - spec = Gem.searcher.find(path) [lib/rubygems/gem_path_searcher.rb] で探す
    - Gem::GemPathSearcher#init_gemspecs
      - ここですべてのインストール済みの gemspec をロード
      - 名前順, バージョン順にソートした配列を @gemspecs に格納
    - Gem::GemPathSearcher#find
      - path にヒットする specs を返す(配列)
  - specs が空でなければ,specs.last,つまり最新バージョンを autorequire => false で activate
    - 詳細は,以下の Gem::activate を参照
    - ここでは実際にロードしない($LOAD_PATH に加えるだけ)
    - 依存関係のあるライブラリもついでに activate(autorequire => false)
  - gem_original_require(path) をして実際にロード


gem(gem_name, *version_requirements)の手順 [lib/rubygems.rb]:
- activate_gem_with_options(gem_name, version_requirements)
  - ENV['GEM_SKIP'] に含まれていたら Gem::LoadError を返す
  - Gem.activate を呼ぶ(autorequire => false)

Gem.activate(gem, autorequire, *version_requirements) の手順 [lib/rubygems.rb]:
- もし gem が文字列だったとき,デフォルトのバージョン依存情報を追加
- マッチする Gem を探してくる.ここから大冒険する
  - Gem.source_index.find_name(gem.name, gem.version_requirements)
    - SourceIndex.from_installed_gems.find_name(...)
      - Gem::SourceIndex::from_installed_gems [lib/rubygems/source_index.rb]
        - Gem::SourceIndex::from_gems_in(*installed_spec_directories)
          - Gem::SourceIndex::self.new.load_gems_in
            - インストール済みの Gem の gem spec を全部ロード 豪快
              specs = Dir.glob File.join("{#{spec_dirs.join(',')}}", "*.gemspec")
              specs.each do |file_name|
                gemspec = self.class.load_specification(file_name.untaint)
                add_spec(gemspec) if gemspec
              end
    - find_name では,search(/^#{gem_name}$/, version_requirement) で検索
      - search でバージョンとかをチェック
- すでに gem が activate されていないかどうかチェック
- $LOAD_PATH に gem の場所を追加
- autorequire が true かつ spec.autorequire が true なら require もする

RubyGems のデマ:
- Kernel#require に version 指定引数が出来るようになる
  -> そんなことはない(rubygems-0.9.4.5/lib/rubygems/custom_require.rb)
- Kernel#gem メソッドを使うと実際に require する
  -> しない.require_gem は require する仕様だったらしい(deprecated)

だいぶ軽くなっているようだけど,でもやっぱりライブラリ多いなぁ.例えば C にコンパイルしちゃえば軽いだろうか.ちょっと読めない.

まだ,バージョンの依存関係についてはよくわかっていない.なんか,依存関係を厳しく指定すると,色々まずいことが起こりそうだが....


ちなみに,ささだはソースを読まない,とs藤さんにdisられたので,ごくたまには読んだ方がよかろう,ということで読んでみた.


なんで記事名の多くに俺の名前が入ってるんだ....


やっぱり運が良かったんだよなあ。

_takahashim(Tue Oct 16 09:54:04 JST 2007)

 あー、すみません。バージョンを指定できるのは昔のrequire_gemの仕様でした。

_なひ(Tue Oct 16 10:05:15 JST 2007)

 load_specificationがloadじゃなくてevalんだよねぇ

_14(Sun)

RubyKaigi 2008,始まりました.

_13(Sat)

nice boat.

_12(Fri)

本郷まで行く.


なんか公開されたらしい.うーん.そもそも OSS ってよく知らないんだけどなぁ.


最近寂しいので誰かお祝い宴会でもしてください.


お祝いじゃないだろうけど,ruby-lang.org のメールアドレスをもらった! これで俺も Ruby 関係者!


駅に行くと飛び込みたくなって困るので,近所で一人暮らしをしないといけないかなぁ,と思ったけど,そんなことしたらもっと死にたくなるんだろうな.

とか考えるのは眠いからに違いない.

_yadokarielectric(Fri Oct 12 19:18:32 JST 2007)

 IPAのですね。今度の水曜にSICP終わったあととか?

_k本(Sat Oct 13 16:59:33 JST 2007)

 OSS貢献者賞おめ

_arton(Sat Oct 13 19:12:33 JST 2007)

 受賞おめでとうございます。

_kt(Sat Oct 13 23:33:21 JST 2007)

 おめでとうございます

_弘世(Mon Oct 15 23:52:17 JST 2007)

 おめでとうございます。

_11(Thu)

うーん.道は長い.


Google Alert の「タイプ」で総合を選ぶと全部ひっくるめた alert になるんだろうか.

インターフェースとしては,各タイプをチェックボックスで選ぶのがいいんじゃないかと思った.

_10(Wed)

http://www.ascii.co.jp/pb/unixmag-dvd/event/

ぜひ行きたい,と思ったけど日本に居ない.


とても大変なことをなんでもないことのように言う才能.

逆じゃないと研究者としてやっていけないよな.

_9(Tue)

震えが止まらない.


半分はずれ.


13Fの窓があかないのは意味があるんだ.


http://www.fdiary.net/ml/ruby/msg/735 この辺のスレッドを久々に見る。色々やってたんだなぁ。俺。チラシとか没案とか、面白い。

_8(Mon)

いつものように自己嫌悪.

_7(Sun)

寝.

_6(Sat)

なんというか,身に余る何かを受けるらしいんだけれど,まぁ貰うモノはもらっておこう.それを使って恩返しすればいいんだろう.多分.


朝風呂ってくる.


かずひこさんの下着プレゼンは神.

_とおりすがり(Sun Oct 07 02:07:39 JST 2007)

スーパークリエーター認定?おめでとうございます。 別に何もないので恩返しとかは気にしなくてもいいんでないかと。

_xibbar(Tue Oct 09 11:24:04 JST 2007)

 おつかれさまでした。俺も下着だと思った。みんな思ったんじゃないかな。

_5(Fri)

http://alfalfa.livedoor.biz/archives/51137379.html

うわぁぁぁぁ orz 朝から爆笑してしまった.

_4(Thu)

Euruko、ベッドが二つの部屋になったみたい。誰かシェアしませんかね。


死刑宣告みたいなものが。

_3(Wed)

************

まだ、生きています。


RubyKaigi 2008 は、やりそうです。


恥ずかしながら、call by * のあたりがうまく整理していなかったのでググってみた。便利な世の中だよな。

  • call by value: 引数を先に評価
  • call by reference: 引数を先に評価、ポインタを渡す
  • call by name: 引数は後で評価
  • call by need: 引数は後で評価、同じ引数だったら一度しか計算しない

name と need の違いがわからなかったんだけど、計算効率しか違いません、でいいんだろうか? call by text なんてものもあるのな。しらんかった。


第10回プログラミングおよびプログラミング言語ワークショップ PPL2008 というのがあります。論文出してください。

なんか、プログラム委員を見ると実装系の人がかなり多いイメージが。


地域イノベーション創出総合支援事業

ここでの「企業化」って何?


鬱々と。でも、時々はれ。泣きたくなる。


ラベル屋さんHOMEがVistaにちゃんと対応している。凄い。

_みずしま(Wed Oct 03 23:26:32 JST 2007)

 引数が副作用のある式の時に違うのでは? >nameとneed

_ささだ(Thu Oct 04 04:03:58 JST 2007)

 あぁ、ごめん。無いことは前提にしてた。

_n(Thu Oct 04 06:19:21 JST 2007)

 call by *** というとき副作用の存在は仮定しない。というのは思い込み

_2(Tue)

胃が痛い。

もう色々とまずい。

_1(Mon)

R6RS を見ると、なんか凄い。ライブラリとか。record とか例外とか凄いな。誰か日本語訳しないかなー。

そもそも、元データどっかに無いだろうか。


R6RS の処理系作るのも楽しそうだな。


何もかも忘れる夏休みを作ろうと思っていたんだけど、10月になってしまった(夏休みは9月まで)。あぁ、何もかも忘れて逃げ出したい。


るびまゴルフ、答えを見てしまった。全然わからなかった。やっぱ駄目だなー。

Sasada Koichi / sasada@namikilab.tuat.ac.jp
$Date: 2003/04/28 10:27:51 $