From: Masao M. <mu...@hi...> - 2004-10-12 13:59:52
|
むとうです。 -enの方を読まれてる方はご存じかと思いますが、 Ruby/GStreamerを始め多くのライブラリをもりもりと実装 してくれたロランが、就職を期にプロジェクトを離れる ことになりました。 #契約上、オープンソースに関わることができないそうです。 大変残念ですが、彼の前途を祝したいと思います。 で、ご相談なのですが、どなたかメンテナを引き継いで いただけないでしょうか? 彼のメンテナンスしていたライブラリは Ruby/GStreamer, Ruby/Libgda, Ruby/GtkSourceView Ruby/GtkTrayIconです。 また、もし、別のライブラリでメンテナンスしても 良いライブラリがあるよ!という人がいらっしゃいましたら あわせて募集します。 是非、みなさんのご参加をお待ちしております。 それでは。 -- .:% Masao Mutoh<mu...@hi...> |
From: Kouhei S. <ko...@co...> - 2004-10-12 14:53:01
|
はじめまして,須藤といいます. 既存のライブラリのメンテナンス募集ということなら的外れな事に なりますが. In <200...@hi...> "[ruby-gnome2-devel-ja] Maintainer wanted" on Tue, 12 Oct 2004 22:57:46 +0900, Masao Mutoh <mu...@hi...> wrote: > また、もし、別のライブラリでメンテナンスしても > 良いライブラリがあるよ!という人がいらっしゃいましたら > あわせて募集します。 昨日libgnomeprint (>= 2.8)のバインディングを書きました. もし取り込んでもらえるならメンテナンスします. % svn co http://www.cozmixng.org/repos/ruby/libgnomeprint/trunk libgnomeprint # 必要な人がいればアーカイブします. ただ,Pangoインターフェイスの部分を書いたので,テキストの属 性まわり(libgnomeprint/gnome-font.hとか)は一切手を付けてい ません. # Pangoインターフェイスは,libgnomeprint 2.6では無くて,2.8で # 追加されているので,もしかしたらgnome-font.hとかの部分は将 # 来無くなるのでは?と勝手に思い込んでしまって,テキストの属 # 性まわりは書く気がしなかったりします. まだろくにテストをしていないので不安定だと思いますが, http://www.cozmixng.org/repos/ruby/libgnomeprint/trunk/sample/to_file.rb というコードで http://pub.cozmixng.org/~kou/archives/sample.ps http://pub.cozmixng.org/~kou/archives/sample.pdf のようなものができます. # PDFの方で画像が入っていないのは,libgnomeprintのPDF出力モ # ジュールがαチャンネル付きの画像をサポートしていないからで # す. とりあえず,これからアプリケーション(Rabbitなんですが)で使っ てみて様子をみようと思っています. あ,このコードはlibgnomeprint 2.8以降を要求するので, extconf.rbでライブラリのバージョンをチェックできるとうれしい です. 例えばこんなのがあって module PKGConfig module_function def or_newer?(pkg, version) STDOUT.print("checking for #{pkg} version (>= #{version})... ") STDOUT.flush mod_version = `#{@@cmd} --modversion #{pkg}`.chomp result = (mod_version.split(".") <=> version.split(".")) >= 0 result_message = result ? "yes" : "no" STDOUT.print "#{result_message}\n" result end end こんな風に使えたらどうでしょうか. PKGConfig.or_newer?("libgnomeprint-2.2", "2.8") or exit 1 |
From: Masao M. <mu...@hi...> - 2004-10-12 15:56:27
|
むとうです。 On Tue, 12 Oct 2004 23:51:25 +0900 (JST) Kouhei Sutou <ko...@co...> wrote: > はじめまして,須藤といいます. Rabbitいいですね。期待してます(^^)。 > 既存のライブラリのメンテナンス募集ということなら的外れな事に > なりますが. > > In <200...@hi...> > "[ruby-gnome2-devel-ja] Maintainer wanted" on Tue, 12 Oct 2004 22:57:46 +0900, > Masao Mutoh <mu...@hi...> wrote: > > > また、もし、別のライブラリでメンテナンスしても > > 良いライブラリがあるよ!という人がいらっしゃいましたら > > あわせて募集します。 > > 昨日libgnomeprint (>= 2.8)のバインディングを書きました. > もし取り込んでもらえるならメンテナンスします. おぉ、それはそれは。 ただ、Ruby-GNOME2では、ある程度の一貫性を持たせるため、 結構うるさくルールが決まってます。それでもよろしければ歓迎します。 もちろん、納得行かない場合はあえて統合していただく必要はありません。 これは、決してケンカを売っているわけではなく、純粋に 須藤さんのやりやすいように開発すれば良いでしょうという ことを言っています。GNOME系のライブラリを全てRuby-GNOME2 でメンテナンスしようとは思っていないですし(そんなことしたら 私が死んでしまいます(^^;))、ポリシーの合わないものを総合的にメンテナンス する気もないです。お互いハッピーになる方向ということで。 # もちろん、その場合はRuby-GNOME2のサイトからOther GNOME librariesという # ページを作ってリンクさせていただければありがたいと思います。 > % svn co http://www.cozmixng.org/repos/ruby/libgnomeprint/trunk libgnomeprint ソースを読みました。 さっそくですが、Ruby-GNOME2のルールをふまえ、いくつか質問&お願いがあります。 1. ライブラリ名はlibgnomeprintで良いのか。 結構、他のライブラリはlibを取ったものが多いです。 たとえば、gnome, gnomecanvasなど。 ただ、これはライブラリ作者にお任せしていますので libをつけたままでもかまいません。 2. libgnomeprintuiは含まれない? 単に質問です。 3. mergeする場合は、sample/cozmixchu.pngなど、須藤さんの 別プロジェクトOrientedな名称はご遠慮ください。 4. How to implement Ruby-GNOME2 / Naming and Conversion Rules をご一読ください。 たとえば.... * #get_fooというメソッドで引数がないものは#fooに なります。#set_fooというメソッドで引数が1つのものは#foo= を用意します(これはG_DEF_SETTERS()を使います。) * gnome_print_config_set_boolean/int/double()等のメソッドは 1つにまとめてしまい、メソッドの中で適宜振り分けるようにします。 #例外アリ。 * ライブラリ名は2階層より深くしないようにします。 #一部例外アリ。 Gnome::Print::GPA => Gnome::PrintGPA, Gnome::Print::Job => Gnome::PrintJob * 一部の名称はより、Rubyっぽく(あるいは統一感のあるように) 変更することを推奨します。 たとえば、Gnome::PrintReturnCode#setrgbcolor => set_rgbcolorなど。 かつ、G_DEF_SETTERS()を使ってrgbcolor=メソッドも併せて用意する ようにします。 > ただ,Pangoインターフェイスの部分を書いたので,テキストの属 > 性まわり(libgnomeprint/gnome-font.hとか)は一切手を付けてい > ません. > # Pangoインターフェイスは,libgnomeprint 2.6では無くて,2.8で > # 追加されているので,もしかしたらgnome-font.hとかの部分は将 > # 来無くなるのでは?と勝手に思い込んでしまって,テキストの属 > # 性まわりは書く気がしなかったりします. なるほど。基本的には全体的に網羅するようにしていただきたいのですが、 理由があれば良いと思います。 ただ、その辺を含め、ライブラリ単位にWWWサイト上にStatusページを 書いていただいています。 #これも結構面倒くさいです(^^;)。 > あ,このコードはlibgnomeprint 2.8以降を要求するので, > extconf.rbでライブラリのバージョンをチェックできるとうれしい > です. > > 例えばこんなのがあって > > module PKGConfig > module_function > def or_newer?(pkg, version) > STDOUT.print("checking for #{pkg} version (>= #{version})... ") > STDOUT.flush > mod_version = `#{@@cmd} --modversion #{pkg}`.chomp > result = (mod_version.split(".") <=> version.split(".")) >= 0 > result_message = result ? "yes" : "no" > STDOUT.print "#{result_message}\n" > result > end > end > > こんな風に使えたらどうでしょうか. > > PKGConfig.or_newer?("libgnomeprint-2.2", "2.8") or exit 1 これいいですね。採用する方向で検討します。 #名前はちょっと変えるかも...。 ご検討、よろしくお願いいたします。 -- .:% Masao Mutoh<mu...@hi...> |
From: Kouhei S. <ko...@co...> - 2004-10-13 00:07:07
|
須藤です. In <200...@hi...> "Re: [ruby-gnome2-devel-ja] Maintainer wanted" on Wed, 13 Oct 2004 00:56:17 +0900, Masao Mutoh <mu...@hi...> wrote: > ただ、Ruby-GNOME2では、ある程度の一貫性を持たせるため、 > 結構うるさくルールが決まってます。それでもよろしければ歓迎します。 ルールというのは,具体的にはHow to implement Ruby-GNOME2(あ る時点のスナップショットでもいいのでアーカイブにも含まれてい るといいかもしれません)にあるようなコーディングルールと, Statusを明示するということでよいですか? そういうことであればそのルールに従います. > もちろん、納得行かない場合はあえて統合していただく必要はありません。 > これは、決してケンカを売っているわけではなく、純粋に > 須藤さんのやりやすいように開発すれば良いでしょうという > ことを言っています。GNOME系のライブラリを全てRuby-GNOME2 > でメンテナンスしようとは思っていないですし(そんなことしたら > 私が死んでしまいます(^^;))、ポリシーの合わないものを総合的にメンテナンス > する気もないです。お互いハッピーになる方向ということで。 気持ちはわかりますし,私もその方がよいと思います. 今回の場合は,以下の理由から仲良くしてもらった方が*私が*嬉し いのでよろしくお願いしたいです. * Windows版のバイナリを用意してもらえるかも * Ruby-GNOME2のルールの中で特に気に入らないというものがな い > 1. ライブラリ名はlibgnomeprintで良いのか。 bootstrapとしてlibgdaを参考にしたのでlibが付いています. 無くてもよいということなのでlibを取ります. > 2. libgnomeprintuiは含まれない? 別パッケージだと思う(*)ので違うライブラリとして用意した方が良い 気がします. (*) pkg-configにlibgnomeprint-2.2とlibgnomeprintui-2.2がある から. > 3. mergeする場合は、sample/cozmixchu.pngなど、須藤さんの > 別プロジェクトOrientedな名称はご遠慮ください。 単にサンプルとして手元にあった画像を使っただけなので,merge する時は赤い足の画像などを使おうかと思っていました. > 4. How to implement Ruby-GNOME2 / Naming and Conversion Rules > をご一読ください。 ここあたりは試用しながら直していこうと思っていました. 中途半端な状態で公開してしまってすいませんでした. # ちょうど良いタイミングでメールが着たもので. 以下,引用していない部分は了解したと思ってください. > * gnome_print_config_set_boolean/int/double()等のメソッドは > 1つにまとめてしまい、メソッドの中で適宜振り分けるようにします。 > #例外アリ。 gnome_print_config_get{,_boolean,_int,_double}()はそれぞれ別 ^^^ メソッドとしてマッピングしたままでよろしいですか? # できれば一つにまとめたいけど,どうしたらいいんだろう... コメント頂きありがとうございました. 試用してみてからまたお知らせします. |
From: Masao M. <mu...@hi...> - 2004-10-13 16:52:38
|
むとうです。 On Wed, 13 Oct 2004 09:06:51 +0900 (JST) Kouhei Sutou <ko...@co...> wrote: > 須藤です. > > In <200...@hi...> > "Re: [ruby-gnome2-devel-ja] Maintainer wanted" on Wed, 13 Oct 2004 00:56:17 +0900, > Masao Mutoh <mu...@hi...> wrote: > > > ただ、Ruby-GNOME2では、ある程度の一貫性を持たせるため、 > > 結構うるさくルールが決まってます。それでもよろしければ歓迎します。 > > ルールというのは,具体的にはHow to implement Ruby-GNOME2(あ > る時点のスナップショットでもいいのでアーカイブにも含まれてい > るといいかもしれません)にあるようなコーディングルールと, > Statusを明示するということでよいですか? > > そういうことであればそのルールに従います. ありがとうございます。 #ただ、一応、Websiteが常に情報の中心になるようにしてますので #アーカイブに入れる予定は無いです。 あと、実は、CVSとリリースのポリシーというのがあります。 #これもHikiに書いとかないといかんなぁと思いつつ...(^^;) 1. [SourceForge]/ruby-gnome2/ruby-gnome2/xxxxx コアライブラリとなります。 Ruby-GNOME2の一部となるため、xxxxx単独のリリース、 バージョンニングはできません。 2. [SourceForge]/ruby-gnome2/xxxxx Ruby-GNOME2が提供するライブラリですが、ruby-gnome2-allには 含まれず、それぞれが独立してリリースする形式を取ります。 この場合、メンテナ(つまり須藤さん)がリリースも受け持つ ことになります。 面倒くさいことが多いですが、unstableなうちは独自にリリース したいと言う場合はこちらを採用することが多いようです。 #Ruby/GtkSourceView等がそれに該当。 ただ、Ruby/GtkTrayIconのように、ruby-gnome2-allに入れたくない と私が判断した場合はこちらでやっていただくことを お願いしています。 gnomeprintの場合はどちらを取っていただいても結構です。 あと、もう一つ。これはお願い事なのですが、(おいおいで構わないので) APIリファレンス(英語版)も書いていただけると....。 #あ、でも、これはあまり強く言えないですね、他のライブラリも #そろってないものが多いですし。 > 今回の場合は,以下の理由から仲良くしてもらった方が*私が*嬉し > いのでよろしくお願いしたいです. > > * Windows版のバイナリを用意してもらえるかも > * Ruby-GNOME2のルールの中で特に気に入らないというものがな > い う、Windows版ですか...(^^;)。gnomeprint自体のWindows版って どこかに転がってましたっけ? #というより、One-click installerでRuby/GTK2自体が動かないん #ですよね、今。誰か助けてー(泣)。 > > 1. ライブラリ名はlibgnomeprintで良いのか。 > > bootstrapとしてlibgdaを参考にしたのでlibが付いています. > > 無くてもよいということなのでlibを取ります. 了解です。 > > 2. libgnomeprintuiは含まれない? > > 別パッケージだと思う(*)ので違うライブラリとして用意した方が良い > 気がします. > > (*) pkg-configにlibgnomeprint-2.2とlibgnomeprintui-2.2がある > から. 了解です。 > > 3. mergeする場合は、sample/cozmixchu.pngなど、須藤さんの > > 別プロジェクトOrientedな名称はご遠慮ください。 > > 単にサンプルとして手元にあった画像を使っただけなので,merge > する時は赤い足の画像などを使おうかと思っていました. ありがとうございます。それでお願いします。 > > 4. How to implement Ruby-GNOME2 / Naming and Conversion Rules > > をご一読ください。 > > ここあたりは試用しながら直していこうと思っていました. > 中途半端な状態で公開してしまってすいませんでした. > # ちょうど良いタイミングでメールが着たもので. はい。ただ、後方互換性を考えると、リリースするまでに一度 APIだけは見直しておいた方がいいと思います。 #といいつつ、細かいレベルで後方互換性が必ずしも守れていなかったり #するのですが(^^;)。 > 以下,引用していない部分は了解したと思ってください. ありがとうございます。 > > * gnome_print_config_set_boolean/int/double()等のメソッドは > > 1つにまとめてしまい、メソッドの中で適宜振り分けるようにします。 > > #例外アリ。 > > gnome_print_config_get{,_boolean,_int,_double}()はそれぞれ別 > ^^^ > メソッドとしてマッピングしたままでよろしいですか? > # できれば一つにまとめたいけど,どうしたらいいんだろう... そうなんです。そういった場合は元のまま別メソッド化するしかないですよね。 #良いアイデアがあればいいのですけど。 そうなるとsetterもそれに合わせたい、という風になるかもしれません。 特に合わせなくても良いですし、合わせても良いと思います。 例外アリと言ったのはそういったことで、その辺はケースバイケースという ことで。 それでは。 P.S. おっと、そうそう、須藤さんのSFのアカウントを教えてください。 CVSにアクセスできるようにしておきます。 -- .:% Masao Mutoh<mu...@hi...> |
From: Kenichi.Tamura <sgs...@ni...> - 2004-10-14 14:23:41
|
たむらです。ごめんなさい、ここだけ。 Masao Mutoh wrote: > #というより、One-click installerでRuby/GTK2自体が動かないん > #ですよね、今。誰か助けてー(泣)。 MoonWolf氏のOne-Click Ruby Installer for Windows日本語版が Ruby-GNOME2を含むようになりました。 http://www.moonwolf.com/ruby-setup-20041012.exe ファイルサイズが 25.6M、展開して、89.8Mの力作。 gtk-demo\main.rbで試すと最初の画面は表示される。いくつかは成功。 PixBuffのサンプルで落ちますた。 -- たむらけんいち<URL:htttp://www.rubyist.net/~tamura/d/> Gmailしたい方、メールください(残:5) |
From: Masao M. <mu...@hi...> - 2004-10-14 17:01:37
|
むとうです。 On Thu, 14 Oct 2004 23:23:23 +0900 "Kenichi.Tamura" <sgs...@ni...> wrote: > たむらです。ごめんなさい、ここだけ。 > > Masao Mutoh wrote: > > #というより、One-click installerでRuby/GTK2自体が動かないん > > #ですよね、今。誰か助けてー(泣)。 > > MoonWolf氏のOne-Click Ruby Installer for Windows日本語版が > Ruby-GNOME2を含むようになりました。 おぉ、それはそれは。 ご存じでしたら教えていただきたいのですが、 それのコンパイル環境ってVCですか?MinGWですか? > http://www.moonwolf.com/ruby-setup-20041012.exe > > ファイルサイズが 25.6M、展開して、89.8Mの力作。 すごいですね。 各アプリがきちんとアップデートしつづけることができれば RPA/Gemsより強力ですね(^^;)。 > gtk-demo\main.rbで試すと最初の画面は表示される。いくつかは成功。 > PixBuffのサンプルで落ちますた。 うーん、なんでしょう。 近いうちに試してみます。 -- .:% Masao Mutoh<mu...@hi...> |
From: Masao M. <mu...@hi...> - 2004-10-14 16:57:38
|
むとうです。 On Thu, 14 Oct 2004 14:22:25 +0900 (JST) Kouhei Sutou <ko...@co...> wrote: > 須藤です. > > In <200...@hi...> > "Re: [ruby-gnome2-devel-ja] Maintainer wanted" on Thu, 14 Oct 2004 01:51:34 +0900, > Masao Mutoh <mu...@hi...> wrote: > > > あと、実は、CVSとリリースのポリシーというのがあります。 > > > > 1. [SourceForge]/ruby-gnome2/ruby-gnome2/xxxxx > > > > 2. [SourceForge]/ruby-gnome2/xxxxx > > > > gnomeprintの場合はどちらを取っていただいても結構です。 > > 単独リリースする理由が見付からないので,1.でお願いします. 了解です。 > > あと、もう一つ。これはお願い事なのですが、(おいおいで構わないので) > > APIリファレンス(英語版)も書いていただけると....。 > > 了解しました. > # あぁ,書かなければいけないAPIリファレンスが増えていく... 私自身、まだRuby/GTKのAPIリファレンスがCompleteできてないのに こんなお願いして恐縮です。 > > > * Windows版のバイナリを用意してもらえるかも > > > > う、Windows版ですか...(^^;)。gnomeprint自体のWindows版って > > どこかに転がってましたっけ? > > あ,やはりないんですか. もしかしたら、あるかもしれないんですが...。 > FreeBSDのPortsのlibgnomeprintも2.6なので,気軽に遊べるように > なるのはまだ先のようですね. なるほど。まぁ、世間はまだまだ2.6にも追いついていない くらいですからねぇ。 > > > gnome_print_config_get{,_boolean,_int,_double}()はそれぞれ別 > > > ^^^ > > > メソッドとしてマッピングしたままでよろしいですか? > > > # できれば一つにまとめたいけど,どうしたらいいんだろう... > > > > そうなんです。そういった場合は元のまま別メソッド化するしかないですよね。 > > とりあえず,get_*(key)とget(key, type=:string)(typeに型を指 > 定すると対応するget_*に振り分ける)を用意しておこうと思いま > す. 了解です。 > > おっと、そうそう、須藤さんのSFのアカウントを教えてください。 > > ktouです. SFに登録しました。 アクセスしてみてください。 ちなみに、ruby-gnome2-cvs MLに入るとCVSのメールが流れますので よろしければどうぞ。 それでは。 -- .:% Masao Mutoh<mu...@hi...> |
From: Masao M. <mu...@hi...> - 2004-10-16 13:10:49
|
むとうです。 On Fri, 15 Oct 2004 20:09:05 +0900 (JST) Kouhei Sutou <ko...@co...> wrote: > 須藤です. > > In <200...@hi...> > "Re: [ruby-gnome2-devel-ja] Maintainer wanted" on Fri, 15 Oct 2004 01:57:15 +0900, > Masao Mutoh <mu...@hi...> wrote: > > > SFに登録しました。 > > 一通りやってみました. > 時間が空きましたら,命名規則など一通り確認していただけますか? 確認しました。 以下、つれづれなるままに。 #あまり深くわかってないのに書いてます。間違えてたらご容赦のほどを。 * REAMDE 他のライブラリを参考に、フォーマットをあわせてください。 Copyingと、Project Websiteの欄を追記していただければと思います。 * COPYING.LIBをおいてください。 * 各ファイルのヘッダ部分にライセンス情報を追加してください。 * Gnome::PrintConfig.from_stringはGnome::PrintConfig.newだけで良いのでは? * Gnome::PrintConfig.newの実装はちょっとまずいような気が...。 普通に#initializeを使った方が良いような気がします。 →というか、これ、#default, #from_stringは無くして#initializeだけに してしまって良いような気がするのですが...。 * Gnome::PrintPaper#get_by_name, #get_by_sizeですが、 このように、_by_fooと言う感じで引数が違うだけの時は一つにまとめてしまう ことが多いです。この場合は、Gnome::PrintPaper#getでしょうね。 ただ、これはお好みで。 * Gnome::PrintPaperの実装ですが、わざわざGnome::PrintPaper::Paperを 用意した意図がちょっとわからないのですが...。 単純にGnome::PrintPaperをクラスにする方が良いような気がします。 通常、このような場合、個別の仕組みを作らず、GBoxedなオブジェクトに すると楽で良いと思います。 #特に他のクラスから呼び出すとき等にはGType化しておけば、 #BOXED2RVAL, RVAL2GBOXEDの仕組みが適用できます。 たとえば、gtk/src/rbgtktextappearance.c, rbgdkgeometry.c等を参考に してください(g_boxed_type_register_staticのところ) * Gnome::PrintPrinterですが、これ、GPANodeを実装した後で そのサブクラスとして定義した方が良いような気がしますがどうでしょうか。 * G_DEF_SETTERSはset_fooが無いクラスでは呼ぶ必要ないです。 -- .:% Masao Mutoh<mu...@hi...> |
From: Masao M. <mu...@hi...> - 2004-10-17 09:49:06
|
むとうです。 On Sun, 17 Oct 2004 16:00:42 +0900 (JST) Kouhei Sutou <ko...@co...> wrote: > 須藤です. > > * Gnome::PrintConfig.newの実装はちょっとまずいような気が...。 > > 実装がまずいというのは,無駄にrb_scan_argsしているということ > ですか?これは,私のミスなので削除しました. > > > > 普通に#initializeを使った方が良いような気がします。 > > A, Bというクラスがあったとして, > > B.new # -> instance of A > > ということがしたいので,#initializeだと無理だと思います. > > class A; end > class B > def self.new > A.new > end > end > > class C > def initialize > A.new > end > end > > p B.new # -> A > p C.new # -> C 上記のご説明いただいた内容からしますと、 B.new #=> Aということ自体、直感的でないような気がします。 B.newで返すインスタンスはBであるべきでは?ということです。 逆に、同様のことをしたいのでしたらメソッド名を変えるとかの方が 良いような気がします。 たとえば、B.create_factoryとか。 でも、私が指摘した点はもっと単純で、Rubyとlibgnomeprintの ライブラリの対応関係を考えて gnome_print_config_default/_from_stringの実装を見ると、 どちらも、GNOME_TYPE_PRINT_CONFIGのインスタンスを作っているので B.new #=> AではなくB.new #=> Bでは無いでしょうか(つまり、Ruby側 から見るとそれはやはりGnomePrintConfigのインスタンスなのではないかなと) と言う前提の元、それならば#initializeを実装すべきでは?ということでした。 #何か勘違いしてるのかな...。 > > →というか、これ、#default, #from_stringは無くして#initializeだけに > > してしまって良いような気がするのですが...。 > > #from_stringをなくするというのは賛成ですが, > PrintConfig.defaultはなくさない方がよいと思います. > PrintConfig.new()で毎回同じ(デフォルトの)GnomePrintConfig > が返ってくるのは自明でない気がします.PrintConfig.new()でデ > フォルトのGnomePrintConfigが返ってくるのは便利でよいと思いま > すが,コードを読む時はPrintConfig.new()より > PrintConfig.defaultと書いてあった方が意図が伝わりわりやすい > と思います. 賛成です。ただ、それであれば、PrintConfig.defaultの機能をPrintConfig.new から省くべきではないでしょうか。 > > * Gnome::PrintPaper#get_by_name, #get_by_sizeですが、 > > このように、_by_fooと言う感じで引数が違うだけの時は一つにまとめてしまう > > ことが多いです。この場合は、Gnome::PrintPaper#getでしょうね。 > > ただ、これはお好みで。 > > Gnome::PrintPaper#getのみにしました. > 一応,Gnome::PrintPaper#get()でGnome::PrintPaper#defaultと同 > じことになるのですが,Gnome::PrintPaper#defaultの方がデフォ > ルトの用紙という感じがでるので,Gnome::PrintPaper#defaultも > 残してあります. 良いと思います。 > > * Gnome::PrintPaperの実装ですが、わざわざGnome::PrintPaper::Paperを > > 用意した意図がちょっとわからないのですが...。 > > rubyのレベルでいうと > > A = Struct.new(:a, :b, :c) > > と > > A = Struct.new("A", :a, :b, :c) > > の違いで,今回は後者を使っていたので,A::Aがあるという話です > よね? いやいや、単純にGnomePrintPaperという構造体をラップするのに、 Gnome::PrintPaper::Paperは不要(というか冗長)なのではないかな、 ということです。 > なんですが, > > > 単純にGnome::PrintPaperをクラスにする方が良いような気がします。 > > 通常、このような場合、個別の仕組みを作らず、GBoxedなオブジェクトに > > すると楽で良いと思います。 > > ということなので,そうしました. そうですね、この方が良いように思います。 > > * Gnome::PrintPrinterですが、これ、GPANodeを実装した後で > > そのサブクラスとして定義した方が良いような気がしますがどうでしょうか。 > > そうですね. > おいおいやっていきます. そうですね。今すぐ必要と言うことでは無いと思います。 > ちなみに,次のリリース予定はありますか? > それまでには仕上げます. あぁ、そういえばそろそろリリースしないとなぁと思いつついろいろと 忙しさにかまけて考えてませんでした。 そうですねぇ。10月末くらいを目処に一度リリースするというのは どうでしょうか? #もっと早いほうが良いですか? -- .:% Masao Mutoh<mu...@hi...> |
From: Masao M. <mu...@hi...> - 2004-10-17 11:46:29
|
むとうです。 On Sun, 17 Oct 2004 20:01:31 +0900 (JST) Kouhei Sutou <ko...@co...> wrote: > 須藤です. > 確かに,PrintConfig.newはPrintConfigオブジェクトを返すのです > が,返したいオブジェクトはClass#new(Class.new???)でアロケー > トしたPrintConfigオブジェクトではないのです(B.new #=> Aはそ > こらへんをいいたかったらしい).具体的には > gnome_print_config_from_string()でアロケートされた > GnomePrintConifgです. > > でも、私が指摘した点はもっと単純で、Rubyとlibgnomeprintの > > ライブラリの対応関係を考えて > > gnome_print_config_default/_from_stringの実装を見ると、 > > どちらも、GNOME_TYPE_PRINT_CONFIGのインスタンスを作っているので > > B.new #=> AではなくB.new #=> Bでは無いでしょうか(つまり、Ruby側 > > から見るとそれはやはりGnomePrintConfigのインスタンスなのではないかなと) > > と言う前提の元、それならば#initializeを実装すべきでは?ということでした。 > > #何か勘違いしてるのかな...。 > > > #initializeでごにょごにょやろうとしても,#initializeではもう > すでにClass#newとかでGnomePrintConfigがアロケートされてしまっ > ています.この時点ではもう遅いのです. > > 私の考えは以下のような感じです. > > > PrintConfig#initializeでやる場合 > > PrintConfig.newすると... > > (1) どこかでGnomePrintConfigをアロケートする. > (2) アロケートしたオブジェクトを#initializeで初期化する. > > #initializeでgnome_print_from_string()でアロケートした > GnomePrintCofnigを返しても,PrintConfig.newが返すのは > Class#newとかがアロケートしたGnomePrintConfig. > > →だから今回は使えなそう. > > > PrintConfig.newでやる場合 > > PrintConfig.newすると... > > (1) gnome_print_from_string()でGnomePrintConfigをアロケー > トし,それを返す. > > →だから今回はこっちの方がよさそう. > > > rubyのレベルでいうと, > > class A > attr_accessor :a > > @@obj = A.new > > def self.a_is_one > @@obj.a = 1 > @@obj > end > end > > class B < A > def self.new > a_is_one > end > end > > class C < A > def initialize > self.class.a_is_one > end > end > > p B.new.a # => 1 > p C.new.a # => nil > > というようになるのですが,私の意図は汲み取って頂けるでしょう > か. すみません。もうちょっと教えてください。 もしかしたら、他にも該当する可能性があるのできちんと理解したい んです。 どこでRubyのオブジェクトをアロケートするか、どこでCの構造体 をアロケートするか、というところが問題の焦点ということですよね。 であれば、そもそもPrintConfig.newの中から別のRubyメソッドを 呼び出すような実装に*しなければ*良いのではないでしょうか。 うまく説明できないのでコードを示します。 static VALUE gp_config_initialize(int argc, VALUE* argv, VALUE self) { VALUE flags; /* currently not used in libgnomeprint. */ VALUE string; GnomePrintConfig* config; rb_scan_args(argc, argv, "11", &string, &flags); if (NIL_P(flags)) { flags = INT2NUM(0); } config = gnome_print_config_from_string(RVAL2CSTR(string), NUM2UINT(flags)); G_INITIALIZE(self, config); return Qnil; } これならば、GnomeConfig.newすると、 (1) Class.newでGnome::PrintConfigを作る(けど中身なし) (2) Class.newを#initializeで初期化する. #initializeでgnome_print_from_string()でアロケートした GnomePrintCofnigを返し、それを(1)で作ったGnome::PrintConfig に割り当てる -- という理解でして、それであれば#initializeを使えると思うのですが、 もしかして間違えてますか(^^;)? ちなみに、なぜ、ここにこだわるかというと、 そもそもnewをオーバーライドしちゃうとサブクラスが作れない という問題があるからです。 -- .:% Masao Mutoh<mu...@hi...> |
From: Kouhei S. <ko...@co...> - 2004-10-17 12:24:36
|
須藤です. In <200...@hi...> "Re: [ruby-gnome2-devel-ja] Maintainer wanted" on Sun, 17 Oct 2004 20:46:20 +0900, Masao Mutoh <mu...@hi...> wrote: > どこでRubyのオブジェクトをアロケートするか、どこでCの構造体 > をアロケートするか、というところが問題の焦点ということですよね。 > > であれば、そもそもPrintConfig.newの中から別のRubyメソッドを > 呼び出すような実装に*しなければ*良いのではないでしょうか。 > > うまく説明できないのでコードを示します。 (snip) > config = gnome_print_config_from_string(RVAL2CSTR(string), > NUM2UINT(flags)); > G_INITIALIZE(self, config); (snip) > これならば、GnomeConfig.newすると、 > (1) Class.newでGnome::PrintConfigを作る(けど中身なし) > (2) Class.newを#initializeで初期化する. > #initializeでgnome_print_from_string()でアロケートした > GnomePrintCofnigを返し、それを(1)で作ったGnome::PrintConfig > に割り当てる なるほど. 確かにこれだと#initializeでいけますね. ということで,そのようにしました. # 知らなかった. ## と思ったらrbgp-gnome-print-{config,job}.cで知らないうちに ## 同じようなことをやっていたのか... |
From: Masao M. <mu...@hi...> - 2004-10-17 09:56:48
|
須藤さん むとうです。 そうそう、-en MLの方でrabbitの質問とパッチが出てます。 よろしければリプライしておいていただければと。 #-en MLも入られてますよね? -- .:% Masao Mutoh<mu...@hi...> |
From: Kouhei S. <ko...@co...> - 2004-10-17 11:03:58
|
須藤です. In <200...@hi...> "Re: [ruby-gnome2-devel-ja] Maintainer wanted" on Sun, 17 Oct 2004 18:56:23 +0900, Masao Mutoh <mu...@hi...> wrote: > そうそう、-en MLの方でrabbitの質問とパッチが出てます。 はい,知っています. パッチを取り込んでからメールをだそうと思っていました. わざわざ連絡して頂き,ありがとうございます. |
From: Kouhei S. <ko...@co...> - 2004-10-17 11:01:45
|
須藤です. In <200...@hi...> "Re: [ruby-gnome2-devel-ja] Maintainer wanted" on Sun, 17 Oct 2004 18:48:54 +0900, Masao Mutoh <mu...@hi...> wrote: > > A, Bというクラスがあったとして, > > > > B.new # -> instance of A > > > > ということがしたいので,#initializeだと無理だと思います. > > > > class A; end > > class B > > def self.new > > A.new > > end > > end > > > > class C > > def initialize > > A.new > > end > > end > > > > p B.new # -> A > > p C.new # -> C > > 上記のご説明いただいた内容からしますと、 > B.new #=> Aということ自体、直感的でないような気がします。 > B.newで返すインスタンスはBであるべきでは?ということです。 > 逆に、同様のことをしたいのでしたらメソッド名を変えるとかの方が > 良いような気がします。 > たとえば、B.create_factoryとか。 うぅ,例が悪かったです. # こっちの方が意図が伝わるかと思ったのですが,失敗でした. 確かに,PrintConfig.newはPrintConfigオブジェクトを返すのです が,返したいオブジェクトはClass#new(Class.new???)でアロケー トしたPrintConfigオブジェクトではないのです(B.new #=> Aはそ こらへんをいいたかったらしい).具体的には gnome_print_config_from_string()でアロケートされた GnomePrintConifgです. > でも、私が指摘した点はもっと単純で、Rubyとlibgnomeprintの > ライブラリの対応関係を考えて > gnome_print_config_default/_from_stringの実装を見ると、 > どちらも、GNOME_TYPE_PRINT_CONFIGのインスタンスを作っているので > B.new #=> AではなくB.new #=> Bでは無いでしょうか(つまり、Ruby側 > から見るとそれはやはりGnomePrintConfigのインスタンスなのではないかなと) > と言う前提の元、それならば#initializeを実装すべきでは?ということでした。 > #何か勘違いしてるのかな...。 #initializeでごにょごにょやろうとしても,#initializeではもう すでにClass#newとかでGnomePrintConfigがアロケートされてしまっ ています.この時点ではもう遅いのです. 私の考えは以下のような感じです. PrintConfig#initializeでやる場合 PrintConfig.newすると... (1) どこかでGnomePrintConfigをアロケートする. (2) アロケートしたオブジェクトを#initializeで初期化する. #initializeでgnome_print_from_string()でアロケートした GnomePrintCofnigを返しても,PrintConfig.newが返すのは Class#newとかがアロケートしたGnomePrintConfig. →だから今回は使えなそう. PrintConfig.newでやる場合 PrintConfig.newすると... (1) gnome_print_from_string()でGnomePrintConfigをアロケー トし,それを返す. →だから今回はこっちの方がよさそう. rubyのレベルでいうと, class A attr_accessor :a @@obj = A.new def self.a_is_one @@obj.a = 1 @@obj end end class B < A def self.new a_is_one end end class C < A def initialize self.class.a_is_one end end p B.new.a # => 1 p C.new.a # => nil というようになるのですが,私の意図は汲み取って頂けるでしょう か. > 賛成です。ただ、それであれば、PrintConfig.defaultの機能をPrintConfig.new > から省くべきではないでしょうか。 そうですね. そうします. > > > * Gnome::PrintPaperの実装ですが、わざわざGnome::PrintPaper::Paperを > > > 用意した意図がちょっとわからないのですが...。 > > > > rubyのレベルでいうと > > > > A = Struct.new(:a, :b, :c) > > > > と > > > > A = Struct.new("A", :a, :b, :c) > > > > の違いで,今回は後者を使っていたので,A::Aがあるという話です > > よね? > > いやいや、単純にGnomePrintPaperという構造体をラップするのに、 > Gnome::PrintPaper::Paperは不要(というか冗長)なのではないかな、 > ということです。 ん? A = Struct.new(:a) p A.constants # => ["Tms"] B = Struct.new("B", :a) p B.constants # => ["B", "Tms"] p B.id # => 540681504 p B::B.id # => 540681504 ということと同じですよね? # 今回の場合は私のミスでGnome::PrintPaperと # ^^^^^^^^^^ # Gnome::PrintPaper::Paperというように定数名が異なっていますが. # ^^^^^ つまり,Gnome::PrintPaperとGnome::PrintPaper::Paperは同じも のだから問題ないですよね?ということが言いたかっただけです. > そうですねぇ。10月末くらいを目処に一度リリースするというのは > どうでしょうか? そのくらいあれば大丈夫だと思います. > #もっと早いほうが良いですか? いえいえ,そんなことはないです. :-) |
From: Kouhei S. <ko...@co...> - 2004-10-15 11:09:24
|
須藤です. In <200...@hi...> "Re: [ruby-gnome2-devel-ja] Maintainer wanted" on Fri, 15 Oct 2004 01:57:15 +0900, Masao Mutoh <mu...@hi...> wrote: > SFに登録しました。 一通りやってみました. 時間が空きましたら,命名規則など一通り確認していただけますか? |
From: Masao M. <mu...@hi...> - 2004-10-15 16:16:14
|
むとうです。 On Fri, 15 Oct 2004 20:09:05 +0900 (JST) Kouhei Sutou <ko...@co...> wrote: > 須藤です. > > In <200...@hi...> > "Re: [ruby-gnome2-devel-ja] Maintainer wanted" on Fri, 15 Oct 2004 01:57:15 +0900, > Masao Mutoh <mu...@hi...> wrote: > > > SFに登録しました。 > > 一通りやってみました. > 時間が空きましたら,命名規則など一通り確認していただけますか? 了解です。明日にでも確認させていただきますね。 APIリファレンスの方もありがとうございます。 ぱっと見気づいたAPIリファレンスですが、引数が0個の場合、()は省略してます。 そうそう、それから忘れてたのですが、APIリファレンスにはCVSの tools/mkrd/mkrd.rb が便利です。rbbrをインストールして使えば、クラス・モジュールのAPI用テンプレート を抽出できます。 #順序等は自分で直していただく必要がありますけど。 よろしければお使いください。 それでは。 -- .:% Masao Mutoh<mu...@hi...> |
From: Kouhei S. <ko...@co...> - 2004-10-17 07:00:59
|
須藤です. In <200...@hi...> "Re: [ruby-gnome2-devel-ja] Maintainer wanted" on Sat, 16 Oct 2004 22:10:38 +0900, Masao Mutoh <mu...@hi...> wrote: > * REAMDE > 他のライブラリを参考に、フォーマットをあわせてください。 > Copyingと、Project Websiteの欄を追記していただければと思います。 そうしました. > * COPYING.LIBをおいてください。 置きました. > * 各ファイルのヘッダ部分にライセンス情報を追加してください。 追加しました. > * Gnome::PrintConfig.from_stringはGnome::PrintConfig.newだけで良いのでは? 削除しました. > * Gnome::PrintConfig.newの実装はちょっとまずいような気が...。 実装がまずいというのは,無駄にrb_scan_argsしているということ ですか?これは,私のミスなので削除しました. > 普通に#initializeを使った方が良いような気がします。 A, Bというクラスがあったとして, B.new # -> instance of A ということがしたいので,#initializeだと無理だと思います. class A; end class B def self.new A.new end end class C def initialize A.new end end p B.new # -> A p C.new # -> C > →というか、これ、#default, #from_stringは無くして#initializeだけに > してしまって良いような気がするのですが...。 #from_stringをなくするというのは賛成ですが, PrintConfig.defaultはなくさない方がよいと思います. PrintConfig.new()で毎回同じ(デフォルトの)GnomePrintConfig が返ってくるのは自明でない気がします.PrintConfig.new()でデ フォルトのGnomePrintConfigが返ってくるのは便利でよいと思いま すが,コードを読む時はPrintConfig.new()より PrintConfig.defaultと書いてあった方が意図が伝わりわりやすい と思います. > * Gnome::PrintPaper#get_by_name, #get_by_sizeですが、 > このように、_by_fooと言う感じで引数が違うだけの時は一つにまとめてしまう > ことが多いです。この場合は、Gnome::PrintPaper#getでしょうね。 > ただ、これはお好みで。 Gnome::PrintPaper#getのみにしました. 一応,Gnome::PrintPaper#get()でGnome::PrintPaper#defaultと同 じことになるのですが,Gnome::PrintPaper#defaultの方がデフォ ルトの用紙という感じがでるので,Gnome::PrintPaper#defaultも 残してあります. > * Gnome::PrintPaperの実装ですが、わざわざGnome::PrintPaper::Paperを > 用意した意図がちょっとわからないのですが...。 rubyのレベルでいうと A = Struct.new(:a, :b, :c) と A = Struct.new("A", :a, :b, :c) の違いで,今回は後者を使っていたので,A::Aがあるという話です よね? で,しかも今回は A = Struct.new("B", :a, :b, :c) のように定数名と構造体名が違うので(これは私のミスです)A::B が見えるのはいかがなものかということですね. 通常はGnome::PrintPaperを使えば良いので, Gnome::PrintPaper::Paper::Paper::...となっていても問題ない気 がします. なんですが, > 単純にGnome::PrintPaperをクラスにする方が良いような気がします。 > 通常、このような場合、個別の仕組みを作らず、GBoxedなオブジェクトに > すると楽で良いと思います。 ということなので,そうしました. > * Gnome::PrintPrinterですが、これ、GPANodeを実装した後で > そのサブクラスとして定義した方が良いような気がしますがどうでしょうか。 そうですね. おいおいやっていきます. ちなみに,次のリリース予定はありますか? それまでには仕上げます. > * G_DEF_SETTERSはset_fooが無いクラスでは呼ぶ必要ないです。 rbgp-gnome-print{,-config,-unit,job}.cから削除しました. |
From: Kouhei S. <ko...@co...> - 2004-10-24 14:21:49
|
須藤です. In <200...@co...> "Re: [ruby-gnome2-devel-ja] Maintainer wanted" on Sun, 17 Oct 2004 16:00:42 +0900 (JST), Kouhei Sutou <ko...@co...> wrote: > > * Gnome::PrintPrinterですが、これ、GPANodeを実装した後で > > そのサブクラスとして定義した方が良いような気がしますがどうでしょうか。 > > ちなみに,次のリリース予定はありますか? > それまでには仕上げます. やりました. クラス名はPrintPrinter -> GPAPrinterとしました. この変更でRabbit 0.0.5が動かなくなってしまうので, src/lib/gnomeprint2.rbに(Rabbitのためだけの)後方互換性の コードを入れてあります.0.0.6をリリースしたら削除するのでそ れまでは見逃してください. |
From: Masao M. <mu...@hi...> - 2004-10-24 15:22:10
|
むとうです。 On Sun, 24 Oct 2004 23:21:32 +0900 (JST) Kouhei Sutou <ko...@co...> wrote: > 須藤です. > > In <200...@co...> > "Re: [ruby-gnome2-devel-ja] Maintainer wanted" on Sun, 17 Oct 2004 16:00:42 +0900 (JST), > Kouhei Sutou <ko...@co...> wrote: > > > > * Gnome::PrintPrinterですが、これ、GPANodeを実装した後で > > > そのサブクラスとして定義した方が良いような気がしますがどうでしょうか。 > > > > ちなみに,次のリリース予定はありますか? > > それまでには仕上げます. > > やりました. > クラス名はPrintPrinter -> GPAPrinterとしました. ありがとうございます。 > この変更でRabbit 0.0.5が動かなくなってしまうので, > src/lib/gnomeprint2.rbに(Rabbitのためだけの)後方互換性の > コードを入れてあります.0.0.6をリリースしたら削除するのでそ > れまでは見逃してください. 了解です。開発者特権と言うことで;)。 #APIリファレンスからは抜いておいた方がいいかもしれませんね。 ところで、来週リリースしようかと思っていたんですが、 どうもRuby/GnomeCanvasの動きが思わしくありません。 #終了時にエラーが出る あきらめるか、FIXできるか、見極めるのにもう少し時間が欲しいので 来週リリースは無いかもしれません。ご容赦ください。 #っていうか誰かなおして〜(T_T)/~~~。 それでは。 -- .:% Masao Mutoh<mu...@hi...> |
From: KUBO T. <ku...@ji...> - 2004-10-30 10:10:02
|
久保です。 ものすごく、おひさしぶりです。m(__)m Masao Mutoh <mu...@hi...> writes: > ところで、来週リリースしようかと思っていたんですが、 > どうもRuby/GnomeCanvasの動きが思わしくありません。 > #終了時にエラーが出る ええと、安直な対症療法ですが、gnomecanvas/src/lib/gnomecanvas2.rb の GLib::Log.set_log_domain(Gnome::Canvas::LOG_DOMAIN) をコメントにすると core dump はなくなります。その代わり、 (canvas.rb:11050): GnomeCanvas-CRITICAL **: file gnome-canvas.c: line 3723 (gnome_canvas_request_redraw): assertion `GNOME_IS_CANVAS (canvas)' failed というのが標準エラーに出ます。(^^;) # set_log_domain しなくてもログにはちゃんと GnomeCanvas って出る? > あきらめるか、FIXできるか、見極めるのにもう少し時間が欲しいので > 来週リリースは無いかもしれません。ご容赦ください。 > #っていうか誰かなおして〜(T_T)/~~~。 追おうとしたけど、すぐには分かりそうにはありません。m(__)m では、再見 -- 久保 健洋 email: ku...@ji... web: http://www.jiubao.org GnuPG fingerprint = 5F7B C8EF CA16 57D0 FDE1 9F47 C001 1F93 AC08 2262 |
From: Masao M. <mu...@hi...> - 2004-11-01 15:05:47
|
むとうです。 On Sat, 30 Oct 2004 17:33:42 +0900 KUBO Takehiro <ku...@ji...> wrote: > 久保です。 > > ものすごく、おひさしぶりです。m(__)m おぉ。ごぶさたです。お元気でしょうか。 > Masao Mutoh <mu...@hi...> writes: > > > ところで、来週リリースしようかと思っていたんですが、 > > どうもRuby/GnomeCanvasの動きが思わしくありません。 > > #終了時にエラーが出る > > ええと、安直な対症療法ですが、gnomecanvas/src/lib/gnomecanvas2.rb の > > GLib::Log.set_log_domain(Gnome::Canvas::LOG_DOMAIN) > > をコメントにすると core dump はなくなります。その代わり、 はい。 ここ、コメントにしなくても(それが原因での)core dumpしないようにはできました。 #たぶん(^^;) > (canvas.rb:11050): GnomeCanvas-CRITICAL **: file gnome-canvas.c: line 3723 (gnome_canvas_request_redraw): assertion `GNOME_IS_CANVAS (canvas)' failed > > というのが標準エラーに出ます。(^^;) > # set_log_domain しなくてもログにはちゃんと GnomeCanvas って出る? set_log_domainはエラー出力関数をすげ替えるものなので、set_log_domainをしなくても 同じようなメッセージは出ます。 で、今回はこのメッセージをどうにか出ないように(見た目上ではなく) したいんですよね...。 > > あきらめるか、FIXできるか、見極めるのにもう少し時間が欲しいので > > 来週リリースは無いかもしれません。ご容赦ください。 > > #っていうか誰かなおして〜(T_T)/~~~。 > > 追おうとしたけど、すぐには分かりそうにはありません。m(__)m ありがとうございます。 私も追ってはいるんですが難しいです...。 もしかしたらRuby/GLibに手を入れなきゃいけないのかなぁ とも思ってるんですが...、はてさて。 -- .:% Masao Mutoh<mu...@hi...> |
From: Masao M. <mu...@hi...> - 2004-11-02 17:57:00
|
むとうです。 On Sat, 30 Oct 2004 17:33:42 +0900 KUBO Takehiro <ku...@ji...> wrote: > 久保です。 > をコメントにすると core dump はなくなります。その代わり、 > > (canvas.rb:11050): GnomeCanvas-CRITICAL **: file gnome-canvas.c: line 3723 (gnome_canvas_request_redraw): assertion `GNOME_IS_CANVAS (canvas)' failed > > というのが標準エラーに出ます。(^^;) これですが、たぶん直せました。 gtkcontainer.cと見比べてg_object_ref(group)が足りないよう な気がしたのでそれを足してみたところ動作するようになりました。 それから、その他に私の手元で落ちるスクリプトがあったのですが そちらはGtk::CanvasItemのコンストラクタのset_properties()で 落ちていて、それはg_object_freeze_notify/g_object_thaw_notify を使うことで回避できたようです。 いずれにせよ、追試していただけると助かります。 さて、リリース準備に入りますか...。 -- .:% Masao Mutoh<mu...@hi...> |
From: KUBO T. <ku...@ji...> - 2004-11-03 13:51:42
|
久保です。 Masao Mutoh <mu...@hi...> writes: > むとうです。 こんばんは。 > On Sat, 30 Oct 2004 17:33:42 +0900 > KUBO Takehiro <ku...@ji...> wrote: > >> 久保です。 > >> をコメントにすると core dump はなくなります。その代わり、 >> >> (canvas.rb:11050): GnomeCanvas-CRITICAL **: file gnome-canvas.c: line 3723 (gnome_canvas_request_redraw): assertion `GNOME_IS_CANVAS (canvas)' failed >> >> というのが標準エラーに出ます。(^^;) > > これですが、たぶん直せました。 > > gtkcontainer.cと見比べてg_object_ref(group)が足りないよう > な気がしたのでそれを足してみたところ動作するようになりました。 おお、ありがとうございます。 しかし私のところではまだ一個出ています。むとうさんの修正前は4〜5個ほど でしたので状況は改善に向かっています。私のほうでも時間があったら調べて みます。 # というか、メンテナになっているから、私がメインでやらないと。p(^^;) ちなみに、私の環境は以下のとおりです。 OS Debian/GNU Linux unstable ruby 1.8.1 (2003-12-25) [i686-linux] glib-2.0 2.4.7 gtk+-2.0 2.4.13 libgnomecanvas-2.0 2.6.1.1 > それから、その他に私の手元で落ちるスクリプトがあったのですが > そちらはGtk::CanvasItemのコンストラクタのset_properties()で > 落ちていて、それはg_object_freeze_notify/g_object_thaw_notify > を使うことで回避できたようです。 そういうのもあったのか。m(__)m では、再見 -- 久保 健洋 email: ku...@ji... web: http://www.jiubao.org GnuPG fingerprint = 5F7B C8EF CA16 57D0 FDE1 9F47 C001 1F93 AC08 2262 |
From: Masao M. <mu...@hi...> - 2004-11-03 14:36:57
|
むとうです。 On Wed, 03 Nov 2004 21:14:39 +0900 KUBO Takehiro <ku...@ji...> wrote: > 久保です。 > > これですが、たぶん直せました。 > > > > gtkcontainer.cと見比べてg_object_ref(group)が足りないよう > > な気がしたのでそれを足してみたところ動作するようになりました。 > > おお、ありがとうございます。 > しかし私のところではまだ一個出ています。むとうさんの修正前は4〜5個ほど > でしたので状況は改善に向かっています。私のほうでも時間があったら調べて > みます。 うーむ、まだ出ますか...。 たぶん、libgnomecanvasとgtk+でのg_object_refの内部での使い方あたりの 違いに問題があるんじゃないかなぁ、と思ってはいるのですが...。 > # というか、メンテナになっているから、私がメインでやらないと。p(^^;) それは助かります。是非よろしくです。 > ちなみに、私の環境は以下のとおりです。 > OS Debian/GNU Linux unstable > ruby 1.8.1 (2003-12-25) [i686-linux] > glib-2.0 2.4.7 > gtk+-2.0 2.4.13 > libgnomecanvas-2.0 2.6.1.1 私の環境は OS Fedora Core 2 ruby 1.9.0 (2004-11-02) [i686-linux] glib-2.4.6, gtk+-2.4.9 libgnomecanvas-2.8.0-1 でした。 > > それから、その他に私の手元で落ちるスクリプトがあったのですが > > そちらはGtk::CanvasItemのコンストラクタのset_properties()で > > 落ちていて、それはg_object_freeze_notify/g_object_thaw_notify > > を使うことで回避できたようです。 > > そういうのもあったのか。m(__)m ちなみにこれは、以下のURLにあるke_gtk2.rbというスクリプトで再現します。 http://ponx.s5.xrea.com/bibo/20031117.html#p03 ウインドウのxボタンで終了しようとするとたまに上記事象が出ました。 ただ、これはThreadを使っているので、しょうがないかなぁとも思って いたのですが、直せてラッキーという感じです。 それから、A client server ants simulatorでも、今回の事象が出て いました。 http://ruby.brian-schroeder.de/ants/ -- .:% Masao Mutoh<mu...@hi...> |