2001-12-01(土) 6781歩+500m [長年日記]
■ 本日のハンティング
tDiaryのナビゲーションボタンは、たぶん1.3系のeRuby拡張で自由にできるようになる……んじゃないかな。「ツッコミ」という言葉は、確かに変更してる人が少なくないのはわかってるんだけど……変更可能にできる……かな? URLの自動リンク化なんかも、記述形式を選べるようになればそういうクラスを書けばいいのでできないことはない、かな。「かな」ばっかり(笑)。
■ VirtualHost(2)
昨日のVirtualHost化で、IPアドレスをifconfigで追加する処理を/etc/rc.local
に書いたんだけど、今朝立ち上げたらApacheが起動時にコケている。そうか、/etc/rc.local
が動くのはdaemonが立ち上がったあとか。こういう素朴な方法じゃダメなのねん。
「だいたい、Linuxのboot処理って複雑すぎだよ……いやSlackwareならシンプルって聞いたな……」などとぶつぶつ言いながら、/etc/sysconfig
の下あたりを探索。/etc/sysconfig/network-scripts
にあるifcfg-eth0
ってファイルがすごく怪しい。そうか、/usr/sbin/netconfig
の-dオプションでデバイスを指定すればこのファイルができて、勝手に読み込んでもらえると見た。
で、「netconfig -d eth0:0
」と「netconfig -d eth0:1
」を実行、適切に設定してから(ちゃんとifcfg-eth0:0
なんてファイルができてる)リブートすると、バッチリ動いた。あー、想定通りの動きをすると気持ちいいなー。
2001-12-02(日) 3896歩 [長年日記]
■ 素朴な疑問
なんで「さま」なの? 「様」って使っちゃいけないの?
■ CD
久しぶりにCDを買った。ブラジル音楽のChoroというジャンルを一枚。最近、「WORLD」とか書いてる棚からしか買えなくなってるな。もはやJazzもダメだ。今度、バリのガムランのCDを買い占めようと画策中。
マシンを移行してから入れてなかった「午後のこ〜だ」を入れ直す。大切に保存してあった2.35のRPM。2.39のが欲しいなぁ。SSEに対応したヤツが。でもまぁ、実時間の1/3くらいでエンコードできるからいいか。
■ 今日のハンティング
trifle diaryを捕獲しました(116)。よろしく。
月をまたいだ表示は次のTodoに入ってるからいいとして、画像ですか。おれ、テキスト系だからなぁ……じゃなくて、それは間違いなくtDiaryには組み込まれないでしょうな。でも、タグの入力はeRuby拡張で楽になると思うので、別の何かと組み合わせれば省力化ははかれるでしょう。
■ メールいじり
カブMLの古い投稿を整理しようと思って、100通ごとにmbox形式で保存してあったヤツを1通1ファイル形式に分割するスクリプトをTMailを使って書いた。しかしこれが難関で。
たった5年前のメールなのに、メールヘッダがひどいのがあまりに多い。そのたびにTMailが落ちるので、手動で直して解析しなおし。なんたって、こんなのや
Content-Type: text
こんなの
Date: Thu, 28 Nov 1996 10:55:53 +09
がゴロゴロしてる。たいていはMSなんちゃらってメーラーなんだが(笑)。
2001-12-03(月) 11284歩 [長年日記]
■ 本日のハンティング
紅玉日記を捕獲しました(117)。う、そういえば、Ruby/Becky!は入れただけで使ってない(いじってる暇がない)のであった(^_^; 自宅はSylpheedにしちゃったしなぁ。
さらにD's memoも(118)。ふふふ、見つけ出しました。ずいぶん前から使われてるではないですか。たしかにVinePlusにはgogo-2.39が入ってるなぁ。Maryにそのまま入るかな。Vineってバイナリ配布に関して、どういうポリシーなんだろう。厳密に言えばヤバいんだよね、gogoって。
■ マウスカーソル
会社のメールサーバが吹っ飛んでしまったので(RAIDまわりのトラブル。復旧のメド立たず……)、けっこう暇なのであった。困ったね、こりゃ。
usability.gr.jpから、Lecture: カーソルの制御を読んで思う。マウスカーソルは、基本的に操作者の意図しない挙動をしてはいけない。このエッセイであげられているWindows2000(以降)の機能も、チューチューマウスも、「自分で操作してないのに勝手にカーソルが動く」という「びっくり」が生じることに変わりはないのだ。視線の動きも強要されるので、ユーザビリティの観点からすれば感心できない。
……という信念のもと、Windows 3.1の頃にマウスにぽん!というソフトを作ったことがある。正確にはアイデアを出しただけで、コードはhoukouだけど。これは、マウスカーソルを動かすような勝手な真似はしない。その代わり、ウィンドウの方がカーソル位置に合わせて開く。例えばダイアログボックスは、OKボタンがマウスカーソルの真下に来るような位置に開くのだ。これなら視点はマウスカーソルのある位置から動かないし、ボタンを押すためにマウスを操作する必要もない。それどころか、「この辺にウィンドウを開いて欲しいなー」と思った位置にあらかじめマウスを動かしておくと、そのあたりに開いてくれたりして、Windowsを思うがままに操る快感があったものだ。
これ、すっげー便利だったんだけど、実はかなり相性の悪いソフトもあって、あまりまじめにプロモーションやアップデートはしなかった。もちろんWin32向けには作っていない。なんで誰も似たようなソフトを作らないのか、不思議に思う。つーか、これは真似しても文句言わないから、真似してくれ(笑) >MS
■ メールいじり(2)
Content-Type: text、そういう歴史もあったんですか。へぇ。たしかにMime-Versionはついてない。
でも、「text」だけのはRFCにもないって書いてあるから、やっぱり不正なのでは……。ちなみにこれは「MSなんちゃら」じゃなくて、たいていac.jpな人が差出人だったので、UNIX系の何かなんだろうな(もちろんX-Mailerなどないので詳細不明)。
こんなのまでTMailにサポートしろっつーのは酷かな。
■ tDiary
希望したら月またぎパッチが公開されたので(ありがとうございます)、Todoに追加。方針としてはこんな感じで。なお、私のRubyスクリプトは(今となってはマイナーな)3タブなので、8タブで展開すると読みにくいでしゃう(笑)。
■ 本日のハンティング(2)
今日は多いなー。備忘録+随想録(120)。って、誰かと思ったらaさめじゃないですかっ。うわーん(なぜ泣く)。tDiaryの重さ測定(←意図的な誤読)は面白いです。ほれみろ、やっぱり重いじゃないか。
あと、よく見たらここも月をまたいでる。パッチ下さい(笑)。
2001-12-04(火) 10362歩 [長年日記]
■ 管理者稼業
けっきょく昨夜は終電。それでも終わらなかったので、今朝も早くに出社して、なんとか10時に復旧できた。ねみー。
信頼性向上のためにRAID5を入れてあっても、コントローラが狂ってディスクを壊して歩いたらなんにもならんよなぁ。運良く4時間前までのバックアップがあったのが不幸中の幸い(つーか、運がよすぎる気もする)。
壊れたマシンを復活させるのはあまりに時間がかかりそうなので、2ndマシンをメールサーバに仕立て上げることにしたんだけど、若い管理者に任せてできるだけ手を出さずにいた。よってどうしても時間がかかるのだけど、彼らも兼業管理者なので「徹夜してでも復旧しろーっ」とは言えない。彼らの本来の上司から、管理業務にあまり時間を割かないようにと釘を刺されているので。
しかしなぁ。この規模の会社で、専任のネットワーク管理者がいないというのは、そもそもとても恥ずかしいことだと思うのだが。というか、ネットワーク管理者って本来、高給取りじゃないの。かなりの専門スキルがいるんだし。なければ仕事にならないんだし。少なくとも新人に毛の生えた程度の人材で運営するものじゃないよな。
■ メールいじり(3)
TMail、バージョンアップ。ありがたや。明日にでも試します。もっとも、問題の「Content-Type: text」なメールはもうすでにないんだけど(笑)。
で、今日、その大量のメールをNamazuでインデックス化。ところがどうも日本語で検索されない。おかしいなぁ、と思っていろいろ調べたら、どうも環境変数LANGがちゃんとしてないとダメらしい。インデックスを作っているマシンはSushiなのでNamazuもちょっと古い。そのせいか。そこで以下のようにしたら、バンバン検索できるようになった。
LANG=ja mknmz ...
同様にここの検索もインデックスを作り直し。今までは、ほとんど役に立ってなかったわけやね。くー。
■ チェーンメール
10月に、駅で困っているイラン人を助けたら、お礼に「近々東京でテロがある」と教えられた……というデマがチェーンメール化したのは記憶に新しい。それがまた出回っているようだ。ご丁寧に(?)、前回のXデーであった10月15日を12月25日に変更して。イスラム教対キリスト教と見なすと信憑性のある日付になったということらしい。
10月の話を知っていてもまだ、この話を信じるヤツがいるってぇのが信じられん。おまえら10ぺん逝ってよし。12月25日が信憑性があるのなら、12月11日(911から3ヶ月)も何かありそうだし、12月20日(911から100日目)だって切りがいい。ラマダンが終わって晴れてテロが再開できる(?)のも12月だし、考え出したら12月なんて「それっぽい日」だらけだ。
それより、日本が狙われない理由の方を考えた方がはるかにマシだよな。アホらし。
■ ProjectX
DVDの2nd BOXは、12/21発売らしい。毎月3万かよ……あぅあぅ。
2001-12-05(水) 9979歩 [長年日記]
■ palm-ml
palm-mlって、ひとたびフレームが起きるとなかなか鎮火しないなぁ。たぶん、自分の投稿が何百人、何千人(?)に読まれてるって実感がないんだろうな。ここに集まってるほとんどの人は、Palmに関する話がしたいだけで、ウィルスの素人講釈なんて聞きたかねーってことが想像できないのだろう。
カブMLでは、カブに関係ない話になったら専用の掲示板に移動するルールになっている。興味のある人だけが移動して、あとは好きなだけ喧嘩していい。「表に出ろぃ!!」ってわけだ。運営に関する話も掲示板。このルールは現実世界と同じで(笑)、けっこううまくいってるよん。
■ 管理者稼業(2)
「バカが征く」に載ってる話は、昨日のこれを受けてのことだろうな。明日になったら消えてるはずなのでリンクはしません(笑)。
昨日は専任者が欲しいと書いたけど、ボランティアベースの管理組織も悪いことばかりではない。ネットワーク管理者なんて、基本的に好きじゃないとできないからだ。会社から「やらされて」いる管理者はあまり勉強しないし、自分が楽するためにユーザに不便を強いちゃったりすることがままある。本当の管理者は、自分もユーザも幸せになる方法を実践するものだ。
というわけで、しばらく兼業で修行して、スキルが上がったら専業になってサラリーも上がる、なんてのが理想なんだけどなぁ。そんなうまい話、日本の企業にゃないか?
それはそれとして、2日とばされちゃったので、今日はたまっていた本業が忙しかったことよ。TMailもいじれず。とほほ。
■ ツッコミのメールアドレスは公開すべきか?
HAL99の徒然日記で指摘された件、向こうのツッコミだけでやっていてももったいない(?)のでこっちに持ってきた。ツッコミ時に入力したメールアドレスが日記に表示されないのは、可か不可かという問題。
ちなみに、ツッコミメールではわかるようになっている。つまり日記作者にだけはアドレスがわかる。これは、日記とそのツッコミという性格上、ツッコミは作者に対する個人的な発言とみなしているからだ。ツッコミ欄で読者どうしが会話をするのは勝手だが、そこが単なる掲示板とは性格が違うのだよ、ということを言外に示しているわけだ。掲示板ではアドレスがリンクになっているのが当然だから、という理由で同じ実装をするのは何か違うと思う。
さらに、ツッコむ時にアドレスを入力しない選択肢もあるわけだが、これは「作者にも読者にも教えない」という選択であって、「作者にだけは教えてもいいや」という場合に入力してくれればいいと考えている。読者にメールアドレスを明かす必要なんてない、というスタンスである。
ちなみにおれは、ツッコミメールはPHSで受けているので、メールアドレスは入れてもらえると嬉しいかな。誰からのツッコミか、わかんないから(フレーズが表示されないので)。
■ 本日のハンティング
それはそうと、魚日記<EQメイン>を捕獲しまして候(121)。
2001-12-06(木) 9470歩 [長年日記]
■ 本日のハンティング
ペン忍の日々精進を捕獲しました(122)。あれ、ここってnga.jpじゃん。レンタルユーザリンクに入ってないよ? >しんちゃん
あと、期間限定だろうと思って静観していたらけっこう長く続いている、シーマン調教日記も入れてしまおう(123)。なんでも、今日のなんでやねんより面白いらしいぞ(笑)。しかしなんだ。おれも独り者だったらぜったい買ってるな、シーマン。
■ ツッコミのメールアドレスは公開すべきか?(2)
現状のまま非公開でいい、という意見、整理のためにリンクしておくと、ここ、ここ、ここ、それからここ。ただ、HAL99さんのツッコミは一理ある。とうか、もっともなリクエストですな。「びっくり」は少ない方がよいので(Rubyの法則)、ツッコミのフォームに「メールアドレスは日記オーナーにのみ通知されます」とでも書いておこうか。
「あると便利だから」とか「××にはあるからtDiaryにも」という理由のリクエストは、採用されない可能性が高いです。おれの場合、逆に態度が硬化する恐れもあり(笑)。「便利」かどうかは、小一時間問い詰められてもまだ「便利」と言い切れるかどうか、じっくり考えてみるとよい。たいていの場合はたいして便利でないことがわかる。あと、他のシステムで採用されている機能だからといって、それが良いものかどうかきちんと検討されたという保証はないので、それも理由にはならない。一方、「これがないとユーザにどのような不都合が生じるか」とか「回避策が他にない」などと、きちんと説明ができれば納得させられる可能性は高まる。
なお、どうしてもという場合のソース改造講座。diary.rhtml
の以下の行を探して、
<%= CGI::escapeHTML( comment.name ) %> 『<%= CGI::escapeHTML( comment.shorten ) %>』<br><%
以下のように書き換えればよい。
<a href="mailto:<%= comment.mail %>"><%= CGI::escapeHTML( comment.name ) %></a> 『<%= CGI::escapeHTML( comment.shorten ) %>』<br><%
なお、ソースは現在のスナップショットを使用。このように、別に面倒だから採用しないというわけではないのです。ポリシーを貫くのは難しいね(笑)。
■ ARMA aka Omoikane GNU/Linux
FraunhoferIIS 社からのライセンス供与により、商用製品として初めてMP3エンコーダ(午後のこ〜だ)を同梱というのを評価。MP3エンコードに関するFraunhoferIISの態度の可否はおいておくにせよ、商用ディストロのやるべきことのひとつとして、こういう行動はアリだろう。
■ そうそう、TMailはちゃんとContent-Type: text
を処理してくれるようになりました。あおきさん、ありがとう。「酷か」なんて言いつつ、ちゃんと対応してくれると思ってました(←腹芸)。で、改めて8000通のメールを一気に処理したら、こんどはヘッダ中の日本語がぐちゃぐちゃに文字化けしているのを発見して、またも泣く泣く手動修正。ここまで壊れてたらTMailを頼るわけにはいかぬ……とほほ。
2001-12-07(金) 8607歩 [長年日記]
■ ああ、「女は愛敬」
から取ったのね。……と思ったワタシは国賊ものです。「孟子(たけこ)ってすごい名前だなぁ」と思った人もいるようだけど。
■ Asumi beta3
夕べおとしたCD 3枚分がここに。入れてる暇なんてないんだけど……うーむ。しかし、betaのうちに試しておきたいし……あうあう。
2001-12-08(土) 9638歩 [長年日記]
■ 本日のハンティング
dearfriends.org diaryです(125)。7.5時間でした。宴会がなければもっと早かったんですが。
2001-12-10(月) 8342歩 [長年日記]
■ DVDメニュー・デザイン
DVDのメニューが使いにくくてしょーがない、という話。
まったくだよ。想像力のないデザイナーばかりでいやになる。特に、字幕や音声の設定をするメニューって最悪だよな。DVDのメニューデザイナーは、自宅にDVDプレイヤーを持ってない、に一票。
■ ピープルウェア
なんか、評判がいいので買ってみた。最初、ルディ・ラッカーの新刊かと思ったのはナイショ(笑)。
こうやって、自分の身の回りでは誰も買わなさそうな本を、ネット上の評判だけで買ったりするんだから、消費が増えて景気がよくなっても良さそうなもんだよなー。それにしても、買うより読む方が少ないから困る。これを先に読むか、それとも先に買った神林長平を読むか……その前に、とっととSFマガジンを読み終えなければ。雑誌を一週間もだらだら読んでいてはいかん。
そういえば、SFマガジンの書評欄、Japanが3ページに増えてた。翻訳ばかりで日本人作家と言えば神林しか買わない身としては寂しい。……けど、どーせ読めないんだから一緒か。なくなったのはホラー書評か、と思ったら、ノンフィクションの後ろに増量されてた。SF以外にスペース割いてどーすんねん。
一緒に日経Linuxも買う。Linuxマガジンと歩調を合わせたかのように(?)、セキュリティ特集。季節物なのか? 両方ともRHL7.2のCDがついてるというのもどうか。そういえば、Asumiは3枚組だから、雑誌に付かなくなっちゃうんじゃなかろうか。
ああ、なんだこりゃ。脱線しすぎだ。
■ 沖縄
とうふようですか。うまいらしいという噂しか聞いたことがないのでした。
我々が泊まるのは名護なんですけど、うえちさんはどこですか。那覇? たぶん、一日くらいは那覇に出ていくとは思うんだけど……。
■ SPYZ
おー。SPYZ!がLinuxから使える。すばらしー。Asumi化したらトライしよっと。
で、うまくいったらWebCamにしようと思ったんだけど、よく考えてみたら電池がもたないことに気がついた(笑)。まぁ、24H動いてるマシンはSushiだとか、他にもいろいろ問題はあるんだけどさ。
◆ 通りすがり [DVDのメニューがイケてないに激しく同意します。特にStarWars EP1みたいにメニュー移動時にやたらとムービー..]
◆ zoe [USBで接続してるときはUSBから電源をとってるみたいです。マニュアルにそんな記述があったはづ。]
◆ suzune [DVDのメニューの件、私も同意。使いにくいったらありゃしない… って、滅多にいじることないですが(笑) とうふようで..]
◆ うえち [うちは那覇です。那覇に来るならtDiaryオフしましょう :-) ピープルウェア、ぼくもラッカーかと思いました。]
◆ kjana [「買う方が多い」.... 何だか激しく耳がいたいような気がする :-P まんがは一週間以内に読んじゃってるけどなぁ...]
2001-12-11(火) 7521歩 [長年日記]
■ 本日のハンティング
お洒落手帖を捕獲しました(126)。『射矢ガール』、いいよね。『ひかるの碁』は読んだことないけど、こっちは知ってる。
なお、うちのアンテナもなつみかんなので大丈夫です(何がだ)。
■ あなたのご利用になっているInternetExplorerには、脆弱性がないでしょうか?
IEの脆弱性を、実際にそのセキュリティホールを突くことで判定してくれるページ。このサイトが信頼できるという保証はどこにもないので(いや、本気で疑っているわけじゃないけど)、このページ内のリンクをたどれるかどうかは、ちゃんと対策をしている場合に限られると思うんだけどどうかね。ちょっとした度胸試しにいかがですか、って感じでどうよ(笑)。
もちろんおれは全部おっけー(でも、クリックする時はドキドキした)。
■ SPYZ!
USBから電源をとる。そりゃそうか。マニュアル? 読んでません(笑)。
■ ツッコミが……
前日の更新から間を開けずに今日の更新をすると、前日にツッコミが多数入ってしまうというのは、運用の問題だな。しかし、空いてる時間にしか更新できないからのぅ。
■ 新刊本をすでに買ったかどうかは、PalmのTodoで買うべき本を常にリストアップしておくようになってから混乱することはなくなりましたね。ちなみに買うべき本リストは、bk1がメールで教えてくれるのでそこから。でも、なぜかbk1のメールは網羅性がイマイチなので、TRCのサービスも併用。
つーか、買うべきとか言ってる時点でダメかもしれない。
2001-12-12(水) 8758歩 [長年日記]
■ RAA
[ruby-list:32880]のせいか、RAAにこんなエントリーが。わはは。本番環境しかない以上、別のところでテストするわけにいかないもんなぁ。
#と思ったらもう対策されて消えてしまった模様(17:30)
■ Courier-IMAP
が1.4.0になっていた。安定版リリースってことかな。Asumiに滑り込みセーフ?
ちなみに、我が家のMary環境では、またもやビルドできなくなってしまったのであった。とほほ。Asumi beta3からSPEC抜き出して使ってみるかなぁ。
職場のSushiでは(RPMのバージョンを除けば)なんの問題もなくビルドできるんだよ。そうそう、職場の公式IMAP鯖は重いので、自分の手元に転送して読むようにしてしまった。これで公私共にCourier-IMAPなり。
2001-12-13(木) 8031歩 [長年日記]
■ Kondara 2.1
出ちゃった(「出ちゃった」はねーだろ)。いや、今回もbetaテストに協力できなかったのが悔しい。目標達成できず。まぁ、プロジェクト日誌がtDiaryになったので達成ってことにしとく?
どっかにミラーされたら入れるとしよう。丸一日確保しないといけないけど……。かみさんのPCでCDを焼かねば。いや、UmaShikaさんがUpdate手順を書いてくれてからにする、というのも手かな(笑)。ま、「Asumi日記」になるのはもうしばらく先でしょう。
■ 自動改札2題
小田急の自動改札がリニューアルされつつある。今度は定期とパスネットを同時に入れられて、乗り越し清算がいらなくなるというのが売り。これはいい。しかし、裏返しに入れた定期をわざわざ表にして返すおせっかい機能まで付けるこたぁないんじゃないの。
定期券の印刷はけっこうすり減りやすくて、読めなくなると困るから定期入れには裏返しに入れている。これだと指やポケット、バッグの中で擦れることがないので、半年間は良好な状態でいる。だから、必然的に改札には裏返しに入れている。もちろん、裏のまま出てくることを期待しているわけだ。
たぶん、設計者は親切のつもりで表にしたんだろうな。相変わらず想像力のない設計者がはびこってるのぅ。裏から入れるのにはそれなりの理由があるかも知れないということを、ちょっと想像してみればいいだけなのに。「想像力」って、設計の基本スキルだと思うんだけど?
■ 一方、萌え萌えSuicaは順調(萌えんなよ)。ただ、弱点も見えてきた。電波(?)の有効距離が思ったより短い。定期入れにはカード類が何枚も入っていてけっこう厚いんだけど、Suicaの入っていない側を改札に当てると認識されないことがある。ほぼ接触している状態でないとダメなようだ。接触させておく時間も1秒とまではいかないまでも、0.5秒くらいは止めておく必要がある感じ。まぁ、これだけの短時間で非接触式ICカードとハンドシェイクして、データの書き換えまでやるんだから、すげぇ技術だと思う。素直に感心。
……と思ったら、新横浜唯一のSuica改札機、朝から故障してやんの。くー(泣)。
■ 赤坂陸橋
fj.rec.motorcyclesを見ていて、赤坂陸橋の二輪車通行規制が解除になったことを知る。おー。こりゃ朗報だ。原付はまだダメだけど、うちのは90ccだからOKだよな。これでアキバにもカブでスムーズに行けるようになるってもんだ。わーい。
■ Lycos
Lycosの検索がWiseNutを使うようになったようなんだけど、URLに含まれる検索語がUTF-8でエンコードされているっぽい。今日のリンク元にちゃんと表示されないのはそのせい。どうしたもんかなぁ。
それはそうと「町田の猫好き」でひっかかるって、どーゆーことよ!?
◆ Nana [http://cyberdrive.dip.jp/~nack/diary/ もひとつ。]
◆ Nack [うひ。Nanaさんに見つかってしまいました(^^;;。 初めまして、Nackです。tDiaryなら、少しは更新しやす..]
◆ a-higuti [札幌の自動改札はそもそも表向きにしか入れられません。裏を上にして入れると、表に入れろボケ!と怒られます。]
◆ Ryuzi Kambe [表にして返すのは単に取り間違いを防ぐためでは?>定期]
◆ Ryuzi Kambe [改札が故障している時にはどうされているのでしょう>Suica]
◆ Ryuzi Kambe [赤坂陸橋、ナイショですが自転車で2回ほど突っ切ったことがあります(^^;(後方からの車両がない時にですが) ドライバ..]
2001-12-14(金) 8643歩 [長年日記]
■ 本日のハンティング
そうか、tDiary Themesはかっこうの捕獲器と化しているのだな(笑)。
「秘密」とか言ってるへも日記は、無条件で捕獲するのは気の毒なのでちょっと保留。もちろん、うちに直接リンクした場合は有無を言わさず捕獲しちゃいます。
雑なメモRough Memorandumは捕獲しちゃいます(127)。VineのRubyが1.6.2のままだってのは、誰かも書いてたなぁ。VineSeedには1.6.5があるようだけど。ちなみに、日にちが1桁の場合だけ問題が起きるので、毎月後半2/3の間は大丈夫(笑)。とりあえずの対策として、最新ソースからcgi.rbだけ引っこ抜いて、/usr/lib/ruby/1.6/cgi.rb
と置き換えてしまうというのがあります。がんばりましょう(笑) >Nackさん
さらに裏日記(128←お、キリ番)。別に悪ふざけってほどのことでもないっす。狩りは本能ですから(何がだ)。ただ、夕べは他のことをしていたので、狩りに出られなかったのでした(笑)。
■ マウスがトロい
トロ型マウスではない。
Logitechのブルブルマウス、どうも動作が鈍いことがある。スクロールボタンが特に。タスクマネージャを見てみると、EM_EXEC.EXE
という怪しげなソフトが、CPUを常時20%くらい食ってるので、試しにkillしてみたらうまく動くようになった。なんだこりゃ。どうもLogitechのドライバくさいが。
と思って検索してみたら、不具合の話がボロボロ出てくる。Netscape6のリリースノートにも問題があると書いてあったし、他にもゲームでもトラブルが出てるようだ。だいたい、マウスのユーティリティくらいでどうしてこんなにCPUを食うのか。しかも、なくても困らないもの(らしい)のに。
というわけで、殺すことに。regeditでHKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\run
からEM_EXEC
のキーを削除。これでよし(たぶん)。
■ 自動改札(2)
なんだか昨日のツッコミが盛況だ。
片面しか読めないって可能性は考えたんだけど、旧型機でできたことを新型機でできなくするというのは考えにくい。それなら最初から裏は禁止して、札幌みたくしてくれた方がまだ気持ちがいいぜっ(笑)。
取り間違い防止って、他人の定期を持ってっちゃう可能性があるってことですか? でも、出てきた定期券をじっくりあらためてる人なんて見たことないですよ。たとえ表向きに出てきても確認されなければ意味がないので、それはないかと。それこそ実態を把握していない無駄な改善。
なお、唯一のSuica改札が故障した場合は、駅員に見せて通っていました。帰りもそうしてくれと言っていたのでそうしたけど、これって電車に乗らずに10時間、町田のホームにいたことになるんだろうか(笑)。
■ 赤坂陸橋(2)
ナイショになってない(笑)。それすごいな。まぁ、たしかにあそこは、ぱったりと交通が途絶えることがあるから、できないことはないけど。じゃあ今度は、玉川通りのアンダーパス(ここも原付禁止)を自転車で。ぜひ。
◆ きた [ワラタ > 128キリ番]
◆ masahiko [定期が表にひっくり返るのは、「そーいうもんだ」とか思ってました。こんな私は関西人。 プリペイドカードの裏の、利用履歴..]
◆ zoe [全文検索の結果が複数ページになる場合に次ページに行けません。。。常にフリダシに戻る状態。]
◆ woods [昔の機械だと両面に読み取り機をつけてたんだけど、それより自動でひっくり返すほうが安上がりになったんで新型はそっちに移..]
◆ ただただし [なるほど、パスネット対策というのはありそう。って、なんでこんな古い記事にツッコミを!?]
◆ woods [いや、RSSで読んでたらなんとなく目についたんで。]
2001-12-15(土) 2367歩 [長年日記]
■ 検索……
検索の結果が複数ページになる場合に次ページに行けませんでした……。あぅ〜。どうも、namazu.rb
の29行目にある、
$0 = (ENV['PATH_TRANSLATED'] or ENV['SCRIPT_FILENAME'] or $0)
がうまく動いてないようなんだが……なんでだかわからん。ここをコメントにしたら動いた。$0
にnamazu.rb
のパスが正しく入ってくる環境なら問題ないと思うけどね。
■ 「今日のリンク元」の仕様
「今日のリンク元」が記録されるタイミングですが。文書化されてないので知られてないんだな。いやいや。ソースがドキュメントじゃぁ(笑)。
Refererが来ると、もしそのアクセスが特定の日付を指していた場合には、その日のリンク元と最新日のリンク元の両方に記録されます。つまり、過去を参照してもそこへの直接のリンク元が見られるし、常に最新日を監視していても過去へのリンクをキャッチできます。だから日記のオーナーは、とりあえず常に最新日のリンク元だけを見ていれば良いことになります。
2001-12-16(日) 3565歩+700m [長年日記]
■ tDiary 1.3.1
1.3系の開発をおおっぴらに開始しました。けっこう大幅にいじるつもりなので、ついてくる人は覚悟してきて下さい(笑)。手始めに1.3.1を公開。変更点は以下のとおり。
■ ファイル構成変更。*.rhtml、*.rtxt、*.rconfを、すべてskelというディレクトリを掘って移動。この中は今後、大きく変動する恐れあり。
■ eRuby拡張対応。kitaパッチを参考に、大幅に拡張。
まず、pluginというディレクトリを新設。そこに関数を定義した.rbなファイルを入れておくと、勝手にプラグインとして認識する。なお、kitaパッチの@use_eruby
、@custom
は使わないが、すでに使っている人は@custom
で指定していたファイル(custom.rb)をpluginディレクトリに移動すればいいだろう。
プラグインにはデフォルトで「calendar.rb」「insert.rb」「navi.rb」を入れた。calendar、insertは従来もヘッダで使えたもの。プラグインの性格上、本文でも使えるので、insertをソースのインクルードなんかに使えるかもしれない。
新しい「navi」は、日記の最上部に出ているナビゲーションボタンをプラグイン化したもの。この余波で、@header
に「<%=navi%>
」を入れないと従来と同じ画面にならないので注意。1.3に入れ替えたあとは、update.rbを実行して、ヘッダに<%=navi%>を挿入すれば良い。
■ tDiary(2)
プラグインからアクセスできる変数は、何を入れればいいのかまだよくわかっていないので、アイデアは随時募集中です。「××があれば、○○ができる」とか言ってくれると。
selfや@diariesを入れちゃうというのは考えたんだけど、なんか危険っぽい感じがして検証するのがめんどうだったので、1.3.1ではパスしちゃいました。でも、「'parent' => self」って、動きそうな気がするなぁ。今度試してみよう。副作用がなければそれもアリかな。
■ マルチユーザモードの拡張ですけど、残念ながら今以上のことをする気はないです。あれはオマケの機能なので。tDiaryはあくまで個人がターゲットの日記です。マルチユーザモードは、ほぼKondara Project日誌だけのため(笑)。
ただ、将来の拡張で出力フォーマットを選べるようになれば、保存の仕方しだいではその手のこと(セクション単位での変更)が可能になる可能性は否定しません。
■ Sylpheed
0.6.6が出たので入れ替え。IMAP周辺でいろいろ直っているみたいだけど、よくわからじ。それより、--compose
オプションがいいかも。これでブラウザからmailtoスキーマのハンドラにできるってことだよね。
■ リファクタリング用の英和辞書(?)
メモっておこう。いつもChangelogを書くときに動詞で悩んで、-edつけたり、-ingつけたりしてたんだけど、これを見る限りでは現在形でいいみたいだなぁ。いいんですか?
◆ かずひこ [@multi_user = true の時に、同時編集できないのは改良の予定はありませんか。 具体的にどういう仕様が..]
2001-12-17(月) 8864歩 [長年日記]
■ tDiary
mod_rubyで不具合発覚。しくしく。マヌケだ。snapshotを入れ替えておきました。
職場環境を1.3.1にする時、cvs upに「-d」を付け忘れて、しばらくわけわかになってしまった。「-d」はデフォルトなのが自然じゃないの、と思う今日このごろ。
■ 本日のハンティング
今日もいろいろ...を捕獲しちゃいましたのでよろしく(130)。続きますように……。
さらにSYNTAX ERROR >> DIARY(131)。さっそく1.3.1を使ってます。ナビゲーションボタンがないのは意図的なんでしょーか???
■ 本日お気に入り
今日のお笑いパソコン日誌には、好みのリンクが多かった。絵的にいいのが2...と(←かわゆい)、タイタニック。あと、ニチャンネラ★はあえてAA風にしてないところがグッ。
それからBMediaNode経由でMutter Launcher。これいいよ。おれ的にはWindows用Launcherの決定版。見た目の飾りやてんこ盛り機能でなく、操作性の向上に富豪的なアプローチがうまく使われているところがPOBoxやQ-Pocketに通じる。と思ったら、作者もここでPOBoxに言及してるな。こういうのをユーザフレンドリーと言うのだよ。
■ CVS
~/.cvsrcですか。そんなのがあったとは(マニュアル読めって >おれ)。参考にしました。というか、丸々パクって使わせていただきました♪
CVS本も前半だけ読んでそれっきりだしなぁ。年末・年始に読みたい本はいっぱいあるけど、たぶんぜんぜん読めないんだろうな……。
■ tDiaryプラグインTips(1) - カレンダーの形式を変える
以下のようなcalendar2.rbを作ってpluginディレクトリに入れると、カレンダーがドロップダウンリストになります。
def calendar result = %Q[<form method="get" action="#{@index}">\n] result << %Q[<p class="calendar">過去の日記\n] result << %Q[<select name="date">\n] @years.keys.sort.each do |year| @years[year.to_s].sort.each do |month| result << %Q[<option value="#{year}#{month}">#{year}年#{month}月</option>\n] end end result << "</select>\n" result << %Q[<input type="submit" value="Go"\n] result << "</p>\n</form>" end
もちろん、直接calendar.rbをいじってもいいんだけど、バージョンアップで上書きされないように別ファイルにした方が良いでしょう。プラグインの読み込み順序はファイル名でソートされるから、あとから読み込むファイルでcalendar
メソッドを上書きしちゃうところがミソ。なお、デフォルト添付のプラグインは、将来ひとつのファイルにまとめちゃうかも。
2001-12-18(火) 7822歩 [長年日記]
■ tDiary
本日のリンク元が増えるとLast-Modifiedが変わるなんてことはございません。その問題はまだ公開されてなかった頃に発覚、即座に修正されています。だってそんな動作をしていたら、アンテナが使い物にならなくなるではないですか:-)
というわけで、何かの間違いだと思います。Last-Modifiedが変化するのは、本文が更新されたときと、ツッコミがあったときだけです。もしかするとその読者は、キャッシュが効いていないことをLast-Modifiedの変化と勘違いしているのでは。
ところでdoggieさん、日記のURLは?(笑) googleでそれっぽいところを見つけたんだけど、11月から更新されてないし……。
■ 続・マウスがトロい
こないだ削除したEM_EXEC.EXEの起動設定、あれのせいでマウスボタンの左右入れ替えがされなくなってしまった。ぐぁ。いちど起動して、そのあとkillしても設定は残っているから、動き続けている必要はないらしい。なんだか、すげぇマヌケな仕様だ。捨てちまうぞ >Logitech
しかたがないので、ログイン時に実行しているスクリプトに、「EM_EXECをバックグラウンドで実行して、5秒待ってからkillする」という処理を組み込んだ。これでOKだろう。たぶん。
/Program\ Files/Logicool/MouseWare/system/EM_EXEC.EXE & sleep 5 kill %1
job番号が1で固定なのは、スクリプトの先頭にあって、ログイン時に一回だけ実行されるため、確実に1になるから(ホントか?)。
■ CVS
-z9はサーバに負担、なるほど。盲目的に-z3というよりは、サーバの能力と回線容量のバランスを考えるべし、と読みました。spc.gr.jpはパワーはあるけどレンタルでシェアされてるから、ちょっと圧縮率を落とした方がよさげだな。自前鯖だけどADSLだから上りが細いの……なんて環境ではむしろ-z9推奨なのだろう。
■ 本日のハンティング
とーぜんです(笑)。というわけでWAnWAn NiKKiを捕獲(132)。
WWWDが何を根拠に更新を認識するかわかりませんが、WAnWAn NiKKiのLast-Modifiedは正しいようです。もしかしてLast-ModifiedだけじゃなくてContent-Lengthも見ていて、サイズの違いを更新と認識してるのでは? >WWWD
■ RuBBS
Windows2000上で動かないと言われたので、いちおう動かすところまではやった。Time#strftime
の%z
が例によって日本語を返すんだけど、それがどうやらSJISで。途中にそんな文字列が混じったものを別の文字コードに変換しようとすると、NKFモジュールが狂うらしい。まぁ、しょうがないというか。
というわけで1.0.1を公開。もちろん、使って意味があるのはWindowsのみ。あ、とーぜんApacheでしかテストしてない。
■ Last-ModifiedとContent-Length
あら、ご足労願ってしまいました(汗)。WWWDにはContent-Lengthを無視させるオプションがあるんですね。よかった。
ところで、Last-ModifiedとContent-Lengthの両方があるときには、Last-Modifiedだけを信じる方がよくないですか。Last-Modifiedが変化するのはほとんどのばあい真の更新時だけなのに対して、Content-Lengthは相手が動的なページの場合にはカウンタの桁上がり、広告の自動挿入とか、時刻によって変わる挨拶とか……不安定な要素が多すぎるような。もちろんサイズしか指標がないときには積極的に使うべきだとは思いますが。
そういえば、戀塚さんのサイトをうろついていたら、久々にBio_100%の名前を見つけて嬉しかったですよ。なつかしいなぁ。98時代ははまったもんだ。「ろりろりろーりんぐ」ってBioだっけ?(←違ったりするんだよな)。
◆ ただただし [HEADでもGETでも、正しいLast-Modifiedを返してることには違いはないっす。]
◆ UmaShika [WWWD作者に聞きましたところ、更新チェック時の比較対象のデフォルトは"Last-ModifiedとContent-..]
◆ skamio [ -z9のもとネタはこれかな? http://www.mozilla.org/cvs.html -z9は "expo..]
◆ ただただし [なるほど、mozilla.orgなら問題になるわな、そりゃ(笑)]
◆ 戀塚 [WWWD作者です。 サイズの違いはデフォルトで更新と判別するようになってます。アイテムごとの設定で、サイズの違いを無..]
◆ doggie [ガーン。じゃあ tDiary や私のせいじゃないんですね(^^;)]
2001-12-19(水) 10404歩 [長年日記]
- ツッコミサマリ表示を60→120文字に拡大
- ツッコミサマリがあふれた場合、古い方から非表示にして「Before...」とした
- 本日のリンク元を、ツッコミのフォームの下に
- セクションを囲む<div class="section">...</div>を新設
- デフォルト提供のプラグインを00default.rbに統合
- プラグインのnaviをnavi_userとnavi_adminに内部分割
- 存在しないプラグインを呼び出しても落ちないように対策
- Varyヘッダを出すようにした
- 他、ちょこちょこ
■ ツッコミサマリの文字数は可変にしてもいいんだけど、これくらいがちょうどいいんじゃないかと思うので、とりあえず固定のまま拡張。
■ 「More...」の代わりに「Before...」にしたのには賛否両論あるかも知れない。「Before」という表記も含めて。「これ以前のツッコミ」の方がわかりやすいか。
■ ツッコミフォームの位置を変えたのが一番影響がありそう。困るのはNebulaのようなテーマのレイアウトが崩れること。でも、インタフェース的にはぜったいこの位置が良いと思うのだが、どうだろうか。
■ 古いプラグイン(calendar、navi、insert)は削除してくらはい。naviの内部分割によって、けんのぼやきにあった指摘をフォローできる。この話はあとでTIPSにでも。
■ マウスがトロい(3)
昨日のスクリプト、今朝、電源を入れたらjob制御が効かずにエラー。そこで以下のように修正。わざわざRubyを使っているのは、Cygwinのcutコマンドの挙動がなんか変だったのと、代わりに使おうと思ったawkの文法をすっかり忘れたため(←ダメダメ)。job制御って、対話状態じゃないと使えないのかにゃ?
/Program\ Files/Logicool/MouseWare/system/EM_EXEC.EXE & sleep 5 kill `ps | grep EM_EXEC | ruby -ne 'puts $_.split[0]'`
■ tDiaryプラグインTips(2) - ナビゲーションボタンの配置
今日のスナップショットから、ページ最上部にあるナビゲーションボタンを実現するnavi
プラグインをちょっといじりやすくしてある。「トップ」「最新」「前日」「翌日」からなる読者向けプラグインnavi_user
と、「更新」「設定」からなる管理用プラグインnavi_admin
。個々のボタン別に分けてもよかったんだけど、使いやすさのバランスをとって2分割。
これで、読者用のボタンはページトップに置きたいけど、管理用のは下の方にしたいなんて要求に応えられる。例えば@header
に
<p class="adminmenu"><%=navi_user%></p>
@footer
に
<p class="adminmenu"><%=navi_admin%></p>
なんてやるわけだ。ただし、更新や設定用の画面ではnavi
をページトップに埋め込んであるので、この位置は変更できない。まぁ、読者に見えるわけじゃないからいいでしょ。
さらに、自分で新しい.rbファイルを起こしてその中にnavi_user
やnavi_admin
を再定義してしまえば、ボタンのラベルや表示順序も自由にできる。
ちなみにnavi
系プラグインで使っている@mode
という変数には、現在動作しているモードが入っている。これはtdiary.rb
内で定義されているTDiaryHogehoge
系クラスの「hogehoge
」の部分(小文字化されている)。これで現在どんなページを処理しているかがわかる。でもこの仕様はどっかで変わるかも知れない。手抜きが見え見えだし。
2001-12-20(木) 8600歩 [長年日記]
■ 本日のハンティング
Hysteric Programmer 日記を捕獲しました(133)。爆発しますかねぇ。あんまり増えるとアンテナの負荷が……(笑)。
■ マウスがトロい(4)
$!なんて……また新事実だ。shやbashのmanには載ってないんだけど、どこ見ればいいんだろう……。いずれにしても、ちゃんと動いてるみたいっす。ありがとうございました。
ツッコミの件は、空のaction
をカレントディレクトリと認識するブラウザなら動くようですね。
■ おお、Special Parameter。見つかりました。なるほど、深いな。$?
なんかは(よく知らずに)使ってたこともあるんだけどな。その仲間だったのか。
■ 弁当屋受難
いつも会社の前に群がっている弁当屋の集団が、今日、いっせいに摘発(?)されたらしい。まぁ、道路占有許可をとらずに歩道で商売していたのはたしかに違法だ。
しかし、だ。なにも、昼休みの直前にやるこたぁないんじゃないの、警察さんよ。庶民の昼食を奪って嬉しいか。あんたら、誰のために働いてんのか、きっちり考えてから動けよな。公務員だって顧客志向だろ、これからは。
というわけで、今日はちゃんと許可をとって営業しているぐっでぃのカレー。明日からは戻ってきてくれないと毎日カレーになってしまう。困る。困るぞ。
■ tDiary
スナップショットを1.3.1.20011220に。夕べと休み時間の成果。詳しくはChangeLogを参照してもらうとして(ちなみにCHANGES→ChengeLogにファイル名変更)、プラグインまわりの整備がメイン。まだ仕様が固まってないのでスナップショットで。なんだか、どんどん重いシステムになっているような気がする(きっと気のせい)。
■ まず、プラグイン内で@diaries
が見えるようになった。zoeさんトコでツッコミランク・プラグインがうまくいっていなかったのは、プラグインの初期化のタイミングを(おれが)間違えていたため。最後のeRuby解釈の直前で初期化するようになったので、こんどは大丈夫。でも、@comment_limit
は見えないから、「100」とでもしてしまった方がよいですよ。
■ 次に、複数の日記を同一マシンで動かしている人の負担を軽減。シンボリックリンクするファイルを、index.rbとupdate.rbだけにして、残りはリンクを遡って元のインストールディレクトリから探すようにした。あとはtdiary.confを個々の日記別に作ればいいので、メンテがだいぶ楽になったかと。
ところが、唯一テーマだけが対応できない。なぜなら、CSSファイル名を埋め込む時に、元ファイルからの相対パスになってしまうため。header.rhtml内に実際のURLを渡せれば解決するのだが……あ、プラグインで実現できるじゃん!! ということで、theme_url
というプラグインを実装。ここでテーマの入ったURLを指定すれば良い。
■ この考え方を拡張すると、現在rhtmlファイルに埋め込んであるメッセージは、すべてプラグインで変更可能にできるってことになる。つーわけで、「本日のリンク元」とか「本日のツッコミ」などの文字列をすべてプラグインに追い出す。これを推し進めれば、国際化も可能である。もっとも、rhtmlファイルの可読性はさらに低下した模様。
■ さらにプラグインを追加。title_list
は、現在表示している月のタイトル一覧を生成するもの。これはトライアルなので、今後仕様が変わる可能性大。試しにここにいれてみたけど。重いかもね。レイアウトもかなり制限されるし。
■ tDiaryその他
Content-Length、そうか、XREAは自動的に広告挿入するんだもんね。あれ、じゃあGETの場合はちゃんと再計算してくれてるの?
あと更新ページからのリンクは、自分の日記本文中のリンクを更新完了時にたどってしまった、という話だと思われ。タグを無効にでもしない限りこれは防げないのではないかな。つーか、そういうミスがあるからこそ捕獲できた日記も少なくないので、おれ的にはOK(笑)。
■ ビッグニュース
新横浜のSuica対応改札が4台になりました!!
◆ なかだ [kill $!では。 ツッコミ自体は別になんともなくできましたが。]
◆ skamio [$!は man bashの "Special Parameters"(jmanなら 特殊パラメータ)の項ですな。 !..]
◆ zoe [あれ??いつのまにやらあっぷしてる。。]
◆ きた [Pluginの中で先月の@diariesにアクセスできないものでしょうか? そうすれば先月分にさかのぼってtitle..]
◆ はんばあぐ [Hysteric Programmer日記管理人です。捕獲してくださりありがとうございます。 きっと爆発しますよ。こ..]
◆ でんすけ [ぬぬ、たださんって横浜方面の方なのねん。]
2001-12-21(金) 7391歩 [長年日記]
■ Funny Video Clips of Cats and Kittens
猫好きでブロードバンドな人は要Bookmark。たまりません。元ネタはお笑いパソコン日誌。
そういえば、うち(の隣)の茶々は最近、食って出ていくだけになってしまった。寒いんだから、ホットカーペットの上で寝ていけばいいのに。
■ tDiary
いろいろ。
■ 左のナビゲーション、読み上げブラウザに対して親切ではない、というのは知っていたけど忘れてた(笑)。というわけで、見た目は左に置きつつも、実はそうじゃないというレイアウトにしてみた。CSS参照。これならCSS非対応のブラウザでも邪魔じゃない。もっとも、禁断の「position: absolute
」を使っちゃってるのがアレなんだけど。
■ zoeさんのプラグイン3個。ツッコミランキン、真月記長、日記長。なるほど、日記長はパラメタ渡しにしたわけだ。まぁ、これくらいしか策はないでしょうなぁ。
それにしても、tDiary Themesの次はtDiary Pluginsを作らないとダメかも?(笑)
■ tDiaryプラグインTips(3) - 先月分のtitle_list
先月分のtitle_listはどうすればというリクエスト。ソースに手を入れない姑息な方法として、こんなのはどうでしょ(もちろん@secure
はfalse
)。先月分だけしか出してないけど、元の@diaries
とマージすれば2ヶ月分出るかと。
eval( <<MODIFY_CLASS, TOPLEVEL_BINDING ) class TDiaryMonth attr_reader :diaries # ぉぃ... end MODIFY_CLASS def title_list cgi = CGI::new now = @date ? @date.dup : Time::now if now.month == 1 then cgi.params['date'] = [format( '%04d12', now.year - 1 )] else cgi.params['date'] = [format( '%04d%02d', now.year, now.month - 1 )] end month = TDiaryMonth::new( cgi, '' ) result = '' month.diaries.keys.sort.each do |date| result << %Q[<p class="titlelist"><a href="#{@index}?date=#{date}">#{month.diaries[date].date.strftime( @date_format )}</a><br>] month.diaries[date].each_paragraph do |paragraph| result << %Q[#{paragraph.subtitle}<br>] if paragraph.subtitle end result << '</p>' end result end
2001-12-22(土) 6210歩+700m [長年日記]
■ tDiary
スナップショット更新(1.3.1.20011221)。13月じゃないから(謎)。
げきしぶさんのパッチを適用、拡張し、月をまたいだ表示をサポートしました。つっても、たいていの人は来年になるまで影響ないと思うけど。
げきしぶパッチは前の月までしか遡ってなかったけど、いちおう@latest_limit
の値まで遡るように拡張しました。試しに356日表示にしてみたら、1分以上返ってこなくて慌てたよ〜(笑)。
なお、月は越えられると思うけど、年を越えられるかどうかがいま一番の不安材料だったりする。
■ ロボコン
昨日の日記に書き忘れたけど、ロボコン高専大会の放送があった。うーん、一年で一番燃える番組かも、これ。
■ ゆうべ眠くて書けなかったロボコン続き。優勝した詫間の戦術に批判的な声を見かける(こことか。他にもあったけど忘れた)んだけど、おれは別にいいじゃん、と思う。
彼らは大会前にはメいっぱい知恵を絞って自分たちのアイデアをロボットに具現化してきたのだ。しかし機械的な問題は本番ではそれ以上どうしようもない。だから、対戦相手のデータ収集や作戦立案に頭を使うのは極めて自然である。ロボット作りも作戦立案も、どちらも非常に高度な知的作業だ。立派な「アイデア勝負」なのである。
彼らも社会に出れば、よいモノを作るだけでは売れないことがわかるだろう。よいモノに、よい宣伝やよい価格設定などが加わってはじめて売れるのだ(まぁ、よくないモノまで売れちゃったりすると凹むけどな……)。だから、詫間の優勝はモノ作りだけではない、そういう広い視野のたまものだと言える。
高専生だからといってキレイごとを言っていると、同級生が暴力沙汰を起こしただけで出場停止になったり、アウトが確実なのにヘッドスライディングするのが賛美されたり、敬遠はフェアじゃないとか言われるどっかの高校スポーツと同レベルになってしまうのではなかろうか。
あくどいと言われようと、ルールに反しない限りなんでもやる。優勝が目標ならどんどんやっていい。そのかわりロボコンには、勝負とは無関係だが最高の栄誉とされる「ロボコン大賞」が用意されているのだ。真紅の優勝旗だけが目的のアレとは違って、ちゃんとバランスが取れているではないか。
■ tDiary(2)
title_listはデフォルトには入れないで、miscの下に入れようかと思っているので、あまりまじめに対応しないかも。あくまで「プラグインでこんなこともできますよ」というサンプルってことで。まともに取り組むと、人によって「日付とタイトルだけ出したい」とか「セクションのサマリを出したい」とか言いそうでしょ(笑)。第三者による実装バリエーションを希望。
ちなみに、現title_listの表示順序を逆にするには、
@diaries.keys.sort.each do |date|
の行を
@diaries.keys.sort.reverse.each do |date|
にするだけです(試しにこの日記をそのようにしてみた)。
■ ロボコン(2)
あ、なんかツッコミで盛り上がってる。そうそう、どこで読んだか忘れてたのはうさにっきでした。そうか、あれは褒めていたのか(笑)。
#あのガンダム(Z?)、時々ポーズを変えてくれたりすると楽しいのですが:-)
実は今回、一番「すげー」と思ったのは、相手の陣地をカバーして、自分は1点入れさえすれば勝てる戦術を取ったチーム。ミニマリスト的な快感がありましたな、あれは。
■ tDiaryプラグイン紹介
きたさんの最近の日記表示を紹介しておこう。これ、配布ファイルに含めちゃおうかな(笑)。それにしてもcatch〜throw
なんて、凝った構文を使いよるのぅ(←自分が使ったことないだけ)。
そうそう、reverse_each
を使おう運動ありましたねぇ(笑)。いやー、なんか自分の中で「reverse.each
」がイディオム化しちゃってて、なかなか切り替えられない。年だよなぁ。
2001-12-23(日) 3570歩 [長年日記]
■ 今日は
掃除をしたり、たまった雑誌を読んだり、料理をしたりしたので、コードは一行も書かず。
料理は鶏肉のフォカッチャ。クリスマスディナー? いやいや、天皇誕生日ですから(ちげー)。ケーキも夕べ食べちゃったしな。我が家のクリスマスはおわりだよ。宗教色ゼロだし。
■ ロボコン(3)
まだひっぱる。
『ロボコンは「ショー」だ』とおっしゃるなら、もっとショー的な楽しみ方をしてみるというのも良いのでは。例えばサッカー観戦でも、初心者はボールの行方ばかりを追いかけるが(おれか……)、通はボールを持っていない選手の動きを楽しむと言いますな。ロボコンでも、勝負のきれいさばかりでなく、もっと多面的な楽しみ方がある。
地方予選を見てみるとわかるけど、ロボコンのルールに則ってちゃんと得点できるロボットを、高専生が作るのは非常に難しい。ほとんどのロボットは動き回ることすらできない。そういう事実を踏まえてロボコンを見ると、「堅実なだけ」のことをするのがいかに大変かがわかると思う。
そうしてみると、決勝戦で詫間の操縦者がディフェンスとオフェンスの両方を互い違いに、確実にこなしているのは、とてつもない(ワールドカップ級の)スーパープレイであることがわかってくる。いっけんつまらない堅実な作戦に見えるが、実はとても高度な技術に裏打ちされた戦術なのだ。
というわけで、勝負のスナップショットだけでなく、その背景まで想像しながら見ると、あの番組はとても面白いのである。また来年まで見られないと思うと悲しいよ、おれは。
■ tDiaryプラグインTips(4) - ファイルの挿入
はんばあぐさんがソースの挿入で困っていたので、それ系のプラグインを2つ。
■ すでにファイルになっているファイルをインクルードしたい場合に使うプラグインsrc
と、直接文字列として挿入したい場合に使うsrc_inline
。単にファイルの内容を展開するだけでなく、HTML的に意味のある文字をエスケープしてくれる(というか、それだけ)。
def src( file ) CGI::escapeHTML( File::readlines( file ).join ) end def src_inline( str ) CGI::escapeHTML( str ) end
以下のようにして使う。
<pre> <%%=src 'plugin/src.rb'%> </pre>
<pre> <%%=src_lnline <<TEXT ここにソースを直接書きます。 src_lnlineは空改行がある時に誤動作するので、 ↑のように空白を入れる等して逃げる必要があります。 TEXT %></pre>
■ しまった、こういう助け船を出してると、Ruby人口が増えない気がする(笑)。
■ ところで、けっこうtitle_list
を入れてる人が多いなぁ。みんな欲しかったのね……。でも、↑のようにソースを<pre>タグで1行が長いソースを入れる場合、table
タグでレイアウトすると、横幅がえらく広くなってしまって、すげー見づらい場合が。この辺はいろいろ工夫する必要があるかと思います(というか、だからtitle_list
はデフォルトにしない予定)。
2001-12-24(月) 2531歩 [長年日記]
■ ブーツとレインウェア
セールの案内が来ていたので、近所のRS-TAICHIにライディングブーツ(BMW用)を買いに行く。いまはいてるTAKAIはもう10年選手で、モノはいいんだけどさすがに防水性がダメになりすぎたし、BMWに乗るのに赤白黒のトリコロールつーのもなんなので、買い換えだ。
いい加減、こういうものにケチケチする年齢でもなくなったので、ゴアのインナーのヤツにした。SIDIかアルパインスターがよさげだったんだけど、どーもくるぶしがキツい。イタリア物はたいてい吊るしを着られる体型なのが自慢(?)だっただけに、ちょっとショック。靴だけは違うってか。なんとかアルパインのが入りそうだったのでそれをチョイス。古いブーツは処分してもらって、その場ではいて帰ることに。メットもそうだけど、店で処分してもらうと持ち帰る荷物も少ないし、自宅でゴミがでないので、合理的でよろしい。
ついで(?)に、これもいい加減ガタの来ていたレインウェアも買う。これもゴア。やっぱ、ビーマーはゴアを着なくちゃね。といいつつ、BMW純正ウェアを着る気にはならないんだけど。
■ Asumi
やっとリリース撤回のアナウンスが出たもよう。いっしょにKondara ProjectとDigital Factoryの関係も明確化。
アスキーLinuxの速報でデジファクが明確に「出さない」って答えてなかったから、そんな気がしてたので、まぁ、驚きはしないのだが、それにしては、アナウンスが遅すぎると思う。Kondara Projectとしては別に好きな人がやっていけばいいんだから、評判なんて知ったこっちゃないだろう。でも、Kondaraを基盤にして商売しているデジファクがKondaraの評判を落す行為をしちゃいかんだろ、と思うのだ。企業として致命的。もっと広報活動に力を入れるべきだ。
あと、Kondara Projectはもっと積極的にデジファクを頼ってしまっていいんじゃないか。上の文書でも、独立であるように書きつつも、コードフリーズとリリースの間でデジファクが関わることが明言されているという、いささか矛盾を感じる記述になっている。
でもね、リリースマネージメントというのはオープンソースプロジェクトがもっとも苦手にする分野だし、そういう部分を企業にアウトソーシングすることはちっとも恥ずかしいことではないと思うのだ。だから、無理にに両者を分離するのではなく、コミュニティとして「ノリ」重視で開発をガンガン行うプロジェクトと、リリースマネージメントを発揮して商業的にKondaraを支援するデジファクを、Kondaraの両輪としてとらえてしまった方がいいと思う。
いま、MLなんかでデジファクの人がデジファク社員として発言することは滅多にないけど、「こういうところはうちに任せてくれ」とか「この新しいデバイスはうちで検証中」みたいな発言があってもいいと思うんだよね。今って、Kondara Projectのコアメンバーと裏でやりとりされてるから、なんかうさんくささを漂わせてしまっていてマイナス要因になってるでしょう。そういう話をオープンでやって相補補完していることをアピールした方がいいと思うし、かたくなにコミュニティ開発を守るよりよっぽど自然。
Kondaraが好きだからこそ、こう考えます。
■ ところで、実は「Asumi幻版」がいま手元にあるんだけど、入れるべきだろうか(笑)。
■ tDiaryプラグイン
夕べのリンク忘れ。zoeさんのカウントダウン・プラグインとリンク元ランキング。
■ Paragraph#bodyにアクセスしたいなら、これを参考にしてParagraph
クラスをいじってしまえば良いのです。evalできりゃ、なんでもアリっすよ(笑)。
■ タイトルリストを別ファイルにというのを読んで、そんなのtitle_list
内でファイルを生成すればいいじゃん、と思ったのだが、毎回ファイルに吐き出していたら効率が悪いので、更新のタイミングでのみトリガされるような仕組みが欲しいな、と思った。ちょっとアイデアを練ろう……。
■ 天皇杯
決勝はセレッソvsフロンターレで決まりやね(笑)。集客力は悪そうだけど、こういうのも面白いよな。
2001-12-25(火) 7347歩 [長年日記]
■ WebCamとか
あ、ライトアップされたので、暗くても見えるようになりました。色合いが妖しいです。ちゃんとポーズも取ってます。って、銃口をこっちに向けるなー(笑)。
WebCamと言えば、これ良すぎ。まるで左利きのために作られたかのようなデザインも好感。SPYZ買ってなければぜったい買ってたなー。くー。
そうそう、ホンダは青山のASIMOをWebCamで公開すべきだよ。ときどき誰も操縦してないのに動いちゃったりするといっそうカワユイと思うぞ(怖いだろ)。
あ、そうだ。例の幻のAsumi、「∀sumi」と呼ぶのはどうか(読めねー)。
■ RuBBS
WindowsでProcess::pid
が使えないのは困るなー、と思っていたら$$
なら使えるという記述が。なんでやねん。確かにWindowsのPIDが取れてるみたい。じゃあこれ使おう。
てぇことは、Process::pid
が使えないのは、mswin32版Rubyのバグなんだろうか……? 仕様的にはバグだな、マニュアルの$$
の項には「Process.pid
と同じ」って書いてあるもんな。帰ったらruby-devに報告しよう。
■ [追記]あ、よかった。直るんですね。まぁ、とりあえずは$$
でいいや。なんでツッコめなかったんだろう……。
あう、あおきさんにもツッコまれてしまった。mswin32な話をすっ飛ばしてるのがバレバレだなー(笑)。……と思ったらruby-bugs-jaか。そっちは見てなかった。
2001-12-26(水) 8958歩 [長年日記]
■ tDiary 1.3.2
リリースしました。夕べ出そうと思ってたけど、Ruby 1.6.6が出たのでちょっと動作確認などしておりました。問題なかったけど(たぶん)。今年はおそらくこれで最後。
1.3.1からの変更点は以下の通り(スナップショットでの変更点を含む)。
- プラグインの実装
- プラグインのサンプル提供(misc/plugin)
- 最新表示で月をまたぐ
- ツッコミサマリの表示長を2倍に
- ツッコミサマリは新しい方を優先して表示
- ツッコミフォームを、リンク元表示の上に移動
- セクションを囲む<div class="section">を追加
- symlinkで複数日記を運用する場合の負担軽減
- mod_rubyで動かないバグをFIX
- 更新時に呼ばれるプラグインのテスト実装
詳しくはChangeLogを参照。プラグインに関する文書をmisc/plugin/README.htmlとして書いたのでどうぞよろしく。
■ 最後の「更新時に呼ばれるプラグイン」についてちょっと解説。
通常のプラグインは実装者が好きな名前をつけられるんだけど、それを日記記述者がどこかで明示しなくてはならない。何かのイベントをきっかけに呼ばれるコールバックのような仕組みはこれではダメなので、名前を固定する必要がある(もちろんあらかじめ名前を登録するという方法もあるけど、複雑すぎる気がする)。そこで、update
という固定名称のプラグイン呼び出しをshow.rhtmlに埋め込んだ。
じゃあプラグイン実装者はこのupdate
を上書きしちゃえばいいかというとそれでは困る。競合するとどれかひとつしか呼ばれなくなってしまうので。そこで、update
はそのままで、@@update_proc
というArraryなクラス変数にProcオブジェクトを追加してもらうことにしてみた。例えば、きたさんのrecent_listを外部ファイルに出力したいなんて場合はこう書く:
@@update_proc << Proc::new do open( 'recent_list.html', 'w' ) do |f| f.write( recent_list ) end end
このサンプルのままだとHTML的に完結してないとか問題はあるけど、基本的にはこんな感じ。これを応用すると更新情報をrdfで出したり……なんて真似もできるはず。なお、update
は文字列を返しても意味ないので、空文字列を返すように実装されております。
あと、ツッコミがあった時にはupdate
は呼ばれない。ツッコミも引っかけたかったら、@mode
が'comment'
の場合にだけ動作するプラグインを書いて、@header
か@footer
に埋め込めばいいので。じゃあなんて更新時は同じやり方ができないんだ、というと、更新時には@header
や@footer
を使わないからなのであった(笑)。
でもなー。なんかスマートじゃないんだよ。もっといい方法が思いついたら、この実装はさくっとやめちゃうかも。
◆ きた [うひー. 完成度向上目指して頑張ります.]
2001-12-27(木) 10142歩 [長年日記]
■ 散財自慢
年末最後のバトルが繰り広げられている散財自慢だが、白状しなければならないことがある。このシステム、年を越せないのである。越せないわけじゃない(たぶん新年のデータはちゃんと入力できると思う)。前年以前のデータが見られないのである。だから、がんばって大晦日に散財しても、勝利に浸っていられるのはほんのわずかの間だけ。
それじゃぁあんまりだ、と思うので、年越し対応をしようと思っていたんだが、けっこう忙しいのとモチベーションがいまいち高まらないので(だって年間王者は某石油王の息子で決まりだしさ)、しばらくこのままで行っちゃうことにした。年が明けたら、新しい気持ちで散財に励んでください(笑)。
■ 続・tDiaryは重いか
重いったら重いよ。もぅ、1.3系ったら重くてしょうがないよ(←自分で作っておいて何を言うか)。
どれくらい重いか見てみようと思って、Ruby付属のプロファイラを使ってみた。最初は漠然と「I/Oがけっこう食ってるんじゃないのー」と思っていたのだが、ぜんぜん違った。通算50%近くの時間を食っていたのは、ERbCompiler#compile
だった。あぁ〜、そりゃそうだ〜。
なにせ、ページの外枠、日記本文、プラグイン適用と、都合3回もERbを通しているのだ。重くて当たり前である。こりゃなんとかせにゃあかんかなー、と思ったのだが、なかなかいい解決策は思いつかない。
一番いいのはキャッシュだろう。リンク元表示をプラグイン化してしまえば、前の二段階まではほとんど変化がないので、最新表示だけでもあらかじめrhtml化しておけば、最後のプラグイン適用だけで済む。キャッシュの更新は、本文の更新時かツッコミがあった時だけ。これはやる価値があるかも。
キャッシュの応用として、ERbのメソッド化機能を使う手もある。でもメソッド化したらどっかにとっておかなきゃいけないので、mod_rubyを前提にしたり、dRubyを動かしたりしないといけない。これはちょっと仰々しすぎるな。
それから、ERbをやめてerubyを使うという方法もある。もっとも、比べてみたことがないので、erubyの方がどれくらい速いのかはわからない。そもそもAPIが違うから、そんな簡単な問題ではない。
一番楽なのは、ムーアの法則様にお願いすることだな。これなら何もしなくてもいいんだけど。お願い、ムーア様。なんとかして。
2001-12-28(金) 9642歩 [長年日記]
■ 新サービス2題
QuickML。増井さんと高林さんが始めたメーリングリストサービス。存在しないアドレスを勝手に作ってメールを送ると、自動的にMLが生成される。メンバー登録はCcを利用。MLのシンプルさを追求するとこうなるのか!! これはちょっとすごいアイデアかも知れない。
ついでに言うと、iモードがのけものなのがさらに良い(笑) もちっとまともな端末作れや >DoCoMo
■ 関心空間。これはけっこう前からあるけど、最近けっこうユーザが増えてきた。関連してるWebサイトなんて、Googleで検索させればずるずるといくらでもつながってくれるけど、それぞれが一個のWebサイトだったりすると広大すぎてよくわからなくなる。関心空間は短いコメントしか付いてないので、リンクをたどる楽しみが浮き彫りになる。
というわけで自分のページも作ってみたんだけど、何を入れたらいいのか困ってしまった……うーむ。単なるWebサイト以上に自分の趣味が見えそうで怖いな、こりゃ。
#あ、吉井さんハッケソ(笑)。
■ あと、新サービスじゃないけど、SONYが@Niftyを買おうとしてるって? こっちは懸命にSONYの魔の手から逃げよう逃げようとしてるのに、なんで追ってくるんだよぅ(我が家のADSLは@Niftyなのだ)。
■ tDiary
他フォーマット対応、Todoにもあるように、予定には上げてあります。仕組みだけ提供するからあとは自分で書いてね、って感じになると思いますが。たぶん、Diaryクラスを継承してもらうとか、そんな感じ。この辺はまだほとんど考えてないけど。
しかし、昨日書いためちゃ重いのをなんとかしないと、複雑なパーサが加わってさらに重くなりそうな他フォーマット対応は難しいよなぁ。いろいろ考えることがあってへなへな。
■ RuBBS
squeeze.rbがバグっていて、コ板のインデックス更新が止まっていました。すみませーん(ぺこぺこ)。1.0.3をリリースしておきました。
しかしなんだ。けっこうみんな、気づかないもんだなー(笑)。でも、過去の実績からいって、最初に疑うべきはyamkさんじゃなくておれだと思うよ(えっへん)←えばるな。
■ kAsumi
「∀sumi」はイチオシだったのに、いまいち人気がなかったもよう。ひっくり返っちゃった感じがブラックでいいと思ったんだがなぁ(ブラック杉)。それはさておき、確保しておいた幻のISOイメージ3個。昨日、ヨドバシでCD-RWメディアを買ってきたので、かみさんのWindowsXPマシンで焼いてみることに。
そうそう、ヨドバシのレジで前に並んでいた女性が、すらりとしたなかなかの美人で、「おっ」と思ったんだけど、手に持っていたのが「Zガンダムタイピング」だったので引いてしまいました。別にいいんだけどね。ちょっと寂しかっただけ……。
閑話休題。それにしても、WinCDRでISOイメージを焼く方法がさっぱりわからん。マニュアルで索引から目的の所にたどり着けない。仕方がないのでGoogleで「WinCDR ISO 焼く」で検索したら、一発でわかった。「トラックイメージからCDの作成」を選んで、名前の付け方は「ISO9660Level1」。あとは.isoファイルをドラッグ&ドロップするだけ。……と書いておけば、この日記も検索されて後に続く人の参考になるであろう。つーか、参考にならないマニュアルが悪いのか、Netの威力がすごすぎるのか。
あと、なんでMaryで焼かないのかと言われるかも知れないので書いておくが、おれのマシン(3台)にはCD-ROMドライブしか憑いてないの。かみさんのマシンは2台ともCD-RWなんだけど。
25:30、3枚焼き上がり。続きはまた、気が向いたら……。
2001-12-29(土) 1989歩 [長年日記]
■ 宅配便
今日だけで5個くらい届いた。堺正章の別れた奥さんの気持ちが分かった(うそ)。最後のゴミ回収が行ってしまったあとでこんなに段ボールが出るなんて。
しかし、昨日注文したDVDが正味24時間後に届くなんて恐ろしい話だなぁ >amazon.co.jp よっぽどペリカン便にプレッシャーをかけているのだろう……などと無意味な想像をめぐらす。
■ きたさんの01cache。こんな名前なのは00defaultの次に読ませたいからだね(笑)。ツッコミにも書いたけど、キャッシュは本体の方でもまじめに導入を考えた方が良さそうなので、ちょっとやってみるつもり。で、キャッシュの保存場所は@data_path
の下にcacheというディレクトリを掘る。だから、プラグインでもそのディレクトリを使えるようにすべきかな。そのためにはまず、@data_path
をPluginに渡さないとな。
■ メーリングリスト西東
ruby-talkがSubjectから[ruby-talk:xxxxx]を削除。あっちの人は、なんでこれを嫌うんだろうな。ポイントしやすいからおれは好きなんだけど。でも、わりと日本ローカルだと聞いた記憶もある。
■ 大掃除
「水をつけてこするだけでびっくりするほど汚れが落ちる!!」と評判のスポンジを買ってきた。たしかに、よく落ちる。驚愕するほどではないけど。話を聞いていただけの時は「そんなに落ちたら洗剤メーカーは上がったりだろう」などと心配していたのだが、このスポンジ、耐久性がかなり低いことが判明。すぐにボロボロになる。これを日常的に使っていたら、洗剤より高くつくな。
世の中よくできているなぁ……と思った。
◆ Nana [http://www.af.wakwak.com/~haruka76/cgi-bin/kuso_nikki/inde..]
◆ Nana [よく見たらパールにしてあった。うーむ。]
◆ Nana [http://kadu.s2.xrea.com/diary/ もう捕獲墨だっけか?]
◆ haruka76 [あーあ、ついに捕獲されてしまった。 はじめまして、haruka76と申します。 Perlでtdiaryをパクった日記..]
◆ HMM [はじめまして。 早速ですが、ウチのアンテナ(http://ak.sakura.ne.jp/~hobbybox/ant..]
◆ どかにゃ [ツッコミ投稿 100件以上で投稿欄で見えなくなりました 参考 んがぁ日記 2002-1- 拡張をお願いします]
2001-12-30(日) 5889歩 [長年日記]
2001-12-31(月) 2308歩 [長年日記]
■ 今年最後のハンティング
kaduの作業日誌を捕獲しました(135)。今年のハンティングはこれで最後です。いやぁ、こんなに増えるとは思わなかったなぁ。びっくりだ。みなさん、来年もご愛用ください。その前に心配なのは、ちゃんと年を越えられるかどうかなんだけど(笑)。
クソ日記……わはは、クローンが出るまでになったか。挨拶とか気にしないで、どんどんやってください。いままでRubyコミュニティはPerlからもらってくるばっかりだったから、お返し(笑)。
それから、リンクの報告はいりませんので。そのための「本日のリンク元」ですから。
■ 今年を振り返る……
のは性に合ってないのだが、それは仕様です。
じゃなくて。まぁ、個人的にいちばん面白かったのは、やはりtDiary周辺だろうか。あくまで個人的に理想の日記システムを追い求めていただけなのに、公開したらあれよあれよと言う間にコミュニティが生まれてしまったという。フリーソフトウェアの醍醐味を久々に味わった。
しかし、だ。ユーザ数もまだまだ135。みんなメジャーになったと言ってくれるが、最低4桁はいかないとメジャーとは言わない(と思う)。いや、別にメジャーにならんでもいいのだが。外野がにぎやかになりすぎると、好きなことできなくなりそうだしさ(笑)。というわけで、これからも自分の信じる良い日記システムを目指します。ってことで。
■ ところで、加藤茶に「歯ぁみがけよー」って言われると、「もう寝なきゃ」と思うよね。
◆ NT ["500m" というのは泳いだ距離ですか ?]
◆ ただただし [そうです。週末は少なめな歩数だけど他にも運動してるんだぞ、というアピール(笑)]
◆ けんのぼやき [勝手なことばかり申し訳ありません〜(^^; tDiaryならば、定期的に更新できそうです(^^ 今後ともよろしくお願..]
◆ しんちゃん [</coce> うひひ(笑)]
◆ ただただし [え、何のこと? #なんちて]
◆ さかい [こんなのもあります > Linuxのboot処理 http://www.atnf.csiro.au/~rgooch/..]