自分の興味の赴くままにIT技術系のネタを取りとめもなくメモっています。
Ruby言語やLinuxのネタが多いです。

July 02, 2003 [長年日記]

[Ruby-GNOME] Ruby-GNOME-0.33

やまださんからRuby/LibartがRuby-1.6.x環境でコンパイルできないと言うバグレポートを頂いたので、その部分を直してリリース。

これでRuby-GNOMEは放置できれば良いのだけど...。

[Ruby-GNOME2] Simple Text Editor

今さら気づいたけど、カット(コピー)&ペーストがバグってて動かなかった気がする。

実は、実験的なコードが入っちゃってたんだよね〜。これで大丈夫かな。

#にしても誰も言ってくれてなかったって事は誰も試してないって事か(T_T)。


July 03, 2003 [長年日記]

[Ruby-GNOME] Ruby-GNOME-0.33

またしても指摘されちゃいました。ぐっすん。

まだ、バグが取り切れてなかったみたいです。

やっぱり、平日リリースは良くないですなぁ。

でも、最近、土日はあまり時間ないし(^^;)。

とはいえ、とりあえず、今週末までに新版出します。もし、何かあったらそれまでに言ってください。

簡単に直せるものなら対応します。

[Ruby-GNOME2] Ruby-GNOME2

ようやくanonymous CVSが復旧した模様。でも、すげーつながり悪いな。

何度もリトライしないとダメかも。


July 06, 2003 [長年日記]

[Hiki] ANNEXを最新版に

英語サイトも用意。本家の方をぼちぼちと移していく予定。

hikifarm使おうと思ったけどやめた。管理者だけ追加できるようなインタフェイスだったら良いんだけど、管理者(=オレ)以外の人にも見えちゃうのがオレ的には都合悪いからね。

#もちろん、誰でも参加できてこそWikiということらしいからそれで良いんだけどね。

でも、ちょっといじればうまくプラグイン化して外出しできそうだな〜って思ったりして。思っただけだけど。

[Ruby] Ruby-GetText-Package-0.5.1

リリースした。6ヶ月ぶりだ(^^;)。

setlocaleの問題に対応。あと、Ruby-1.8.x対応も。

ってそれだけやるつもりだったんだけど、作業中に、

「インストールの際、肝心のmoファイルがインストールされてなかった」

っていうことに気づいたのでそれも直した。ガクッ。

他にThreadの件もやろうかなぁと思ったけど時間切れ。XMLバージョンはひとまずやめ。なんつってもメンテナンスツールが無いとメンテできないからね。

というわけで、このバージョンからANNEXに置き場を移行。

[Ruby-GNOME] Ruby-GNOME-0.34

この前の問題に対応して0.34を出しました。もう、この手のバグは無いよね...。という自分が最近信じられない(^^;)。

まぁ、何かバグがあったらまた次出すだけなんで、なんか見つけた人はレポートしてください!


July 07, 2003 [長年日記]

Invalid Text

[Ruby-GNOME2] <%= a "日本語の扱いと国際化|ruby-gnome2-ja:tips_i18n" %>

まとめてみた。

Invalid Text

[Ruby-GNOME2] <%= a "シグナルの動きを調べる|ruby-gnome2-ja:tips_signal" %>

こっちもまとめてみた。ご意見夜露四苦。

どうでもいいけどやっぱり日本語だと楽だの。


July 08, 2003 [長年日記]

[Ruby-GNOME2] 昨日のドキュメント2つを英訳してみた

って、訳ではないですな。オレの知ってる言葉の範囲で似たようなことを書き直してみたというか。

おかしな英語てんこもりだろうけど、今のオレにはこれが精一杯、てかこれ以上はムリ。というわけで誰か添削してちょ > 英語得意な人。

[Ruby-GNOME2] さっそく

Evan Martinが添削してくれた(まだHiki上には反映されてないけど)。ふと思ったのだが、これってメチャクチャ効果的な英語学習法じゃないだろうか。

英語を書いてみる→ネイティブが添削してくれる。

しかもタダ!

ということで、誰か英語勉強したい人、きたさん作のRuby/GTK2 Tipsを英訳してみないか(オイ。

[Ruby-GNOME2] Ruby-GNOME2を使ったプロジェクト

最近、ぽつぽつとRuby-GNOME2を使ったプロジェクトが出てきたようだ。メンテナとしてはうれしい限りだ。とりあえず、2つほど見つけたので紹介しておこう。タレコミ歓迎。

gPortupgrade

FreeBSDなんかで使っているPortsというパッケージ管理(あってる?)用のツールportupgrade toolのGUIフロントエンドらしい。

#FreeBSDを使ったことが無いので間違えてたらごめんなさい。

ちなみにこのportupgrade toolの作者はFreeBSDはもちろんRubyでも活躍されてるknuさんだ。Ruby-GNOME2のPorts(って言い方でいいの?)もknuさんが作ってくれてる。感謝。

でもgPortupgrade自体の作者はRuby-GStreamerのLaurent Sansonettiだ。ちとややこしい...くもないか。

rbRSS

Ruby RSS aggregator。Pascal Terjan。これってこの前紹介した武井さんのRSSViewerと似たような感じ(?)。

こういうツールって今ハヤリなのかな。

そういえば、武井さんからその後連絡無いけど、Ruby/GtkHTML2どうするんだろう....。ま、いっか(^_^;)。

それにしても、Ruby-GNOME2ってなんとなく英語ネイティブじゃない人たちの割合が高い気がする。いや、日本人は除いたとしてもさ。


July 15, 2003 [長年日記]

[Ruby] initialize_copy

これも対応しないとなのかな。

1.8では、拡張ライブラリでdupを実装するときにinitialize_copyをオーバーライドすることになります。

とりあえず見なかったことにしよう....ダメ?


July 16, 2003 [長年日記]

[Ruby] Ruby developers

ChangeLogに載ってる人をあげてみよう、という企画(?)。なかなか興味深いなぁ。

というわけでRuby-GNOME2版を作ってみた。

#すみません、Ruby-GNOME2のバグは明日以降と言うことで...(^^;)。

devs = {}
dev_names = {}
Dir.glob("**/ChangeLog").each do |file|
  File.open(file).each do |line|
    if line =~ /^(\d+-\d+-\d+)\s+(.+) +<([^>]+)>/
      dev_name = $2.strip.upcase
      dev_names[dev_name] = $2.strip
      devs[dev_name] ||= []
      devs[dev_name] << $1
    end
  end
end
 
puts "Total devs: #{devs.length}"
puts(devs.sort{|a,b| 
       b[1].length <=> a[1].length
     }.collect{|dev, log|
       dev = dev_names[dev]
       if log.length > 1
         log.sort!
         "[#{dev}]: #{log.length} checkins, "+
           "#{log.first} to #{log.last}"
       else
         "[#{dev}]: 1 checkin on #{log.first}"
       end
     }.join( "\n" ))

Ruby/GTK-0.21以前はChangeLogのフォーマットが違うためカウントできてない。それでも、結構な人数なのを見ると改めてすごいことだなぁと思う。

これだけの人数と工数を(当社規定の上乗せ分掛けて)見積もって顧客に提示したら結構な金額になるんだろうなぁ、なんて考えてしまう野暮なオレ(^^;)。


July 18, 2003 [長年日記]

[Ruby] パッチのストック

スゲー。

tDiaryのがあったので、Ruby-GNOME2のも無いかな〜と思ったけどやっぱり無かった(^^;)。

ちなみに、bugのストックなら私も売るほどあります。

もちろん、本来は自分で解決しないといけないヤツですが。


July 20, 2003 [長年日記]

[Misc] Software Design 8月号

Hikiが出てるとのことなので記念に購入。Hiki/RD+にも触れて欲しかったけど枚数が少ないからしょうがないか。

表1の「Wikiを利用しているサイトたち」がかなり偏ってるような気もしないでもないが、そのおかげでRuby-GNOME2 Project Websiteを入れてもらってるのはラッキーと言うべきか(^^;)。

Rubyのメソッド名は「動詞は原形を使う」というルールを採用しているので、has_sid?はhave_sid?またはsid?とかsid_available?などになるべきです。

うげげっ。Ruby-GNOME2では、Hoge#has_foo? とかってたくさんあるな。正直、今更変更は厳しいなぁ。Ruby/GTKの時代からそうだったわけだし...。

あれ、でも、Object#is_a?(mod)は、Object#be_a?じゃないのね。まぁ、be_a じゃなんのことかわからないか。

それにしてもbe動詞とhaveだけは例外でも良いような気がするんだけどなぁ。

[Hiki] rd+ style

久しぶりにイロイロと巡回してたら、うささんにHeadlineの仕様が変わったのはわけわからん(意訳)とおしかりを受けてた(?)のに気づいたので、オプション設定できるように以下のパッチを投げておきました。

近いうち採用されると思います。

--- old/rd2html.rb  2003-07-21 02:08:34.000000000 +0900
+++ rd2html.rb        2003-07-21 02:39:07.000000000 +0900
@@ -175,8 +175,10 @@
       anchor = get_anchor(element)
       label = hyphen_escape(element.label)
       @toc.push({'level' => element.level, 'index' => anchor, 'title' => title.join('')})
-      %Q[<h#{element.level}>#{a_name_href(anchor, title.join(""))}] +
-      %Q[</h#{element.level}><!-- RDLabel: "#{label}" -->]
+      depth = element.level
+      depth += $options['rd.header_depth'] - 1 if $options['rd.header_depth']
+      %Q[<h#{depth}>#{a_name_href(anchor, title.join(""))}] +
+      %Q[</h#{depth}><!-- RDLabel: "#{label}" -->]
     end
                                                                                
                                                                                
     def apply_to_TextBlock(element, content)

hikiconf.rbに

$options['rd.header_depth'] = 2

と書けば以前と同じになります。

ところで、なぜ、HeadLineの深さのデフォルトが変わったかというと、MLではちょっと説明したのですが、Hiki本体にページタイトルという概念が導入されたことが関係しています。

通常はページタイトルに'='に該当する内容を書くことになるだろうと想定しました(つまりHiki/RD+内では=要素は使われなくなり、==が主に使われるようになる)。

とはいえ、好みもあるでしょうし、以前との互換性を考えるとオプションなしで変更してしまうのはちと強引すぎました。申し訳ないです。

#ご要望は直接言っていただけると対応も早いかと。最近、巡回頻度も減ってますので;)。

[Hiki] タイトル周辺

Hikiのタイトル周辺ってプラグイン化できないかなぁ。と思っていじり始めたんだけど挫折。

ここがいじれると結構自由度の高いWebページができると思うんだけどなぁ。

例えば、view.htmlで言えば以下の部分。誰かやってくんないかな。

  <div class="adminmenu" id=tools></div>
  <span class="header" id=title></span>
  <div class="adminmenu" id=page_title></div>
  <h1 class="header" id=view_title></h1>

本日のツッコミ(全8件) [ツッコミを入れる]

Before...

むとぽん [あ、ホントだ。]

ま。 [Hashのhas_keyなどは互換性用です。 そのうち無くなると思います。]

むとぽん [今後は、key?, value?を使うようにということですね。 なるほど。]


July 21, 2003 [長年日記]

[Hiki] 全ページ数表示プラグイン

というのを作ってみた。

さっそく各所につっこんでみたところ、

Ruby-GNOME2[en] = 187 pages

Ruby-GNOME2[ja] = 85 pages

MUTOPON7 ANNEX[en] = 6 pages

MUTOPON7 ANNEX[ja] = 30 pages

という結果に。Ruby-GNOME2関連はそれだけで272ページ。300ページまであと少しだっ。


July 25, 2003 [長年日記]

[Ruby-GNOME2] Ruby/GnomeVFS

CVSに追加されました。お試しアレ。

[Ruby-GNOME2] Ruby/GStreamer

結局、Ruby-GNOME2に統合することに。

#って無理して統合しなくても良いんだけどなぁ....(T_T)。

とりあえず、CVS版はリリース版に比べかなり開発が進んでいるので、気になる人は試してみては。

[Ruby-GNOME2] ところで

Ruby/GnomeVFSのNikolaiは23才、Ruby/GStreamerのLaurentは22才なんだそうだ。そういや、さかいさんも若いし、そろそろ隠居した方が良いのかも...。

体動かなくなってきたし筋肉痛があらわれるのは一日後だし(^^;)。

本日のツッコミ(全2件) [ツッコミを入れる]

たけうち [2日後に痛みがあらわれた時は最初理由がわからなかった。わかったときには切なくなった(笑)]

むとぽん [2日後ですか....。確かに理由わかんないですねぇ、それだと(^^;)。]


July 28, 2003 [長年日記]

[Ruby] warning: multiple values for a block parameter

ruby 1.8.0 (2003-07-28) [i686-linux]にて。

Hash + 配列の場合

h = {:test => [[1,2],[2,3]]}
 
h[:test].each do |v|
  p v
end

結果:

[1, 2]
[2, 3]

Hash + Hashの場合

h = {:test => {1 => 2, 2 => 3}}
 
h[:test].each do |v|
  p v
end

結果:

test4.rb:3: warning: multiple values for a block parameter (2 for 1)
        from test4.rb:3
[1, 2]
test4.rb:3: warning: multiple values for a block parameter (2 for 1)
        from test4.rb:3
[2, 3]

Array#each{|item| ... }とHash#each{|key, val| ... }の違い。

でも、きっとまたハマるんだろうな、これ(^^;)。

ちなみに、以下のように書くとものすごく当たり前に見えるかもしれないけど、実際コーディングしてると頭の中でごちゃまぜになっちゃうかも。

[[1,2],[2,3]].each do |v|
  p v
end
{1 => 2, 2 => 3}.each do |v|
  p v
end

結果:

[1, 2]
[2, 3]
test4.rb:4: warning: multiple values for a block parameter (2 for 1)
        from test4.rb:4
[1, 2]
test4.rb:4: warning: multiple values for a block parameter (2 for 1)
        from test4.rb:4
[2, 3]

[Ruby-GNOME2] gtk/extconf.rb

ruby 1.8.0 (2003-07-28) [i686-linux]に変えたら、変なMakefileができるようになっちゃったな。dependの関係?

うーむ。


July 29, 2003 [長年日記]

[Ruby-GNOME2] 昨日の件

はとりあえず、ruby-1.8.0preview5にしたら直った。もしかしたらインストールに失敗してたのかもしれない。

でも、今度は終了時にsegmentation faultになることに気がついた。例によってGC時っぽい。

あいたたた。苦手なんだよなぁ、この手のデバッグ(^^;)。

ruby-1.6.7だとOKでruby-1.8.0preview5だとNGというのも気持ち悪い。うーむ。