2003年5月1日
ツッコミ機能
昨日、notさんのところからダウンロードしたツッコミ機能のアレ。うまく機能してないです。『エラーが発生しました』とサーバからいわれる。パーミッション変えたり、nboard.rb内でのパスを相対パスにしたり絶対パスにしたり。自分で思いつくことはやってみたけれどもダメなのだ。
ためしに
#!/usr/local/bin/ruby
print "Content-type: text/html\n\n"
print "<html><body>Hello World</body></html>"ってなコトを書いて、test.rbでアップしてみる。すると、中身のコードがそのまんま表示される。おや?では、test.cgiと名前を変えてみると、Hello Worldと表示される。ってコトはRubyはちゃんと動くようだね。
しょうがない。自分で作るか。どうもよくわからんが、*.rbだとうまく動かんような。あれかな?.htaccessとか書かなきゃダメ?今まで設置しなくともなんとかなってたようだが。
いまは、ツッコミフォームがありますが、ツッコめません(*1)。ツッコミボタンからtest.cgiを呼び出して、どうデータが渡されていくかを勉強しつつ、1行かいてはツッコミボタンを押して、の繰り返し中。commentフィルターを生かしたまま、データを受け取り、外部テキストへ吐き出すのを自分でcgi/rubyで勉強しつつ書いてます。*.cgiだとrubyで書いても動いてくれるようです。
あぁ、めんどくさいなぁ。知識がおっつかない。できればnotさんのnboardで運用したかった・・・
それはさておき、今のところツッコミフォームのデータをテキストに吐き出すところまでは書けました。何しろ、あちこち調べつつ、1行書いたらアップロードして動くか試すってな具合でして。本当はもっと勉強して知識を見につけてから書けばいいんだろうけども、、性分でしょうかね。設置して失敗してしまったので、うまく動いてくれないと我慢ならん。
おや。notさんがツッコミ機能についてコメントをくれている。ありがたや。早速入れ替えてみました。ふむ。エラーテキストを保存するように書き換えて、htaccessを見直してみた。エラーは出ないが、ツッコんでもツッコんでもまた後でツッコみなおせといわれる。ロックがかかってるってことですか
?おかしいなぁ。
2003年5月2日
ツッコめないツッコミ機能
しつこくもがき続けてます。あきらめ悪いのです。どうにかツッコミ機能をつけたい。今日もtest.cgiとしてでっちあげていこうっと。
あぁ、でもめんどくさいなぁ、でもツッコミ機能つけたいし。しかーし、sendmailとかでエラーが出て独力じゃ解決できん。しかしいちいちnotさんに聞くのは嫌だしなぁ。じゃぁ自分で作るか。という堂々巡りのなかでnboard.rbをテストしたり、test.cgiをでっち上げていったりと、憤懣やるかたない感じで、悶々と作業しとります。精神的によろしくないが、棚上げしてずっとやきもきするよりは少しでも作業をすすめたいのだ。
ロック云々はボクが書き換えてるときにlock.unlockの1行を抜いてしまったからでした。そりゃ、ロック掛けっぱなしさね。その辺訂正。結局、最終的に見てみるとnboard.rbとnboard-libを切り貼りするだけの作業をしたことになるのでしょうが、1行づつ、1ブロックずつ書いていくことで、データのやり取りというか流れを自分なりに全体的に把握できるようになるだろうと思われ。スキルアップしたいのですよ。そんなワケで、不平不満垂れ流しておりましたが、もう少し見守っていただけるとありがたいのです。
休日の過ごし方
明日から実家に帰るので1,2日は日記更新できませぬ。もっとツッコミ機能をいじっていたいけども、さすがにノートPC(*1)とPHSカードを実家に持って帰ってもねぇ。ゆっくり飲んだくれてきます。
2003年5月3日
ツッコミできた
ような気がする。VAIOノートでan httpd使ってローカルでnboard.rbを試してたら何故かうまくいくようになった。でも、HTMLにSSIでのincludeができてないけど。でも書き込み〜テキスト&HTMLへの吐き出しはうまくいってる。これは、VAIOPC(*1)のnboard.rbをそのまんま持ってきただけなのに。そんで、ノートPCからデスクトップに戻してhttpd立ち上げてローカルで試すと、またうまくいかん。表示できないって言われる。なんじゃこりゃ。とりあえず、ノートPC上ではうまくいったのだから、ソースをいじらずにこのままアップ。
やた。xrea上でも書き込めてる。けどincludeされん。htaccessかな?
やっと表示もできた。これですっきりした。あぁそりゃもうすっきりさ。気が済みました。notさん大変おさわがせしました。
あ、そういや、今日から実家に帰ると言ってましたが、1日延期しましたのです。明日から1泊してきますですよ。
おや?おかしいな。過去日記のほうにツッコミが表示されないなぁ。どして?SSIのincludeでパスを指定した場合、../って効かないのかな?ってどこかで見たな。あ、あったあった。 ココ(http://www.mikeneko.ne.jp/~lab/web/htaccess/ssi.html#ssi2,ミケネコのhtaccessリファレンス)だ。includeの場合、fileで指定すると../は含められないので、virtualで指定しましょうだって。
comment.rbの中をfileからvirtualに変えて見る。おぉ。表示されるようになった。よかったよかった。そういや、過去日記のCSSファイルも書き換えておかなきゃ。
おでかけ
明日実家に帰るのです。手ぶらじゃアレだしってことで、おでかけして手土産探しに。おなかもすいたので昼ごはんを食べにでかけるついでにですが。イヤ、この場合、昼ごはんのほうがついでかな。
それはさておき、その帰りにコンビニにいったら、ガッシュの名のついた小さな箱発見。おまけにガッシュのフィギュアが入っているようなので、すかさず2個ゲッツ!
で、その結果がコレ↓

なんで二つなんだよう。しかもなおみちゃんだ。キャンチョメかバルカンが欲しかったんだよ!1個で十分だよ!
■水曜どうでしょう[DVD]
忘れてた。5月1日に水曜どうでしょうのDVD第2弾の予約してきた。1日から予約開始でしたので。でも予約開始時間である午前10時にローソンにいったわけじゃないですよ。ちょっとそこまでは。仕事ですんで。
2003年5月5日
帰省完了
奥様の実家に帰省して、さっき帰ってきて一息ついた。今回もまたいろいろもらってきてしまった。ありがたや。しかし、どこにもよらず帰ってきたので、飲むものも食べるものもない(作ればある)。困ったね。
そういえば、以前買ったインスタントのトムヤム麺の袋があったんだっけ、と思い作って食べる。うむ、薄い。それっぽい味だが、レモンの味もエビの味もしない。今度材料買ってきてまた作ろうかなぁ。奥様はトムヤムクンは嫌いらしく、作ったり食べ始めたりすると、遠ざかってゆくのだ。
必要な材料のうち、なかなか一般では売って無そうなものは、干した状態のもので買い込んであるのでした。コブミカンの葉とか。さすがにフクロタケは干して売ってはいないので、シメジかシイタケで代用するとして。レモングラスも確か干したものを買ってあったっけな。
2003年5月6日
引越し
したいな、と。ウチは日当たりが悪いのです。おかげでサボテンや多肉植物が育ちが悪いこと悪いこと(*1)。どうにかしたいのだけども、今のうちじゃどうしようもない。紫外線ランプとかって効果あるのだろうか。売ってる所知らんけど。
sum_priceプラグイン
なんだか使ってみようという気がおきるも、amazonフィルタを使ってないのだ。 ちはやさん(http://sein.pobox.ne.jp/nowhere/diary/200305a.html#d3_t2,不定期日記)のように、sum_priceプラグインのためにamazonフィルタ導入してみようかな:-)
でも、うちではbookstore_xを使っているのです。これ用のsum_priceフィルタってできるかなぁ。ちょっとソース見てみようっと。
って、bookstore_xのキャッシュから買った本の合計を出せないかと、sum_priceのソースを見つつ、とりあえずいままで何冊買ったのかというのを出すようなのを書いてたら、期間も指定できないかなと。いつからいつまでに買った本は何冊で、合計いくらですってな具合。あれかな、日記からリンクを抜き出すのと同様なやり方でやれば、何月何日にどんな本を買ったのか(*2)がテキストに吐き出せるかな。
さらにそのテキストファイルに吐き出した、日付付きのISBNリストに対して、bookstore_xなりamazonなりをかけてHTMLに変換したキャッシュを出しておく、と。そうすりゃ今月の購入本リストってな感じに?いや、今現在最新日記に表示している、スケジュールプラグインによる購入予定のと名前が近しいのでごっちゃになりそうだ。
そういうのでなくて、(ISBN○○・・・)っていうのをbookstore_xでネットから書影をひっぱってきて、その情報をHTMLに挿入してますが、その本のデータ表示部分だけ集めて、月別表示みたいにしておけば見やすいかなと思って。自分がです(笑)。とりあえず、bookstoreのキャッシュディレクトリからファイルをカウントして(日記上で触れているもののみですが)今まで何冊買ったかという一文を挿入するのをでっちあげてみた。ぼちぼちと進めていきますです。
2003年5月7日
onDiary
素敵だー。 IPPOさん(http://ippo.s5.xrea.com/x/ondiary/,onDiary)がネット上でnDiary生成ができるようなモノを作って公開されている。ボクが使用しているサーバはIPPOさんと同じxrea(*1)なので、設定など労せずして使えそうな気配。
でも、うちのnDiaryは最新日記のファイルと過去日記&トピックスファイルの階層が異なっているので、onDiaryの圧縮ファイルを展開したものをそのままUPではダメなのだね。
日記というものについて
今日もアンテナ巡りをしていてKONOさん(http://www.kt.rim.or.jp/~kono/?05080111,KONO's)のところから、を見に行ってみた。あぁ、すごく素敵な文章だなと思ったのです。内容についてもですが、この言い回しというか表現というか。とても自分の書く日記における文章にくらべると、考え方や表現に一貫性があり、頭の使い方がこうも違うのかな、と。なんだかちょっと衝撃的でした。
2003年5月8日
ラヴクラフト
なんと。ラヴクラフトの作品(*1)がPDFで公開している サイト(http://www.gizmology.net/lovecraft/works/index.htm,H.P.Lovecraft Library)があった。すばらしい。CLIEを買ってからというもの電子本に接する機会ができたわけですが、さすがに英語でPDFファイルが手に入るとは。むつかしそうだけども、日本語版を読んでて大体のあらすじは頭にはいっているから、勉強がてら気長に読んでみることにしよう。
うちのCLIEではDocument to Go premium editionが入っているんで、PDFもPCからCLIEに流し込めるんだな。便利だね〜。今日は『The Case of Charles Dexster Ward』をインストールした。いつ読み終わることやら。
2003年5月10日
2003年5月11日
onDiary
この間、IPPOさんが作られたonDiary。どうもアンテナを見ていたら、入鹿さんがためされたようでした。一応、そのやりとりを(日記上だけですが)追って読んではいたので気にしてはいたのです。
で、テストは概ね終了だそうなので、 公開(http://ippo.s5.xrea.com/x/ondiary/,onDiary,nDiary on the WEB)されていた。ちょっと前のバージョンをダウンロードはしていたのですが、今日みた20030511のタイムスタンプのものをダウンロードしておく。うちでもやってみるかなぁ。サーバにあげとけば、CLIEでネットしてるときにアクセスして日記をつぶやけるってことですし。
IPPOさんと同じXREAだからテスト的意味合いは薄いかもしれませんが。
で、試してみましたがダメでした。CGIWrap Error: Script Execution Failedとか言われましたよ。Error Message: No such file or directory って出てるからボクの設置ミスの可能性大だけども。そもそも、ボクはローカルでは階層を変えてるのです。その辺が原因かな?などとも思ったり。原稿ファイルと出力ファイルの階層も違うし、出力ファイルにしても最新日記と過去日記&トピックスファイルも階層違うし。これらの日記関連ファイル全てははnDiaryスクリプトのファイルとも階層が違うし。
って、サーバ上で書き換えようと思ったら、サーバ上での保存はできても日記生成ができなかった。どうも.htaccessの方が問題らしい。Script Errorって言われた。
The script did not produce proper HTTP headers. Please see the error log to see the detail of the errors. Depending on the server configuration, you can also run this script under CGIWrap debugging. Usually, either rename or link the script temporarily to a file which ends with .cgid extension, or add a AddHandler cgi-script-debug .cgi line to your .htaccess file.
だって。
む。うまくいったっぽいので、再度サーバ上で書き換え。やた。うまくいった。いろいろテストしてみよう。
おや?他のフィルタを試してみるかな。bookstore_xとか。
これ(#ff0000)はどうかな?inlinedecorateはうまく行ってるみたい。でもsaveの時に一発?をチェックしないでsaveしてから生成するとエラーになることが多いなぁ。
bookssotore_xフィルタはどうもダメっぽいな。再度チャレンジ。
- スイス時計の謎: 本: 有栖川 有栖 by 有栖川 有栖" />
Amazon.co.jp: スイス時計の謎: 本: 有栖川 有栖 - 著有栖川 有栖
- ISBN4-06-182316-7
- 発行講談社
- 発売日2003.5
- 価格\924
- 説明2年に一度開かれていた同窓会当日、メンバーの一人が殺害され、被害者のしていた腕時計が消失。犯人の意図に、臨床犯罪学者・火村英生と推理作家・有栖川有栖が迫る表題作など、全4編を収録。国名シリーズ第7弾。
と思ったらできた。なんでだろう?さっきはエラーだされたのになぁ。まぁいいか。
ってなワケで概ねonDiary動作確認終了。
続onDiary
導入と動作確認が終わったのですが、すべてサーバ上で書きたいわけではないのでどうしたものやら。仕事中とかでちょこっと日記をサーバ上で書いて更新したとして、帰ってきてからPC上で続きを書く?
あぁ、帰ってきてからもサーバ上で書けばいいんだろうけども。なんとなくPC上でも書きたいんだな。xyzzyだとPC→サーバへのアップロードの場合、更新したファイルだけをアップロードしてくれるftpupdateがあるけども、その逆って作れないかな。タイムスタンプを比較してPCのほうが新しければサーバにアップロードするだけでなく、サーバ上のが新しければPCにダウンロードもしてくれるようなの。
って探したらあった。すげー。いるもんですね同じこと考える人が。先達万歳。 ftpdown(http://www.mirai.ne.jp/~gyo/xyzzy/ftpdown.html,Junk Spirits)ってのを発見。
あれ?うまくいかないな。host not foundだってさ。おかしいな。まぁいいか。サーバ上で日記を書いた日はサーバからlogファイルをまとめておとしゃいいか。
あ。onDiaryの方で反応をいただいている。まぁ、nDiaryのまっとうな使用法が静的生成なので、onDiaryは長期旅行だとかの非常手段的に考えていたので、いつでもいけるよう設置してみたのでした。けっして 仕事をサボってまでnDiaryをいじっていたい(#ff0000)ってワケではないんですよ。
それはさておき。config.txtとかhtaccessの属性いじってたらおかしな具合になってしまってびっくり。アップロードしなおして属性をチェック。うむ。問題なくなった。
一歩さんにbookstore_xが動くのは変だ、ということでしたが、今日記をサーバで再生成してみました。そしたら、bookcacheを生成の際にチェックしますよね?
CHK; ISBN; 4-592-13426-5
CHK; reviewlink; ISBN4-592-13426-5
CHK; access; http://www.amazon.co.jp/ -> 4-592-13426-5
CHK; access; http://www.bk1.co.jp/ -> 4-592-13426-5
CHK; access; http://www.esbooks.co.jp/ -> 4-592-13426-5
CHK; access; http://www.netdirect.co.jp/ -> 4592134265
CHK; access; http://www.jbook.co.jp/ -> 4592134265
CHK; access; http://bookweb.kinokuniya.co.jp/ -> 4592134265
CHK; access; http://www.skysoft.co.jp/ -> 4592134265
CHK; cannot read cahce. FILE; ./bookcache/rcm/isbn4592134265.txt
CHK; reviewlink; ../topics/200305.html#07_t2_2
CHK; ISBN; 4-06-182316-7
CHK; reviewlink; ISBN4-06-182316-7
CHK; cannot read cahce. FILE; ./bookcache/rcm/isbn4061823167.txt
CHK; reviewlink; ../topics/200305.html#11_t1_10
make '../../../topics/200305.html'
CHK; ISBN; 4-06-182316-7
CHK; reviewlink; ISBN4-06-182316-7
CHK; cannot read cahce. FILE; ./bookcache/rcm/isbn4061823167.txt
CHK; reviewlink; topics/200305.html#11_t1_10
make '../../../index.html'
make '../../../topics/topics2003.html'
make '../../../topics/aquarium.html'
make '../../../topics/books.html'
make '../../../topics/ndiary.html'
make '../../../link.html'
finish. (10.7215sec.)
こんなメッセージでたんですけども、タイムアウトってどのくらいなんでしょうね?コレ見る限りだと動いてますよねぇ?それから、コレをごらんいただけるとおりquoteも引数付きで動いてるようですよ。
あ、それと入鹿さんがonDiary2匹目期待してそうだったので、入鹿さんとこにお邪魔して2匹目宣言してきちゃいました:-)
サルでもわかるnDiary
ってな感じの解説的サイトだれか作らんかな?いや、そういう位置づけのものがRWiki-nDiary(http://rwiki.jin.gr.jp/cgi-bin/rw-cgi.rb?cmd=view&name=nDiary,RWiki-nDiary)だとかなんだろうけど。せっかくnDiaryUserWikiを立ち上げてくださったので活用したいのですが、どう書いたら良いものか。フィルタとかプラグインをどんどん晒していって共有したいんですけどねぇ。他人様のフィルタをボクがタレこむのも気が引けるんですよね〜。
なんてえらそうなことをつぶやいてもしょうがない。せめて自分がかかわったフィルタとかでも晒しておこうかな。
んむ。完了。サブドメイン挿入フィルタを知ってる限り(*1)の方のものを記しておきました。それと、リンク収集フィルタ&挿入プラグインも。ボクのところで使用しているのは、リンクの書式を変えてしまってるので一般的ではないと思いまして、 ちはやさん(http://sein.pobox.ne.jp/nowhere/diary/200304b.html#d16_t2,不定期日記)の方ので記しておきましたよ。
wakaさん(http://wakahiko.cool.ne.jp/ndiary/200305.html#11_t3,+++ ローテンション日記 +++)やがnDiaryのデータ集積所について書いてらっしゃる。ボクとしては、notさんのnDiary.net(http://www.ndiary.net/,nDiary.net)は本家本元なので、情報発信の中心としてはもちろん異存などありませんが、nDiaryってユーザーのカスタマイズの自由度高いから、フィルタやプラグインをいじる方がいらっしゃいますよね?そのあたりのカスタマイズしたものを晒しておくところ(*2)として、ちはやさんのを挙げておきたいような。nDiaryを導入するならば、有里さんの nDiary導入用覚書(http://member.nifty.ne.jp/alisato/ndiary/index.html,nDiary導入用覚書)を見ておけばオッケー的な存在として、ここをこうカスタマイズしたいけどどっかにないかなぁ、なんてのを検索して探し回らずにすむような存在としてで。
まぁ、あれこれつぶやかずとも、それぞれのサイトにnDiaryユーザーがどんどんアクセスしていけば、なるようになるっつーか、勝手に棲み分けが成り立っていくんじゃないかと。
あ。一歩さんに拾われてる。
仕事をサボってまでnDiaryをいじっていたい
はぐっ
致命弾
む?ご同輩?(笑)
まぁ、それはおいといて。概ね一歩さんのおっしゃるとおり、っつーか以心伝心?やはり本家本元では清書的運用でお任せして、フィルタやプラグインなどどんぶり的なところとしてUserWikiってのが良いかなぁ、などと。でもタレこみづらいんだよなぁ。かといってカスタマイズした本人が積極的に日記以外のところに情報一元化してくかっつーと、どうかなぁ?と。そうすると、本家本元にそういうのも全部いれてしまえば、片っ端からタレこんでも、開発元だからいいかっていう具合にタレこみづらさも多少緩和できたり?
もうちょっとnDiary.netのアクセスが増えてみなさんの反応を見てからでもいいかなぁ、などと日和ってみたり。
さて、寝るかな。携帯をauに変えたので着歌とか着声が豊富なので、最近の起床時のアラームは次元の声で
『早く起きたほうが身のためだぜ』
です。素敵過ぎだが、眠気を飛ばすにはいたりませんな。
入鹿さん(http://www.irukaya.net/cgi-bin/onDiary/html/200305.html#12_t1,行間を読め!)が書いてらっしゃるコレ
導入した最大の理由はWebシステムとする事で、どっからでも更新可となる。
一番有り難いのは、Palm(WorkPad/c505)からの更新が可能になるという点。
荷物を持ちたくない旅とか出張の時は、PalmとAirH"カードとキーボードだけ持って行きます。
するってぇと、メールチェックとかWebチェックとかは出来てもnDiaryで作ってるサイトの更新ができない!
そゆわけで、cgi化というのは非常に歓迎される出来事だった訳で。
そうそう。こういうことが言いたかったんですよ。onDiaryの導入理由。ボクもPalm(CLIE/NX60)を使用してるのでそういう使用方法を考えていたんですよ。
2003年5月12日
onDiary
微妙にonDiaryが広まりつつある?喜ばしいことですね。こうしてひろまっていろいろカスタマイズ要望とかでてくることでしょう。そしてもっと便利機能が付加されることでしょう。多分多分。
一歩さんがonDiaryを更新されている。タイムスタンプが12日になっている。うむ。dummyout.rbだけアップしなおせばいいんかな? 一歩さんによるreadme(http://ippo.s5.xrea.com/x/ondiary/,onDiary;nDiary on the Web)も公開されてますね。んむ。読んでおこう。
あ。 入鹿さん(http://www.irukaya.net/cgi-bin/onDiary/index.html,行間を読め!)も覚書かいてらっしゃるなぁ。これも読んでおこう。
さ。dummyout.rb更新したからonDiaryをまた試してみようっと。
あぁビックリ。dummyoout.rbのアップロードの際になにやらファイル置き換えるかなんかして具合が悪くなったけども、index.cgiをアップしなおしたら直った。ん〜解せん。まぁ直ったからいいか。
う。一歩さんよりコレ↓
XREAサーバは何処まで負荷に耐えられるか?
耐久テスト by booksotre_x
そういう訳で今回の社内開発コード「どぜう」の実験は、
猫旦那様の手により行われた。
そんな面白実験なつもりはなかったのですが、面白いので続けてみよう:-)
あぁ、笑わされたさ。大笑いさ。
さて、本実験であるところの「どぜう」。
私の日記生成におきましては、引数なしで作成しております。つまり今月分まとめて作成してるのであります。そのため、月末に向かうにしたがってbookstore_xは稼働時間が長くなるのは明白。よって、本実験は今回のみのテストにて判断されぬよう気をつけられたし。(*1)
尚、一歩様よりXREAのサーバ負荷率に注意されたし、とご指摘を賜ったので、「どぜう」実験後調査したところ
『0ポイント』でした。
あ。わたしが2匹目のどじょうだから「どぜう」か。再度笑。
今月は購入予定の本類が少ないからあまり耐久実験にならんかも。来月はたくさんマンガを買う予定になっているんだけども。
index.cgiもサーバにあげとかないとdumyout.rbだけじゃ意味無いらしいとツッコミをいただいたので、index.cgiもアップしてみた。他はアップしなくていいのかしらん?onDiaryのフォルダごとアップするとnDIary関連のものが上書きされてしまうので、更新したっぽいものだけアップしたいのですよ。
で、index.cgiをアップしなおしたので、XREA上にて日記更新してみた。
2003年5月13日
onDiary
入鹿さん(http://www.irukaya.net/cgi-bin/onDiary/html/200305.html#13_t1,【入鹿屋本舗】)のトコで開発コード「どぜう」の由来を知った。そういう由来でしたか:-)
やはりアレですね。Palmでいつでもドコでも日記を更新できるのは便利だけども、グラフィティ入力だと数行が限度ですね。書くのがだるくなってきますな。以前つかっていた、visor deluxeのほうでは折りたたみキーボードを使っていたのですが、今使っているCLIEでは折りたたみキーボード買ってないのでした。キーボードといえばTG50(*1)というのもNX60買うとき考えたのですが、多分あのキーピッチだと文字入力としてはグラフィティと変わらない労力かなと。
入鹿さんところを読んでいて、そういえばnAntennaってのもあったんだっけねぇ、と思いましたとさ。nDiary Antennaは全て見てるのですが、そっちは見てなかったな。
ため息すると
ため息つくと幸せが逃げるそうな。うちの奥様に言わせると2つほど逃げたそうですよ。幸せが。2つってなんだい?って言ったら『温泉に行く』のと『ディズニーランドに行く』というのらしい。2つって将来(おこるであろう)のイベントの数でしたか。ずいぶん大物から逃げていくんですね。
そいつぁ迂闊にため息つけんな。
nDiaryUserWiki
なにげに こちら(http://sein.pobox.ne.jp/nowhere/cgi-bin/hiki/hiki.cgi?FrontPage,nDiaryUserWiki)も盛り上がってきてるような?notさんを始めとして使用ユーザー一覧も増えてますし。
あぁ、そういえば、サブドメイン挿入フィルタは知ってる限りの人のを晒しあげただけできっかけやら経緯とかすっとばしてましたね。どうもタレこみ方がなってなくてすいませんです。
少々反省したので、リンク収集フィルタの方を修正しておきました。経緯といってもボクがnotさんに問い合わせて、対応していただいて、ちはやさんが月別出力機能を付加して・・・ってボクはなんもしてないな。
開発コード「どぜう」
実験の続きとでもいいましょうか。bookstore_xは毎日日記を生成してるとその日の最初だけ各書店にアクセスしにいってキャッシュにためますよね?
今日、ローカルで日記を生成して48秒ちょっとだったのですが、サーバにアップして日記を書き換えずにonDiaryで生成してみる。サーバでも同様に動作するはずだから単純計算で48秒ほどbookstore_xが動くはずですが、コレ↓
-- nDiary version 0.9.3.beta18 --
CHK; ISBN; 4-592-13426-5
CHK; reviewlink; ISBN4-592-13426-5
CHK; access; http://www.amazon.co.jp/ -> 4-592-13426-5
CHK; access; http://www.bk1.co.jp/ -> 4-592-13426-5
CHK; access; http://www.esbooks.co.jp/ -> 4-592-13426-5
CHK; access; http://www.netdirect.co.jp/ -> 4592134265
CHK; access; http://www.jbook.co.jp/ -> 4592134265
CHK; access; http://bookweb.kinokuniya.co.jp/ -> 4592134265
CHK; access; http://www.skysoft.co.jp/ -> 4592134265
** Filter error: 'bookstore_x'.
make '../../../topics/200305.html'
make '../../../index.html'
make '../../../topics/topics2003.html'
make '../../../topics/aquarium.html'
make '../../../topics/books.html'
make '../../../topics/ndiary.html'
make '../../../link.html'
finish. (9.184308sec.)
エラーってでちゃいました。サーバの稼動状況によるんでしょうけどもタイムアウトと判断してよろしいんでしょうか。
再度チャレンジ。こんどは生成ログがでるまでもなく蹴られた。
最再度チャレンジ。0.4秒ほどで生成完了。サーバの負荷率はあいかわらず0 ptでしたよ。
2003年5月14日
pirceフィルター
bookstore_x版のpriceフィルターが欲しいなぁ、と過去に書いた覚えがあるのですが、 一歩さん(http://member.nifty.ne.jp/ippo/s_d200305.html#d14_t1,IPPO's Diary)が反応を下さっている。ありがたや。まぁ、思うところは家計簿的な範疇ですね。うちの奥様が家計簿をつけてくださっているのですが、それだけみてると食費=娯楽費というちょっとありえない事実発覚。
で、その娯楽費のうちボクの買う本はどのくらいを占めている(っつーか、圧迫している)かを知りたくなったのでした。
本当は細々とボクがそれとなくフィルタをでっちあげていこうと思ってたので、作っていただいて恐縮極まりないです。表現がへんだな。どうやろうと思っていたかというと、リンク収集フィルタのように、NNNNNNNN.diaryからISBN〜というのを抜き出して、日付とISBN番号のリストを月別に吐き出させて(*1)、プラグインでbook.htmlにでも、月別の購入本リストと購入冊数、金額を表示できたらな、と。
あ、でもNNNNNNNN.diaryからぬきだすとISBN番号だけだから、bookstore_xから吐き出された結果を抜き出したいなぁ。と、いうところでonDiaryに興味が移ってそのネタ忘れてたのでした(笑)。
あ、本日記については答えてないや。
以前の試作filterで作ってる半端ページがあるけど、こういう感じを意図されてた?
そういう感じ も(#ff0000)意図してました。
とりあえず、作っていただいたので、中身を見させていただきますです。あう。許容範囲を超えている。スキル不足でいじれなそうですよ。
やりたいのは、NNNNNNNN.diaryからISBN番号と記述されている日付を抜き出して、リスト化する。それをprice.rbの中からbookstore_x.rbを呼び出して、って呼び出さなくてもいいのか。キャッシュがあるかどうか判別してひっぱってくればいいんだね。で、そのキャッシュがあれば、その塊を日付<タブ>ISBN番号<タブ>ISBNに一致したキャッシュがあればその中身ってやる?そんでテキストに保存?わかんなくなってきた。
とりあえず、一歩さんが作ってくださったprice.rbの解読からはじめてみよう。あいててて。風邪引いてるときにやると効果てきめんだなぁ。頭痛。知恵熱ではないらしい。
ん〜難解すぎるので、このまま使用してみることに。おや?プラグインエラーになるなぁ。これは・・・200305.priceがないっていわれてるのかな?
ダメだ。理解が及ばない部分があるなぁ。知らないメソッドが多いってことはまだまだ未熟なのだね。自分。それはともかく、今の自分でわかる範囲内で、一歩さんの作っていただいたprice.rbを元に、作り変えてしまいました。作り変えたというか、分からない部分をカットしてしまったというべきか。
せっかく作っていただいたのに申し訳ない気分でいっぱいです。とりあえず、フィルタの方だけいじりました。これで、200305.priceのようなテキストファイルに出力できることまで確認しました。見る影もなくなってしまいましたが、どのような中身かというとこんな感じ。
class Filter
def price_at(str, type)
require './filter/simpleuri'
require './filter/webagent'
require './filter/cache'
require './filter/amazon'
require './filter/bk1'
require './filter/esbooks'
require './filter/asahiya'
require './filter/jbook'
require './filter/kinokuniya'
require './filter/skysoft'
cache_amz = "./bookcache/amz"
cache_bk1 = "./bookcache/bk1"
cache_esb = "./bookcache/esb"
cache_ash = "./bookcache/ash"
cache_jbk = "./bookcache/jbk"
cache_kin = "./bookcache/kin"
cache_sky = "./bookcache/sky"
if @diary.kind_of?(PastDiary) then
if @pick_up_links != @diary then
@pick_up_links = @diary
if File::exist?(@diary.logDirectory + @diary.targetMonth + '.price') then
File::delete(@diary.logDirectory + @diary.targetMonth + '.price')
end
end
case type
when :TOPIC, :P, :UL, :DL
re_book = Regexp.compile('[\((]ISBN[:|:]?\s?(\d-[\d-]{9}[-]?[\w]?)[\))]')
re_amazon = Regexp.compile('[\((]amz:(\d-[\d-]{9}-\w)[\))]')
#-----ISBN search (for bookstore_x.rb)-----
str.scan(re_book){
expire, flag_net = 0, true
isbn1 = $1
isbn2 = isbn1.delete('-')
checkbook = CacheBib.new()
newisbn = checkbook.isbn_check(isbn1)
isbn1 = newisbn
info = {}
book = CacheBib_amazon.new()
book.expire = expire
book.cache_dir = cache_amz
ainfo = book.get_data(isbn1, flag_net)
book = CacheBib_bk1.new()
book.expire = expire
book.cache_dir = cache_bk1
binfo = book.get_data(isbn1, flag_net)
book = CacheBib_esbooks.new()
book.expire = expire
book.cache_dir = cache_esb
einfo = book.get_data(isbn1, flag_net)
book = CacheBib_asahiya.new()
book.expire = expire
book.cache_dir = cache_ash
sinfo = book.get_data(isbn1, flag_net)
book = CacheBib_jbook.new()
book.expire = expire
book.cache_dir = cache_jbk
jinfo = book.get_data(isbn1, flag_net)
book = CacheBib_kinokuniya.new()
book.expire = expire
book.cache_dir = cache_kin
kinfo = book.get_data(isbn1, flag_net)
book = CacheBib_skysoft.new()
book.expire = expire
book.cache_dir = cache_sky
yinfo = book.get_data(isbn1, flag_net)
isbn = isbn1
info = checkbook.merge_info( [ainfo, binfo, einfo, sinfo, jinfo, kinfo, yinfo] )
title, type, price = info['title'], 'book', info['price']
price = price.gsub(/[\\|¥|,|円]/,'').strip
open(@diary.logDirectory + @diary.targetMonth + '.price', "a"){ |f|
f.puts "#{@diary.date}\t#{isbn}\t#{title}\t#{type}\t#{price}\r\n"
}
}
#-----ASIN search (for amazon.rb)-----
#未テスト
str.scan(AMAZON){
isbn = $1
amz = Amazon::new
amz.cache_dir = @diary.logDirectory + 'amzcache'
amz.isbn = isbn
if @diary.respond_to?('config') then
amz.expire = @diary.config['AMAZON_EXPIRE'] || 7
amz.proxy = @diary.config['PROXY']
end
title, type, price = amz.title, 'book', amz.price
price = price.gsub(/[\\|¥|,|円]/,'').strip
open(@diary.logDirectory + @diary.targetMonth + '.price', "a"){ |f|
f.puts "#{@diary.date}\t#{isbn}\t#{title}\t#{type}\t#{price}\r\n"
}
}
end
end
end
endあとはプラグインの方もカスタマイズさせていただこうかと・・・でも今日はもうお腹いっぱいです。
で。結局まだいじっているボク。上の書き方だとなんとなくすっきりしない(気のせいかも)ので以下のように変えてみる。違いはあるのか。いや、なんか上のだとpriceファイルがあったときにpriceファイルが消えてないような気がするんです。以前notさんから最初にpick_up_links.rbをもらったときのを参考に一部修正。
class Filter
def price_at(str, type)
require './filter/simpleuri'
require './filter/webagent'
require './filter/cache'
require './filter/amazon'
require './filter/bk1'
require './filter/esbooks'
require './filter/asahiya'
require './filter/jbook'
require './filter/kinokuniya'
require './filter/skysoft'
cache_amz = "./bookcache/amz"
cache_bk1 = "./bookcache/bk1"
cache_esb = "./bookcache/esb"
cache_ash = "./bookcache/ash"
cache_jbk = "./bookcache/jbk"
cache_kin = "./bookcache/kin"
cache_sky = "./bookcache/sky"
unless @price_at then
@price_at = true
File::delete(@diary.logDirectory + @diary.targetMonth + '.price')
end
case type
when :TOPIC, :P, :UL, :DL
str.scan(/[\((]ISBN[:|:]?\s?(\d-[\d-]{9}[-]?[\w]?)[\))]/){
expire, flag_net = 0, true
isbn1 = $1
isbn2 = isbn1.delete('-')
checkbook = CacheBib.new()
newisbn = checkbook.isbn_check(isbn1)
isbn1 = newisbn
info = {}
book = CacheBib_amazon.new()
book.expire = expire
book.cache_dir = cache_amz
ainfo = book.get_data(isbn1, flag_net)
book = CacheBib_bk1.new()
book.expire = expire
book.cache_dir = cache_bk1
binfo = book.get_data(isbn1, flag_net)
book = CacheBib_esbooks.new()
book.expire = expire
book.cache_dir = cache_esb
einfo = book.get_data(isbn1, flag_net)
book = CacheBib_asahiya.new()
book.expire = expire
book.cache_dir = cache_ash
sinfo = book.get_data(isbn1, flag_net)
book = CacheBib_jbook.new()
book.expire = expire
book.cache_dir = cache_jbk
jinfo = book.get_data(isbn1, flag_net)
book = CacheBib_kinokuniya.new()
book.expire = expire
book.cache_dir = cache_kin
kinfo = book.get_data(isbn1, flag_net)
book = CacheBib_skysoft.new()
book.expire = expire
book.cache_dir = cache_sky
yinfo = book.get_data(isbn1, flag_net)
isbn = isbn1
info = checkbook.merge_info( [ainfo, binfo, einfo, sinfo, jinfo, kinfo, yinfo] )
title, type, price = info['title'], 'book', info['price']
price = price.gsub(/[\\|¥|,|円]/,'').strip
open(@diary.logDirectory + @diary.targetMonth + '.price', "a"){ |f|
f.puts "#{@diary.date}\t#{title}\t#{type}\t#{isbn}\t#{price}\r\n"
}
}
end
end
end2003年5月15日
ひさしぶりですね
をぉ。 本の虫(http://homepage3.nifty.com/akima/index.html?05151230,本の虫)が久しぶりに更新されている。ここのレイアウトは好きなのです。
■xyzzyWiki[xyzzy]
ってのがあったんですね。 たらたらTeraPad(http://www1.ttcn.ne.jp/~alagon/tptrtr.html?05152124,たらたらTeraPad)経由で発見。ブックマークにいれておこう。
Wikiっつーと、nDiaryUserWikiが、これまたえらく充実してきてるなぁ。みなさん着々とどんぶり勘定、でなく、えっと。どんぶりに情報山盛りって状態?いやまぁ、小人さんが増えるのはいいことだ。ボクなんかはごく一部しかかかわってないし、その部分はすでに書いておいたので、することなし。しいて言えば、bookstore_xやonDiaryあたりか。
あ。bookstore_xの件はすでに拾われてら。早いのう。グッジョブ小人さん。
使用ユーザー一覧を見てて、思っていたことがあるのですが、私が使い始めたのが2001年8月。で2001年に使用を始めたとかいてらっしゃるほかの4人の方。4人とも1月からなんですが、偶然の一致?ちょっと気になっていたのでした。
うを。過去に書いたxyzzyのカスタマイズ関連も拾われてる。あぁ、こりゃもうますますボクはすることないなぁ。すばらしー。
onDiary
20030513版のindex.cgiをサーバにあるindex.cgi(20030512版)に上書きすると、日記がサーバ上でひらけなくなる。edit押しても日付入力画面からかわりません。なんでだろう。
意味がわからん。納得いかん。差し替えるだけかと思ってたのにー。しょうがない20030512版でストップしておくよぅ。
あ、それから。
onDiaryでbookstore_xを使ってて、XREAだから30秒を越えちゃって日記生成ができないんです、という状況になった場合には。
オンライン書店行脚を止めとく、という事で、
ruby diary -nonet
と「-nonet」をつけるといいかもしれません。
ってこりゃ完全に私信だな。
了解デス。
もいっちょ一歩さんから参照。
判らんといわれて削った部分は私もわかってない部分でndiary-lib.rb内からのコピペです。
そのあたりを省略しつつ同じ事ができる訳だから旦那の方がエレガントだー
真似しよう。多分そっちの方が正解に近い。
と、ほめていただいてなんですが。なんなんですが。その部分はなんとなく削っちゃった。って昨日の日記に追加で書いたです。出力にURLがないってのは・・・うむ。そのうちなんとかしよう。今日は仕事で立ちっぱなしだったので、足が痛ダルくて考える気にならないのです。
昨日は熱があったにもかかわらず考えてたというのに。あぁ。脳を使わない思考?脊髄反射でいける?
initializeってボクはまだソレを理解できてないので、使えないです。正確には理解して使って無いです、が正しい表現かな。コピペだし。使えないですじゃ問題あるなぁ。じゃぁ、週末に本をひもといてみようかな。
when :P, :DL, :UL #:TOPICも?これはなんとなくです。それこそ、他のフィルターのコピペでした。
2003年5月16日
onDiary
onDiary 20030516版(http://member.nifty.ne.jp/ippo/s_d200305.html#d16_t6,IPPO's Diary)公開。えっと、20030513でボクがダメでしたと言ったのに対応していただいたようで。恐縮です。
最近の日記は一歩さんへの私信風味だな。
もいっちょ、一歩さんの日記からのネタ。price.rb20030516版。問題なく動いてますよ〜。そしてISBNを書いてある日付の日記へのリンクも抽出するようになっている。すばらしいの一言。しかーし、五体満足なら勉強がてら中身をみるのだが、足が痛ダルいので考える気がまだおきません。昨日仕事で走り回ってたせいなのはわかっているが、明日筋肉痛になったらどうしよう。
nDiaryUserWiki
着々と情報集積中。どこの小人さんか存じませんが、良い仕事っぷりです。もはや傍観者の構え。だって書くこと無いんだもの。
と思ったらあったよ。どうしよう。しょうがないなぁ。今日はボクも小人さんになるか。short-input.lのこと、誰か書いてください、ってなってたのでボクが書いておきましたよ。多分、ボクがxyzzy & ndiary-mode short-inputって日記書き環境に書いたからだと思われるし。自己責任におきまして、他人の日記を抜粋。いかん。不適切な表現だ。
hanさん作のshort-inputをありがたく使わせていただいているの意。
■ftpdown[xyzzy]
xyzzyにはftpupdateというのがありまして、ローカルとサーバを比べて、ローカルの方のファイルが新しければ片っ端からアップロードってのをしてくれます。その逆のftpdownってのも実在して、サーバとローカルを比較してサーバのファイルのほうが新しければダウンロードしてくれる。
で、それを見つけて、先日の日記で試運転してみたけど動かないよ〜ってことでうっちゃってたのですが。ですがですが。今日、googleで「xyzzy」「ftpdown」で検索して、他のユーザーの方の設定の実例を調べてみたのです。で、以下のように設定したらめでたく動いてくれた。
(autoload 'ftpdown "ftpdown" t)
; ダウンロードするサーバ
(setq *ftpdown-server* "s30.xrea.com")
; ユーザー名
(setq *ftpdown-user* "aturust")
; パスワード
(setq *ftpdown-pass* "5oZ5Gd295CEx")
; ダウンロードディレクトリの指定
; (public_html/* => site-lisp/*)
; サーバーのダウンロードする基準のトップディレクトリ
(setq *ftpdown-remote-path* "public_html/")
; ローカルのダウンロードする基準のトップディレクトリ
(setq *ftpdown-local-path* "c:/www/aturust/public_html/")
; ダウンロードするファイルのワイルドカード指定(使えるのは"*"と"?"だけ)
(setq *ftpdown-file-wild-card* "*")これで、ローカルとサーバのシンクロが(xyzzyからコマンドを入力すればだけど)できるようになった。でも、ftpupdateとftpdownは別物だから別に動かさなきゃならんし、ftpdownはftpupdateのように拡張子を指定してやれば、無視してくれるような機能が無い。ような気がする。やっぱり一発でサーバとローカルのシンクロ(ダウンロードもアップロードも)してくれるようなのが欲しいところだね。
フィルタ呼び出し
もひとつ 一歩さん(http://member.nifty.ne.jp/ippo/s_d200305.html#d16_t6,IPPO's Diary)の日記から。
フィルタの呼び出しって、確かプラグイン内ではたとえば@filter.filter(str, :DL)として、フィルタ内では
@filter.filter.filter(str, :DL)とするといいんでしたよね?特定のフィルタだけ呼び出すのってどうやるんでしょうね。
教えて!偉い人〜。(*1)
2003年5月17日
bookstore_x対応priceフィルター&プラグイン
一歩さんがボクのつぶやきに対応していただいた結果、出来上がったものをいただきまして、導入にこぎつけました。結果は以下のリンクです。そのうち、過去のものも生成しなおして、月別リストにしたりとカスタマイズしたい。これは、以前やったlinklist.rbを参考にちょっと挑戦してみようっと。
今月の購入本
onDiary
20030516版を設置して、execの画面までいけるので日記生成を試してなかったのですが、bookstore_xを再び試そうとおもって生成しようとすると
** error: 'c:/www/aturust/public_html/log/' not exist.だそうです。パーミッションとかいじってないのになぁ。
設置してからかえたことといえば、filter/pluginにprice.rbをアップして、ndiary.confを置き換えただけなんだが。どうしてだろう。過去のに戻しても同じエラーがでるってことはボクがしてしまった何かが原因のはず。でもわかんね。全削除してアップしなおしかなぁ。
てことで、全部削除。やりなおし。でもダメだ。打つ手なし。今日からonDiary運用ストップで。
ダメだ。そんなんであきらめきれるかー。再度チャレンジ。ローカルでチェック。おや?うまくいく。余計に腹が立つなぁ。どうしてくれよう。
原因発見。わかったわかった。ボクの見落としだった。ndiary.confが違うのであった。ローカルのnDiary用ndiary.confだと、ログと出力用のパスはもちろんローカルでのパスなのですが、onDiary用のndiary.confでは、XREEAサーバ用のパスにしなけりゃいけないのを忘れてた。
よくみりゃちゃんとエラーメッセージの方も ローカルのパスのままじゃないか(#ff0000)。頭悪いなぁボク。
LOG_DIRECTORY = '/virtual/aturust/public_html/log'
OUTPUT_DIRECTORY = '/virtual/aturust/public_html'以上のように、XREAでの絶対パスはご覧のような記述になるのですが、ローカルのパスのままアップしてたのです。そりゃぁ、ログ用のフォルダが無い!とか蹴られる訳だね。
大変失礼しました。
いやぁ、いけませんな。こんな簡単に日記でうまくいかない!!なんて書くと作ってくださった方に余計な迷惑というかプレッシャーを与えてしまいますよね。自重せねば。申し訳ない。
一歩さんの日記より(http://member.nifty.ne.jp/ippo/s_d200305.html#d18_t3,IPPO's Diary)。20030517版を作ったらしい。公開を待つ。絵日記の方は・・・enikki.rbはたしか日付を名前にした画像をアップしなけりゃならんので、自分のPCもしくはFTPが通るPC経由でアップする必要がある。ので、onDiaryでenikki.rb動かすよりもローカルでやって更新する方が多いかと。
一歩さんのところは精力的にいろいろ取り組んでらっしゃるから読んでて刺激になるなぁ。そういや、RubyでCGIのネタは、ネットのどこぞのサイトで取り上げてたから、フォームからデータを受け取ったりログに吐き出すところあたりまでは知ってるんだけども、セッションのあたりはさっぱりなのでした。
Papa told me
仕切りなおして、再度bookstore_x挑戦。
ドラマ化されてるようですが、見て無いです。コンビニに買い物に行った際に奥様が買って帰ったのを読ませてもらったら思いのほか面白かったのでした。

- Papa told me Vol.2 (2): 本: 榛野 なな恵 by 榛野 なな恵" />
Amazon.co.jp: Papa told me Vol.2 (2): 本: 榛野 なな恵 - 著榛野なな恵
- ISBN4-08-106411-3
- 発行集英社 定価: 400円(税抜381円)
- 発売日2003年05月31日
やはり、途中で日記生成しきれずにページが表示できませんってな具合になるなぁ。でも、戻って再度execボタンを押すと、ものの数秒で日記が生成されて、bookstore_xも通ってくる。つまり、1度目のは結果が表示されないけどうまくいってるふうな具合?
■ftpupdateとftpdown[xyzzy]
onDiary対策にftpdownを導入したのだけども、良く考えりゃ、ftpdownすればonDiaryで生成し更新した日記関連をダウンロードできるのだけども、そうするとローカル上ではダウンロードしてきたことによりタイムスタンプは新しくなるので、ローカルで日記を生成せずにftpupdateすればそのままダウンロードしてきたファイルをまるごとuploadするハメになる。いたちごっこ。
まぁいいか。今のnDiary環境では、日記を生成すると原稿も含めると11種類ほどのファイルが更新されるし、すべて同一階層にあるわけでもないし、手動で更新したファイルをダウンロードするよりは楽なのです。
■ハイジ連れ去られる[TV]
ケーブルテレビにてハイジを久しぶりに見てたわけですが、今日の回ではデーテおばさんが帰ってきて、ハイジがよくわからないのをいいことに言いくるめておじいさんのところから連れ去るのでした。これは、ひょっとしてアレですか。 幼女誘拐(#ff0000)ですか。ハイジを全部見てたわけじゃないのでこの先の話をしりませんが、奥様に聞いてみると、ハイジはロッテンマイヤーさんにつらい目に合わされたり、病気になってしまうのだとか。幼女誘拐だけでなく 虐待もおまけ付きでしたか。
2003年5月18日
sync.rb
一歩さんによる20030517版のonDiaryに、ローカルとサーバのシンクロ用を試行錯誤した形跡あり。ボクもちょっと勉強がてら、sync.rbをのぞいてみる。そのなかで
#!!!
#!!!パスワードが通らない
#!!!
と、ある。リファレンスマニュアルを見てたのですが
require 'net/http'
req = Net::HTTP::Get.new('/need-auth.cgi')
req.basic_auth 'account', 'password'
Net::HTTP.start( 'auth.some.domain' ) {|http|
response = http.request(req)
.
.こんなんがありましたが。このbasic_authって使えないでしょうか?まぁ、試してないんでなんともいえませんが。
あぁ。問題点が違ったか。サーバのアカウントやパスワードを通すんでなくてonDiaryのパスワードが通らないってコトでしたか。くっ・・・勘違いだ。いらん恥をかいてしまた。
えっと、めげずに考えてみよう。
cgi_data = 'pass=' + passwordなので、これを
cgi_data = 'cmd=login&pass=' + passwordにしてみるとか。どうだろう。
一歩さんへ(http://member.nifty.ne.jp/ippo/s_d200305.html#d19_t5,IPPO's Diary)
あぁぁぁぁ。なんだかいつもつぶやくだけですいません。作業まかせっぱなし。本当にありたいと思っとります。できれば、ボクもコーディングに協力して、えいやっとできればいいんですが、一歩さんのコーディングしたものを解読するのでいっぱいいっぱいでした。
ちょっとずつ勉強はしてるんですが、セッションあたりはまだつかめん。どうしたもんかな。しょうがないので、図書館からRuby本を借りてきた。買うのは読んでみてからにする。
ここんところonDiary〜price.rbあたりばかりですね。ボクがここのところ毎日この辺のネタでつぶやいてるからいらんプレッシャーをおかけしてるような。ホント申し訳ない。いつかお礼に北海道のうまいものでもお送りするかのう。って一歩さんが道外の人ならばという過程の元に。
2003年5月19日
確かにアレですね
日記という名の元にnDiaryで運用してるのですが、Rubyをテーマに私信風味な話題をパスし合うのはなんだかアレ(*1)ですね。そういう話題の場合はせっかくですから、他の場所で聞くことにいたします。
あぁあぁあぁ、せっかくのご提案なのですが、ボクんちはICQはあるのですが、AOLもMSNも入れて無いなぁ。MSNはむかーし昔に入れてたんですがまた入れてみるかなぁ。とりあえず、ここのところ教えて君でつぶやきっぱなしだったので、ちょっと今週はがんばって自力で解読を進めてみる所存。
半角カナって
って、もしかして、2chのAA関連の話題でしょうか。ってことは、2ch.rbなんてものもできたりして。
それはおいといて。今日は週初めなので会社に出社。そんで、ちと電話でとんちんかんな受け答えをしてもうたので、外回り終了後、会社にもどり自習してみる。自分のトコでつくってる製品はもちっとマジメに勉強しとかなきゃな。この覚書用にWikiでも立ち上げてみるかな?片っ端から文献やら添付文書情報やらつっこんでおけば、外でもpalmからつないで見れるってもんだ。
でも、CFカード挿してると異常にバッテリー減るの早いんだよなぁ。
今週はRubyと平行してWiki探しもしてみるか。
bookstore_x
「どぜう」。
今日買ったマンガを上記のごとく日記に書いたので、ローカルで生成してみる。うむ103秒。
よし、今度はサーバに原稿ごと生成された日記をアップ。そんで、原稿をいじらず、onDiaryスタート。
「リモートサーバから切断されました」
「リモートサーバから切断されました」
「リモートサーバから切断されました」
「リモートサーバから切断されました」
「リモートサーバから切断されました」
「リモートサーバから切断されました」
と、6回けられたあとにコレ。
-- nDiary version 0.9.3.beta18 --
CHK; ISBN; 4-592-13426-5
CHK; reviewlink; ISBN4-592-13426-5
CHK; cannot read cahce. FILE; ./bookcache/rcm/isbn4592134265.txt
CHK; reviewlink; ../topics/200305.html#07_t2_2
CHK; ISBN; 4-06-182316-7
CHK; reviewlink; ISBN4-06-182316-7
CHK; cannot read cahce. FILE; ./bookcache/rcm/isbn4061823167.txt
CHK; reviewlink; ../topics/200305.html#11_t1_10
CHK; ISBN; 4-08-106411-3
CHK; reviewlink; ISBN4-08-106411-3
WAR; maybe data-error, no-title.
CHK; cannot read cahce. FILE; ./bookcache/rcm/isbn4081064113.txt
CHK; reviewlink; ../topics/200305.html#17_t4_2
CHK; ISBN; 4-06-363235-0
CHK; reviewlink; ISBN4-06-363235-0
CHK; cannot read cahce. FILE; ./bookcache/rcm/isbn4063632350.txt
CHK; reviewlink; ../topics/200305.html#19_t2_1
make '/virtual/aturust/public_html/topics/200305.html'
CHK; ISBN; 4-06-363235-0
CHK; reviewlink; ISBN4-06-363235-0
CHK; cannot read cahce. FILE; ./bookcache/rcm/isbn4063632350.txt
CHK; reviewlink; topics/200305.html#19_t2_1
make '/virtual/aturust/public_html/index.html'
make '/virtual/aturust/public_html/topics/topics2003.html'
make '/virtual/aturust/public_html/topics/aquarium.html'
make '/virtual/aturust/public_html/topics/books.html'
make '/virtual/aturust/public_html/topics/ndiary.html'
make '/virtual/aturust/public_html/link.html'
make '/virtual/aturust/public_html/bibliomania.html'
finish. (0.542327sec.)
ん〜む。XREAサーバの負荷率2ptに上昇。
えっと、今月マンガ4冊目でこれか。きついなぁ。来月はこの3倍くらいは買う予定があるんだが。さすがにこりゃきついな。あまり試験的にためすのも考え物だ。試験運用でアカウント停止にまでいったら笑えんし。
nDiaryはやはり長期出張や旅行などにのみ使用することですな。
あ。『-nonet』があったっけ。しまった。
テストで本を一冊追加してみよう。
- プログラミングRuby―達人プログラマーガイド
- 著デビット・トーマス アンドリュー・ハント
- 訳田和 勝
- ISBN4-89471-453-1
- 発行ピアソン・エデュケーション
- 発売日2001.9
- 価格\5,040
- 説明Rubyの完全な参考書。チュートリアル、Ruby1.6の概要、Rubyの構造、シンタックス、命令等を詳細に説明。Rubyでアプリケーションを書くための必要知識が学べる。ライブラリリファレンスも収録。
すばらしい。『-nonet』をつけると1秒かからずに生成できる。でもisbnNNNNNNNNNN.txtというキャッシュがないので、無論書影は表示されないんだが。そして、その場合price.rbはエラーだ。当然か。そりゃ金額引っ張ってこれないわな。まぁ、頻繁にonDiaryを動かすようになったら、引数に『-nonet』つけてやることにしよう。
2003年5月20日
サーバメンテ
なんだか昨日はXREAのサーバ?メンテだったようで、0時から7時までアクセスできなかったもよう。日記もアップできなかったし。さすがに訪問者も少なかったようだ。うちのサイトはほぼ全てnDiaryユーザ様のアクセスのみで成り立っているようで、こんなときは訪問数減少が顕著だね。
伝統的に?
そうですか。 nDiaryの清く正しい伝統(#ff0000)でしたか。まぁ、MSNとかのほうが手っ取り早く聞けるしいいのかもしれませんが、そういう伝統ならば、まぁ煮詰まらん程度に続行ってことで。なんだか同じネタを続けて頂いていたので、気にしてたのでした。
雑誌コード
最近、一歩さんとのやりとりでprice.rbについて試してたのですが、ふと気づく。雑誌は?ボクは週刊誌、月刊誌のマンガ雑誌も結構買ってます。それを忘れてたよ。
調べてみると、雑誌コードなるものがあるらしい。雑誌コードとバーコードに続いて書いてあるコードの2種類だそうだ。雑誌コードは『雑誌NNNNN−NN』でバーコード付近にあるコードってのはTから始まる11桁の数字だそうですよ。googleで『雑誌コード』を検索してみたら、 ここ(http://www.barrysclipart.com/,企画 本 独楽/目次)が1番目にヒット。
しかしamazonでもbk1でも雑誌は取り扱って無いだろうなぁ。
2003年5月21日
plugin/price.rb
先日一歩さんが公開してくれた、filter/bookstore_x.rb用の本代算出用filter/price.rbとplugin/price.rbですが、フィルターはそのまま使わせていただいて、プラグインの方は表示を変えてみました。オリジナルのplugin/price.rbと以前いじっていたplugin/linklist.rbのソースを元に、月別に購入本をリストアップして、購入冊数と合計金額も月別表示にしてみた。
このくらいのカスタマイズでも、ボクにはとても大変な作業でしてえらい時間がかかりましたよ。えっと、5時間ですか。
どうしても金額が月別な合計にならんな〜と思ってたら、price = 0を書いた行がよろしくなかったようで。
=begin
一歩さんが作って公開されている、plugin/price.rbを元に月別表示にカスタマイズさせていただきました。
月別表示だけで、いっぱいいっぱいでしたので、オプションによる月別表示のオン/オフの切り替えなんてところまでは
実現しませんでした。
=end
class String
def to_yen
newstr, count = '', 0
self.split(//).reverse.each{ |s|
if count >= 3
newstr = ',' + newstr
count = 0
end
newstr = s + newstr
count += 1
}
newstr = '\\' + newstr
return newstr
end
end
def plug(opt)
filelist = []
if opt['total'] == 'on'
#@logDirectory直下だけ探せばいいので、修正した方が効率がいいかも
Dir::find(@logDirectory){ |file|
next unless /\/\d{6}\.price$/i =~ file
filelist << file
}
else
if self.kind_of?(LastDiary) or self.kind_of?(Topics) then
thismonth = @diaries[0][0..5]
elsif self.kind_of?(PastDiary) then
thismonth = @targetMonth
# else
# return
end
filelist << @logDirectory + thismonth + '.price'
end
str = ''
size = 0
@months.reverse.each{ |i|
file = i.to_s + '.price'
d = Time::local(i[0..3], i[4..5])
if File::exist?(@logDirectory + file) then
str << "<h2>#{d.strftime2('%Y年%m月')}</h2>\n\n"
str << '<table class="price">'
open(@logDirectory + file, "r"){ |f|
price = 0
lines = f.readlines
lines.each{ |line|
date, anchor, title, type, code, price1 = line.split("\t")
val = price1.to_i
val = default_price if (val == 0) && (price1 !~ /0/)
price += val
if date =~ /(\d\d\d\d)(\d\d)(\d\d)/
datestr = "#{$1.to_i.to_s}\/#{$2.to_i.to_s}\/#{$3.to_i.to_s}"
end
str << '<tr><td>' + ["<a href=\"#{anchor}\">#{datestr}<\/a>", title, price1.to_s.to_yen].join('</td><td>') + '</td></tr>'
}
size = lines.size
str << '<tr><td>' + ['', '', price.to_s.to_yen + '円(' + size.to_s + '冊)'].join('</td><td>') + '</td></tr>'
}
str << '</table>'
end
}
return str
endfilter/price.rbについてはいじってないので、こちらでは載せませんですよ。オリジナルのfilter/price.rbとplugin/price.rbは一歩さんのところにあります。
2003年5月22日
■price.rb[ndiary]
こちらこそ毎度どうも(http://member.nifty.ne.jp/ippo/s_d200305.html#d22_t2,IPPO's Diary)なのです。
bookstore_xについては使用してますが、以前解読しようとして挫折した記憶あり。これもゆくゆくはボクも理解できるまで読み込んでみる方向で。
値段情報に改行かなんか噛み込んでるみたい。
『= line.chomp.split("\t")』か『price1.to_s.strip.to_yen』ぐらいが幸せかもしれません。道理で。なんか値段のあとに文字がはいってるなぁ、と思ったら。そういうことでしたか〜。おそらく機能的にはもうsum_priceと同等なのでは無いかと思われますよ〜。やはり統一感ってことで、sum_price_xで?
自分的には、なつかしの愛川欽也(*1)ばりにhoumuch.rbって名前でカスタマイズしたプラグインをフォルダにいれてたのですが。古いですね。やはりsum_price_xな。
おや?ダウンロードしたfilterフォルダにおまけ?がいろいろと。これはゆっくり読ませていただこう。後のお楽しみに。そうか。そういう方向でフィルタを作る練習もいいかもしれん。
とりあえず、落としてきたbk1、amazon、filter/price、plugin/priceを入れ替えてみる。
おや?filter error。なんでだろう。
過去のにもどしてもエラーがでる。ボクはなんかしたんだろうか。しょうがない。サーバにアップしておいた該当フィルタ達を落としてくる。うむ。動く動く。さぁ、どこがちがうのかな。
うまくいっているfilter/price.rbのrequire **.rbというあたりをコピーしてさっきうまく行かなかった20030522版のfilter/price.rbにペーストするとうまくいく。つまり、なんでかわからんが、どう見ても何度見返しても打ち間違ってはいないのだが、さっきうまくいかなかったときはそこしか打ち変えていないのだからボクが何かしたのだろう。
次は20030522版のplugin/price.rbだ。うまく置き換わったみたい。
じゃ、bookstore_x用?のamazon.rbとbk1.rbの置き換え。って、これ二つ置き換えると、priceとbookstore_xのfilter errorって出るなぁ。そうかそうか。price.rbを置き換えたのはうまくいってたのね。
ほうほう。bk1.rbだけ置き換えるとエラーがでませんな。つまり原因はamazon.rbにあるってわけだ。
原因解明。今回はbk1のみ置き換えておこう。あ〜ビックリした。
2003年5月23日
■Hikiについて[hiki]
先日日記にもちらっと書いた記憶があるが、仕事関係の覚書を溜め込む場所としてWikiでもたちあげようかな、と。ちょっとWikiをいじくりまわしてみたいってのと、仕事の覚書を溜め込んでどこからでもアクセスできるようなところを考えたらこうなった。
仕事用のPCに覚書としての文書ためこめばよかろう、なんていわれそうですが、その文書を管理したり自由自在に情報を引き出すためにはそれなりにインターフェース?のようなものが必要なのではないかなと。
安易な考え方ですが、nDiaryUserWikiにちょっと接してみてそういう選択になりましたとさ。
仕事関係の内容になるとおもわれるので、アドレスは公開しませんが。なんとかXREAにもHikiが導入できましたよ、という実例があるってことをPRとして。まぁ、検索すれば他の前例がいろいろヒットすると思います。
とりあえずはHiki0.4.2aを導入。nDiaryUserWikiのように、存在するページ名が文中にある場合、リンクを張ってくれるようなのって、どうやるんだろ。わからんことがいぱーい。あれかな?0.5系での標準機能なのだろか?
と思ったら整形ルールを良く知らないだけらしい。ちゃんと書いてあった。あぁ、でも日本語ページ名へのオートリンクは0.5系の試用実装らしい。
2003年5月24日
■Hiki version up[Hiki]
Hikiを0.4.2aから0.5へバージョンアップ。これで日本語ページ名にもオートリンクが張ってもらえるってもんだ。できればHiki Farmも入れたいところだ。
仕事に関する覚書といっても領域が複数にわたるので単一のHikiで管理するより領域ごとにHikiで管理するほうが見やすくなるかと思ったのだ。
■ハイジ[TV]
なんでかハイジ特集が毎週土曜に続いている。しかも毎週土曜でAM0時からAM6時までだ。今日はどの辺だったかというと、ハイジがフランクフルトから山へ帰る前後だったので、見逃すわけにはいかなかったわけで。奥様と二人で朝まで見てしまった。
2003年5月25日
2003年5月26日
2003年5月27日
2003年5月28日
2003年5月29日
呟き返し
ってなんだか忍法っぽいですね。キャンディーズの「微笑返し」とか。いや、ただそれだけですが。ちなみにリアルタイムでキャンディーズはみてませんよ。三十路ですんで。
そんなことがいいたかったわけじゃない。えっと。 すぐりさん(http://sgr.vis.ne.jp/diary/200305c.html#28_t1,gooseberry)トコより
ただ、今わたしが使っているレンタルサーバにRubyがインストールされていないといういかんともしがたい現状が(汗)こればっかりは自分でどうにかしようと思ってもなかなかできないもので。やってみたいんですけどね、これだけのために移転とかするのも面倒だしなぁとか。
なるほど納得。だからといってサーバにRuby丸ごとアップして、onDiaryやnDiaryをそのRubyを片っ端から呼び出して使うなんて荒技はサーバには迷惑だろうなぁ。






