[#38447] 複素数を考慮したVectorクラス — TANAKA Kenta <c30318@...>
みなさん、はじめまして。Ruby歴(=OOP歴)1週間の田中と申します。
7 messages
2003/10/01
[#38465] diff library — Koji Arai <JCA02266@...>
新井です。
6 messages
2003/10/05
[#38470] ruby-dev summary 21403-21530 (draft) — Minero Aoki <aamine@...>
青木です。
25 messages
2003/10/07
[#38475] Re: ruby-dev summary 21403-21530 (draft)
— maili31s@... (SugHimsi==SUGIHARA Hiroshi)
2003/10/07
すぎむし。
[#38480] Re: ruby-dev summary 21403-21530 (draft)
— Minero Aoki <aamine@...>
2003/10/08
青木です。
[#38481] marshal_dump (was Re: )
— m_seki@...
2003/10/08
[#38484] Re: marshal_dump (was Re: )
— matz@... (Yukihiro Matsumoto)
2003/10/09
まつもと ゆきひろです
[#38486] Re: marshal_dump (was Re: )
— Masatoshi Seki <m_seki@...>
2003/10/09
咳といいます
[#38487] Re: marshal_dump (was Re: )
— matz@... (Yukihiro Matsumoto)
2003/10/09
まつもと ゆきひろです
[#38471] SQLite - Ruby/DBI — Kenji Machida <k-machida@...>
はじめまして。まちだと申します。
10 messages
2003/10/07
[#38485] プログラム設計方法 — Satoshi Osabe <s-osabe@...>
長部と申します。
6 messages
2003/10/09
[#38489] exit status on exit! — YANAGAWA Kazuhisa <kjana@...4lab.to>
<http://www.unixuser.org/~ysjj/diary/?200310a&to=200310082#200310082>
29 messages
2003/10/09
[#38490] Re: exit status on exit!
— Koji Arai <JCA02266@...>
2003/10/09
新井です。
[#38503] Re: exit status on exit!
— YANAGAWA Kazuhisa <kjana@...4lab.to>
2003/10/10
In Message-Id: <20031010.082218.74733862.JCA02266@nifty.ne.jp>
[#38505] Re: exit status on exit!
— Koji Arai <JCA02266@...>
2003/10/10
新井です。
[#38507] Re: exit status on exit!
— matz@... (Yukihiro Matsumoto)
2003/10/11
まつもと ゆきひろです
[#38514] Re: exit status on exit!
— YANAGAWA Kazuhisa <kjana@...4lab.to>
2003/10/11
In Message-Id: <1065883639.405037.23137.nullmailer@picachu.netlab.jp>
[#38515] Re: exit status on exit!
— WATANABE Hirofumi <eban@...>
2003/10/11
わたなべです。
[#38520] Re: exit status on exit!
— matz@... (Yukihiro Matsumoto)
2003/10/12
まつもと ゆきひろです
[#38521] Re: exit status on exit!
— nobu.nakada@...
2003/10/12
なかだです。
[#38532] Re: exit status on exit!
— matz@... (Yukihiro Matsumoto)
2003/10/13
まつもと ゆきひろです
[#38556] Re: exit status on exit!
— nobu.nakada@...
2003/10/14
なかだです。
[#38558] Re: exit status on exit!
— matz@... (Yukihiro Matsumoto)
2003/10/14
まつもと ゆきひろです
[#38560] Re: exit status on exit!
— nobu.nakada@...
2003/10/14
なかだです。
[#38561] Re: exit status on exit!
— matz@... (Yukihiro Matsumoto)
2003/10/14
まつもと ゆきひろです
[#38562] Re: exit status on exit!
— matz@... (Yukihiro Matsumoto)
2003/10/14
まつもと ゆきひろです
[#38566] Re: exit status on exit!
— nobu.nakada@...
2003/10/14
なかだです。
[#38522] Re: exit status on exit!
— Takahiro Kambe <taca@...>
2003/10/12
In message <20031011.003250.41649947.JCA02266@nifty.ne.jp>
[#38499] Amrita と mod_ruby の相性は ? — 山本 達也 <rcn@...>
山本(rcn)@ntt〜kddi です。こんにちは。
5 messages
2003/10/10
[#38510] ロックしたファイルの書き換え — Akimichi Tatsukawa <akimichi@...>
ruby-listの皆さん、こんにちは。立川察理と申します。
8 messages
2003/10/11
[#38524] Object#instance_eval and private — Masao Mutoh <mutoh@...>
むとうです。
6 messages
2003/10/12
[#38527] ruby-dev summary 21531-21607 (draft) — Kazuo Saito <ksaito@...>
斉藤です。
7 messages
2003/10/13
[#38580] ruby-mysql-0.2.1でのwarning — Takashi Kanai <kanai@...4u.or.jp>
こんにちは、金井です。
11 messages
2003/10/16
[#38581] Re: ruby-mysql-0.2.1でのwarning
— Takashi Kanai <kanai@...4u.or.jp>
2003/10/16
金井です。
[#38582] ruby-mysql-0.2.1でlocalhostがエラー
— Takashi Kanai <kanai@...4u.or.jp>
2003/10/16
こんにちは、金井です。
[#38590] mod_rubyでのSTDOUTについて — 堀川 久 <vzw00011@...>
こんにちは。
10 messages
2003/10/16
[#38607] [ANN] ReFe 0.8.0 — Minero Aoki <aamine@...>
青木です。
4 messages
2003/10/17
[#38614] cygwin の uconv で Segmentation fault — Beyond <beyond@...>
9 messages
2003/10/20
[#38619] dl and win32 API call — arton <artonx@...>
artonです。
5 messages
2003/10/20
[#38621] ruby-dev summary 21608-21636 (draft) — Masayoshi Takahashi <maki@...>
高橋です。
5 messages
2003/10/20
[#38636] gethostbyname — Takeshi Honda <moecho21@...>
お世話になります。
7 messages
2003/10/23
[#38643] C/C++ からメソッドを呼びたいのですが — phosrin <phosrin@...>
りんです。よろしくお願いします。
7 messages
2003/10/23
[#38645] snap shot の make install でエラー — Takeshi Honda <moecho21@...>
お世話になります。
1 message
2003/10/23
[#38646] install trouble of ruby 1.8 and rdtools 0.6.14 — Kominami Yasuo <NBC00224@...>
はじめまして、小南と言います。
5 messages
2003/10/23
[#38656] Ruby/Tkの終了時の挙動 — Shigeaki Kinoshita <QZT05560@...>
木下と申します。
8 messages
2003/10/25
[#38663] Re: Ruby/Tkの終了時の挙動
— Hidetoshi NAGAI <nagai@...>
2003/10/25
永井@知能.九工大です.
[#38661] 'Using the Ruby DBI Module' 日本語訳 — KUBO Takehiro <kubo@...>
久保@茅ヶ崎市です。
1 message
2003/10/25
[#38662] 空行で別れたデータから特定の文字を含むデータを削除したい —
竹島と申します。
5 messages
2003/10/25
[#38689] cgi.params のデフォルト値 — Kazuhiro Yoshida <moriq@...>
もりきゅうです。
6 messages
2003/10/28
[#38701] space before argument parentheses warning — Toshi Isogai <tisogai@...>
先日 ruby 1.8 を コンパイルして、以前から 1.6.7 使っていたスクリプトを走らせた
4 messages
2003/10/30
[#38706] ruby-1.8.1でenctypeのときのcgi.params — Takashi Kanai <kanai@...4u.or.jp>
こんにちは、金井です。
6 messages
2003/10/31
[ruby-list:38543] Re: marshal_dump (was Re: )
From:
"NAKAMURA, Hiroshi" <nakahiro@...>
Date:
2003-10-14 02:26:56 UTC
List:
ruby-list #38543
なひです。
> From: "Yukihiro Matsumoto" <matz@ruby-lang.org>
> Sent: Monday, October 13, 2003 8:32 PM
> |ちなみにJavaでは、dumperが、クラス階層内の各クラスの
> |writeObjectメソッドをそれぞれ呼んでくれるので(2種類あるserialize
> |インタフェイスの手軽なほう)、各クラスが、自分で定義した
> |インスタンス変数(とは呼ばないけど)を書き出すことで、救えます。
> |writeObjectメソッドが定義されてない場合、デフォルトで全ての
> |インスタンス変数(同)が書き出されます。
>
> えーと、writeObjectメソッドはサブクラスでoverrideされていよ
> うがなんだろうが個別に呼ばれるんですか。
はい。writeObjectとreadObjectはそのように使われます(後述の
readResolveは異なります)。
ちなみに
> |writeObjectメソッドが定義されてない場合、デフォルトで全ての
> |インスタンス変数(同)が書き出されます。
と書いてしまいましたが、正しくは「〜定義されてない場合、デフォルトで
そのクラスで定義されている全てのインスタンス変数が〜」でした。
> Rubyではあんまりそう
> いうのはやってないんで考えてませんでしたけど、それが良いと言
> うなら検討の余地はあります。
夏にまつもとさんに直接お話した時には、Rubyではそのように呼び分けるのは
できないのかななんて思っていたのですが、最近、SOAPのmarshallingコードに
関連して、そのような方法を中田さんに教えてもらったのでした。
UnboundMethodなんて初めて使った。。。
良いことかどうかは、なひにもちょっとよくわからなくなってきています。
債務分割という点ではよさげなんですが、基本的にmarshal_dumpペアを
定義したクラスを継承する、なんてレアなケースだと思いますし、
複雑さを考えると避けるべき設計だと思います。ただ、それでもどうしても
継承したくなった場合、子が親のシリアライズフォーマットまで規定しないと
いけないというのは厳しい。。親クラスは他人が書いていて、いつ何時
インスタンス変数が増えたり、シリアライズフォーマットが変更されるかも。。
というわけでよくわかりません。苦労している方のコメントをお待ちします。
ちなみに、債務を分割する場合、各クラスにおいて、そのクラスで導入した
インスタンス変数が取り出せると便利です。例えばmarshal_dumpペアが
定義されていないクラス階層では、rubyが、デフォルトで、そのクラスで
導入されたインスタンス変数のみを書き出してあげるとか。
class Foo
def initialize
@foo = STDERR
end
def marshal_dump
# @fooは書き出さない
end
end
class Bar < Foo
def initialize
super
@bar = 123
end
end
class Baz < Bar
def initialize
super
@baz = STDOUT
end
def marshal_dump
# @bazは書き出さない
end
end
Marshal.load(Marshal.dump(Baz.new)) # @barのみ保存されて欲しい
無理でしょうか。
> |Rubyでは、インスタンス変数がどのクラスで定義されているか、
> |あまり意識してない人が多いような気がします(?)。よって咳さんの
> |書かれてるように、Javaみたいにクラス階層をたどることで債務分割を
> |するのでなく、一番下位のmarshal_dump/marshal_loadを定義するヤツが
> |気をつけて全部やれ、とするのもアリだと思います。
>
> 現時点ではそうなってますね。
はい。
> |関連してひとつ、別の提案ですが、Javaでは、とあるメソッド(readResolve)を
> |定義しておくと、loadの後に呼んでくれて、そいつが返したオブジェクトを元の
> |オブジェクトとすりかえる、という機能があります。singletonやenumな
> |クラスで、loaderが生成した新規オブジェクトを、singletonオブジェクトと
> |すりかえられます。
>
> すいません。Javaについてあまり知識が無いので、「loadの後に呼
> んでくれて」、「元のオブジェクトとすりかえる」という記述が具
> 体的にはイメージできませんでした。もうちょっと説明していただ
> けませんか?
えーと、readResolveはJDK/1.2から追加されたインタフェイスで、
つまり1.1までのフォーマットと実装しかよく知らないなひは
弱いのですが(言い訳)、
class Foo implements Serializable {
private static final Foo singleton = new Foo();
public static final Foo getInstance() { return singleton; }
private Foo() {}
private void readObject(ObjectInputStream in)
throws IOException, ClassNotFoundException {
in.defaultReadObject();
}
private Object readResolve() {
return singleton;
}
}
こんなことをしておくと、Fooのserialized formatを読み込む際、
readObjectで新たなFooインスタンスが生成されたあと、そいつの
readResolveメソッドが呼ばれ、返ってきたsingletonが、読み込む
オブジェクトグラフ中に代わりに埋め込まれます。readObjectで
作られた新たなFooインスタンスはすぐに捨てられます。
readResolveが呼ばれるタイミングは、serialize formatを読み込んで
いく最中、readObjectを呼んでオブジェクトの構築が終わった直後です。
http://java.sun.com/j2se/1.3/docs/guide/serialization/spec/input.doc6.html
という話ではなく、もしかして実装方法でしょうか。
(現時点では)なひも実装は見てません。^^;
readResolveについては、クラス階層を順に呼ぶのではなく、通常の
メソッド呼び出し相当で1つだけ呼ばれます。該当クラスで定義されて
いればそれが呼ばれ、該当クラスで定義されていない場合は、
親クラスでprivateとして定義されていれば呼ばれず、
protectedなら呼ばれます。