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

May 01, 2002 [長年日記]

[Misc] XREA + tDiary + Namazu, yasqueeze.rb

最新のyasqueeze.rbに合わせてドキュメントを見なおした。

[tDiary] アンカー自動生成プラグイン-1.1.0リリース

自分が作ったプラグインの中(といってもまだ6つくらいしかないけど)でも1,2を争うほど使い勝手も実用度も高いと(勝手に)思っている....割には全く人気のないアンカー自動生成プラグインだが、めげずにバージョンアップしてみた。

辞書ファイルをWWWブラウザから登録できるようになったのでさらに使いやすくなったはず。

というわけでダレか使ってみてくれ〜。 ホント使いやすいんだってばさ〜。

[tDiary] プラグインを書くときのTips

tDiaryでプラグインを書くときに気になったことをいくつかまとめてみた。

[tDiary] (1) @で始まる変数(インスタンス変数)を使うときは要注意

プラグインは他のプラグインも含めて1つのクラス(とインスタンス)を形成する。したがって、@で始まるインスタンス変数は他のプラグインからもアクセスできてしまう。

例えば、以下の例で、hoge1からの結果を1と期待していると(プラグインはアルファベット順に読み込まれる)実際は2が返されてしまう。

このように、プラグインではいつどのようなものが後から追加されるか分からないのでインスタンス変数にはなるべく重複しないような名前を選ぶ必要がある。

そこで例えば、@付きの変数についてはファイル名をプレフィクスにつける等にするとかなりの確率で問題を回避できる。上の例で言えば、 @hoge1_hoge, @hoge2_hogeだ。

あるいは、Moduleを使う方法もある。これはもうちょっと後ろで触れることにする。

hoge1.rb
  -------------
  @hoge = 1
  def hoge1
    @hoge
  end
  -------------
 
  hoge2.rb
  -------------
  @hoge = 2
  -------------

もちろん、なるべくインスタンス変数を使わずにメソッドローカルな変数を(@なし)を使うように心がけるというのは言うまでもない。

[tDiary] (2)そのプラグイン限定のプライベートなメソッドを定義したい

実はtDiaryのプラグインではいわゆるプライベートな宣言は意味をなさない。なぜなら、全てのプラグインで1つのクラスを形成していて、1つのクラスの内部ではプライベートだろうがパブリックだろうがお構いなしにアクセスできるからだ。

また、ユーザからは使用させないがプログラミング上の効率から定義するメソッドというのもあるが、そのようなメソッドは先のインスタンス変数と同様に特に名前問題に注意する必要がある。

例えば、以下の例のように日記の本文中にと書くプラグインを作ったとする。formatメソッドはhoge1.rbの中でしか使わない*つもり*のものだ。しかしながら、実はhoge2.rbでも同じ宣言がされているため、上書きされてしまい(プラグインはアルファベット順に読み込まれる)結果が予期しないものとなってしまう。

hoge1.rb
  -------------
  def format(v)
    "[" + v + "]"
  end
  def hoge1(str)
    format(str)
  end
  -------------
 
  hoge2.rb
  -------------
  def format(v)
    "---" + v + "---"
  end
  -------------

結局のところ、そのプラグインのみで使うことができる、そのファイルローカルなメソッドを作ることはできない。

そこで、@付きの変数(インスタンス変数)と同様に、ファイル名をプレフィクスにつける等にするとかなりの確率で問題を回避できる。

その他に、Moduleを定義する方法もある。そこで、次にModuleを使った方法を紹介する。

もちろん、名前の問題はユーザが直接扱うメソッドについても同様のことが言えてしまう。まぁ、でも、これはすでに存在するプラグインを調べて、重複しない名前を付ける努力をするしかないかな。

[tDiary] (3) Moduleを使う

RubyのModuleは機能をひとまとめにしておき、いろいろなクラスから呼び出すためのものだが、単純に名前空間を分けるために使うこともできる。先ほどの2つの例を合わせたようなコード例を書いてみる。

hoge1.rb
  -------------
  module Hoge1
    @hoge = 1
    def format(v)
      "[" + @hoge.to_s + ":" + v + "]"
    end
    module_function :format
  end
 
  def hoge1(str)
    Hoge1.format(str)
  end
  -------------
 
  hoge2.rb
  -------------
  @hoge = 2        #これなら影響受けない。
  -------------

もちろん、この例でもhoge2.rbでmodule Hoge1を上書きすることはできるが、なるべくファイル名と同じModuleを使うようにすれば、かなりの確率で問題を回避できるし、Module内部では自由に変数名・メソッド名をつけられるのでコード的にもすっきりする。

[tDiary] (4) requireについて

プラグインは、実際はtdiary.rbの内部に取り込まれる形になるので、tdiary.rb自体がrequireしているライブラリについては、改めてrequireする必要はない。例えば、1.4.1では、cgi, nkf, pstore等。

[tDiary] (5) デバッグモード

CVS版では新たにデバッグモードが追加された。プラグインファイルの先頭の方に@debug = true と書く。

こうすることで、特に呼び出したメソッドの名称が間違えていた場合などにエラーが発生するようになるため、若干デバッグがしやすくなる。

それから、$DEBUG = trueを追加すると、さらにいろいろとメッセージが出るようになるのだが、Warningレベル(例えば例外が出たときにはrescueしていてもメッセージが出てしまう)でもメッセージが出るため、全てのWarningを消す必要はないはず。

ただ、注意しなければいけないのが、@debugは他のプラグインでも有効になってしまうこと。自分以外のプラグインのバグも見つけてしまうかも。まぁ、その時はそのプラグイン作者に報告してあげると良いだろう。

[tDiary] (6) メソッド名のつけ方

ちょっと話は変わってメソッド名のつけ方。

メソッド名は基本的に小文字で始めれば良いのだが、単語の区切り方は2通りある。1つは'_'でつなぐ方法ともう一つは単語の区切りを大文字にする方法(Camel Case)だ。

def hoge_fuga
end
 
def hogeFuga
end

これについては人によって好き嫌いが発生し、JavaなどでもCamel Caseが使われていることから過去にも何度か論争の種になっているのだが、実は、Ruby的には前者が好まれる。実際のところtDiary本体でもそのようになっている。

この辺のRuby的なコーディング手法の指針が欲しい人は、高橋征義さんによるRuby Coding Conventionが参考になると思う。

ちなみに、Javaでいうところのgetter/setterもあまり好まれない。

def get_hoge
  @hoge
end

例えば、上記の場合は

def hoge
  @hoge
end

あるいは attr_reader :hoge というようにアクセッサを使う...でも、これはプラグインの場合はあまり使わないかな。

[tDiary] (7) ファイル名のつけ方

ファイル名はなるべくメソッド名と同じにするのが好ましいが、複数のメソッドがある場合は、なるべくメソッド名から外れない程度で象徴的な名前にする。

[tDiary] (8) CSS

通常、プラグインは何らかのHTMLを返すと思うが、その際にCSSについても配慮が必要。なるべく、テーマから変更しやすいようにclass/idづけした方が良い。なお、CSSのclass/id名には'_'を使えないので注意。

つづく.... かも。

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

ただただし [FAQに入れちゃった:-)]


May 02, 2002 [長年日記]

[tDiary] tDiary-FAQ

昨日のプラグインを書くときのTipstDiary-FAQに全部登録してみた。ついでにいくつかTipsを追加して置いたので、プラグインを書く人は参考にしてください、つーか、添削してちょ。どうも、最近のオレはプログラムもドキュメントも仕事も私生活もバグが多いらしいんで(T_T)。

[Misc] Linuxビボ〜ろく

なんか、連休に入って異様にカウンタのアクセス数があがってる気がするんだが、これはアクセスカウンタ表示プラグインのバグか....? 手元のブラウザとかtelnetでHEADアクセスとかで確認してもうまくいってるような気がするのだが....不安だ(^^;)。

というわけで、XREAが提供するカウンタがちょうど似たような仕様だったので入れてみた。明日から確認できるだろう。一応、XREA版の方がちょっとだけ多くカウントされる....はず。

[tDiary] アンカー自動生成プラグイン

なんか古いファイルをアップしてしまったみたいなので再度アップし直し。すまそ。

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

HAL99 [プラグインの作り方参考になります。 ちゃっちいプログラムしか書いてないですが(^_^;、読んで勉強してみます(^o^..]

むとぽん [何か変なところがあったら遠慮なく指摘してくださいね!]


May 04, 2002 [長年日記]

[Misc] テレビこわれた!

なんかいきなり電源が入らなくなってるし...。サービスセンタに連絡したら休みだし....。買ってそれほど立ってないから新しいの買うのやだしな...。

[Tools] Mozilla 1.0RC1, galeon

Mozilla 1.0RC1をsrc.rpmからビルドして、ついでにgaleonもsrc.rpmからビルドしてみた....。MozillaはOKなんだけど、galeonがコンパイルエラーでビルドできない....なぜ?(T_T)

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

カウンタプラグインの改良中に見つけたんだけど、アクセス数が増えた原因は 、やっぱり、アクセスカウンタ表示プラグインのバグだった(T_T)。今のバージョンだとtlinkプラグインのアクセスもカウントしちゃってます。てへっ。

今日中に新バージョンだしますんでよろしくお願いしますですm(__)m。

にしても、tlinkのアクセス数はすごい勢いで増加中。全アクセス数の半分はtlinkだ。恐るべしtlink。

でも、tlinkってどこからアクセスしにきてるのか分からないのでちょっと寂しい。まぁ、Referrerに書いちゃうと「本日のリンク元」に出ちゃうからなぁ。User-Agentの一部にURL埋め込んでもらえたらうれしいかも。って、その前にアクセスカウンタ表示プラグインどうにかしないと(^^;)。

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

Before...

むとぽん [tlinkを使っている日記を表示するたび(スーパーリロード時)に毎回アクセスされると思います....たぶん(^^;)..]

ただただし [え、tlinkってキャッシュ使ってないんだっけ!?]

NT [キャッシュの使い方が分からないので使っていないのです。]


May 05, 2002 [長年日記]

[tDiary] tlink

はやくも対応していただけるなんてありがとうございます。

でも、確かにUser-Agentに日本語って聞いたことないですね....。

HTTP/1.1(RFC2068)的にはどうでしょう。

OCTETの any 8-bit sequence of data の定義って日本語(というか多バイト文字)もOKって意味でしたっけ?であればいけそうですが....。

追記:HTTP/1.1はRFC2068じゃなくてRFC2616ですね。いかんいかん。どうもです>ZnZさん。

あ、でも、RFC的にOKだとしてもanalog等のアプリがきちんと対応できてるかとか考えちゃうと、あえて日本語にしない方が良いような気も。ちなみにEUC-JPで返すんでしょうか?日本語返すなら今後はUTF-8かUnicodeあたりで返した方が良いような気もしますが、サーバがLinuxでanalog使うのだったらEUC-JPにしておけばひとまずひっかからなさそう。でも、サーバがWindowsな環境だったらたぶんどこかしらで変換が必要だろうな...。

というか、HTTPのヘッダってそれ自体のcharset指定できないような...。そうすると文字コードをどれにすべきかってかなり難しい問題な気が。

っていろいろ考えるの大変だから日記のURLじゃまずいっすか?(^^;)。

[Tools] Mozilla-1.0RC1, galeon-1.2.1

うまく動かなかった件だけど、結局、Mozillaの古いバージョンのファイルが残っていたのが問題だった。一度、mozilla/galeonまわりを全部rpm -e してさらに残ってしまっていた/usr/lib/mozillaを全部削除して、改めてインストールし直したら動いた。

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

遅くなりましたが、アクセスカウンタ表示プラグイン 1.2.0 をリリースしました。1.1.0の時のバグは直ってると思いますので使ってみてください。

それから今回は大きく2つの機能を追加しました。

  1. カウントアップ制限
    カウントアップさせたくないUser-Agent, Remote-Addrを指定できます。
  2. キリ番機能 いわゆる「キリ番」の時に何らかのアクションをユーザが定義できます。

キリ番機能は例えば、「あなたは1000人目のお客様です!」みたいなものをキリ番でアクセスした人にだけ表示する機能ですが、counter自体は表示させずに、こっそり指定したカウントの時に楽しいメッセージを表示させるなど、トリッキーに使うといろいろ遊べると思います。

[Misc] Linuxビボ〜ろく

最近のツッコミプラグインを入れてみた。ロゴの下部分。ツッコンでくれた人に対して呼び捨ても何なので「さん」付けにしてみた(^^;)。

[tDiary] アンカー自動生成プラグイン 1.2.0 リリース

あいかわらず人気ないけどオレ的には相当気に入ってるアンカー自動生成プラグイン だが、またしてもめげずにバージョンアップしてみた。今度は、話題(^^;)のtlink.rbを内部的に呼び出すことで、tlink.rb自体の機能をそのまま使うことができるようになったのだ(もちろん、この機能を使う場合はtlink.rbが必要だし、デフォルトでではこの機能はOFFだけどね)。

というわけで、少しでもユーザを増やすためにテレホンショッピング風に紹介してみよう(.... ってなぜ?(^^;))。

(A)ほら、Bさん。まずは、tlinkと比べてみよう。以下の2つは同じ意味になる。

<%= tlink "http://ponx.s5.xrea.com/bibo/20020505.html#p01", "Linuxビボ〜ろく" %>
<%= a "http://ponx.s5.xrea.com/bibo/20020505.html#p01", "Linuxビボ〜ろく" %>

(A)tlink と6文字打たずに1文字aと打てばOK。たくさん打つのがめんどくさいぐ〜たらなBさんに最適!

(B) なるほど〜。でもそれだけですか?

(A) うーむ。まだ、足りない?さすが、Bさんはお目が高い。

じゃぁ、そんなBさんは、さらに、辞書ファイルに以下を登録しておくというのがお奨めだね。

bibo http://ponx.s5.xrea.com/bibo/ Linuxビボ〜ろく

(A)これさえやっておけば、先ほどの例はさらに以下のようにできるんだ。

<%= tlink "http://ponx.s5.xrea.com/bibo/20020505.html#p01", "Linuxビボ〜ろく" %>
<%= a "bibo", "20020505.html#p01" %>

(B) ブラウザでURL全部コピーアンドペーストしちゃうから、そんな機能はうれしくないですけど...。"Linuxビボ〜ろく"のところだって普段は違う言葉いれますよね?

(A)もちろん! アンカー自動生成プラグインでもそんな使い方も当然できるよ。でも、それだと、そのURLが変わっちゃったときは手作業で全部変更しなきゃならないじゃないか。

(B)なるほど....。

(A)それに辞書ファイルにあるURLを呼び出すだけなら、こんな使い方もモチロンOK。

<%= a "bibo" %>

(A)驚くのはまだはやいよ。今なら、桐タンスがもう一つついてなんと無料。今すぐ使ってみなきゃぁ!

っていうか桐タンスはついてないんですが、ちょっとは使いたくなりました?ダメ?そんなこと言わずにtlink.rbしか使っていない人もtlinkも使ってない人も是非使ってみてね! ..... ダメ?(^^;)

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

Before...

むとぽん [実現したい機能としては、それがどこから来たのかということなので、zoeさんの方法だとちょっと分かりづらいような気が。..]

zoe [あ、説明がかなり不足してました。 当然#の前にはURIがついてます。 #の後ろも、tlinkを使った日付が入ってたら..]

むとぽん [なるほど〜、そういうことですか。納得。]


May 06, 2002 [長年日記]

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

アクセスカウンタ表示プラグイン 1.2.0は先頭の方に@debug = trueが残ってましたんでそれを削除して、コメント部分をちょっと見直して、1.2.1をリリースしました。1.2.0使っている方は、バージョンアップしていただくか、1.2.0の@debug = trueを削除してください。といっても残したままでもほとんど実害は無いと思うのですが。

[tDiary] @debug = true

自分で提案して置いて何なんだけど、これ、消し忘れするなぁ。やっぱり、プラグイン本体をいじるのではなくて、tdiary.confとかに書けた方が良いような気もする。

[Tools] 付箋/Ruby

くわがたさんからお誘いいただいたので、付箋/Rubyを久しぶりにバージョンアップ。すごい高機能化していてびっくり。もはや付箋紙というよりはチャットだね、これは。とってもおもしろいのでイロイロ遊んでみよう。

ちなみに、ZnZさんの話ですが、これはGTKというよかRuby-GetText-Packageの現在の仕様の制限です。今のところ、日本語でも文字コード毎にカタログファイルを用意する必要があるからです。一応、付箋/Rubyが用意しているeuc-jpのものをShift-JISに変換した後でmoファイルを作ってmoファイルのインストール先にインストールすれば、ひとまずLANG=ja_JPとかで日本語化できるはず。

最新のGetTextとかだと、iconvを使ってある程度の文字コード自動判別をやってくれるんですよね。Ruby-GetText-Packageは現在Pure Rubyでその辺の実装もしていないのですが、おとなしくGetTextのラッパにした方が良いのかなぁ。あるいは、日本語だけnkfとか使って自動判別しちゃった方が良いのかなぁ。悩むところです...。

[tDiary] なるほど

@debug.rbですが。それは気づきませんでした。グッドアイデアですね。さっそくtDiary-FAQに追加させていただきました。

ただ、ファイル名は、0000debug.rbにしてみました。00default.rbより前に実行されるようにということです。まぁ、念のためということで。

ちなみに、追記の件ですが、確かにごもっとも(^^;)。つい、やっちゃうんですよね。いかんなぁ。以後気をつけますです。


May 07, 2002 [長年日記]

[Tools] gettextの話

ちょっと補足。こちらの話ですが 、gettext-0.10.36からiconvを使うようになったみたいです。moファイルをUTF-8なpoファイルから作って、#{prefix}/share/locale/ja/LC_MESSAGE/配下に置けば、内部的にその環境の文字コードに変換してくれるみたいです。

これを使えば、Linuxであれば、UTF-8のmoファイルからEUC-JPを、Win32な環境だとSJISを返してくれる....はず(未確認)。

で、現在のRuby-GetText-Packageは?

この変換をやっていません。うーむ、中田さんのiconvを使って実装すべきか、gettextのラッパにすべきか...悩ましー。

まぁ、それはさておき、これにGTK+が絡むとどうなるか?

実は、GTK+のWin32版(及び、次期GTK+?)は内部ではUTF-8を使うんだそうです。

参考:http://www.geocities.co.jp/SiliconValley/3097/learning_gtk_win/learn_gtk_win-2.html#sect2.3

ということは、Win32の環境では、通常のgettextはSJISを返し、GTK+の時に限ってはUTF-8を返す必要があります...。

で、私はこの先、全く未確認なのですが、実際のところはこの辺うまくやってるのでしょうか?あるいは、どこかしらで、SJISかUTF-8のどちらを返すのかを判断させないといけないのでしょうか...。

例えば、アプリケーション側で、Win32な場合は、UTF-8なmoファイルからgettextを使ってSJISに変換された文字を受け取って、さらにそれをUTF-8に変換してGTK+に渡す必要がある....ってことは無いですよね...。

うーん、でも、これでさらにRuby/GTKが絡む場合はどうなるんだろう。微妙だ...。

そんなわけで、SJISなmoファイルを用意すればいけそうと書いたのは怪しいです。UTF-8なファイルかも。

この辺は、落ち着いたら調べてみます。連休中にやろうと思ってたんだけど、すっかりtDiaryにはまってました(^^;)。

つーか、知ってる人は教えてください。

#私のWin32な環境って会社のPCだけなんすよね...。

#しかもHDD容量が少なくてなかなか環境作れないんです(T_T)。

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

さかい [localeのエンコーディングと違う文字列が必要な場合は、 明示的にbind_textdomain_codeset(..]

むとぽん [なるほどそのために使うんですね、bind_textdomain_codesetって。ちなみに、通常はGTK+のアプリ..]


May 08, 2002 [長年日記]

[tDiary] tDiaryアクセスカウンタ表示プラグイン向けテーマギャラリー

Nanaさんにアクセスカウンタ用の画像をいただいたので、それを元にテーマ集を作ってみました(tDiaryのテーマギャラリを参考にさせていただきました)。 Nanaさんおしゃれな画像をいっぱい送っていただき、どうもありがとうございました。

そんなわけで、アクセスカウンタ表示プラグインを使ってる人は、おしゃれなカウンタをつけてみてはいかがでしょうか。

それから、自分で作ったアクセスカウンタ用の画像を使ってもイイよ!という方がいましたら是非、ご一報を。


May 09, 2002 [長年日記]

[Ruby] Ruby-GetText-Package

いろいろ考えたが、やはり、GNU GetTextのラッパにすることにした。ただしAPIは今の実装に近いモノにする予定。それでも以前のバージョンとの互換性は無くなるかも。すんまそ。

[tDiary] アンカー自動生成プラグイン

こんだけキャンペーンをやってもあいかわらず人気のない(^^;)アンカー自動生成プラグインですが、バグってたのでアップデートしました。ま、誰も使ってなさそうだから、ま、いっか(^^;)。

使うと便利なんだけどなぁ...>まだ言う(^^;)。

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

アビー [僕の作ったtdlinkはさらに不人気だが…。というか知名度無さ杉だと思われ。]

むとぽん [何事もアピールが大事かと(^^;)。]


May 11, 2002 [長年日記]

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

zoeさんから、「デフォルトで前0(00123とかいうやつの00の部分)はいらないのでは?」というご指摘を受けた。なるほどそれもそうだ。というわけでそのようにコードを修正。といっても、実は以前のバージョンでもfigure = 0にしておけば前0なしにできたので、デフォルト引数を変えたくらい。 ただ、大きな仕様変更ではあるのでバージョンアップということにした。

そんなわけで、今まで使ってる人で特に不自由を感じない場合はバージョンアップする必要はないです。

ちなみに、Linuxビボ〜ろくにあるカウンタは前0があった方がおさまりが良いみたいなのでそのまま前0を残すことにした。画像系は特に1桁の時、前0なしだとおさまりが悪くなる場合もあるみたい。


May 12, 2002 [長年日記]

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

なんか、昨日のアクセス数が最近の平均に比べ300件くらい多い。チェック用に備え付けてるXREAのカウンタから比べても200件以上多い。またしてもアクセスカウンタ表示プラグインのバグか?と思って、以下をチェックしてみた。

  1. Cookieは効いているか
  2. tlinkからのアクセスでカウントがアップしないか
  3. HEADリクエストでカウントアップしないか

いずれも問題ない....と思う。で、なんでかなぁと思ってanalogのウェブサーバの統計結果を見てみたら、興味深いことに昨日だけPockey/4.10.2(Win32; GUI; ix86)というUser-Agentからのアクセスが300件以上あることに気づいた。これってなんだか知ってる人いますか?

もちろん、アクセスカウンタ表示プラグインのバグの可能性は高いのですが奇妙に一致するので、まずはそれが何モノなのか知りたいので...。

[tDiary] Ascii Art プラグイン

2chのアスキーアートを使ったプラグインを作ってみた。せりふの部分は自分で言葉が入れられる。

      ,一-、 
     / ̄ l |   / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ 
    ■■-っ < んなーこたーない 
    ´∀`/    \__________ 
   __/|Y/\. 
 Ё|__ | /  | 
     | У..  | 
 ┌────────
 │はにゃーん
 └──v─────
    ∧_∧______
  /(*゜−゜)  /\
/| ̄∪∪  ̄|\/  
  |  しぃ  |/
   ̄ ̄ ̄ ̄ ̄
|
|       ____
|⌒彡   /
|冫、) <  あっそう
|` /  \____
| /
|/
|
|
\从/
 ∧_∧  / ̄ ̄ ̄ ̄ ̄ ̄
(;TДT)<  オマエモカー
( つ  つ  \______
 〈 〈\ \
 (__)(__)

フォントがMS Pゴシックじゃないとダメなのと、ヘタに使うと厳しいツッコミが入りまくりそうなかなり危険な香りがするので公開するのは自粛ときます(^^;)。

[Misc] Pockeyその後

最初はダレかがUser-Agentを変えて遊んでるだけかと思ってたんだけど、Googleで検索すると、出るわ出るわ。ここまで来ると、たぶんそういうツールがあるんだろう。にしても、そのツール自体は見つからない。いったいなんだろう。PDA系のブラウザかな....。

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

Before...

なかだ  [うーん、Mozilla on Xでフォントファミリを直接指定するのってどうすればいいんだろう…。]

むとぽん [あ、それ私も気になってました。どうするんだろ?やっぱりXLFD?(^^;)。]

むとぽん [counter.rbの件、お願いしますねm(__)m。>アビーさん。]


May 13, 2002 [長年日記]

[Tools] RuWeex

昨日の本日のリンク元に、google検索(ruweex ssh)というのがあった。RuWeex使ってくれてる人いるんだ...。ちょっとうれしいな。といっても、あれもしばらくいじってないからなぁ。うーむ。

[Misc] Pockey

なんか、カウンタが異様に多かったのはおとといだけで、その後は落ち着いた。それとともにPockeyからのアクセスが無くなった。やっぱり因果関係があるようだけど、結局、なんなの?Pockeyって???

[Misc] 続 Pockey

GetHTMLWなんですか。ひだかさんありがとうございます。 ひだかさんに教えていただいたhttp://www.dais.is.tohoku.ac.jp/logs/agentgripes.htmlってすごいですね。ブックマークさせていただきました。

#なんでこのページを見つけられなかったんだろう...(^^;)。

そういや、考えてなかったんだけど、クッキーを考慮してくれるwget系のツールって少なさそう。やっぱり、2度連続で同じIPアドレスからアクセスがあった場合はカウントしないなどの処置を入れないとかなぁ。

[Cygwin] CygwinでGNU gettext

UTF-8 のpoファイルからmoファイル作ってCygwin上でgettextで文字列を出力させるテストプログラムを作ってみる。

  1. 環境変数でLC_ALLとかLANGを指定しないと日本語のja/LC_MESSAGES/test.moを見てくれない。
  2. UTF-8をSJISに自動変換してくれない

ちなみに、Linuxでやると同じバージョン(0.11.1)のGetTextでも、1は必要だけどUTF-8 → EUC-JPの自動変換はやってくれる。

でも、ざっくりとGetTextのコードを読むと、WindowsでもGetACP()使ってなんかしようとしてるんだけどな。ひょっとしたら使い方の問題?コンパイルの仕方・ライブラリのリンクの仕方が悪いのだろうか。

つーか、Cygwinのsetlocaleって機能してるのかなぁ。常に環境変数指定しておいてもCを返すし第2引数にロケール指定してもNULL返すし...。

もうちょっと追ってみるか....。

#実はCygwinでプログラミングするの初めてカモ。

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

Before...

さかい [Cygwinのlocale周りって、 このパッチを当てないと使いものにならなかったような…… http://www...]

kjana [たまたまほぼ同時に二つのサイトで bulk fetcher が 起動されて交互にアクセスしていったり :-P ]

むとぽん [さかいさん>なるほど、そういうことですか。後で試してみますね。 kjanaさん>いや、一瞬そんなことかもあるかもしれ..]


May 14, 2002 [長年日記]

[tDiary] tDiary 1.4.2

リリースされたのでさっそくアップデート。自作プラグインたちはきちんと動いてくれてるかな。

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

Before...

なかだ [5000は明日かな?]

むとぽん [じゃ、私は明後日(5/18)に10カノッサ(ふるっ)。]

アビー [じゃあ僕は篠沢教授に3000点(違い杉]


May 15, 2002 [長年日記]

[tDiary] Yet Another Squeeze

ドキュメント直しました。ありがとうございます > NTさん。ついでに傾向と対策をちょこちょこっと追記してます。

[Cygwin] GNU GetText

うーむ、コンパイルがとおらん....。さかいさんに教わったページの国際化バージョンってソースのパッチで要コンパイルですね。今のオレにCygwinのコンパイルができるんだろうか...(^^;)。


May 16, 2002 [長年日記]

[Tools] wgetとCookie

こんなこと書いたけど、調べてみたらwget自体はデフォルトでCookieを保持してくれるのね(起動している間だけだけど)。だから、wgetでtDiaryにアクセスしても1カウントしかされないのだ。

ちなみに、デフォルトではwgetを再度起動すると前回の情報は失われちゃうんだけど、ファイル化しておけば次回それを使うことができる。

$ wget --save-cookies=cookie.txt http://ponx.s5.xrea.com/   こちらは終了時に保存
$ wget --load-cookies=cookie.txt  http://ponx.s5.xrea.com/    こちらは保存しておいたのを使う。

ちなみにCookieをoffにすることもできる。

$ wget --cookies=off http://ponx.s5.xrea.com/

これをPockeyの代わりに使って次バージョンのアクセスカウンタ表示プラグインをテストすることにしよう。

あ、でも、良い子はこれ使っちゃダメだよ。今のアクセスカウンタ表示プラグインでは、読み込む度にカウントしちゃうから(^-^;)。


May 18, 2002 [長年日記]

[Misc] ADSL 8Mがやってきた!

ADSL 8Mにしちゃいました。電話局から自宅までの伝送距離が2.3kmだったのでちょっと心配だったんだけど、1.5Mのときよりはだいぶ良いみたい。こちらで図ってみた。

1.5Mのとき

ページ読み込み時間    5.963 sec
回線速度(Kbit/秒)     560Kbps
回線速度(Kbyte/秒)    70.41 Kbyte/Sec
ISDNの約何倍          13.04倍

8Mのとき

ページ読み込み時間    1.858 sec
回線速度(Kbit/秒)     1800Kbps
回線速度(Kbyte/秒)    225.99 Kbyte/Sec
ISDNの約何倍          41.85倍

うむ。3倍以上になってる。良い感じだ。 こちらの結果も残しておこう。

測定サイト  http://speed.on.arena.ne.jp/ v2.0.8
測定時刻  2002/05/18 12:32:01
回線種類/線路長 ADSL/2.5km
キャリア/ISP  eaccess 8Mbps/highway
ホスト1 WebArena(NTTPC) 2.04Mbps(758kB,3.1秒)
ホスト2 at-link(C&W IDC) 2.10Mbps(974kB,3.9秒)
推定最大スループット 2.10Mbps(263kB/s)
コメント eaccess 8Mbpsとしては標準的な速度です。(3/5)

[Misc] (続)ADSL 8M

家帰ってPCを立ち上げてみたら、eth0の初期化(?)に失敗。見るとADSLルータの[LAN]ランプが点灯してない。何度か電源OFF/ONを試したけどダメ。1.5M用のADSLルータに戻すときちんと動作するので、ケーブルやPC側の問題ではないと思う。

これって初期不良?誰に連絡すれば良いんだ?プロバイダか?eAccessか?メーカか?

にしても、なんか最近こういうの多いな....(T_T)。

[Misc] Linuxビボ〜ろく

そういや、5,000件を突破したみたいだけど、5,000番目の人は気づかなかったのかな...。キリ番機能動いたのかちょっと心配。大丈夫なはずだけど。

[Misc] Project Dolphin

Slashdot(J)で見つけたこれ、おもしろいなぁ。最近の万歩計じゃないけど、誰かキータイプ数で育つ育てゲー作ってないのかな。

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

例のPockey問題に対応しました。同一IP/クライアントアプリケーションからの連続アクセスはカウントアップしなくなりました。

なんか機能テンコ盛り。ヤリ過ぎかも(^^;)。


May 19, 2002 [長年日記]

[tDiary] tDiary Plugin Viewer

WWWブラウザからプラグインの情報を見れたら便利だなぁと思ってtDiary Plugin Viewerなるものを作ってみました。左上の「プラグイン情報」からアクセスできますんで試してみてください。

ドキュメントを書いてからリリースします。来週中にできるかな...。

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

NT [おぉ、便利ですね > tDiary Plugin Viewer リリースされたら早速入れるつもりです。]


May 21, 2002 [長年日記]

[Misc] とんでもないことを引き受けちゃったのかも.....。

後悔先に立たず。


May 22, 2002 [長年日記]

[tDiary] makelirs.rb

これでいいんでしょか? > zoeさん

[Ruby-GNOME2] CVS版に手を加えはじめる

とりあえずRuby/GTKのコンパイルは通るようになった....。が、テストスクリプトを起動しようとすると以下のエラーに。

helloworld.rb:8:in `require': /usr/lib/libgobject-2.0.so.0: shared object not open - /usr/lib/ruby/1.7/i686-linux/gtk2.so (LoadError)
        from helloworld.rb:8

なじぇ?

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

taki [僕もこれで困っています.どうやれば直せるのでしょうか??]

むとぽん [これ、古い話なので、今は起きないと思うのですが。 Ruby-GNOME2 ML(ruby-gnome2-devel-..]

taki [ありがとうございました。]


May 23, 2002 [長年日記]

[Ruby-GNOME2] shared object not open

さかいさんのパッチをあてたら直った。どもです>さかいさん。さっそくCVSに取り込ませていただきました。

そうそう、すっかり書くの忘れてましたが、行きがかり上(^^;)、Ruby-GNOMERuby-GNOME2のメンテナになっちゃいました。こりゃ大変だ(^^;)。

もちろん、私一人で全部の開発・メンテナンスをやっていけるわけないので、一緒に開発してくれる方を募集中です。特にRuby-GNOME2に関して一緒に開発してくれる方、是非ご一報を。

ちなみに、Ruby-GNOME2の最新版はこちらから取得できます。Ruby-GNOMEと共存できます(っていうか別物扱い)ので、興味のある方は是非どうぞ。

#シグナル関係とかはまだ全然動作しないけど。

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

kjana [メンテナの交代と Ruby/{GTK,GNOME} の位置づけ, Ruby/{GTK,GNOME}2 の開発開始を ..]

なかだ [ruby-gnome2/ruby-gnome2は何?]

むとぽん [環境(MLの準備やHomepageの準備)ができたらするつもりです。Ruby-GNOME-0.28リリース時でも良い..]


May 25, 2002 [長年日記]

[Misc] ADSL 8M

ADSLルータが壊れた件なんだけど、結局、交換してもらった。eAccessさんの迅速な対応、感謝感謝です。

[Misc] C言語とダブルポインタ

最近、というかここんとこずっとなんだけど、検索エンジンからダブルポインタとか、ポインタのポインタとかでアクセスして来る人が多いようだ。でも、残念ながらオレも苦手なんだよね、それ。参考にならなくて申し訳ないッス(^^;)。


May 26, 2002 [長年日記]

[Misc] ADSL 8M

eAccessの方から再び電話が。なんと、現状の8Mの通信速度をチューンアップしてくれるとのこと。さっそくお願いしてみる。

結局、上り 640Kbps 下り 3072Kbpsくらいになった。上りは2000Kbps位(あまり覚えてないんだけど)だったので下りは相当速くなっている。

実は上りは100Kbpsほど落ちてしまったのだが、うちの場合は自前でサーバを立ててるわけでもないのでモーマンタイ。

んで、この前の測定をもう一度。

ページ読み込み時間    1.588 sec
回線速度(Kbit/秒)        2112 Kbps 
回線速度(Kbyte/秒)     264.42 Kbyte/Sec
ISDNの約何倍?          48.96 倍

測定サイト http://speed.on.arena.ne.jp/ v2.0.8

測定時刻 2002/05/26 12:40:09 回線種類/線路長 ADSL/2.5km キャリア/ISP eaccess 8Mbps/highway ホスト1 WebArena(NTTPC) 2.39Mbps(758kB,2.7秒) ホスト2 at-link(C&W IDC) 2.62Mbps(1441kB,4.6秒) 推定最大スループット 2.62Mbps(328kB/s) コメント eaccess 8Mbpsとしては速いほうです。(2/5)

うん、良い感じだ。この前の結果より速くなってる。

にしても、eAccessさんの対応には感心した。すばらしい。

[Ruby-GNOME] Ruby-GNOME, Ruby-GNOME2

メーリングリスト作ってRuby-GNOMEの方はホームページを修正して、今まで出ているパッチを一通りあててみた。疲れた〜。

にしても、こんなにたくさんパッチが残ってたなんて...(-o-;)。

一応、問題ないようだったら来週後半にでもRuby-GNOME-0.28としてリリースしようと思うんで、誰か動作確認キボー。

そうそう、メーリングリストもよろぴくね!

[tDiary] tDiary PluginViewer

ちょっと今、Ruby-GNOME(2)の方が忙しくなっちゃってドキュメント手をつけてません。期待してくれたNTさん、すんまそん。もうちょっと待ってくださいませm(__)m。

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

なかだ [えーっと、cvs removeかな? あんまり使ったことなくて自信無し。すいません。]

むとぽん [cvs removeで削除したディレクトリってCVSレポジトリ内には残っちゃうみたいなんですよね〜。ViewCVSと..]


May 27, 2002 [長年日記]

[tDiary] tDiary Plugin Viewer 1.0.0リリース

たぶん、今しかできないと思ったのでがーっとドキュメント書いてリリースしちゃいました。なんか変なところがあったら言ってくださいね。

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

Before...

むとぽん [いや、良いと思うんですが....。counter.rbは最新ですよね...、うーむ。 一度@debug=trueと$..]

NT [pluginviewer.rb を表示しようとしたら、 /home/takasi/public_html/tdiar..]

NT [たびたびすみません。 「tDiary Plugin Viewer [一覧]」のソースを見ると <div class..]


May 28, 2002 うーむ、今日はバグデーか?(^^;) [長年日記]

[tDiary] tDiary Plugin Viewer

NTさんのご指摘ですが、<div class="section">〜</div>はバグです。すんまそん! まぁ、実害はないと思いますので次のリリース(明日?(^^;))で直して出しますね。

gsubの件はうちでは起きないですね....。と思ったのですが、このコードもダメダメだなぁ。

#いや、うちで動いているのは事実なんですが...Ruby知らなさすぎ<自分(-o-;)。

#というわけで、他の方にツッコまれる前に....(^^;)

以下のように修正してみてください。

21行目を basename = File.basename(path, ".rb")

38行目を   elsif str !~ /#{basename}/

どうでしょう。動きますかね、これで。動けばオッケーっていうことで(^^;)。

あいかわらずご迷惑おかけしてますm(__)m。

ちなみにどういう場面で便利かということですが、私自身としては、たまに使うプラグインとかはもはやメソッドとか引数とかを覚えられなくなっていて、いちいちソースをローカルで見たりしてるのでそういう煩雑さが無くなれば良いなぁと思って作ったんですよね。まぁ、全部覚えられればそれに越したことはないのですが。

他人からプラグインを見れるようにするかどうかということですが、まぁ、別に公開しても良いと思いますよ、私も公開してるし。

ただ、セキュリティホールの見つかったプラグインがあって、それをアップデートしない人がいた(日記とかでしばらくすると放置されると言うのは結構ありがちだと思います)場合にちょっと危険かなぁと。

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

Before...

NT [動いています。素早い対応ありがとうございます。 </div> の方は場所を移動するだけのようですので、何行か下に動か..]

アビー [うーむ。さっきdebugモードにしてみたらなぜかうまくいってしまいました(^^; で、はずしてもうまくいったのでひと..]

むとぽん [うげっ。ナゾですね〜。ちょっといやぁんな感じ。また現象が出たら教えてくださいね。]