結局UNIX環境でCHMを読むのは諦めたんですが、やっぱりRubyのCHMマニュアルの「キーワード」機能が便利なので、同じ機能をHTMLだけで実現してみました(要JavaScript)。
まあやってる事はJavaリファレンスの時と同じです。今回は索引(クラス/メソッド名一覧)から作らなきゃいけなかったので、そっちが面倒でしたが。Rubyのリファレンス、書式が微妙に統一されてないし。
まだ色々不完全だと思います。バグ報告フォームを用意したので、そこで指摘してもらえれば直します。
どうやらxCHMは日本語に対応してない事が判明…。しかもFreeBSD版は起動直後にセグフォるし。
バイト先の環境に、日本語に対応してるというGnoCHMを入れてみました。目次は日本語がちゃんと見えるんですが、本文はやはり文字化け。どうもフォントが合ってないみたいです。フォントが設定できれば読めるかも、なんですが、方法が分からず。ううむ。
cppll情報。UNIX用のCHM(Windows HTMLヘルプ)ビューアだそうで。こんなのが有るんですね。
今度バイト先のLinuxに入れてみようっと。キーワード検索が結構便利なんですよね。
Macでも動くらしいですが、パッケージは無さそう。依存ライブラリを自力で入れるのが面倒だなぁ…。
ついでにPHPのCHM版マニュアルを発見。まーPHPはWeb版もかなり使いやすいですけどね。おまけでRubyのCHMマニュアル。
Ruby用のグラフ理論ライブラリを公開しました.アルゴリズムのインタフェースはBoost Graph Libraryを参考にしてます.BGLに比べるとずっと貧弱ですが。
アルゴリズムは「深さ優先探索」「幅優先探索」「Dijkstra法」「Warshall Floyd法」「最大流」の5つ。まあこれ以外は使いたい人が足してくださいって事で…。
RAAに登録ついでにトップページを眺めたら、Ruby/Graphvizなんてのを発見(Graphvizはグラフを視覚化するツール)。これと連携できたら格好良いですね(BGLにはGraphviz連携機能が有る)。でもRuby/Graphvizのページがフランス語だったので、ドキュメントもフランス語Onlyだと大変そう…。Ruby/Graphの方はドキュメント日本語Onlyなので、人の事言えないですが。
歩くと電源が落ちるMDウォークマンが完全に壊れるのを待ってたんですが、なかなか壊れそうで壊れないので、MP3プレーヤを買っちゃいました。
Rio SU35 256MBって奴です。細かい問題点は有りますが、大きな問題は無く、今のところ割といい感じです。静かな所で聴くと、完全に「音楽だけ」が聞こえるのがいいですね。MDだとどうしても回転音が入るので。
あと、今まで編集した音楽をウォークマンで聴くには「PCでCD-Rに焼く→MDコンポでCDからMDに」という面倒くさい手順が必要だったので、それがだいぶ楽になりました。
詳しい所はkakaku.comの掲示板に書き込みました。
僕は情報源を読んでないので(ファンクラブ会員宛てに手紙が届いたらしい)、詳しい事は分からないんですけど、植松さんがスクウェア・エニックスを辞めて新会社を作るようです。ほえー。
掲示板の投稿を見た感じだと、喧嘩別れでは無いみたいですね。色々余計な仕事から解放されて、音楽作りに専念するって事なのかなぁ。そうだとするとむしろ嬉しい事ですが。
でもFFの曲作りは続けてほしいなぁ。植松さんの音楽を聴くためにFFが有るというのに。1作あたり100曲とか作らなくてもいいので…。
岐阜から帰ってきました。うちの作品「こびと」は2位。賞金10万円をゲットしました。わー。
そうそう、この作品名「こびと」が実は放送禁止用語とかいう驚きの新事実が判明して、取材の時に問題に。
背が伸びない病気の俗称か何かで、差別用語になるらしいです。「白雪姫と7人のこびと」も今では「白雪姫と7人の妖精」だとか…。へぇ〜ですね。という訳で作品名は変わるかも、です。
まあそんなこんなでやっとIVRC終わってのんびりロイディでもいじりたい所ですが、まずは無理やり延ばしてもらった輪講の準備をしないと…。あー、卒論も…。
展示中にも頻繁に調整しないとうまくいかなくて、稼働率は今一だったんですが、うちのサークルの展示の中での人気投票では1位。一部の子供にやたらと人気でした。
今日は展示中に分かった問題点を修正して実験して、機材を搬出。岐阜ではばっちり…のはず。岐阜入りは明後日。
うちの大学の学祭が今週末の23日、24日です。うちのサークルは相変わらず色んなグループが好き勝手にそれぞれの展示をします。
うちのグループはIVRC岐阜本大会で展示するこの作品(下の方)を展示します。
あ、場所が例年と違うので、いつも来てる人はお間違え無く…。rogiken.orgトップの「工大祭のお知らせ」参照。
…ってのができなくて不便なので、勝手にそういう機能を付けてみました。JavaScriptをONにしてどうぞ。どっかに既に有りそうですけど…。
JavaScriptは詳しくないので、ひょっとしてブラウザによって動かなかったりするかも。Opera7とIE6では動きました。
Eclipse API版もついでに。生成スクリプト(Ruby 1.8.1で動作確認)も置いておくので、他のJavadocに検索機能を付けたい人はどうぞ。正規表現でテキトーに引っ掛けてる所が有るので、モノによっては調整が必要かも…。
Javaの入れ子クラスって、外側のクラスの非staticメンバに触れるんですね。びっくり。
class A{
private int i;
private class B{
void f(){ i= 3; }
}
public void g(){
new B().f();
System.out.println(i); //==> 3
}
}
static classって何の意味が有るんだろう(クラスはstaticに決まってるじゃん)と思ってたんですが、Javaの入れ子クラスは(static指定が無ければ)こっそり親オブジェクトへのポインタを持つみたいですね。
ちなみに、この「親オブジェクトへのポインタ」そのものは A.this で得られるみたいです。へー。
これはこれで便利かも。Listener書くのが楽になりますね。
って、子ノード(下の1,3)だけじゃなくて孫ノード(下の2)とかも対象になるんですねぇ。下のような再帰構造のXML扱っててハマりました。再帰的に検索する方が使いやすい場面って有るのかな…。
<root>
<node id="1"><node id="2"/></node>
<node id="3"/>
</root>
なんかJavaのDOMって全体的に面倒くさいんですよね。ラッパを書きたい気分。もっと便利な別のライブラリが有るのかな…。
RubyのREXMLの方がずっと使いやすそう。C++だとREXML似で手ごろな所で、世界樹なんてのが有ります。定番はXercesみたいですが、使った事なし。あ、これ、元々はJava用なのか。
…大学まで行ってしまいました(定期は持ってた)。研究室の鍵も無いので助手さんを呼び出して開けてもらう事に。昼飯はもちろん抜き、一度出ると入れないので、帰るまで研究室にカンヅメ。うー。
IVRCで、うちのロ技研の作品「こびと」は10チーム中3位。岐阜本大会(10月)行きが決まりました。
当日も開会ぎりぎりまで調整してましたが、展示時間中は(何度かのメンテを挟みながらも)無事稼動。
岐阜までにやりたい事は色々有るので、まずはその中から、やる事を選ばないと…。
IVRC(国際学生対抗バーチャルリアリティコンテスト)の準備に追われて忙しくて更新できません。忙しくなくても更新してないけど…。
今日宅配便の搬出を終えて、あとは現地で調整。何とか見せれるものはできたかなぁ、て所です。現地で問題が起きない事を祈るばかり。
8/31にお台場の科学未来館にて、なので、まあ暇な人はどうぞ。
あ、今年の1月〜今までの日記の日付が全部03/*/*になってる…(汗)。直しました。
気付くの遅っ。
04/2/20の日記に書いた「WinCVSが起動しなくなる」ですが、原因と解決法がうちのサークルのページに書いてあります。
「WinCVS 起動 エラー」で検索してこの日記にたどり着いた人を見つけて、思い出したので補足。
追っかけてなかったんですが、なんか今年は母校が活躍してるらしいです。5回勝って西東京ベスト4とか。
東京MXテレビで結構地方大会を中継してるんですね。知らなかった…(東京MXテレビを)。今日の対日大鶴ヶ丘も放映してたとか。見ときゃ良かったなぁ。準決勝(26日)は見ようっと。
野球部関係者とかじゃないんで、知ってる人は1人もいないんですけどね。高校で同じクラスに野球部のエースがいたので、当時は何回か観戦しに行きました。
RDB(PostgreSQLとかMySQLとか)用のDBに依存しないインタフェースだそうです。マニュアル。PHPのPearみたいなもんですね。
dbh= DBI.connect("dbi:Pg:testdb:localhost", "testuser", "testpass")
dbh.select_one("select * from hoge") #先頭1行を取得。
# ==> [1, "hoge", false]
おおっ、ちゃんと整数はInteger、ブール型はtrue/falseで返ってくるみたいです(Date/Timeにも対応)。ちなみにこのselect_oneの戻り値、見た目がArrayなのに実はDBI::Rowのオブジェクトです。紛らわしい…。あと、
dbh.do("insert into foo values(?, ?, ?)", 2, "I'm", Date.new(2004, 7, 24))
なんて書くと insert into foo values(2, 'I\'m', '2004-7-24') に変換してくれるようです。
なんか、Postgres2(仮)がやってる事はだいたいカバーされてますね(汗)。select/updateメソッドに当たるものは無さそうですけど。作る前にちゃんと調べないとねぇ。
てな訳で、自宅サーバにWebサイトを引っ越しました。リンク切れとか変な所が有ったら教えてください。
Webじゃんけんも数日前にこっちに引っ越してます。これでXREAのページの意味は完全に無くなったなぁ。
PHP 4.3.7以前のセキュリティホールが発表されてたので、早速portupgrade。
携帯を買い換えました。推定5〜6年前の古〜いJPhoneから、DocomoのD505iに。これで雨戸を閉めても自室が圏外にならない!
最近の携帯(といっても1年前のらしい)は3Dゲームが動くんですね。ちょっとカルチャーショック。
電話帳の移行が面倒。手作業だから打ち間違えそうだし…。CSVでエクスポート&インポートとかできないんですかねぇ。
自宅サーバを建てました。ディスプレイが壊れて使えなくなった古いデスクトップが放置されてたので、「サーバならディスプレイが無くても何とかなるだろ」って事でサーバにしたのです。OSのインストールも画面を見ずに…てのは無理なので、最初だけはサークルから小型の液晶ディスプレイを借りました。
OSはFreeBSD 4.9。UNIX詳しくないんですが、予想よりは順調。詳しい人が近くにいると強いですね。
OSインストール後、最初に動かしたのがロイディ。次にBoostをインストール。全然サーバになってないのに気付いてApache、Samba、PostgreSQLとかをインストール。あ、Emacs入れてないけどまあいっか。
infowebのWeb公開サービスがついにniftyに全面移行するらしいので、これを機に、このページ(namespace gimite含む)も自鯖に引っ越します。
言うの忘れてましたが、ロイディ Ver.3.06を公開しました。ロイディのメモリ消費(ログがたまって80MBぐらいになってた)のせいでスワップしたりして、個人的に問題だったので、それを改善しました(今は15MBぐらい)。今までは過去ログをファイルからロードして全部メモリ上に持ってたのを、やめただけです。実はファイル上の各行の先頭位置だけ持っておいて、ファイルにランダムアクセスすれば済むのでした。
Rubyのまつもとさん主宰の「言語鍛冶メーリングリスト」langsmithに参加。46人目っぽいです。
Javaで実装されたPythonです。Pythonのソース上で
from javax.swing import *
とか書くだけで、JavaのクラスをPythonのクラスとして普通に使える(継承もできる)のがいい感じ。PythonのコードをJavaの.classファイルにする事もできるっぽいです。「Javaで書け!」って言われた時の逃げ道として最適?
お遊びでCygwin XにTeXmacs(TeXで出力できる数式エディタみたいなもの?)を入れて動かしてたんですが、不安定で頻繁に強制終了。そのcoreファイルをよく見ると…
…何か変。ちなみにうちのDドライブの容量は8GBです。
某大会の書類審査用の企画書を(サークルの皆で)書き終えて、一息。
reg_managerをやっとBoost 1.31に対応させました。Boost.Regexが1.31で結構変わってて、動かなくなってたんですね。
rdtool 0.6.13をインストールしました。RD形式(Rubyのドキュメントで使われてるWikiみたいな奴)をHTMLとかに変換するツールです。MLのログで拾ったパッチを当てる必要が有りました。うっかりMakefileのタブをスペースに変換して、「missing separator」とか言われてハマる。
う、rdtoolの情報を拾いなおそうとしたら、ruby-lang.orgが落ちてる…。
買いました。確かに厚いですね。読み中です。前半部分はふつーにC++使ってる人でもすぐに役立つ内容ですね。そういう意味では「一般人編」と「マニア編」の2冊になってた方がいいのかも…?Spiritのリファレンスはありがたいです。
前に書いたとおりWinCVSが動かなくなって以来、渋々コマンドラインのCVSを使ってたんですが、WinCVS以外にもう1つGUIのCVSが有るのを思い出して導入してみました。
これがなかなかいい感じ。エクスプローラの拡張としてCVSが使えるようになるのです。リンク先の画面写真を見るのが分かりやすいですが、エクスプローラ上でファイルを右クリックして[CVS Commit]とかやればいいのです。
WinCVSと違って日本語のサポートは特に無いようで、日本語でコメントを書くとそのままSJISで登録されちゃうみたいです。SJIS←→EUC変換をするCVSのラッパコマンドを作って、そっちをTortoise CVSに登録すればいいのかも。でも、前にそのやり方でEUCのコメントをCygwin CVSに渡したら文字化けしたんですよねぇ…。
うちの環境だと何故か、CVSの状態を表すアイコン(リンク先の画面写真では網掛け)がしょっちゅう化けます。謎。
…という本が出るらしいです。素晴らしい。著者はLet's boostの稲葉さん。これは買わなきゃ。
オブジェクト指向スクリプト言語Rubyも読んでみたいなぁ(最近存在を知った)。
そうそう、ノリでRubyのMLに入ってみました。IRCの#ruby:*.jpもこっそりROMってみましたが、こっちはあまり会話がなさそう。
数日前に光ファイバが入りました。実測で下り10Mbps、上り6Mbpsぐらい。光にしては遅いかも…。そのうちFreeBSDのサーバを立てる予定。
それ用のルータ(Web Caster V100)の設定で、転送するポートを16個ずつしか指定できなくて、AOK用の設定が面倒でした…。
なんか結構Rubyラッパ側のバグっぽいのが有るな…と思ってたら、0.3.0が出てました。入れ替えてみましたが、直ってるバグも、直ってないバグも。ReadMeを見るとALPHAって書いてあるし、安定するにはもう少し時間がかかるのかも、ですね。
あと、非ネイティブスレッドのRubyらしい問題ですが、Windows上で「ウインドウメッセージが何も来ない状態では、サブスレッドも動作が止まる」ようです。何もしないタイマを10ms間隔ぐらいで走らせとけば、回避できます。
バグレポートでも出してみようかな…。
PHPって、「関数の大文字・小文字は区別しないけど、変数の大文字・小文字は区別する」んですね。知りませんでした…。メンバ関数、メンバ変数についても同様。何でこんな変な仕様に…。
MONSTERのアニメなんてのが始まってるんですね。これは見なきゃ。
数あるC/C++用ポータブルGUIライブラリの中でもかなりマシと言われてるwxWindows、のRuby版。気を付けなきゃいけないのが、これ。日本語Googleで一発で引っかかるんですが、よく見ると「This wxruby project closed」て書いてあって、どうも古いものみたい。クラス名とかが色々違います。新しい方はこっち。
ここからWindows用バイナリ(wxruby-0.2.1-mswin_release.exe)を落としてmingw版Rubyに食わせたら、さっくり動きました。Cygwin版でもインストールスクリプトにパッチを当てれば動くらしいです(未確認)。
問題は、ドキュメントが無いっぽい事。ソースから自動抽出したマニュアルもどきは有るんですが、メソッド一覧と使用例が分かるだけで、説明は有りません。あとはwxWindowsのドキュメントをRubyに読み替えるしかないみたい。
Ruby/PostgresはC APIそのまんまって感じでちょっと使いにくい(値が全部Stringで返ってくるとか)ので、ラッパを書いてみました。特徴は
とりあえず、ここに置いておきます。使い方はコメントとして書いてあります。
Cygwin版PostgreSQLとCygwin版Rubyをインストールして、Ruby/Postgresを使ってみました。Win版PostgreSQL&mingw版Rubyにしようかと思ったんですが、Ruby/Postgresのビルドでハマりそうな予感がしたので却下。
CygwinのPostgreSQLはsetup.exeから入れれるんですが、入れた後に色々設定が必要です。discypsの情報が役に立ちました。「サービスとして実行」の方は、最初ipc-daemon2が「そのサービスを開始できませんでした。」になって駄目だったんですが、何故か次の日にはうまくいきました。非サービスとして起動したipc-daemon2が生き残ってたのかも…。
Ruby/Postgresは、このページの説明の通りにインストールしたら、素直に動くようになりました。
某コンサートに行ってきました。曲目を言うとネタバレだとか言う話を聞いたので、曲名は伏せますけど、FF9のあの曲が聴けたので満足であります(僕は、当日まで曲目が明かされない方が意外でした)。終わり方もいかにもFFで、いい感じ。でも、パンフが2000円は高すぎ。
ロイディ Ver.3.05ですが、いきなり「ログが少ない状態でたまに落ちる」バグが発覚したので(汗)、Ver.3.05.1を公開しました。たぶん直ってるはずです。あと、Win98では、GDBMが正常動作しなくて、ロイディがちゃんと動かないという噂が…。
公開しました。次のバージョンでは、発言率の自動調整と自発発言機能を付ける予定です。どっちも、とぼっちが持ってる機能ですね。ボットだらけの#reudyroom:*.jpは、「誰かが話すと、とたんに煩くなる」「一度静かになると、誰もしゃべらない」状態なので、これをなんとかしたいなーと。
春休み中にロイディの仕組みの解説を書いてWebにUPするつもりなんですが、暇があるかな…。今でもこの辺に研究報告書のPDFが置いてあるんですが、もっと分かりやすくして、最新の機能も含めて、説明する予定です…。
間が空きまくってます。特に書く事が無いんですよねー(笑)。
ロイディですが、もうすぐVer.3.05が出ます。たぶん今夜中。ログの追加、編集がしやすくなったのと、類似発言検索アルゴリズムを変えた(実は文末6文字しか見なくなった)のがメインでしょうか…。あ、あと、自動再接続機能が付きました。
長いこと休止状態だったWebじゃんけんですが、一応復活しました。PHPのコード(PEAR使用)から、XREAのPostgreSQLのDBに繋がらなくなってたのです。前は、
DB::connect("pgsql", array("persistent"=>true));
で繋がったんですけど、それじゃ駄目になったみたいで。DSN("pgsql"の部分)を色々いじったんですが、結局繋がらず。しょうがないので、別のサーバで動いてる奴にリンクを張りました。XREA使ってる意味が無い…。
さて、明日は某コンサートに行ってきます。
最近、突然WinCVS(1.2 SJISごった煮版)が起動直後にハングするようになりました。アンインストールしたり、レジストリを消したりしてみたんですが、直らず。最初の設定ファイルを閉じるとハングします。どっか他の場所に設定が残ってるんでしょうか…。
しょうがないのでCUIのCVSを使ってます。コメントをEUCに変換してチェックインするのが面倒…。
やっと試験が終わりました。先輩達の卒業研究発表を聞きつつ、研究室選び中。
最近スパムとかウイルスメールが多いんで、先輩の勧めでPOPFileを導入してみました。プロキシとして働いて、スパムメールの件名に[spam]を追加してくれます。あとはBecky!の設定で、[spam]付きのメールをゴミ箱に直行させるだけ。
最初の50件を除くと、今までに502通(うちスパム182通)を受信して、分類エラーが18通。精度96.6%。結構いい感じです。
エラーの内訳を見ると、誤検出(普通のメールをスパム扱い)が14通、見逃し(スパムを見逃した)が4通。誤検出の方が多いのがちょっと気になりますが…。
うちに届くまともなダイレクトメールは、色んな人からばらばらの話題で時々届くんで、その判定が難しいみたいです。
ここのサイトをFTPで更新しようとした時の事。「/bcbqtree/coreを削除しますか?」という妙なメッセージが。「まさか掲示板CGIがcoreを吐いたのか?」と思って見てみたら、そのまさかでした。で、ついでにデータファイルが1個消失してました…。
が、coreファイルをよく見ると、消えたファイルの中身っぽいものが。それとバックアップを組み合わせて、何とかデータは復旧。
でも、原因は全く不明です。普通、Perlスクリプトにどんなバグが有っても、core吐くって事はないですよね…?Niftyのサーバが不調だったのかなぁ。
久しぶりのロイディのバージョンアップです。12/22の日記に有る「物まね機能」を追加しました。Wideサーバのロイディは、この機能を応用して、ボットの発言を使わないように設定しました。#reudyroom:*.jpではボット同士の会話が多くて、ボットの反応ばかり学習して頭が悪くなってるっぽかったので(笑)。これで結構賢くなったんじゃ?と期待。
他にも色々改良案が出てるんですが、他にも色々やる事が有って、なかなか進まず。試験も近いし…。