Ruby言語やLinuxのネタが多いです。
December 03, 2003 [おもひで]
■ 上手く表現できないんですけど、ねじれ現象っていうか何というかおもしろいですねぇ。Ruby-GNOME2の開発者の中にも日本人以外でマンガやアニメに興味のある人が私の知る限り二人います。実際私よりも全然詳しかったです。二人ともフランス人なのですがフランスでは流行ってるのかなぁ。
■ [Misc] 2003/12/1 地上デジタルテレビ放送開始
ちと遅れてしまったのですが(個人的には)歴史的な1日になりそうだということで記念カキコです。
2011年に現在のアナログテレビ放送が全てデジタルに置き換わることになっているのですけど、一般家庭のテレビの使い方が今とは違うモノになるのでしょうか。ただのブロードバンド通信って言うだけなら、今Yahoo! BBとかがやってるサービスと大差ない(もちろん性能は向上するでしょうけど)と思うのですがその辺はどうなのでしょう。
デジタルテレビならではの全く新しい概念のサービスが提供されていたら楽しいでしょうね。
■ まぁ、そのころまで今のテレビ局が今の形態で生き残ってるかというとわからないですけどね。
■ [Ruby] Ruby-GetText-Package-0.5.3
リリースしました。rgettextのバグフィクスと初期化(GetText.bindtextdomain)をちょっとだけ高速化しました。
■ さて、これでrbbrのL10nの準備も一段落かな。
December 04, 2003 [おもひで]
December 06, 2003 [おもひで]
■ [Ruby-GNOME2] rbbr-0.5.0 Released
rbbr-0.5.0をリリースしました。
今回は、新たにリストビューを使ってモジュール・クラスの一覧を表示するようにしました。
検索のところでgtkと入れればgtkの文字が入ったモジュール・クラスの一覧が表示されますし、htmlと入れればhtmlの文字が入ったモジュール・クラスの一覧が表示されます。
正規表現が使えますので^aとすればaからはじまる一覧が表示されたり、工夫次第で様々な検索ができます。
自分で言うのもなんですが、視覚的な絞り込みができるようになったので、かなり便利になったと思います。
もちろん今までのツリービューによる機能もありますので、クラス階層を意識したい場合はそちらを使うというような使い分けをすると良いと思います。
是非お試しを。
#コピペでスマン
December 07, 2003 [おもひで]
■ [Misc] D言語版Sokoban
Ruby-GNOME2版を移植してみたとのこと。興味を持ったのでダウンロードして見てみたところ、なんか見たことのあるファイル群が...。うげっ、READMEがRuby-GNOME2版そのままだ....。Ruby版のソースも全部入ってるんだけどD言語のソースには一切ライセンスやコピーライト表示がない....。
今のところ、まさかRuby-GNOME2 Projectがそれをリリースしてるなんて思う人はいないとは思うのだが、あまり好ましい状況ではないので作者に改善依頼をお願いしようと思った....が、連絡先のメールアドレスも見あたらない。しょうがないので作者の方の日記にツッコミ入れておいた。
初めての人に苦情ツッコミというのはなんかよろしくないな。まぁしょうがないのだけど。
#苦情ついでにいうと、肝心のD言語のソースの方はもう少し改善の余地がありそう。
■ ちなみに、作者の方の名前は、なんと「むとうまさ」までオレと同じらしい。あ、いや、どうでも良いんだけど(^^;)。
#Hikiの一番下にその名前が書いてあったというだけでもしかしたら違うかも...。
December 08, 2003 [おもひで]
■ [Hiki] ヘッダタイトル変更プラグイン
Ruby-GNOME2 Project Websiteでヘッダタイトルが「サイト名」- 「ページ名」になってるけど、「ページ名」 - 「サイト名」にした方がタブブラウザで見るときに便利なんじゃごりゃー(意訳)と言われた。なるほどなーということでさっそくプラグインを書いてみた。
■ 久しぶりにトップレベルでevalしちゃう極悪系実装。
この辺の文字列生成部分はもともと全部プラグインとして外出しにしてもらえるともうちょっと楽になるんだけどなぁ。
まぁ、それでもなんとかメソッドオーバーライドできちゃうあたりが素敵。
December 09, 2003 [おもひで]
■ [Misc] 体調崩したので休み
休んだのは良いんだけど、何かしていないともったいない病が発症してしまって全然寝てられない。
しょうがない、今までのTODOの棚卸しをするか...。
#そっちの方が重症か...。
■ [Hiki] リファラを表示させないプラグイン
Hikiのリファラ(referer.rb)はどんどん蓄積されるのでそれがページ単位で表示されるととても煩わしく感じてしまう。そこでリファラを表示させないようなプラグインを書いてみた(書いてみたって言うのか...(^^;)?)
リファラはreferer.rbについてくるreferer_mapを使えば全ページ分表示できるYO!
■ [Ruby-GNOME2] GNOME Survey
GNOME D&DP(Gnome Desktop & Developer Platform)に入れたい言語バインディングって何よ!?
ってのが開催されてます。案の定っつーかRuby-GNOME2(ってかRubyGTKだし...)が最下位街道をひた走ってます。
なにをーっ!ってことで、ここ見てる人は3回ずつクリッククリック!ここは集団票で勝負じゃーっ!
#なんか間違えてる?(^^;)
■ [Hiki] リファラ表示プラグイン-1.0リリース
久しぶりに大型プラグインのリリースです(^^;)。Hikiのreferer_mapプラグインは日本語が文字化けしたり何かと不都合が多かったので、それに置き換わるプラグインとして作りました。
置き換えるだけでリンク元を整理して表示します。こんな感じ。先のリファラを表示させないプラグインと一緒に使うことを想定しています。
■ tDiary用に以前作ったリンク元表示プラグインをHikiに移植したものです。ロジック的にはほとんど流用できました。
そんな関係で、オプションもほとんど同じようなモノが使えます。特に変換用のテーブルは変数名以外はそのまま使えますので、 リンク元表示プラグインを使っていた方はコピペすると良いでしょう。
#注意:なお、現在tDiaryに標準で含まれるリンク元表示プラグインはこちらと互換性がありません。
■ ちなみにもう1つプラグイン作ったんだけどそちらはまた明日紹介するとしよう。あまり汎用性無いしね。
December 10, 2003 [おもひで]
■ [Hiki] オプションプラグイン-1.0 リリース!
はっきりいってメチャクチャ強力で今までのプラグインの枠を超えたプラグインを作ってしまいました(^^;)。
■ で、どんなプラグインかというと、Hikiの1ページをオプション用ページとし、それをhikiconf.rb同様に読み込んでしまうというプラグインです。
#要はevalするだけなんですが。
オプションを記述することを想定していますが、実はプラグインも書けちゃったりします。
■ このようにメチャクチャ強力なため、下手したらそのサイトを乗っ取ることも可能かもしれません。
というわけで登録時に認証がないHikiサイトでは使わないようにしてください。
■ 逆に認証アリのサイトでは是非試してみてください。ホント強力ですよ。
■ [Misc] Website構築ツール
オプションプラグイン作って思ったんだけど、現状のHikiの機能+オプションプラグインでHiki上のほとんど全てのことがWWWブラウザからできるようになるんだよね。プラグインも書けちゃうし。
ふと思ったんだけど、Hikiのような登録・更新・削除のフレームワークだけ用意して、それは基本的にデータを登録して行くんだけど、あるページはプラグインそのものだったり、あるページは設定用のテキストページだったり、またあるページはCSS用のページだったり、Wikiのページだったり、日記の表示用のページだったり、日記の登録用のページだったりと、データ(この場合はページね)にいろいろな役割を与えることで、データもプログラム(プラグイン)もCSSテーマも一元管理できるのでは無かろうか、と考えてしまった。イメージなどのテキストエディタで編集できないモノはファイルアップロード機能を使うとか。
■ 認証が必須なシステムになるだろうからWikiとか言う名前は捨てた方が良いかもしれないけどね。
December 11, 2003 [おもひで]
■ [Ruby-GNOME2] 最近
どうもWindows上での質問が多いな。それだけ試してくれる人が増えたと言うことなので素直にうれしい。
■ そんなわけで、オレも今まで放置してたフォントの指定。日本語が表示されなくてWindows版Ruby/GTK2を使っていなかったという人は試してみて。
■ Cygwinの場合、$HOME/.gtkrc-2.0に以下の指定を追加。
style "user-font"
{
font_name="ms pgothic 10"
}
上記でダメな場合は以下の1行のみを記述する。
gtk-font-name="ms ui gothic 10"
■ Dropline版の場合、標準インストールの場合は、
C:\Program Files\Common Files\GTK\2.0\etc\gtk-2.0\gtkrcに以下の記述をする。
style "wimp-default"
{
GtkWidget::interior_focus = 1
GtkOptionMenu::indicator_size = { 9, 5 }
GtkOptionMenu::indicator_spacing = { 7, 5, 2, 2 }
GtkMenuBar::shadow-type = etched-in
GtkToolBar::shadow-type = etched-in
GtkHandleBox::shadow-type = none
GtkSpinButton::shadow-type = in
GtkTreeView::allow-rules = 0
GtkTreeView::expander_size = 11
engine "wimp"
{
}
}
class "GtkWidget" style "wimp-default"
style "user-font"
{
font_name="ms pgothic 10"
}
widget_class "*" style "user-font"
■ これでたぶん日本語が表示できるはず。でも、たまにイタリック文字とか使うとWarningが出るんだよなー。どうにかならんかな、これ。
■ [Ruby-GNOME2] rbbr
rbbrをhttp://rubyinstaller.sourceforge.net/とDroplineの組み合わせで使うと、実行用のファイルであるrbbrがデフォルトでc:\ruby\bin\rbbrにインストールされる。でも、考えてみると拡張子の付かないrbbrって、Windowsでは関連づけも何もされていない状態で正直使いづらいんだよね。
■ そこで回避策1, c:\ruby\bin\rbbrをc:\ruby\bin\rbbr.rbにリネームしてExplorer等からダブルクリック
■ 回避策2, c:\ruby\bin\rbbr.batを作る。内容は以下。こちらもExplorer等からダブルクリック。
rubyw -rrbbr -e 'RBBR::GTK.main'
■ 回避策3, c:\ruby\bin\rbbr.vbsを作る。内容は以下。こちらもExplorer等からダブルクリック
Set shell = WScript.CreateObject("WScript.Shell")
shell.Run "rubyw -rrbbr -e 'RBBR::UI::GTK.main'"
■ 個人的には余計なDos窓が開かない回避策3が良いかな。でも拡張子がvbsというのがちと気にくわん(^^;)。
■ おっと忘れてた。参考にさせていただいたサイトはこちら。http://www.airmail.sakura.ne.jp/~komugi/gimp/iccii/sns/diary.cgi?Year=2003&Month=10
December 14, 2003 [おもひで]
■ [Ruby-GNOME2] 続rbbr(をruby mswin32版 + Dropline版 GTK+で動かす)
ENV["HOME"]って普通無いのか、Windowsって。それもそうか...。
かわりに何を使えば良いのだろう?うーむ。
■ ちなみに、0.5.0はRuby-GetText-Package入ってないと動きません。なくても良いように作ったつもりだったんだけどダメだった(T_T)。確認漏れのバグは恥ずかしいのう。ってかオレのバグの90%近くはそんなバグばっかりのような気がしないでもないが(^^;)。
■ そういえばmswin32版のRuby-GetText-Packageってどこかに転がってないかな...。
■ [Ruby-GNOME2] MS WindowsのENV["HOME"]のかわり
ってひょっとしてENV["USERPROFILE"]使うといいのかな。む、APPDATAか?
Windows NT/2000系しかないのか...。TEMPだったら9xにもあるのか。
ユーザによってHOMEが指定してあればそれを使って、無かったらAPPDATAみて、それも無かったらTEMPってところかな。
home = ENV["HOME"] or ENV["APPDATA"] or ENV["TEMP"] home = File.join(home, "rbbr/rbbr.conf").gsub(/\//, "\\")
■ [Ruby-GNOME2] メモ:rbbrのStockBrowserでSEGV
というレポートが。最初、Ruby 1.8.0-preview3以降で起きる問題かと思ってたらそうでもないようだ。Ruby 1.6.8でも発生する。
Gtk::TreeViewColumn#set_cell_data_funcがまずいみたい。
stockbrowser.rbの以下の(1)の箇所を追加すると問題なくなるのでGCの問題だと思う(gdbで見てもrb_get_method_body()の中でSEGVしてるのでブロックが壊れたかどうかしたんだと思う)んだけど、どうもわからん....。
@column.set_cell_data_func(pix) do |column, cell, model, iter|
cell.pixbuf = iter[0]
GC.start #(1)
end
■ 悩むときって大体いつもGC絡みなんだけど、この辺お手軽に調べる方法とかないかなぁ、ってか何を調べたいかによるのか...。何を調べると良いですよー、と言ってくれるとか(苦笑)。
December 15, 2003 [おもひで]
■ [Ruby-GNOME2] 正規表現でWarning
rbbrの要望をruby-talkで受けてふと思ったんだけど、以下のような不正な正規表現が与えられたことを知る方法ってあるのかな。
ruby -e '/]/' -e:1: warning: regexp has `]' without escape
■ この場合、気持ち的には例外とか出てくれるとうれしいんだけどRegexpErrorじゃ拾えないのかなー?
begin /]/ rescue RegexpError "error" end
December 21, 2003 [おもひで]
■ [Ruby-GNOME2] rbbr-0.5.1
rbbrのバグ修正版をリリースしました。Win32サポートの強化ということでWindows版の場合はrbbr.rbw、その他(Cygwinも)の場合はrbbrがbinディレクトリにインストールされるようになります。
是非お試しください。
December 24, 2003 [おもひで]
■ tDiaryは大丈夫そうだな。拡張ライブラリ周りか...。
■ strscanのcscan.soだった。uconv.soは1.6.7のままだけど大丈夫みたい。cscan.soだけ削除して、uconv.soはとりあえず放置、と(^^;)。
December 28, 2003 [おもひで]
■ [Misc] HDD障害発生(T_T)
OSが固まってCtrl+Alt+DELも聞かなくなったのでリセット。リブートしたものの/dev/hdb2(ルートパーティション:ext3)が読めなくなってる...(泣)。
#ちなみにこれは別のマシンから書いてます。まだ故障中(泣)
#e2fsck /dev/hdb2 : : Couldn't find ext2 superlock, trying backup blocks... e2fsck: Bad magic number in super-block while trying to open /dev/hdb2 : :
うーん、だめか....。とりあえずBad magic numberでググって見たところ Linux Life, Restoration from ext2 file system errors (2001/3/22)というページを発見。このページを参考にいろいろやってみることにした。感謝。
とりあえず、e2fsck -l /dev/hdbは問題なかったのでmke2sf -S /dev/hdb2してみたところこのコマンド自体は無事終了した。もしかして直った?と一瞬思ったんだけどやっぱり甘かったみたい...。
この状態で、e2fsckを行うと以下のような感じのエラーが出まくる。
#e2fsck -y /dev/hdb2 This inconsistency can not be fixed with e2fsck; to fix it, use dumpe2fs -b to dump out the bad block list and e2fsck -L filename to read it back in again.
■ どうもだめだ。上記に書いてあるようにdumpe2fsをやってもext2fs_read_bb_inodeというエラーが出る。
e2fsck -c /dev/hdb2をやってもダメだ(これは当たり前か...)。
■ しょうがないので、とりあえずリブート。
EXT2-fs warning (device ide1(22,2)): ext2_read_super: mounting ext3 filesystem as ext2 EXT2-fs: fragsize 4096 != blocksize 1024 (not suported yet).
■ あきらめるか....(T_T)。でも、最近バックアップ取って無かったんだよなー....(コリないなー、オレってやつは....(T_T))。
/dev/hdb1は普通にアクセスできるので、ハード障害じゃないと思うんだけどなー。
■ [Misc] HDD障害発生(3)
このままではどうにもしょうがないので以前から買おうと思っていたDVDドライブと一緒にHDDを買いに行くことにした。
秋葉原に行くには時間が遅いので近場の下北沢ツクモ電気に行ってみたんだけどナニゲにいろいろパーツが揃っている。
ちと秋葉原とかに比べたら値段が高いのかもしれないけどまーいいや、ってな具合でとりあえず以下のものを買ってしまった。大人だ。
I・O DATA DVR-ABN8(DVD+R 8倍速, +RW x 4のやつ) Seagate ST3120026A(IDE 120GB) ・・・デカッ! Matrox Millennium P650 ・・・ファンレス仕様だったんでつい...。 512MB SDRAM PC2700 Linux magagine 2004/1 ・・・ Fedra Core 1 CD-ROMつき。
■ んで、さっそく工作。とりあえずは日常の使用可能状態に戻すことが目的なんだけど、またRedHat9入れるのもなんなのでFedra Core 1にチャレンジだ。といってもインストールなんかはホントにあっさり終わってしまって書くところなしだなー。デフォルトはUTF-8なってるのか。
■ DVR-ABN8はスペックだけ見て買っちゃったけどLinuxできちんと使えるかどうかはちょっとまだ不明。とりあえずCD-ROMとしては認識したけどね(高いCD-ROMドライブになっちゃったりして(^^;))。
Matrox Millenium P650はこれが出たころからちょっと注目してたんだよね。ファンレスってのがとても魅力的だったし、あまり3Dバリバリなゲームもしないしね。それにMatrox系はオフィシャルなLinuxドライバが出てるのでそれを使うことができるってのも良いよね。
#ただ、個人的には普通にXFree86とかに取り込まれてくれてた方がいろいろと楽なんだけど。
メモリは今まで256MBだったのであわせて768MBになるはず...と思ってたんだけど、OSは512MBととしか認識しない模様。バイオスは768MBって認識してるように見えるんだけどなぁ。でも、古いほうはPC2100だし、ひょっとして「混ぜるな危険」だったのかな。
まぁ、もうちっと調べてみるか。でも倍になったからそれで十分なんだけどね。
■ マザーボードとCPU(Athlon1.4GHz)がボトルネックになってきたなぁ。これ買い換えると全部組みなおしなのがめんどくさいんだよな。
■ [Misc] HDD障害発生(4)
ひととおり基本的な設定が終わって危うく本来の目的を忘れて悦に入りそうだった。危ない危ない(^^;)。
とりあえず新しいFedraからe2fsck -y /dev/hdb2してみたら今度はKondaraからやったのとはちょっと違う感じだ。
時間かかったけど無事終わったのでmountしてみると....、おー!マウントできてる!!!
やっぱり、e2fsckとかその辺のバージョンが違うのかなぁ。試してよかった。
December 29, 2003 [おもひで]
■ [Fedora] yum update
してみたらリブートできなくなった。てかリブート中にFileSystemがread-onlyになって書き込めないというエラーが出まくって先に進まなくなる。
なぜだろうと悩んだ挙句、/etc/fstabのLABEL=/とかのLABEL指定をデバイス指定(/dev/hda2 / ...とか)に直したら動いた。うーむ。
■ [Fedora] ATOK Xをインストール
JustSystemのATOK XサポートページにあるRedHat9の参考情報を元にインストールしてみた。あり?パネルが開かないのー。
httをkillして/usr/lib/im/locale/ja/atokserver/atokx_clientを起動してみたところ、以下のエラーが出る。
$/usr/lib/im/locale/ja/atokserver/atokx_client jp.co.justsystem.atok12.AtokPaletteAux: relocation error: /usr/lib/libgdk-1.2.so.0: undefined symbol: XListInputDevices jp.co.justsystem.atok12.SystemLineAux: relocation error: /usr/lib/libgdk-1.2.so.0: undefined symbol: XListInputDevices jp.co.justsystem.atok12.LookupAux: relocation error: /usr/lib/libgdk-1.2.so.0: undefined symbol: XListInputDevices
■ このXListInputDevicesというのは/usr/X11R6/libXi.soにあるみたいなんだけど、lddでlibgdk-1.2.so.0を見てもこいつがリンクされてない。
しょうがないので、/usr/lib/im/locale/ja/atokserver/atokx_clientの最初のほうに以下を追加。
export LD_PRELOAD=/usr/X11R6/lib/libXi.so
■ うん、OKみたい。
■ [Fedora] Ruby周り
ruby(CVS), ruby-gnome2, racc-1.4.4-all, ruby-gettext-package-0.8.1, refe-0.8.0, rbbr-0.5.1をインストール。おおむね良好。
ただ、refe-0.8.0が文字化け。ロケールがja_JP.UTF-8だもんなー。
$refe String#dump |iconv -feuc-jp -tutf-8
■ こうすればいけるけど面倒くさいか。rbbr使えば問題ないのでみんなrbbrに移行だ!
(注)移行といってもrbbrはrefeのGUI Frontendなのでrefeをインストールする必要はあります。
■ [Fedora] ATOK X
変換候補を選択するところで文字化け。そういや、これ前にもあったな。
/usr/lib/im/locale/ja/atokserver/atokx_clientの最初のほうに以下も追加。
LANG="ja_JP.eucJP"
GNOME Terminalで日本語入力すると文字化けするなぁ。しょうがないか。UTF-8対応版のATOK Xってでないのかしらん。
viは日本語入力できるのか。あ、でもfileencodingはUTF-8なのかぁ。これはviが内部的にEUC-JPからUTF-8に変換かましてるってことなのかな?
■ [Fedora] XINE
DVD Videoプレイヤー、他にもいろんな動画フォーマットに対応しているらしい。DVDドライブ買ったのでせっかくだからトライしてみた。
libdvdcssというのが別途必要とのことなのでVideoLANからいただいてきた。
早速、半年くらい前に「いつか見よう」と思って衝動買いしてしまった、うちにある唯一のDVD Videoである Jaco Pastorius Live In Montrealを聴いてしまった。うーん、グレイト。
実は驚くことに(?)DVDプレイヤーの類(もちろんプレステ2も)はオレんちに存在しなかったんだよね。買おうかなぁと思ってたんだけど滅多に使わないし。
XINEの出来も良い(ってか一般的なDVDプレイヤーというのがどういうものか知らないんで実はよくわからないのだけどね)のでもうしばらくこれでイイや。
■ [Fedora] Matrox Millennium P650用のOpenGLサポート
P650用のX用ドライバってMatrox社が自社開発してるんだけど、現在リリースされているBETA 1.1.0 17dec03(RedHat9.0用)は残念ながらOpenGLの最適化がされていない。
でも、実は現在開発中のベータ版があって、それを申し込む(上記ドライバを申し込む際に欲しいかどうか聞かれる)と別途OpenGLサポートバージョンのドライバの在処をメールしてくれる。
んで、インストールしてみてglxgearsの結果を比べてみた。
(旧:XFree86-Mesa-libGL) 775 frames in 5.0 seconds = 155.000 FPS 838 frames in 5.0 seconds = 167.600 FPS 918 frames in 5.0 seconds = 183.600 FPS (新:Matrox版) 2751 frames in 5.0 seconds = 550.200 FPS 2966 frames in 5.0 seconds = 593.200 FPS 2968 frames in 5.0 seconds = 593.600 FPS
おー、だいぶ違うじゃありませんか。これは入れるべし。
■ そうそう、最初インストールしたとき、glxgearsが異常終了した。
結局、Matrox製のlibGL.so.1.3.0がうまく読み込めなかったのが原因のようで、/usr/X11R6/lib/tls/libGL.so.1.2をlibGL.so.1.3.0のシンボリックリンクにしたらうまく動いた。こんな感じ。
# pwd /usr/X11R6/lib/tls [root@linux tls]# ls -l 合計 5360 lrwxrwxrwx 1 root root 12 12月 28 22:08 libGL.so.1 -> libGL.so.1.2 lrwxrwxrwx 1 root root 14 12月 30 02:53 libGL.so.1.2 -> libGL.so.1.3.0 -rwxr-xr-x 1 root root 352013 10月 25 07:14 libGL.so.1.2.old -rwxr-xr-x 1 root root 5116184 12月 30 02:38 libGL.so.1.3.0
■ ちなみに、libGL.so.1.2はlibGL.so.1.2.oldにコピーした。libGL.so.1自体をlibGL.so.1.3.0のシンボリックリンクにしても良さそうなんだけど、なんか別のところ(/usr/lib/tls/libGL.so.1)からシンボリックリンクを1.2の方に張られているようなのでやめた。

▲ ただただし [アニメ・マンガ好きのフランス人って多いですよねー。不思議。]