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-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-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日記管理人です。捕獲してくださりありがとうございます。 きっと爆発しますよ。こ..]
◆ でんすけ [ぬぬ、たださんって横浜方面の方なのねん。]
◆ あぱれる [やっぱり勝負事は勝ってなんぼでしょう. それに"らしさ"なんて時代とともに変化するものを,押し付けるのもナンセンス杉..]
◆ なかだ [あれは見てて見事だと思いましたがねぇ>詫間 そもそも対戦なんだから駆け引きが重要なのは大前提。 ブロックするのがNG..]
◆ kjana [array.reverse.each を array.reverse_each と書こう, というのが話題にのぼった..]
◆ きた [実はcatch/throw使うの初めてです.うひひ. reverse_eachなんてものがあったんですね.知らなかっ..]