Ruby言語やLinuxのネタが多いです。
October 03, 2004 [おもひで]
■ [tDiary] リファラエディタプラグイン-1.1.0
月またぎの処理でエラーが出ていたので修正してリリースしました。
■ GTranslater - Gnomeベース
■ あとは、Emacsのpo-modeとVimのpo.vimくらいかな〜。
使ったこと無いけどどれが便利なのだろう。
October 05, 2004 [おもひで]
■ [Ruby-GNOME2] A client server ants simulator
ruby-talkで発見。Ruby/GnomeCanvas2, Ruby/GConf2を使ってくれてます。どうもこの人は学校の先生かなんかでRuby-Course Sommercampus 2004というのの教材みたいです。
■ ちょっとソース見たけど、この人はselfを明示的に書く人なのね。まぁ、その気持ちもわからんでもないけど。
■ 対処終了。
高林さんのtdiary-comment-cleanを使おうと思ったんだけど、オレの場合、レンタルサーバ上でプログラムを実行できないので、データファイルをダウンロードしたりアップロードしたりしなきゃならない。
それだとちょっと面倒くさかったので、tdiary-comment-cleanをCGI化した上で実行した。場当たりな割にはいい感じだ。
October 09, 2004 [おもひで]
■ [Misc] MUTOPON7 ANNEXのドキュメントはGFDL
フッタの部分を見ていただければわかると思うが、MUTOPON7のドキュメントはGFDLの下で公開している。GFDLについてはこちら、あるいはWikipediaのGNU Free Documentation Licenseが参考になると思う。
■ ふと気づいたのだが、tDiaryのドキュメントサイトに、MUTOPON7に公開している「リファラ編集プラグイン」のページ自体が、ほぼ原文のままコピーされている。
コピーしていること自体に何ら問題は無いのだが、コピー先のページはGFDLに従っていない。特にオリジナルの文章がGFDLでリリースされていることすらわからなくなっていると言う点ではコンテンツのマネーロンダリングみたいで悪質な気がする。
■ こんな小うるさいオヤジのようなことをわざわざ書かなければいけないのは寂しいことだが...もし、同ページを書いた人がここを読んでいたとしたら、是非GFDLに従うように修正していただきたい。
本来ならば、ページ作者に直接連絡して訂正をお願いしたいところだが、当然のように無記名なので直接連絡するすべもない。
■ Wikiなんだから自分で直せよ、と思う人がいるかと思う。大した文章じゃないんだから別にどうでもいいだろ、と言う人もいるだろう。
私としては、同ページを書いた人がここを見てくれて、その人自身に修正していただけるのを待ちたい。オープンソースに敬意を持っていただいてる方ならきっと直していただけると信じている。
数日待っても修正されていないようなら残念だが自分で修正することになるだろう。それは本当に残念なことだが。
■ それから、今気づいたけど、tDiaryドキュメントサイトは問題が発生した場合の連絡先メールアドレスも書いていないので管理者もわからない。これでは苦情も言えない。
■ まったく、オレにとってWikiに対する印象はますます悪くなるばかりだ。ふぅ。
■ [Misc] MUTOPON7 ANNEXのドキュメントはGFDL(2)
ライセンス表示はフッタに英語で小さく書いただけだったので、英語の読めない人などにはただのデザインの一部にしか見えないのかもしれない。
その点は素直に反省して、日本語で書き直してみた。また、FrontPageの上の方にもライセンスに関する記述を追加した。正直やりすぎ感もあるけど事前防止という意味では多少は効果があるだろう。
October 10, 2004 [おもひで]
■ [Misc] MUTOPON7 ANNEXのドキュメントはGFDL(3)
ZnZさんにMUTOPON7 ANNEXにも連絡先がないと指摘されてしまった。さすがにHTMLソースまで探してくれる人はなかなかいないと思うのできちんと書き直してみた。
「hiki自体のデザイン」という件については、確かにそういう側面もあるとは思う。でも、ツールがそうなってないから、というのはちょっと違うんじゃないかな。
■ [Misc] Web上のRSSリーダなるもの
以前から思っていたが...。最近のWebベースのRSSリーダで、ソースの記事を全て表示するようなものって、ソースの作者の許諾を得ていない場合は著作権侵害のような気がしないでもない。
はてなアンテナのように、先頭数10文字程度なら引用で済ませられると思うのだけどね。
■ で、ここでやり玉にあげさせてもらうのはPlanet Ruby alpha01。昨日から本日のリンク元に残っていたので気づいたのだけど、なんじゃこれ。
RSSで情報集めたとも書いてないから、まるで、オレ自身がこのサイトに記事を寄稿しているようにも見える。全文引用で敬称略だし。
しかも、Linuxビボ〜ろく、一番下に「無断転載も御遠慮ください。」って書いてあるんだけどな。まぁ、お願い事項だから無視されてもしょうがないんだけどさ。
■ 一応、ここのサイト管理者はURLから判断してだてさんという人のようだが、メールアドレスが公開されていなかったので氏の日記にツッコミを入れるという形で、外してもらうように依頼した。
■ でもさー、なんつーか、こういうのやるときって、法律とかライセンスとか以前に、まずは各サイトの作者に確認とか取るもんじゃないのかなぁ、人として。
October 11, 2004 [おもひで]
■ [Misc] Web上のRSSリーダなるもの(2)
石川さんからRSSを提供しているというのは「このデータは適当に使ってくれ」という意思表示だという指摘を受けた。
実際のところ、Linuxビボ〜ろくではRSSリーダで読みやすいようにRSSを提供していたというのは事実で、個人的に利用していただく分には便利だろうなぁ程度にしか考えていなかった。
ただ、そういうことも含め、RSSについて勉強不足だというのはよくわかった。
SSの仕様書を読んでもdescription要素はA brief description of the channel's content, function, source, etc.と定義されている。あくまでも、briefである。しかし、驚いたことに件のRSSは全文がdescription内に記述されている。
つまり、tDiary側の実装に問題があると言うことか。
■ 石川さんの指摘はもっともなことで、だてさんも同じ認識であったならとても申し訳ないことをしてしまった。すみません。
■ いずれにせよ、現時点でLinuxビボ〜ろくがtDiaryのRSSを利用することは適切ではないと思ったのでプラグインから外すことにした。
■ [Misc] Web上のRSSリーダなるもの(3)
フォローしてくださったみなさん、ありがとうございました。特に、石川さんには本来私自身がすべきであったRSSに関する調査をしていただきありがとうございました。勉強になりました。
また、だてさんにも不快な思いをさせてしまったと思います。改めてお詫びします。
■ いずれにせよ、RSSの提供は当分控えます。RSSリーダを使ってここを読んでいた人は申し訳ありませんが、WWWブラウザを利用するようにしてください。
■ いろいろ疑問点も解決できたので私的には良かったと思っているのですが、一点、解決しなかった疑問点が.....。
「シュッ・シュッのヤバさ」ってどんなヤバさなのでしょうか。
いや、実は以前から気になってたんですが...。
■ [Misc] Web上のRSSリーダなるもの(4)
落ち穂拾いと言うことで、tDiaryのmakerss.rbプラグインについて調べてみた。
description要素は500byte以降は表示しないようになってる。ただ、500byteが、サブタイトル単位となっているようで、ここのように、各章を比較的細切れにしている場合はどうしても全部の情報が含まれてしまう。
この辺は明示的に指定できたり、別の方法にできると良いんだろうな。
■ [Misc] MUTOPON7 ANNEXのドキュメントはGFDL(4)
よく経緯が飲み込めてはいないのだが、どうやらかずひこさんが多少手を入れて再掲したらしい。
でも、かずひこさん。修正後版、GFDLに従ってないんですけど...。以下、わかりやすいのでWikipediaより引用しますが原文もおよそそうなっています(当然ですが)。
該当するかははっきりしませんが、肝心のツールのライセンスが抜けてます。
一応、ご指摘の通り、該当ページにも直してもらうように書いておきます。
ただ、常に最新の情報にアップデートできない(or するつもりがあまりない)のであれば、リンクだけにしておいていただいた方がユーザには(混乱しないで済む分)うれしいのでは?
私自身はアップデートしないでしょうし。
October 12, 2004 [おもひで]
■ [Ruby-GNOME2] ロラン去る
Ruby/GStreamerはじめ数多くのRuby-GNOME2ライブラリをメンテナンスし、もりもりと実装してくれていたロランがこのたびRuby-GNOME2プロジェクトを去ることになりました。いや、Ruby-GNOME2プロジェクトだけではなく全てのフリーソフトウェアプロジェクトから去るのだそうです。Alexandriaについてはまだ悩んでるようですが...。
なぜなら、最近、彼はAppleに就職したのだそうですが、Appleはフリーソフトウェアプロジェクトへの参加を契約で禁じているからなのだそうです。
とても残念なことですが、Appleという世界でも希有な会社に勤めるということはきっと彼の人生において良い経験になると思いますので、喜んで送ってあげたいと思います。
■ Hi Laurent, I hope you'll have great experience at your new job. Do your best!
(ロラン、新しい仕事ではすばらしい経験ができると思います。がんばって!)
■ ところで、彼の仕事をひきついで、Ruby-GNOME2のライブラリのメンテナをやってみたいという方がいらっしゃいましたら是非ご一報を(マジ)。
October 13, 2004 [おもひで]
■ [Ruby-GNOME2] 新メンテナ
Ruby/GStreamerとRuby/GtkTrayIconのメンテナが決まりました。新しいメンテナはエホワン(Erwan)です。ロランがきっちりと最後の仕事をしてくれました。本当に感謝です。
それから、ロランはRuby-GNOME2のプログラミングは続けると言ってくれてます。公開できるかどうかは別として、是非続けてほしいですね。
■ さて、新しいメンテナのエホワンですが、どうも彼は日本に住んでるらしいです(!)。彼のblogはその名もWagahai ha Gaijin de Aru。日本語勉強中のようですね。
Mozillaのプラグイン(って言うのか?)の、Moji(http://moji.mozdev.org/)や、Citron (http://www.loisant.org/citron.html)など、日本語とフランス語を翻訳したりするツールを開発しているようです。(全部ヴィンセント情報(^^;))。
■ ロランがlinuxfr.orgに誰かメンテナ代わって〜!という記事を書いたら、それを見た同じフランス語圏のエホワンが立候補してくれたわけだけど、その彼は実は日本に住んでて、もしかしたらオレのご近所さんかもしれない.... なんてなんかおもしろいですね。
■ [Ruby-GNOME2] Ruby/GnomePrint
Rabbitの須藤さんがRuby/GnomePrintを実装・メンテナンスしていただけることになりました。新メンテナがなんと一度に二人です!
実はGnomePrint系は以前から要望の多かったライブラリなのでこうして実装していただける方が出てきていただけたのはホントありがたいことです(後はRuby/GnomePrintUIか...)。
Rabbitともどもよろしくお願いします。
それにしても18個目か...。すごいなー(ちょっと遠い目)。
October 19, 2004 [おもひで]
■ [Ruby] pseudoiconv.rb
WindowsのOne-Click Installer等の一部の環境ってiconvが入ってなかったりする。
#最新版ならば入ってるかも。
そんな環境でもRuby/GLib2をインストールできる環境(つまりはWin32の環境なんだけどさ)用にpseudoiconv.rbというGLib.convertを使ってIconv.iconvをシミュレートするスクリプトを書いてみた。
エラーは全部Iconv::IllegalSequenceになっちゃうんだけどね。
begin
require 'iconv'
rescue LoadError
begin
require 'glib2'
module Iconv
class IllegalSequence < ArgumentError; end
module_function
def iconv(to, from, str)
begin
GLib.convert(str, to, from).split(//)
rescue
raise IllegalSequence.new(str)
end
end
end
rescue LoadError
module Iconv
module_function
def iconv(to, from, str)
warn "Iconv was not found." if $DEBUG
str.split(//)
end
end
end
end
■ ちなみに次期リリース版のRuby/GLib2では以下のようにもうちょっとだけエラー処理をIconvに近づけることができる予定。
begin
require 'iconv'
rescue LoadError
begin
require 'glib2'
module Iconv
class InvalidEncoding < ArgumentError; end
class IllegalSequence < ArgumentError; end
class InvalidCharacter < ArgumentError; end
module_function
def iconv(to, from, str)
begin
GLib.convert(str, to, from).split(//)
rescue GLib::ConvertError => e
case e.code
when GLib::ConvertError::NO_CONVERSION
raise InvalidEncoding.new(str)
when GLib::ConvertError::ILLEGAL_SEQUENCE
raise IllegalSequence.new(str)
else
raise InvalidCharacter.new(str)
end
end
end
end
rescue LoadError
module Iconv
module_function
def iconv(to, from, str)
warn "Iconv was not found." if $DEBUG
str.split(//)
end
end
end
end
■ require 'iconv'しているアプリは、iconvの代わりにこれを使っておけば、もしかしたらちょっとだけアプリケーションの適用プラットフォームが広がるかもしれない。
■ さらにnkfやuconv等を試すようなコードにすれば日本語関連では結構なところまでいけそうな気がする。uconvはともかくnkfはRubyに標準添付されてるしね。
■ 次のRuby-GetText-Packageはこの仕組みを利用しようかと考え中。
October 21, 2004 [おもひで]
■ [Ruby-GNOME2] Rabbit-0.0.4
リリースされたようです。ruby-talkでもアナウンスがありました。いよいよ世界進出ですね(^^;)。Ruby-GetText-Packageも使っていただいているようです。
■ そうそう、GnomeFilesもポチッとな。
October 23, 2004 [おもひで]
■ [Ruby] Ruby-GetText-Package-0.7.0
リリースしました。先日のpseudoiconv.rbをgettext/iconv.rbとして実装しました。Windowsな環境でRuby/GTK2と一緒に使うと文字化けしていたものが、これに切り替えるだけでなおるかもしれません。
October 24, 2004 [おもひで]
■ [Ruby] RAA
RAAのをアップデートすると、Dependency: Required byな部分が消えてしまう気がする。
とりあえずraa-admin@ruby-lang.orgにメール送ったんだけど、日本語で良かったのかな。
■ なひさんからリプライあり。そういう仕様なんだそうな。
■ [Ruby] Ruby-GetText-Packageのドキュメント
新機能分の記述を追加したら大きくなったのでページをいくつか分割してみた。
結構、見やすくしたつもりなので良かったら見てやってください。もちろん間違い等ありましたら指摘していただけると助かります。
ついでに、これを機会に開発しているアプリケーションをL10n化しちゃいましょう!
■ 英語の分もやったので時間がかかってしまった...。ここが大変(T_T)。
October 25, 2004 [おもひで]
■ [Ruby] raadepchecker.rb
RAAのDependencyの件で、なひさんとメールでやりとりさせていただいた中で
RAAに登録した自作アプリ・ライブラリが他のライブラリたちに依存している時、他のライブラリたちがバージョンアップされると、RAA的には互換性が保証されない状態になる。その場合は、再度、依存している他のライブラリの最新版と自作アプリ・ライブラリがきちんと動作するか確認した上でRAAのdependenciesをアップデートすべきである
というポリシーがあると伺った。
ちょっと厳しい気もしないでもないが確実性という意味ではやむをえないのかなとも思う。
■ とはいえ、いくつか登録しているアプリ・ライブラリが依存しているライブラリのアップデート状況をWWWブラウザでチェックするのもメンドウクチャイ。
幸い、RAAはSOAPインタフェイスを持っているので、それを使ってチェッカを作ってみた。名付けて「自作ライブラリ依存先ライブラリアップデートチェッカ」....長い。
require 'soap/wsdlDriver'
module RAADepChecker
RAA_URI = "http://www.ruby-lang.org/xmlns/soap/interface/RAA/0.0.4/"
EMPTY = 0
UPDATED = 1
NOCHANGED = 2
NOTFOUND = 3
module_function
def get_project(prj_id)
raa = SOAP::WSDLDriverFactory.new(RAA_URI).create_driver
gem = raa.gem(prj_id)
gem.project if gem
end
# [[prj_id, req_version, newest_version], ...]
def check_dependencies(prj)
ret = []
if prj.dependency.size == 0
ret << [EMPTY, prj.name, nil, nil]
end
prj.dependency.each {|dep|
dep_prj = RAADepChecker.get_project(dep.project)
if dep_prj and dep_prj.version != dep.version
ret << [UPDATED, dep.project, dep.version, dep_prj.version]
elsif dep_prj
ret << [NOCHANGED, dep.project, dep.version, dep_prj.version]
else
ret << [NOTFOUND, dep.project, dep.version, nil]
end
}
ret
end
end
if __FILE__ == $0
ARGV.each do |prj_id|
puts "\n-- #{prj_id} ------"
prj = RAADepChecker.get_project(prj_id)
if prj
RAADepChecker.check_dependencies(prj).each do |v|
case v[0]
when RAADepChecker::EMPTY
puts "No dependencies."
when RAADepChecker::UPDATED
puts "Required #{v[1]} #{v[2]} : Updated to #{v[3]}."
when RAADepChecker::NOCHANGED
puts "Required #{v[1]} #{v[2]} : Nothing has been changed."
else RAADepChecker::NOTFOUND
puts "Required #{v[1]} #{v[2]} : No entry in RAA."
end
end
else
puts "No entry in RAA."
end
end
end
ruby raadepchecker.rb project1 project2 .... と言う感じで使う。試しに、Ruby-GNOME2, rbbr, ruby-gettext-packageの結果を表示してみる。
$ruby raadepchecker.rb ruby-gnome2 rbbr ruby-gettext -- ruby-gnome2 ------ No dependencies. -- rbbr ------ Required ruby-gnome2 0.9.1 : Updated to 0.10.1. Required ruby-gettext 0.5.4 : Updated to 0.7.0. -- ruby-gettext ------ Required racc 1.4.4 : Nothing has been changed.
つまり、rbbrはruby-gnome2-0.10.1, ruby-gettext-0.7.0で動作確認してRAAのエントリをアップデートしなきゃならんのう、ということがわかるわけだ。たまに気が向いたら実行してみればいいさぁ。
■ うーん、ちょっとは便利になったかな。でも、やっぱりメンドクチャイ!
■ また、余計なものを作ってしまった...。そんなことよりRuby/GnomeCanvas2どうにかしないと...(T_T)。

▲ 通りすがり [GtkSourceViewがpoに対応してます。]
▲ むとぽん [おぉ、そういえば。ということはgEditとかも、ですね。]