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

June 01, 2002 [長年日記]

[Ruby-GNOME] Ruby-GNOME-0.28 is out!

というわけでRuby-GNOMEの最新版をリリースしました。0.27のバグフィクス番という位置づけなので0.27を使っている人は早めにバージョンアップしてください。

にしても、メンテナって疲れるなぁ、やぱり。特に英語はきついなぁ。 英語のMLつくんなきゃ良かったかも...(^^;)。

[Ruby-GNOME] libglade

バグレポートがあったので初めて使ってみた(^^;)。Gladeとあわせて使うんだけどこれは便利だ。特にRubyから扱う場合は、GUI上で特殊なことをしない限り、MVCモデルで言うところのViewを切り離すことができるっぽい。といってもどこまできれいにできるのかは使い込んでないからよくわかってないんだけどね(^^;)。


June 07, 2002 [長年日記]

[Misc] なんか、すげー忙しい(T_T)

というわけで今週はほとんど何もできなかった.....。今日も疲れた.....。


June 08, 2002 [長年日記]

[Misc] うちのLinuxサーバ

電源入れっぱなしで、数時間放置して置いたら固まってた。しょうがないのでリセットボタンを押す。

たしか、以前も同様の事象が出たことがあるから、きっと再現性があるな。うーむ。


June 11, 2002 [長年日記]

[Ruby-GNOME] Ruby-GNOME2でglib2がimportされる

by さかいさん。すばらしい。

にしても、なんか自分自身はRuby-GNOMEのメンテナンスに追われているだけで何もしていない気がする(Ruby-GNOMEにしても大したことはしてないんだけど)。

まぁ、メンテナが何もしてないうちに粛々と前へ進む、というのはある意味、理想的な姿かも。

[Ruby] げげげっ、STR2CSTRってobsoleteなの!?

かわりにRSTRING(value)->ptr[0]を使うのかな。にしても、けっこうあるぞ、これ(T_T)。

[Misc] Linuxビボ〜ろくのカウント数

もうすぐ、7,000。キリ番ゲットした方はツッコミに足跡残していってくださいね(実はアクセスカウンタ表示プラグインのデバッグも兼ねてたりします(^^;)。

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

Before...

なかだ [rb_str2cstr()は内部で新しいオブジェクトを作ってその内部データ(ptr)を返す場合があり、 その一時オブ..]

なかだ [日本語がヘン…。]

むとぽん [説明していただいてありがとうございます。Dangling Pointer問題ですか。なんかすごく久しぶりにその言葉を..]


June 15, 2002 [長年日記]

[Misc] キーボード壊れた

ふとキーボードが壊れた...、いや、前から調子が悪かったんだけど、いきなり文字が入力できなくなったときは焦った。

しょうがないので、電源つけっぱなしでキーボードを買いに行った。LogicoolのDeluxe Access 109 keyboardというやつだ。キーを押した感じがオレ好みで良い感じだ。

ところで、最近のキーボードってインターネットキーとか言っていくつかおまけのキーがついてくるよね。あれってLinuxでも使えないかな〜。

キーコード拾ってアプリケーションを起動するデーモン作ればいいんだよね、誰か作ってないかな。

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

Before...

zoe [いいなあ〜。ぼくのthinkpadキーはイベント発生しません。。。]

なかだ [イベントをxevで確認できるなら、keysymを割り当ててショートカットを設定すればいいのでは。]

むとぽん [zoeさん:イベントが発生しないなんてあるんですね...。でも、それだとWindowsはどうやって認識してるんでしょ..]


June 16, 2002 [長年日記]

[Tools] はやりのインターネットキーを使う

昨日も書いたんだけど、最近のキーボードはWWWやメール用のボタンがついてくるよね。こいつをX-Windowで使ってみる方法がわかったのでメモっておく。

Window Managerはsawfish version 0.38(GNOME環境)、XはXFree86-4.1.0、キーボードはLogicool Deluxe Access 109 Keyboard ik-26だ。このキーボードは「WWW」「メール」「検索」ボタンがついてるので今回はこれを使う。

まず、xevを使ってそのボタンがどのように定義されているか確認する。KeyPressイベントのところを参照する。
KeyPress event, serial 24, synthetic NO, window 0x2e00001,
    root 0x3d, subw 0x0, time 2000773075, (78,59), root:(983,539),
    state 0x0, keycode 178 (keysym 0x0, NoSymbol), same_screen YES,
    XLookupString gives 1 characters:  ""
 
KeyPress event, serial 24, synthetic NO, window 0x2e00001,
    root 0x3d, subw 0x0, time 2000776819, (78,59), root:(983,539),
    state 0x0, keycode 236 (keysym 0x0, NoSymbol), same_screen YES,
    XLookupString gives 1 characters:  ""
 
KeyPress event, serial 24, synthetic NO, window 0x2e00001,
    root 0x3d, subw 0x0, time 2000777264, (78,59), root:(983,539),
    state 0x0, keycode 229 (keysym 0x0, NoSymbol), same_screen YES,
    XLookupString gives 1 characters:  ""

上記を見ると、それぞれ178, 238, 229にkeycodeが割り当てられているが、keysymは定義されていない(NoSymbol)ということがわかる。
通常、Xのアプリケーションはkeycodeではなくkeysymの方を使用するのでこれを割り当てる必要がある。具体的には~/.Xmodmapに以下の情報を追加する。

keycode 178 = XF86WWW
keycode 236 = XF86Mail
keycode 229 = XF86Search

この右辺値は/usr/X11R6/lib/X11/XKeysymDBから選ぶ。 余談だが、XKeysymDBを見ると現存するキーの割り当ては全て定義されているみたい、知らんかった。

上記を設定したら、もう一度Xを再立ち上げ(ログアウトして再度ログインすればOK)する。

(追記:xmodmap ~/.Xmodmapの方が良いね by kjanaさんのツッコミ)

んで、xevの結果。

KeyPress event, serial 24, synthetic NO, window 0x2c00001,
    root 0x3d, subw 0x0, time 2001652414, (70,54), root:(852,288),
    state 0x0, keycode 178 (keysym 0x1008ff2e, XF86WWW), same_screen YES,
    XLookupString gives 0 characters:  ""
 
KeyPress event, serial 24, synthetic NO, window 0x2c00001,
    root 0x3d, subw 0x0, time 2001652646, (70,54), root:(852,288),
    state 0x0, keycode 236 (keysym 0x1008ff19, XF86Mail), same_screen YES,
    XLookupString gives 0 characters:  ""
 
KeyRelease event, serial 24, synthetic NO, window 0x2c00001,
    root 0x3d, subw 0x0, time 2001652276, (70,54), root:(852,288),
    state 0x0, keycode 229 (keysym 0x1008ff1b, XF86Search), same_screen YES,
    XLookupString gives 0 characters:  ""

無事、keysymが割り当てられていればOK。

最後にSawfishの設定。本当はGNOMEコントロールセンタ(のsawfish-ui)から登録する方法を見つけたかったんだけど、結局、挫折。かわりに ~/.sawfishrcに設定を書くことで解決した。

(bind-keys global-keymap
   "XF86WWW" '(system "/usr/bin/galeon -w&")
   "XF86Mail" '(system "/usr/bin/sylpheed&")
   "XF86Search" '(system "/usr/bin/galeon -w http://www.google.com/&")
)

見ればわかると思うんだけど、WWWボタンでgaleonが、メールボタンでsylpheedが、検索ボタンでgaleon+googleが起動する。 一度ログアウトして再ログインで無事動作するようになった。めでたしめでたし。

#誰かGNOMEコントロールセンタから登録する方法知ってたら教えて!

[Tools] Sawfishつづき

さくさんのツッコミを見て再度コントロールセンタから設定できないかどうかチャレンジしてみたら簡単にできた。なははは。

そんなわけで、.sawfishrcの設定は不要だね。

  1. GNOMEコントロールセンタを起動
  2. ツリーの中から、GNOMEコントロールセンタ→Sawfishウィンドウマネージャ→ショートカットを選ぶ
  3. 右側の設定内容のところで、有効エリア:Globalを設定
  4. 追加ボタンをクリック
  5. 取り込みボタンをクリックすると Pless Key ...と出るのでインターネットキーをクリック
  6. コマンドの一覧から Run shell commandを選択
  7. 下側にCommand:欄が出るので、そこに/usr/bin/galeon -nとか、/usr/bin/sylpheedとか起動したいアプリケーションを記述する

実は、5.まではわかってたんだけど、6.のやり方(選択の仕方)がわからなかった....つーか一覧を一個ずつ見ていかなかったのが敗因だな(^^;)。

[Tools] galeon -n/-w

上記のgaleon -wは galeon -nの方が良いかな。まぁ、好みだろうけど。

  1. -nオプション
    galeonがすでに起動されている場合は、すでにあるGaleonウィンドウに新規タブを開く
  2. -wオプション
    galeonがすでに起動されている場合は、すでにあるGaleonプロセスで新規ウインドウを開く

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

Before...

むとぽん [さくさん: えーっとそこまでは気づいたのですが、そこからgaleonとかを呼び出す指定をどうすれば良いのかなぁと(^..]

kjana [「一度 logout して login」なんていうめんどうくさいことしなくても `xmodmap ~/.Xmodma..]

むとぽん [あうぅ。確かに(汗。]


June 17, 2002 [長年日記]

[Ruby] Ming/Ruby

きたさんのところ経由。Flashかぁ、使ってみたいと思ってたんだよなぁ.......とか言ってる割にはShockwaveとFlashの区別がついてなかったよ(^^;)。

一応、両者は違うらしい。っつーか、結構、オレみたいな人いるんだなぁ、MacromediaのFAQにも書いてあるよ、たははは。

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

Before...

s.sawada [FLASHの元祖は、ドローオとペイントを同じ感覚で扱えるお絵かきツールで(昔Mac界隈で結構話題になりました)、そい..]

s.sawada [↑間違い 「ドローオ」→「ドロー」 (^^;]

むとぽん [そうだったのか!(きたさん風) でも、なんでShockwaveに統合しちゃわないんだろう。技術的に難しいのかなぁ。]


June 21, 2002 [長年日記]

[Misc] あり?

cvs.sourceforge.netって落ちてる?

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

Before...

むとぽん [ほんとだ。復旧してるみたいですね、よかった。]

さかい [なんか、時々繋がらなくなりますよね。]

むとぽん [特に金曜日の夜がヒドイですよね。にしても昨日はひどかった....。なんどチャレンジしたことか(^^;)。]


June 22, 2002 [長年日記]

[Tools] zsh + foreach

あるディレクトリにある拡張子が.cのファイル中の文字列を別の文字列に変換してnew/ディレクトリに生成する方法のメモ

foreach f (*.c)     
  sed 's/old_string/new_string/g' $f > new/$f
end

うーむ。しかし、なんでshellのコマンドって覚えられないんだろう。ダメだなぁ、オレ。便利なのに(^^;)。

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

kjana [ for f in *.c; do .... done でおぼえといた方が sh でも ..]

むとぽん [なるほど!勉強になります。]


June 26, 2002 [長年日記]

[Ruby] Ruby-GetText-Package

ruby-listでCygwinな環境でツカエン!と話題になってしまった。そうなんだよなぁ。結構前から気づいてたんだけど、オレって会社のPCしかWindowsないから全然進んでないんだよなぁ(まぁ、ノートだから持って帰れるんだけどね)。

一応、休憩時間(?)にチョコチョコいじったりはしてるんだけど、どうもしっくり動かない。はー。悩ますい。

そもそも、このままPure Ruby路線で行くか、GNU GetTextのWrapper路線に転向するかもまだ悩み中(放置ともいふ)だしなぁ。うーむ。


June 27, 2002 [長年日記]

[Tools] GNOME-2.0リリース

や、やばい。忙がねば.....。

[Misc] でも頭痛い.....

風邪か?うーむ。


June 28, 2002 [長年日記]

[Misc] OpenBlockSS

ぷらっとホームのOpenBlockSSというのを買ってみた。

PowerPCベースの小さなLinuxサーバだ。2.5インチハードディスクをつけてもスゲー小さい。

IA-32以外のLinuxは初めてなのでどんなものかというのも楽しみだ。

会社に持っていって暇なときに遊ぶことにしよう(^^)。

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

たむら [いいなぁ >OpenBlockSS 私も欲すぃ。ちなみに目の前には、mipsel な LinuxBoxがあります。P..]

(う) [HDDを搭載する場合は排熱に気をつけたほうがいいですよ。]

むとぽん [たむらさん > 私はPS2持ってないんですよ。欲しいと言い続け早一年(^^;)。 (う)さん > そうなんですか。フ..]


June 29, 2002 [長年日記]

[tDiary] アクセスカウンタ表示プラグイン

アクセスカウンタ表示プラグイン用のPStoreデータが壊れてエラーメッセージが出てた。こんな感じ↓

/usr/local/lib/ruby/1.6/pstore.rb:98:in `load': dump format error(0x13) (ArgumentError)
        from /usr/local/lib/ruby/1.6/pstore.rb:98:in `transaction'
        from repair.rb:18

結局、復旧できず、1日前のバックアップデータを戻した...。バックアップ取っておいて良かったよ。ふぅ。

にしても、ちょっと今回の件は原因が分からん。壊れたのがカウンタ用のデータだけで、同じ仕組みを使っているtDiaryのデータが大丈夫というのもナゾだ...。

というわけで、カウンタプラグイン側で対策はちょっと難しそうなので、カウンタプラグインを使ってる人は1日1回はバックアップ取ってくださいね。

[tDiary] XREA

そういえば、クッキーがまたしても出なくなってる。なんでだろう。


June 30, 2002 [長年日記]

[Ruby] Ruby-GetText-Package-0.3.0 is out!

ruby-list MLでちょっとだけ話題になっていたRuby-GetText-Packageですが新バージョンをリリースしました。

実は、会社でちょこちょこいじっていてほとんどできあがってたんですが、ずっと放置してました。といっても、ほとんどできているということに気づいたのはつい先日なのですが(^^;)。

んでもって、週末を利用して一通りまとめてリリースというわけです。

GNU GetText PackageのWrapperにするかしないかで最後まで悩んだ挙げ句、結局、独自実装にしてしまいました。実は、Wrapperバージョンも手元では作ったんですけどね。

車輪の再発明とはまさにこのことで、とっても無駄な気もするのですが、まぁ、勉強も兼ねてということで...。あぁ、まだ悩んでる<オレ(^^;)。

[Ruby] Ruby-GNOME-0.29 is out!

本日2つめ。疲れた....。

[Ruby] はやくもパッチが....。

なかださんがRuby-GetText-Package-0.3.0のパッチをMLに投げてくれました。ありがとうございます。

パッチは明日あてますね、今日はモー寝ます(=o=)。

にしても、バグバグなのねん < オレ。しくしく。