You can subscribe to this list here.
| 2002 |
Jan
|
Feb
|
Mar
|
Apr
|
May
(32) |
Jun
(60) |
Jul
(52) |
Aug
(67) |
Sep
(167) |
Oct
(186) |
Nov
(173) |
Dec
(220) |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 2003 |
Jan
(37) |
Feb
(66) |
Mar
(89) |
Apr
(71) |
May
(32) |
Jun
(61) |
Jul
(64) |
Aug
(99) |
Sep
(33) |
Oct
(31) |
Nov
(50) |
Dec
(41) |
| 2004 |
Jan
(9) |
Feb
(9) |
Mar
(25) |
Apr
(23) |
May
(8) |
Jun
|
Jul
(1) |
Aug
(9) |
Sep
(1) |
Oct
(31) |
Nov
(38) |
Dec
|
| 2005 |
Jan
(16) |
Feb
(49) |
Mar
(14) |
Apr
(1) |
May
|
Jun
(12) |
Jul
(25) |
Aug
(18) |
Sep
(48) |
Oct
(76) |
Nov
(20) |
Dec
|
| 2006 |
Jan
(16) |
Feb
(12) |
Mar
(4) |
Apr
(5) |
May
(77) |
Jun
(37) |
Jul
(15) |
Aug
|
Sep
(3) |
Oct
(15) |
Nov
(7) |
Dec
(27) |
| 2007 |
Jan
(3) |
Feb
(2) |
Mar
|
Apr
|
May
(7) |
Jun
(18) |
Jul
(44) |
Aug
(12) |
Sep
(1) |
Oct
(13) |
Nov
(15) |
Dec
(5) |
| 2008 |
Jan
|
Feb
|
Mar
(16) |
Apr
(2) |
May
(8) |
Jun
(1) |
Jul
|
Aug
|
Sep
(8) |
Oct
(6) |
Nov
|
Dec
|
| 2009 |
Jan
|
Feb
(2) |
Mar
(6) |
Apr
|
May
|
Jun
|
Jul
(4) |
Aug
|
Sep
(2) |
Oct
|
Nov
|
Dec
(3) |
| 2010 |
Jan
(8) |
Feb
(8) |
Mar
|
Apr
(3) |
May
|
Jun
|
Jul
|
Aug
|
Sep
(17) |
Oct
(7) |
Nov
(3) |
Dec
|
| 2011 |
Jan
(34) |
Feb
(47) |
Mar
(12) |
Apr
(1) |
May
(2) |
Jun
(2) |
Jul
(20) |
Aug
(4) |
Sep
(31) |
Oct
(16) |
Nov
(26) |
Dec
(40) |
| 2012 |
Jan
(10) |
Feb
(8) |
Mar
|
Apr
(5) |
May
(8) |
Jun
|
Jul
(1) |
Aug
(1) |
Sep
|
Oct
|
Nov
|
Dec
(8) |
| 2013 |
Jan
(2) |
Feb
(33) |
Mar
(21) |
Apr
(10) |
May
(29) |
Jun
(19) |
Jul
(6) |
Aug
(4) |
Sep
|
Oct
(21) |
Nov
(21) |
Dec
(7) |
| 2014 |
Jan
(3) |
Feb
(12) |
Mar
(9) |
Apr
(4) |
May
(12) |
Jun
|
Jul
|
Aug
(5) |
Sep
(23) |
Oct
(29) |
Nov
(2) |
Dec
(1) |
| 2015 |
Jan
(3) |
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
(1) |
Oct
(1) |
Nov
|
Dec
(8) |
|
From: Hiroshi I. <ig...@ru...> - 2002-05-27 23:47:43
|
いがらしです。 At Tue, 28 May 2002 02:32:51 +0900, Masahiro Sakai <s01...@sf...> wrote: > > From: Hiroshi IGARASHI <ig...@ru...> > Subject: Re: [ruby-gnome2-devel-ja] Ruby-GNOME2開始に当たって(1) > Date: Tue, 28 May 2002 01:45:16 +0900 > > > またウィジェット(より一般にはGtkObject,GTK+2ではGObject)の > > タイプ(GtkType,GTK+2ではGType)についても同様で、 > > GTK+のウィジェットタイプとRubyのクラスの対応も、 > > 現状rbgtk.c:get_gtk_type()のif文の列で処理していますが、 > > これでは拡張性がないので書き換えようとしていました。 > > とりあえず、これについては[ruby-ext:01660]のパッチで、 > rbgtk_register_class()で登録するクラスについては > get_gtk_type()でのif文のハードコードは不要になってるはず。 そうでした。酒井さんに実装していただいたのでしたね。 どうりで覚えていないわけです... > それで思い出したのですが、現在のif文の列によるチェックは、 > 派生タイプからチェックするよう順番を気にしなくちゃいけないのが > ちょっと嫌な感じです。 > 組み込みのクラスについてもrbgtk_register_class()を使うようにして、 > このif文の列は消してしまいませんか? 少なくとも当時はそのつもり(coreとadd-onを同等に扱う)でした。 -- 五十嵐 宏 (Hiroshi IGARASHI) |
|
From: Masahiro S. <s01...@sf...> - 2002-05-27 17:33:02
|
酒井です。 From: Hiroshi IGARASHI <ig...@ru...> Subject: Re: [ruby-gnome2-devel-ja] Ruby-GNOME2開始に当たって(1) Date: Tue, 28 May 2002 01:45:16 +0900 > At Mon, 27 May 2002 22:21:53 +0900, > Masao Mutoh <mu...@hi...> wrote: > > > > 成り行きでRuby-GNOME/Ruby-GNOME2のメンテナになったむとうです。 > > やるからにはがんばりたいと思いますのでよろしくお願いします。 > > こちらこそ、よろしくお願いします。 同じく、よろしくお願いします。 > またウィジェット(より一般にはGtkObject,GTK+2ではGObject)の > タイプ(GtkType,GTK+2ではGType)についても同様で、 > GTK+のウィジェットタイプとRubyのクラスの対応も、 > 現状rbgtk.c:get_gtk_type()のif文の列で処理していますが、 > これでは拡張性がないので書き換えようとしていました。 とりあえず、これについては[ruby-ext:01660]のパッチで、 rbgtk_register_class()で登録するクラスについては get_gtk_type()でのif文のハードコードは不要になってるはず。 それで思い出したのですが、現在のif文の列によるチェックは、 派生タイプからチェックするよう順番を気にしなくちゃいけないのが ちょっと嫌な感じです。 組み込みのクラスについてもrbgtk_register_class()を使うようにして、 このif文の列は消してしまいませんか? -- 酒井 政裕 / Masahiro Sakai e-mail: s01...@sf... |
|
From: Hiroshi I. <ig...@ru...> - 2002-05-27 16:45:26
|
いがらしです。
微力ながらお手伝いさせていただくことになりました。
At Mon, 27 May 2002 22:21:53 +0900,
Masao Mutoh <mu...@hi...> wrote:
>
> 成り行きでRuby-GNOME/Ruby-GNOME2のメンテナになったむとうです。
> やるからにはがんばりたいと思いますのでよろしくお願いします。
こちらこそ、よろしくお願いします。
> さて、このMLではRuby-GNOME2の実装方法について話し合っていきたい
> と思います。
> 私自身、API設計という部分で不慣れな部分がありますのでみなさん
> のお力添えを願えたらなと思います。
私もここ1年間、あまりRuby-GNOMEを触ってなかったので、
以下に書くことには多分に間違い、思い違いがあるかと思います。
適宜突っ込んでやって下さい。
> さて、Ruby-GNOME2を始めるにあたりいくつか先に決めて(知って)
> おきたいことがあります。
>
> ・シグナルの実装方法
> [ruby-list:35231]で触れられてますが、これについて詳しく説明
> (あるいは実装)していただけませんでしょうか? > 五十嵐さん
>
> 実は、現状のRuby-GNOME2はシグナル周りが動作してません。
> そこでそこんところを実装する前に五十嵐さんからお話をいただければ
> と思います。
「削られて」とは大げさな書き方でしたが、何らかの意図、たとえば
将来if文の羅列でなくもっと一般的なシグナル登録の仕組みを作る
つもりがあって消したのかな、と思いまして。
[ruby-ext:01077] で実装案が出されていたのですが、
私が取り込みそびれてしまい現状に至ります。
この仕組みがないと、GTK+にadd-onで使える高機能なウィジェット
ライブラリ(スプレッドシートとか)をRubyから使えるようには
なりません。追加されたシグナルをRubyから扱えないので。
またウィジェット(より一般にはGtkObject,GTK+2ではGObject)の
タイプ(GtkType,GTK+2ではGType)についても同様で、
GTK+のウィジェットタイプとRubyのクラスの対応も、
現状rbgtk.c:get_gtk_type()のif文の列で処理していますが、
これでは拡張性がないので書き換えようとしていました。
今ソースを見てみますと、次のようなAPIを用意しようとして
いたようですね(1年前の自分は他人)。
struct _rbgtk_class_info {
VALUE klass;
GtkType gtype;
void (*mark)(GtkObject *);
void (*free)(GtkObject *);
};
typedef struct _rbgtk_class_info rbgtk_class_info;
void rbgtk_register_class(rbgtk_class_info *cinfo);
rbgtk_class_info *rbgtk_lookup_class(VALUE klass);
rbgtk_class_info *rbgtk_lookup_class_by_gtype(GtkType gtype);
具体的にどういうAPIが良いかは議論していただくとして、
とにかくいいたいのは、Ruby-GNOME2では拡張性を考え、
CレベルのAPIから見直しが必要でしょう、ということです。
> ・コードの自動生成
> これも以前、五十嵐さんの方で話が合ったような記憶があります。
> どのようなモノなのでしょうか? > 五十嵐さん
> これできちゃうようであればあっという間ですよね(^-^)。
3つほど方法を考えていました。
どれでいくにしても、RubyらしいAPIを追求すると作り込みが
必要になりそうです。そして、できるならそういうインタフェイスの
作り込みはCではなくRubyレベルでやりたいです。
Rubyで書いた方が楽なので。
(1) *.defsファイルからのwrapper生成
GTK+のソースにはオブジェクト・関数・列挙型などが宣言された
ファイルがついてきて、これからCコードを生成する方法です。
pygtk(Python/GTK),pygnome(Python/GNOME)などはこれ。
[ruby-ext:01637]あたりで触れてます。
モノは以下の場所にありますが、まだ不完全な代物です。
私も詳細は覚えていないのでこれから見てみます^_^;
http://www.ruby-lang.org/~iga/files/gnome-ruby-proto-20010313.tar.gz
gnome-ruby-proto-20010317.tar.gz
gnome-ruby-proto-20010916.tar.gz
(2) SWIGによるwrapper生成
[ruby-ext:00838]をご参照下さい。いまいちうまくいきませんでした。
(3) Ruby/DL利用
(1)の*.defsファイルからRuby/DLのインタフェイス宣言(Ruby式)を生成し、
ほとんどをRubyで実装してしまおうという方法。
最近のRuby/DLでどこまでできるのか知らないのですが、
できたら結構エレガントかなぁとか思っています。
はたしてオブジェクト管理・スレッドまわりがどう実装されるのか、
まだまったく考えていません。
> ・コーディング規約
> っていうと大げさですが、今のRuby-GNOMEのコードはif文のインデント
> とかがまともに見れないのが多いです(私の環境だけ?)。これをどうに
> かしたいのですが何か良い手だてはありませんか?
> 私的には、ts=4固定か、あるいは(x)emacsのc-mode固定とかが良いの
> かなぁと。
> #ちょっと乱暴?(^^;)
なにげにソースファイル先頭に設定行
/* -*- c-file-style: "ruby" -*- */
を入れていますが、みんなが同じスタイルを定義して使って
いないと、ぐちゃぐちゃになってしまいますよね。
私がメンテナだったときにはcommitterが私一人だったので、
commit前にバッファ全体にindent-regionをかけていたような
記憶があります。
上記の設定は[ruby-list:19886]からのスレッドでつけること
にしたようで、私の~/.emacsにはこんな定義が入っています。
(c-add-style
"ruby"
'("bsd"
(c-basic-offset . 4)
(c-offsets-alist
(case-label . 2)
(label . 2)
(statement-case-intro . 2))))
> (つづく)
力つきたのでつづきは明日になります...
--
五十嵐 宏 (Hiroshi IGARASHI)
|
|
From: Masao M. <mu...@hi...> - 2002-05-27 14:40:33
|
むとうです。
ちょっと話が細かくなります。
先ほどの(2)を前提としています。
・メソッドの扱い(getter/setter等)
今、Ruby-GNOMEでは以下のようなメソッドがテキトー(失礼)
に実装されています。
set_hoge
hoge= (= set_hoge)
get_hoge
hoge (= get_hoge)
以前、hoge=, hogeに統一しようというお話があったようにも
記憶しています。
ただ、本当にそれで良いのかなぁという疑問がありますので、
この辺、みなさんがどう思われているか知りたいです。
#すでにruby-list等で話し合われている内容でしたらごめんなさい。
実は、私自身、GUIのツールを作るときは継承を多用する癖があります。
#これがあまりよろしくないということであればここで話が終わってしまう
#のかもしれませんが(^^;)。
例えば、以下に例を出します。これはRuby-GNOMEとは関係ない仮想的な
クラスです。
-----
class Button
def initialize(type)
@type = type
end
def label=(label)
@label = label + @type
end
def set_text(text)
@text = text + @type
end
def show
puts @label, @text
end
end
class MyButton < Button
def initialize
super("My Button")
self.label = "Click " #(1)
# label = "Click " #(2)
set_text("This is OK.") #(3)
end
end
button = MyButton.new
button.show
-----
この例でMyButtonは自分が実装するクラスだとします。
で、(2)はよくやる間違えだと思います(私だけ?)。
で、ここから先が問題なのですが、
このような場合は、
(A) (1)のようにself.label=を積極的に使うようにするのか
(B) (3)のようにset_labelを用意するのか
のどちらかになると思います。
次に、複数のパラメータを持つメソッドを考えます。
(C)set_label("My Button", CENTER)
(D)label= "My Button", CENTER
これって(D)のパターンってエラーになりますよね?たしか。
むりやりlabel=を使おうと考えたら配列にするのかな...。
(E)self.label= ["My Button", CENTER]
(A) - (E)まで考えると、私的にはlabel=よりset_labelの
方が良いような気がしてきました。
続いて、あくまでもサブクラスを作らないことを考えます。
---
button = Button.new("My Button")
button.label = "Click" #(4)
button.set_text = "This is OK." #(5)
button.show #(6)
---
こちらの例では、(5)よりも(4)の方がきれいだなぁと思うのも
事実です。
さて、getterはどうでしょう。
---
button.label #(7)
button.get_text #(8)
---
これは、圧倒的に(7)の方が見やすいと思います。(7)であれば
サブクラス内でもそのまま使えますし。
============================
で、じゃぁ、どういう組み合わせが一番良いの?というところが
みなさんにお伺いしたいところです。
(1)
setter: hoge=(a) #->パラメータ1つ
hoge= [a, b] #->パラメータ2つ以上
getter: hoge
(2)
setter: hoge=(a) #->パラメータ1つ
set_hoge(a, b) #->パラメータ2つ以上
getter: hoge
(3)
setter: set_hoge(a, b) #->パラメータ1つでも2以上でも
getter: get_hoge
(4)
setter: hoge=(a) #->パラメータ1つ
set_hoge(a) #->hoge=と同じ
set_hoge(a, b) #->パラメータ2つ以上
getter: hoge
get_hoge #->hogeと同じ
(5)
setter: hoge= #->パラメータ1つ
set_hoge #->hoge=と同じ
set_hoge(a, b) #->パラメータ2つ以上
getter: hoge
これくらいのパターンを考えてみたのですが、Rubyっぽくて
継承時・非継承時のメソッドのわかりやすさ、という点から
(4),(5)を、
さらに、なるべくメソッド数は少ない方が良い、という点から
(5)が良いのではないかなぁと思っています。
#とはいえ、実は密かに(3)が一番確実でメソッド数が少ない
#というのも事実なのですが。どうどうめぐり。
みなさんはどうお考えでしょうか。
--
.:% Masao Mutoh<mu...@hi...>
|
|
From: Masao M. <mu...@hi...> - 2002-05-27 14:17:18
|
むとうです。 (1)を出す前に出さなきゃいけなかったんですが、 Ruby-GNOME2の方向性(というか大前提)です。 Ruby-GNOME2はGNOME 2.0, GTK 2.0の単なるラッパという わけではなく、(Ruby-GNOMEもそうですが)ある程度 Rubyぽさを出せれば良いなと思っています。 そのためにはメソッド等をRubyっぽくしたりしたいと 思います。 そのためにはドキュメントなんかも揃えなければいけなくて とっても大変なことだとは認識していますが。 それでは。 -- .:% Masao Mutoh<mu...@hi...> |
|
From: Masao M. <mu...@hi...> - 2002-05-27 13:21:58
|
むとうです。 成り行きでRuby-GNOME/Ruby-GNOME2のメンテナになったむとうです。 やるからにはがんばりたいと思いますのでよろしくお願いします。 さて、このMLではRuby-GNOME2の実装方法について話し合っていきたい と思います。 私自身、API設計という部分で不慣れな部分がありますのでみなさん のお力添えを願えたらなと思います。 さて、Ruby-GNOME2を始めるにあたりいくつか先に決めて(知って) おきたいことがあります。 ・シグナルの実装方法 [ruby-list:35231]で触れられてますが、これについて詳しく説明 (あるいは実装)していただけませんでしょうか? > 五十嵐さん 実は、現状のRuby-GNOME2はシグナル周りが動作してません。 そこでそこんところを実装する前に五十嵐さんからお話をいただければ と思います。 ・コードの自動生成 これも以前、五十嵐さんの方で話が合ったような記憶があります。 どのようなモノなのでしょうか? > 五十嵐さん これできちゃうようであればあっという間ですよね(^-^)。 ・コーディング規約 っていうと大げさですが、今のRuby-GNOMEのコードはif文のインデント とかがまともに見れないのが多いです(私の環境だけ?)。これをどうに かしたいのですが何か良い手だてはありませんか? 私的には、ts=4固定か、あるいは(x)emacsのc-mode固定とかが良いの かなぁと。 #ちょっと乱暴?(^^;) (つづく) -- .:% Masao Mutoh<mu...@hi...> |
|
From: Masao M. <mu...@hi...> - 2002-05-26 04:18:47
|
むとうです。 Ruby-GNOME2開発者向けのメーリングリストをスタートさせました。 興味のある方は是非参加してください。 -- .:% Masao Mutoh<mu...@hi...> |
|
From: Masao M. <mu...@hi...> - 2002-05-25 16:55:03
|
はじめまして。むとうです。 Ruby-GNOME2の開発者向けメーリングリストを作りました。 みなさんのご参加をお待ちしております! -- .:% Masao Mutoh<mu...@hi...> |