Home

日記
暫定引っ越し (16:21)Edit

tDiaryと1470.netを同じhttpdで動かすといいことがなさそうなんで、tDiaryを別マシンに移動。暫定的にhttp://tdiary2.ishinao.net/というURLにリダイレクトをかけてますけど、そのうちhttp://tdiary.ishinao.net/でアクセスできるようになると思います。

Published At2005-01-28 00:00Updated At2005-01-28 00:00

日記
tDiaryのソースコード検索 (23:20)Edit

tDiaryをいじるお勉強になるかと思って、バージョンアップされたばかりのgonzuiでtDiary 2.0.0 full版のソースコードを検索できるようにしてみた。

いつまで動かしているかわからないけど、tDiaryをいじりたい人はこれで検索してみたりするといいかもしれません。という使い方で実践的に便利だといいなー>gonzui。あと、PHPに対応したら、自分のライブラリの管理もこれでやりたいなー。

Published At2005-01-29 00:00Updated At2005-01-29 00:00

日記
『blogで書く』を追加 (00:40)Edit

blogmapの[もっと詳しく]ページに、[blogで書く]というリンクを追加しました。要は、blogmapに登録されている記事・メディアに関して、自分のblogで記事を書くためのHTMLテンプレート作成機能です。それほど利用者は多くないとは思いますし、あまりデザインも真面目にやってませんが、便利なようなら使ってみてください。

Published At2005-01-30 00:00Updated At2005-01-30 00:00

日記
やっぱりダメだ (19:00)Edit

ruby 1.9を入れてrubyソースコード解析に対応させようと思ったんだけど、Ripperのparseとiconvの変換でこけるんで、まともにgonzui(-import)が動かないなー。もしかして昨日の段階のruby-1.9-todayだとダメとか?

ひとまず

iconvの方は、windows-31jをcp932にすれば通るっぽい? ただ、evalとかstrscanとかがみんなこけるのは、よくわからないな。Rubyの開発系MLとか購読しておかないとダメか。

Published At2005-01-30 00:00Updated At2005-01-30 00:00

日記
付箋が貼れるといいなー (13:17)Edit

Ruby 1.9をうまく動かせないんで、(Rubyのソースに関しては)パッケージマネージメントとインクリメンタル検索機能しか使えていないんだけど、それだけでも結構便利。あとできれば、これに付箋が貼りたい。付箋にコメントをつけて、さらに関連するコードにリンク(「(パッケージ名):ファイル名:行」なんて表記かな)を張ったりとかすると、解析とかレビューですごく使えそうだ。wema2がリリースされたら、gonzuiと重ねて動かすのにトライしてみたいなー。

Published At2005-01-31 00:00Updated At2005-01-31 00:00

日記
PHPのparser (15:58)Edit

RubyでPHPのパーサーを書くのは面倒くさそうだけど、PHPが存在する環境では、PHPのtokenizerをそのまま使うようにすれば、PHPに対応するのも簡単そうだなー。ひとまずPHPでparseした結果を適当なフォーマットで出力するコードだけ書いてみた。

<?php
function tokenize($source) {
$tokens = token_get_all($source);
$parsed = '';
$result = '';
foreach ($tokens as $token) {
if (is_array($token)) {
$type = $token[0];
$text = $token[1];
} else {
$type = 0;  //literal?
$text = $token;
}
echo 'LINE: '.count(explode("\n", $parsed)).' LENGTH: '.strlen($parsed).' TYPE: '.$type.' TEXT: '.$text."\0";
$parsed .= $text;
}
}
if (isset($argv[1])) {
$source_file = $argv[1];
if (file_exists($source_file)) {
$source = file_get_contents($source_file);
} else {
die('FILE NOT EXISTS: '.$source_file);
}
} else {
$source = '';
$fp = fopen('php://stdin', 'r');
if ($fp) {
while (!feof($fp)) {
$source .= fread($fp, 4096);
}
fclose($fp);
}
}
tokenize($source);
?>

あとは、PHPのtypeで必要なものをgonzuiのtypeに読み替えたりしつつ、Ruby側でこの出力を取り込んでいけばいいのかな。あるいはPHPでRubyのソースコードを出力して、そのままevalさせたりとかできるんだろうか?

ただ、Rubyがわからなくてlangscan以下のディレクトリを見ても、何をやってるのかよくわからない。一回ちゃんとRubyのお勉強をしないと、いろいろ不都合(やりたいことがすぐにできない)が多いなー。

Published At2005-01-31 00:00Updated At2005-01-31 00:00