Ruby言語やLinuxのネタが多いです。
January 02, 2003 [おもひで]
■ [tDiary] やっとこさ追いついた(^^;)
Linuxビボ〜ろくをCVSの最新版にしました。やっとこさ追いついた。
細かな設定とかはこれからですね。squeeze.rbはきちんと動いてるかな。
→ あ、動いた動いた。
■ [tDiary] アンカー自動生成プラグイン
tDiary-1.5.xに対応しました。1.4系で使っていた方はa_conf.rbというファイルだけ入れ替えるだけです。是非お試しを。
■ [tDiary] tDiary Plugin Viewer-1.0.2
こちらもtDiary-1.5.xに対応しました。
■ [tDiary] tDiary-FAQ
tDiary-FAQをちょこちょこと書き換えた。
■ [Linux] Sylpheed + Mozilla メモ
Sylpheedでメール中のリンクからMozillaを起動するには、「設定(C)」→「全般の設定(C)」→「その他」→「Webブラウザ」に以下のように記述する。
mozilla -remote "openurl(%s, new-tab)"
new-tabで新しいタブとして開く指定にしている。new-windowで別ウインドウ化。詳しくはこちら。
January 07, 2003 [おもひで]
■ [Java] ResourceEditor-0.7.0 is out!
なぜかビミョーに使われ続けているらしいResourceEditorだけど、コマンドラインオプションをつけて欲しいという要望と、Java Web Start化して欲しいという要望があったので対応してみた。Java Web Startの方はまだLinuxでしか確認してない。明日会社のWin2000で確認してみよう。
ついでにバグも少しつぶした。それにしてもちょこっと触るだけでバグ出るな、すごい品質だ(^^;)。
#あと英語化して英語のページも書いた。
#日本語に特化したアプリケーションなので使う人はいないだろうけど(^^;)。
■ [Java] Java Web Start
これ、存在は知ってたんだけど今回初めて使ってみた。単純なんだけど結構おもしろい仕組みだなぁ。
たとえば、JDK1.4.1(JREでもOKだと思う)をインストールしている人(Windows)は、ここをクリックするとそのままResourceEditorがインストールされて実行される(バージョンチェックもしてくれるみたい。さらにJDKのバージョンが古かったりするとそっちのバージョンアップもしてくれる...らしい)。
ただし、ResourceEditorのjarファイルが署名付きjarファイルなんだけど、これが公的なCAを利用した証明書を使っていないため、インストール途中に「インストールしないように」という確認ダイアログが出る。まぁ、びっくりしないでそのままインストールしちゃうしかないんだけどね(^^;)。
■ Linuxの場合はどうするかというと、だいたい以下の手順。Javaのインストールディレクトリを/usr/java/j2sdk1.4.1/とする(JDK1.4.1をインストールしたと想定)。
$ su passwd: # mkdir /usr/java/javaws #->ここにJavaWebStartの実行ファイル等を置く # cd /usr/java/javaws # cp /usr/java/j2sdk1.4.1/jre/javaws-1_2-linux-i586-i.zip . # unzip javaws-1_2-linux-i586-i.zip # ./install.sh (ここは適当に....)
ここで、本当ならMozillaの方に自動的にMIME Typeが追加されるらしいんだけど、オレの場合は手動で行った。
MozillaのメニューのEdit -> Preferences ... -> Helper Application -> New Type... で、ダイアログを開いて Description of type: Java Web Start Application File extension: jnlp MIME type: application/x-java-jnlp-file Application: /usr/java/javaws/javaws
こんな感じ。んでもってMozillaを再起動してMS Windowsと同様にここをクリックする。
■ 1度起動した後はキャッシュされるので、次からは/usr/java/javaws/javawsを起動し、メニューの「表示」→ダウンロード済みアプリケーションを選択するとメニューに出てくるのでそれを起動すれば良い。簡単なアプリケーションランチャと見れば良いかな。
■ ちなみにアプリケーション作者はどうするかというと、普通に起動できるjarファイルを作ってそれをkeytoolとjarsignerを使って署名付きjarファイルにし、jnlpファイル(XML)を書いてサーバーへ置き、それをIE/Mozillaから起動してあげるようにすればOK。
ただ、もしかしたらサーバ側に以下のような設定を追加した方が良いかもしれない(apacheの.htaccessの場合)。
AddType application/x-java-jnlp-file jnlp AddCharset UTF8 jnlp
この辺について、詳しくはこちら。
■ でも、署名付きってのが個人だと重いなぁ。結局、公的なCAを使わない以上、信用できないツールってことになっちゃうんだよね。まぁ、だからと言って使えないわけではないのだけどねぇ。
January 08, 2003 [おもひで]
■ [Ruby] Ruby-GetText-Package-0.5.0 is out!
今回は、Raccの勉強を兼ねてrmsgfmtというGNU GetTextのmsgfmt互換ツールを実装してみた。Raccみたいなツール(yaccとかbison)を使ったこと無かったのでとても勉強になった...。おかげで結構手間取ったけど。でも、なんか変な使い方してるかもしれない。
一応、rmsgfmtをRubyで実装したことで、GNU GetTextに依存せずに開発を行うことができるようになった。
まぁ、実際はツールのメンテナンスするときにmsgmergeとかが無いとトテモじゃないけどメンテナンスし続けられないので、そういった意味ではGNU GetText(に添付されているツール)と併用していくことになるんだろうけどね。rmsgmergeも実装しないとかなぁ。
実は、カタログファイルであるmoファイルがバイナリなのがちょっと今風ではないので、XML形式で記述できるようにしたものも書いてみたんだけど、実際はメンテナンスするツールが揃うまでは使い物にならないだろう...。
実験的にリリースしてみるっつーのもありかな。
■ [Java] ResourceEditor
Java Web Startの件だけど、MS Windows2000でも動作した。MS Windows2000だと、起動2回目にデスクトップやスタートメニューに追加するかどうか聞いてくれるのでさらに便利だ。
■ [Ruby] Ruby in 2002
というのがあったので、ハズカしげもなくRuby-GNOME2を追記しときました(^^;)。だって本家の方でFOXとFXRubyのことが書いてあったのがちょっぴりくやしかったんだも〜ん。
January 09, 2003 [おもひで]
■ [Ruby] Ruby-GetText-Package:自分宛メモ
だけど、Thread.current.idとかをキーにしてごちゃごちゃやればスレッドセーフっぽいことができそうな気がしてきた。
■ そもそもGetTextをスレッドで使うと想定すると、以下の2パターンくらいに絞られる気がする。これをテストケースに試してみるかな。
パターン1
GetText.bindtextdomain("testdomain") #ドメインは共通
Thread.start {
GetText.locale = "..." #ここで各スレッド毎にlocale,charsetが変わる
GetText.charset = "..."
GetText._("hoge")
}
パターン2
Thread.start {
GetText.bindtextdomain("....") #そもそもドメイン自体がスレッド毎に異なる
GetText.locale = "..." #ここで各スレッド毎にlocale,charsetが変わる
GetText.charset = "..."
GetText._("hoge")
}
■ まだあるかな?
January 10, 2003 [おもひで]
■ [Misc] プロジェクト名について
そういや、Ruby-GNOME2でも結構テキトーに呼ばれちゃってる。
一番多いのが、Ruby/GNOME2かな。それからRuby-Gnome2とか、Ruby-GTK2とかRuby/Gtkとか。
■ まぁ、別に間違えたからって意味が通じないわけでは無いから別に良い(Ruby-GNOME2 ML内は別でなるべく指摘するようにしてる)のだけど、一応、Ruby-GNOME2では以下のように名前を定義しているのでこの際だから覚えておいてくり。
- ハイフン'-'はプロジェクト名。したがってRuby-GNOME2はプロジェクト名。逆に言うとハイフンは「Ruby-GNOME2プロジェクト」を指す時しか使わない
- スラッシュ'/'で区切るとライブラリ名。Ruby/GNOME2, Ruby/GTK2, Ruby/Pangoなど。
- ライブラリ名は基本的に元ライブラリで使っている名称をそのまま使う(でも、Ruby/GTK2はRuby/GTK+2ではないんだよね。これは歴史的な経緯による例外(^^;))。大文字小文字も注意。
January 12, 2003 [おもひで]
From: xxx@xxx.net To: mutoh@highway.ne.jp Subject: 負担掛けすぎ Date: Sun, 12 Jan 2003 22:04:25 +0900 前日(2003-01-11)のCGI負荷率 TOP50 393 pt - ponx.s5.xrea.com
■ 普通に読むと知らない人に出すメールにしてはものすごく失礼な書き方だと思うが、規約のMAX 100ptを4倍近くもオーバーしているオレも悪いので文句は言うまい。
■ まぁ、このままアカウントを削除されてしまうのも何なので少し負荷を軽くする努力をしてみよう。
というわけで、一番処理が重いと思われる本日のリンク元表示プラグインの負荷を軽くするためにGoogleやYahoo!等、主だった検索エンジンをリンク元除外リストに追加した。これで少しは軽くなるだろうから、この状態でしばらく様子を見てみよう。半分以下になるかどうかと言うとかなり疑問だが...。
■ あれ、今、指摘してくれてありがとうと丁重に書いた返信メールがUser Unknownで戻ってきた。やれやれ。
■ やっぱり、独自ドメイン&独自サーバ立てなきゃいかんのかなぁ。でも、今そんな余裕(時間的な(^^;))がないしなぁ。
January 19, 2003 [おもひで]
■ [Misc] tDiaryアクセスカウンタ表示プラグイン向けテーマギャラリー
カウンターテーマ作者の方からの要請があったのでその方が作ったファイルは全て削除しました。
その方からはAuthorとCopyrightからご本人の名前と連絡先を削除すれば引き続き公開して構わないと言って頂いたのですが、それだとライセンス的にとても不透明になってしまうので削除しました。
というわけで、現在残ってるのは私の作った1件のみ。サムすぎるので誰かちょーだい!
■ [Misc] Ruby-GNOME-0.31 is now available.
数ヶ月前(^^;)にOpenBSDでRuby-GNOMEのパッケージ管理をやってくれているらしいJim Geovediさんから、ライセンスがわかりづらいんじゃボケ〜!というメールを頂いていたのですが、先週、とっとと対応せい!というメールを再び頂いてしまったので、各サブライブラリ単位にCOPYINGファイルを置いた上で、0.31をリリースしました。あ、ちなみに別にライセンス自体に変更は無いです。
その他の変更点としては、4ヶ月間に行われたいくつかのバグフィクスと、Ruby/Libartの機能追加です。
■ ちなみに、私はRuby-GNOME2に集中しているため、こちらはほとんど手を入れてません(^^;)。
メモリリークのバグが一つ報告されている(Bug #657306)のですが回避策がありそうなのと根が深そうなので追ってません(この問題はRuby-GNOME2では起きません)。
これからRuby-GNOMEをやろうかなぁなんて思ってる人は、是非、Ruby-GNOME2を使ってください。
■ あ、でも、もちろん、オレが直しちゃるぜ!ってパッチを送っていただけるのでしたらいつでもウェルカムです(^^;)。
■ そうそう、ruby-talk/ruby-listなんかにアナウンスはしません。Ruby-GNOME MLにはアナウンスしたし、RAAはアップデートしたから良いかなと。特に重大な修正もなかったですしね。
January 20, 2003 [おもひで]
■ [Misc] ライセンス
自分でツールを作ってそれを公開するとき、それに使用許諾条件(ライセンス)をつける。
でも、このライセンスというのは自分で考えるのはとてもめんどくさいので世に出回っている著名なライセンスを借りる。
そうすると、自分で考えるより遙かに堅牢で汎用的な条件をつけることができる。
■ しかし、そういったライセンスを使うことによる権利を享受する一方で、実は、そのツール自身がそのライセンスを積極的に守っていかなければならないという義務が発生することを忘れている人はいないだろうか。
■ っていうか、オレが忘れてたわ。いかんいかん(-o-;)。
January 22, 2003 [おもひで]
■ [tDiary] http://www.tdiary.net/?s=200
以前から、たまに本日のリンク元に残ってるこのURLって何なんだろうなぁと思ってたんだけど、これって、「tDiaryで運用されている日記(更新順)」の200件目以降なのね。
ってことは、これでアクセスしてきた人って、200件以上も日記を見たって事だろうか。だとしたら、すごくヒマ根気のある人だ(^^;)。
January 23, 2003 [おもひで]
椎名林檎風文字の先頭と末尾の空白を取り除き
文字列#ストリップ
ってか、これだとそのままだなひねりがないな。
椎名林檎風Struct#length
構造#レングス
うーむ、イマイチおもしろみに欠けるか...。Rubyだとなんかフツーに読めちゃうからあおきさんのC言語みたいな面白みが出ないなぁ。
January 25, 2003 [おもひで]
■ [tDiary] アンカー自動生成プラグイン
標準添付化の話。もちろん、歓迎なんだけど気が進まない理由があったような気がする。なんだっけな....。配布するファイルが複数あったりするからだっけ。
あと、自分で言うのも何だけど根本的にちょっと使いづらいんだよね。
まぁ、これはプラグインを使う上でやむを得ない制限だとは思うんだけど、たださんの作ったwiki_styleのような形で[[hoge:fuga]]とか書けた方がお手軽だもんね。
むしろ、kw.rbとa.rbをうまく連携できる方向に持っていったら良いような気がする。
■ ふと思ったんだけど、[[hoge:fuga]]という記述で、':'を使うのは良いな。今、アンカー自動生成プラグインでは、
<%= a "keyword", "20020101#p01", "display text" %>
という書き方なんだけど、
<%= a "keyword:20020101#p01", "display text" %>
と書けた方が便利だな。これって互換性残したまま変更できるかな。ちとやってみよう(っていつ?(^^;))
■ [tDiary] 続アンカー自動生成プラグイン
ふと思ったのだが、上のヤツは<%= a "keyword:20020101#p01|display text" %>
みたいに1つにまとめた方が良いのか?これなら今までの仕様に比べて入力字数が減ってわかりやすいし、互換性を維持したまま仕様変更できるな。
January 26, 2003 [おもひで]
--- a.rb.old 2003-01-02 02:59:57.000000000 +0900 +++ a.rb 2003-01-26 21:16:36.000000000 +0900 @@ -91,6 +91,16 @@ def a(key, option_or_name = "", name = nil) url, *data = @a_anchors[key] + if url.nil? + if /:(.*)\|/ === key + key, option_or_name, name = $`, $1, $' + elsif /:/ === key + key, option_or_name, name = $`, $', option_or_name + elsif /\|/ === key + key, option_or_name, name = $`, "", $' + end + url, *data = @a_anchors[key] + end if url == nil url = key if name
if文3つに分けたんだけど、うまく一つにできんもんかな。
■ [tDiary] セキュアモードでa.rb
セキュアモードってtdiary.confで@secure = trueにした場合だよね。
a.rbってセキュアモードで動くような気がするんだけど....。なんか指定方法間違えてるのかな。
January 27, 2003 [おもひで]
■ [Ruby] $SAFE = 4
$SAFE = 4でFile.openってやっぱりエラーなんすね(ZnZさんとこ)。tDiaryは内部で$SAFEのタイミングを変えてるのかな。あ、なるほど、最初にプラグインファイルを評価するときは$SAFE = 0なのか。
■ [tDiary] アンカー自動生成プラグイン
あ、昨日の修正だと
<%= a "http://hogehoge.ne.jp/" %>
というのが条件満たせないな...。うむむ。

▲ なかだ [gnome2にしました。 XがSEGVして立ち上がらなくなったりとかしましたが、ようやくなんとかなりました。]
▲ ただただし [セクションアンカーがないよ〜]
▲ むとぽん [なかださん:おぉ、とうとうgnome2にしていただけましたか!うっしっしっ(^^;)。 たださん:今what's n..]