/ 最近 .rdf 追記 設定 本棚

脳log[2005-04]



2005年04月01日 (金)

[tDiary]プラグイン: footnote2.rb (一日表示でなく同一ページ内に飛ぶようにfootnote.rbを変更)

EUCで保存して misc/plugin/ へ放り込む。その後使用可能にするのを忘れない。

# footnote2.rb $Revision: 1.0 $ (footnote.rb $Revision: 1.8 $ を改変)
#
# 日別表示に飛ばずに同一ページ内のアンカーに飛ぶように変更
#

# footnote.rb $Revision: 1.8 $
#
# fn: 脚注plugin
#   パラメタ:
#     text: 脚注本文
#     mark: 脚注マーク('*')
#
# Copyright (c) 2001,2002 Junichiro KITA  kita@kitaj.no-ip.com>
# Distributed under the GPL
#
=begin ChangeLog
2002-05-06 MUTOH Masao <mutoh@highway.ne.jp>
* change file encoding from ISO-2022-JP to EUC-JP.

2002-03-12 TADA Tadashi <sho@spc.gr.jp>
	* runable in secure mode.
=end

# initialize instance variable as taint
@footnote_name = ""
@footnote_name.taint
@footnote_url = ""
@footnote_url.taint
@footnote_mark_name = ""
@footnote_mark_name.taint
@footnote_mark_url = ""
@footnote_mark_url.taint
@footnotes = []
@footnotes.taint
@footnote_index = [0]
@footnote_index.taint

def fn(text, mark = '*')
# if @footnote_name and /^append|replace$/ !~ @mode then
  if @footnote_name
    @footnote_index[0] += 1
    @footnotes << [@footnote_index[0], text, mark]
    r = %Q|<span class="footnote"><a |
#   r << %Q|name="#{@footnote_mark_name % @footnote_index[0]}" | if @mode == 'day'
    r << %Q|name="#{@footnote_mark_name % @footnote_index[0]}" |
    r << %Q|href="#{@footnote_url % @footnote_index[0]}" title="#{CGI::escapeHTML text}">#{mark}#{@footnote_index[0]}</a></span>|
  else
    ""
  end
end

add_body_enter_proc(Proc.new do |date|
  date = date.strftime("%Y%m%d")
# @footnote_name.replace "f%02d"
  @footnote_name.replace "f#{date}-%02d"
# @footnote_url.replace "#{@index}#{anchor date}##{@footnote_name}"
  @footnote_url.replace "##{@footnote_name}"
# @footnote_mark_name.replace "fm%02d"
  @footnote_mark_name.replace "fm#{date}-%02d"
# @footnote_mark_url.replace "#{@index}#{anchor date}##{@footnote_mark_name}"
  @footnote_mark_url.replace "##{@footnote_mark_name}"
  @footnotes.clear
  @footnote_index[0] = 0
  ""
end)

add_body_leave_proc(Proc.new do |date|
  if @footnote_name and @footnotes.size > 0
    %Q|<div class="footnote">\n| +
    @footnotes.collect do |fn|
      r = %Q|  <p class="footnote"><a |
      r << %Q|name="#{@footnote_name % fn[0]}" |
      r << %Q|href="#{@footnote_mark_url % fn[0]}">#{fn[2]}#{fn[0]}</a>&nbsp;#{fn[1]}</p>|
    end.join("\n") +
    %Q|\n</div>\n|
  else
    ""
  end
end)

[本日の購入][]今野 緒雪 『マリア様がみてる 妹オーディション』

今巻では確定しなかったけど祐巳と由乃の妹がほぼ決定。

[本日の購入][マンガ]ひぐちアサ 『おおきく振りかぶって』 3

作者は元々野球が好きだったらしいけど、それ以上に高校生、球児、キャラクターへの愛があふれてるから読んでて気持ちいいし、野球に関してもキャラに関してもキッチリ描かれてる。

前代未聞のうじうじしたピッチャーは見もの。

[本日の購入][マンガ]影崎 夕那 『かりん』 5

[本日の購入][マンガ]CLAMP 『ツバサ—RESERVoir CHRoNiCLE』 9

[本日の購入][マンガ]山本 賢治 『直撃スパイS』

[本日の購入][マンガ]山本 賢治 『寝ても覚めても』


2005年04月04日 (月)

Ajax(エイジャックス) = DHTML + HTTP (?)

Ajaxって言葉は初めて聞いたけどその中身は何か懐かしい。WSHを思い出す。

どんなのかっていうと、これまでサーバーに情報を送るにはフォームを作ってSUBMITするかURLの最後にパラメータをくっつけて送る必要があってそれには必ずページ移動が伴ってたんだけど、XMLHTTPオブジェクトを使えばGETやPOSTがスクリプトだけで実行できてページの移動も発生しない。ということだろうか。

嬉しいのはIEの独自拡張ではないということ。FirefoxやSafariでも使えるらしい。

  • XMLHTTPオブジェクトはリクエスト毎に作成する必要がある?
  • 落とせるファイルは同一ドメインに限る。(特にFirefoxでは相対URLしかopenできないらしい)

2005年04月05日 (火)

早速 XMLHTTP を使ってみた。

ログViewer。本当に"使ってみた"だけで、活用例ではないな。

 久しぶりにJavascriptをさわって思うこと。

サービス精神が足りない(メソッドが少ないとか、"文字列"への変数埋め込みができないとか)。イテレータがない。そのせいでどうしても冗長になりがち。

[本日の購入][マンガ]PEACH-PIT 『ローゼンメイデン』 1

[本日の購入][マンガ]さんりようこ 『B型H系』 1


2005年04月07日 (木)

[本日の購入][]渡辺 達生 『pink—石田未来写真集』

[本日の購入][]『憂ちゃんの新妻だいありー』

[本日の購入][]『友達以上恋人未満』

[本日の購入][]本田 透と恐るべきお兄ちゃん軍団 『妹☆コレクション』

本田 透。電波男の中の人ですね。

 [2005-04-15]

韓国ドラマは妹萌えの楽園だそうで。やっぱりそうだったのですね。母親が天国の階段を毎週見てるんだけど、「お兄ちゃんっ」という田中美里の声に呼ばれてテレビを見ること度々。もしやと思ってましたが、やはり。

[本日の購入][]吉村 達也 『たった3カ月でTOEICテスト905点とった』

"使える"本ではないだろうけど、"読める"本ではあると思う。

ブックオフで買おうか買うまいか決めかねてぱらぱらめくってたら一つの名前が目に留まる。太田克史。あんたこんなとこで何やってんだー(仕事だよ)ってことで購入決定。(何かを期待したわけじゃなくて単なるキッカケ)

 [2005-04-13]

著者があまりに自信満々に語るもんだから話半分に聞いてるつもりだけど(二章の途中まで読んだ現在までにも)いくつかうなずかされるところがある。

  1. 日本人は喋る時極力口を動かさないように怠ける癖がある (外国語を話す時には意識して口を動かす)
  2. (7つのポイントの1つとして)英文を一時的に記憶する能力
  3. 新聞では「メイン」を「メーン」に直される

1.に関して自分は日本語を話すときでさえ言葉によっては口がついて来ないように感じるので表情筋が相当なまってるのだろう。

2.は確かに必要。頭の中にぼんやり文の全体像をためておき、ある程度量がまとまってきたら前後の関係などから 曖昧にしかわからなかった語をはっきりさせて、意味のある文を一つ作る。というようなことができればいいなと思ってる。語→文→パラグラフと脳で扱う単位を徐々に大きくしていけば処理速度が上がってリスニングが楽になる気がする。

3.新聞を読んでいて「メーン」という語に初めて出会ったとき思考が2秒ほど停止した記憶がある。本気で理解できなかった。読売新聞が機械的に[エイ]を[ー]にしてるようなのは前々から気付いてたので逆変換してみて初めて意味を理解できた。いやホントに。
他にもレーバーデーなんてのを見たこともある。意味不明でしょ。レイバーデイって変換して初めて Labor Dayかなって想像できる。
この問題の難しいところは、MAINはメインだけどGAMEはゲーム、NAMEもネームだってこと。個人の文章なら使い分けもありだけど新聞なんかは統一しなあかんにゃろね。

[本日の購入][]『初めて受験するTOEICテスト入門講座』

 [2005-04-15]

(この本の)リーディングは何とかなりそう。CD付きなのでリスニングもできるんだけどこちらは難しい。初めて聞く文は全体に霞がかかったように全く意味不明。でも、例えば疑問文だから文頭の疑問詞を聞き逃さない、とか決めて聞くと一気に霧が晴れて文全体が聞き取れるようになる。

時々日本語が、外国語の様に意識の表層を単なる音として通り抜けてしまって、聞き取れないし意味もわからないなんてことがあるけど、今のところ紙一重(と思いたい)で英語は外国語側にいるようだ。


2005年04月08日 (金)

[本日の購入][マンガ]都筑せつり 『きみにしか聞こえない』

原作の(角川スニーカー文庫の) 乙一の切なくも心温まるストーリーが好き。コミックの方も表紙の女の子と目があったら思わずお持ち帰りしたくなるような素晴らしさ。

[本日の購入][マンガ]凛野 ミキ 『冥界落語』 2

こちらよりクラブクライムの方がおすすめ。冥界落語には突き抜けたブラックさも笑えるギャグも少ない。変人は多いけど核になるキャラがいない。主役の閻魔王はバラバラな変人たちを巻き込むべく奮闘するもののいまいちピリッとしない。

[本日の購入][マンガ]斉藤 岬 『死神探偵と憂鬱温泉』

この人の絵が好きなのです。退魔針と違って長編でなくモンスターも出ないので読みやすいかと。

[本日の購入][マンガ]水島 空彦 『ワイルドストロベリー』

絵柄でいうとコレより後に出版された さくらんぼぱんつ の、さくらっぽいサッカー少女が一番好き。

[本日の購入][マンガ]玉置 勉強 『恋人プレイ』 1

[本日の購入][マンガ]玉置 勉強 『恋人プレイ』 2

玉置 勉強。本田透と恐るべきお兄ちゃん軍団が一人。

[本日の購入][]ウィトゲンシュタイン 『論理哲学論考』

解説本を読むべきでした。この本にはエッセンスしかない。薄い本なのにそのうちの半分くらいだけがウィトゲンシュタインの著で、残り半分は解説や注。


2005年04月09日 (土)

[本日の購入][DR250R]クラッチレバーアッシ (57500-13EA0)

クラッチレバー、クラッチレバーホルダ、ホルダブラケット、クラッチスイッチ、ネジ類のセットでした。クラッチレバーホルダ単品で売ってないのはクラッチスイッチを分けたくないからなのかも。

[本日の購入][DR250R]GOLDWIN ロードメッシュフィットグローブ (GSM6507)

 現在のグローブの不満

去年、春夏秋用に買ったグローブはイマイチだった。

  1. 親指と人差し指の間の角度がV型だったためにブレーキ/クラッチレバーに人差し指を伸ばすと指の叉がつっぱって操作が不便。
  2. 防水性を謳っていたため構造がアウター、防水シート、インナーの三層になっていたが、早々に防水シートの指先が内部で裏返ってしまい指が入れにくくなった。インナーを切り取って中を見てみたら、指先が抜けないように両面テープで留めてあったものが外れていた。えらくチープなつくり(縫って穴を開けるわけにもいかないんだろうが……)に驚いた。5000円あったらスノボ用のグローブで十分使えるものが買えるというのに。(←これを冬用とスキー用として使用中)

この二点を踏まえ

  1. 親指と人差し指が十分に開く
  2. シンプル&単層でフィット性に優れたもの

をポイントに選ぶことに。

 素材編:レザー or メッシュ

今回のポイントとは関係ないが選択肢を絞るために。

レザーにはやはり憧れる。使うほどに馴染んでくるというし、フィット感も優れているらしい。しかしシンプルなものは、のっぺらぼうで全く飾り気がなかったり、通気性のために甲側全面に穴が開いていたりで見た目が好きになれない。レザージャケットを着たアメリカン乗りなら似合うのかもしれないが。そして値段も7000円〜10000円と高め。

結論:街乗り100%のなんちゃってオフ車乗りにはメッシュが合う。

 かたち編:GOLDWIN

指を失いたくないのでハーフフィンガーは却下。フィット感が大事なので指が太いものも却下。フィット最優先なのでプロテクション性を謳ったゴツイものも却下。

判断が難しくて一番大事なのが親指と人差し指の開き具合。通販なのではめてみることができない。それでも、手のひらの真ん中に近い位置からにょっきり太い親指が生えてるものが条件を満たさないのは判る。画像で確認できた中で期待できそうだと思ったのが GOLDWIN。親指が細く、開いてるものが多く確認できる

 決定:ロードメッシュフィットグローブ

GOLDWINに決めてからも選択肢が多くて悩む。決め手は商品名を含めて7つもの「フィット」が登場する商品説明。これがフィットしなかったらどれを選んでもダメだろう、と。

結果は大正解。

  • 親指と人差し指が90度の状態で型がつくられてるから指の間がつっぱらない。
  • 手首側にキュッと引っ張ると指の叉から指先までぴったりフィットする。(中指の長さが80-85mmでLサイズをはめた自分の場合)
  • [おまけ]指を若干曲げた状態(力を抜いたときの手の形) が基本形なので拳を握ると甲側のストレッチ素材が引っ張られて締め付けるのでフィット感110%。

敢えて難点を挙げると、想像以上にペラかったこと。プロテクションに関してはフィットのために切った部分ではあるし、それでも素手よりマシなので構わないが、耐磨耗性に不安が出てきた。

  • クラッチを中指一本で操作する関係から左手中指の第一関節部分が破れそう。
  • 左手でグリップを握らずにグリップの末端に蓋をするように乗せる癖があるので左手のひらが破れそう。

気に入ったグローブなので一、二年で破れるのなら今のうちに買っておきたい。

[本日の購入][マンガ]安藤 慈朗 『しおんの王』 1

作画:あるまじろう。本屋でやたら表紙が目に付いた本。もうエロは描かないのですか?今の絵でエロを描いてもらったら破壊力抜群なのですが。

[本日の購入][]雑賀 匡 『D.C.〜ダ・カーポ〜 白河ことり編』

[本日の購入][]舞城 王太郎 『阿修羅ガール』

[本日の購入][]大塚 英志 『「おたく」の精神史 一九八0年代論』


2005年04月11日 (月)

[本日の購入][]日日日 『ちーちゃんは悠久の向こう』

日日日。結局何冠なのか知らないがとにかくいっぱい賞をとったスーパー高校生。これはホラーらしい。『私の優しくない先輩』は純愛らしく、そっちのが興味あるが単行本なのでいかんせん価格が高い。

 [2005-04-16]

ホラーじゃないよね。怖くない。ちーちゃんは怪談好きだけどホラーって言えるのはそこだけ。日常の崩壊ったって主人公は最初から非日常の中で生活してるし。「ジュブナイルホラー」って書かれてたのからホラーだけを抜き出したのは間違いだった。

唐突に感想。

巧い。文体からは若さを感じない。言葉遊びや誤字・誤用、クセのある言い回しもら抜き言葉も読み飛ばしたくなるようなタルい文章もない。

話。語り部である主人公(高校生)は自分の悲惨な境遇に抵抗するでもなく幼なじみのちーちゃんと努めて普通の学校生活を送っている。でもそれは薄氷の上に成り立つ危うい日常に過ぎなくて、ちーちゃんに起こったあることがきっかけでたやすく崩壊してしまう。

もどかしい。現実から乖離していくちーちゃん、(世間から見て)壊れていくちーちゃんを主人公はどうして強くつなぎ止められないのか。抱きしめて安心させてあげられないのか。

破滅に向かって突き進んでいっておきながら、その先にあるラストには拍子抜け。どうせなら徹底的に全部ぶち壊して欲しかった。

[本日の購入][]谷川 流 『閉じられた世界—絶望系』

[本日の購入][]木村 航 『ぴよぴよキングダム』

[本日の購入][]東野 圭吾 『変身』

この人の本は映画化もされた 秘密 しか読んでない。あらすじによると脳移植を受けた青年が徐々に自分を失っていくという。この辺りに、娘の体に母親の意識が宿る『秘密』に似た匂いを感じたので買ってみた。タイトルも漢字二字で似てるでしょ。

『秘密』では、娘の体を手に入れた妻が徐々に自分の手を離れて新しい人生を歩んでいくことへの夫の葛藤が描かれていて、ラストに至っては完全に夫に感情移入して一緒に喪失感を味わい読後の余韻に浸ったものです。

大学入ってすぐの健康診断で近くになった人にお勧めの本を聞かれたときに『秘密』と答えて変な顔されたのは、今思うと「秘密(教えられない)」と誤解されたのだろう。困ったタイトルだ。

[本日の購入][]東野 圭吾 『名探偵の掟』

「本格推理の様々な"お約束"を破った、業界騒然・話題満載の痛快傑作ミステリ」。'97年版『このミステリーがすごい!』第3位。

[本日の購入][マンガ]真船 一雄 『K2』 01

小学生の頃から スーパードクターK の愛読者でしたから。ブラックジャックよりも先ですから。医学マンガといえばK。

[本日の購入][マンガ]林家 志弦 『ひまわり地獄』

ゲーム批評 連載の4コマ。

[本日の購入][]『とことんやるバイクメンテナンス』

[本日の購入][CD]浜崎あゆみ 『A BEST』

初、浜崎あゆみ。TVを見る人なら誰もが一曲は聞いたことがあるだろう人。流行り物への反発から敢えて興味のないふりをしていた自分もTVから聞こえる歌を耳にするうち「SEASONS」「evolution」「初期の白っぽいの」なんかが好きだなと思うに至った。

フィルターを外して素直に聞けば聞ける歌だよ。邦楽なんか眼中にないって人以外には。売れるからには商品そのものにも相応の価値があると考えてもいいだろう。


2005年04月13日 (水)

[本日の購入][DR250R] カワサキ フォークオイル G5 (1L) ×2

30000キロ走って初めて交換。遅すぎ。

コンクリートブロックにフレームを乗っけて前タイヤを外してブレーキを外してフォークを抜く。フォークを開けると黒くてサラサラした古いオイルが出てくる。

片方538mlっていうから2本買ったけど両方でちょうど1Lやった。古いのが完全に抜けてないんだろうね。

スプリングの自由長は使用限度の464.2mmちょうど。新しいのを買うなら左右あわせて5000円ほど。


2005年04月14日 (木)

[本日の購入][DR250R] ホンダ ウルトラブレーキフルード DOT4 (500mL)

一番安かった。良し悪しの判断がつかないのに高いのを選ぶこともなかろうと。

[本日の購入][マンガ]空知 英明 『銀魂』 5

糖尿病。

[本日の購入][マンガ]森永みるく 『ミルクシェル』

森永みるく。

[本日の購入][マンガ]『サルまん』 新装版 下


2005年04月16日 (土)

[本日の購入][] 神尾 丈治 『Like Life 4 オムニバス(2)』

オムニバスはエロいのですよ。一本一本の短い話の中にお約束としてエロを配する必要があるから自然、Hシーンの密度が上がるわけ。オムニバスだからマンネリもなし。

イラストもすごい。的良みらん, あらいぐま, あかざわRED, 依澄れい, あずまゆき, 瑞井鹿央。聞いたことあるような名前ばかり。

[本日の購入][雑誌] コミックRIN 5月号

ベンジャミン。巻田 佳春。(みずきえいむ)。


2005年04月17日 (日)

[tDiary] キャッシュ(cache/200503.parser)を消したら3月分の日記が消えた。

どういうわけだか 2005/200503.td2ファイルは存在してない。悲しい。

 [2005-04-20]

categoryキャッシュとamazonキャッシュから購入履歴だけは復元(できたと思う)。

[tDiary]更新日ベースのrecent

要望リストから発見。自分も欲しい。古い日記もちょこちょこ修正するから。

appendとreplaceを捉まえて日付をファイルに記録していく方式になるだろうね。

[tDiary]プラグイン: next_diaries.rb (「最新」表示に「次の○日分」リンクを表示)

  • tdiary-2.1.1からは標準機能なので、これはもはや用済み
  • プラグインは href="index.rb?from=yyyymmdd" なリンクを作る
  • それに対応できるように tdiary.rbの TDiaryLatestに細工する。
  • 「前の○日分」は無し。
  • 以前の日記を表示するのに「次の〜」とはコレ如何に。

↓tdiary.rb (Revision: 1.195.2.2。TDiaryLatestクラスだけ抜粋。変更点はそこだけ)

	#
	# class TDiaryLatest
	#  show latest mode view
	#
	class TDiaryLatest < TDiaryView
		def initialize( cgi, rhtml, conf )
			super
			ym = latest_month
#↓追加
			if(@cgi.valid?('from') && @cgi.params['from'][0] =~ /(\d\d\d\d)(\d\d)(\d\d)/)
				date_from = Time::local($1.to_i, $2.to_i, $3.to_i)
				ym = [date_from.year, date_from.month]
				@date = nil
			else
				date_from = nil
			end
#↑
			unless @date then
				@date = ym ? Time::local( ym[0], ym[1] ) : Time::now
				@io.transaction( @date ) do |diaries|
					@diaries = diaries
#↓追加
					if(date_from)
						(date_from.day+1..31).each{|day| self.delete(Time::local(date_from.year, date_from.month, day)) }
					end
#↑
					@diary = @diaries[@diaries.keys.sort.reverse[0]]
					DIRTY_NONE
				end
			end

			if ym then
				y = ym[0].to_i
				m = ym[1].to_i
				oldest = oldest_month
				calc_diaries_size
				while ( oldest and @diaries_size < @conf.latest_limit )
					date = if m == 1 then
						Time::local( y -= 1, m = 12 )
					else
						Time::local( y, m -= 1 )
					end
					break if date < Time::local( *oldest )
					@io.transaction( date ) do |diaries|
						@diaries.update( diaries )
						calc_diaries_size
						DIRTY_NONE
					end
				end
#↓追加
				date_to = date_from;
				latest(@conf.latest_limit) {|diary|
					date_to = diary.date;
				}
				if(date_to && date_from != date_to)
					if(date_to.day == 1)
						if(date_to.month == 1)
							date_to = Time::local(date_to.year-1, 12, 31);
						else
							date_to = Time::local(date_to.year, date_to.month-1, 31);
						end
					else
						date_to = Time::local(date_to.year, date_to.month, date_to.day-1);
					end
					@conf['date_to'] = date_to;
				end
#↑
			end
		end

	protected
		def calc_diaries_size
			@diaries_size = 0
			@diaries.each_value do |diary|
				@diaries_size += 1 if diary.visible?
			end
		end

		def latest( limit = 5 )
			idx = 0
			@diaries.keys.sort.reverse_each do |date|
				break if idx >= limit
				diary = @diaries[date]
				next unless diary.visible?
				yield diary
				idx += 1
			end
		end

		def cache_file( prefix )
#↓条件文追加
			if(@cgi.valid?('from'))
				nil
			else
				"#{prefix}#{@rhtml.sub( /\.rhtml$/, '.rb' )}"
			end
#↑
		end
	end

↓misc/plugin/next_diaries.rb (EUCで保存後、選択して使用可能にする)

# next_diaries.rb
#
#  <概要> 「最新」表示の時に「次の○日分」へのリンクを表示する。
#  <条件> tdiary.rbのTDiaryLatestクラスに細工してあることが前提。

def next_diaries(label=nil)
	if(@mode == 'latest' && @conf['date_to'])
		%Q[<a href="#{@conf.index}?from=#{@conf['date_to'].strftime('%Y%m%d')}">#{(label || next_diaries_label)}</a>]
	else
		''
	end
end

def next_diaries_label()
	"次の#{@conf.latest_limit}日分"
end

 [2005-04-20] tdiary-develで既にパッチが...orz

MLを読んでたわけではないのにこのカブりよう。

[本日の購入][] 東野 圭吾 『毒笑小説』

巻末の京極夏彦との対談から二人の笑いに対する姿勢がわかる。それで、ミステリじゃないけど読んでみようか、って気になった。


2005年04月18日 (月)

[tDiary]プラグイン: index_list.rb (「最新」「月別」表示に目次を付ける)

  • プラグインの出力する日付のリンクは日別表示でなくページ内に飛ぶ。
  • rhtmlファイルをいじってアンカー(<a name="〜">)を埋め込む必要がある。 (追記:2005-09-25) tDiary-2.1.3から導入される title_procを使えば rhtmlをいじる必要はない。→index_list.rb

↓skel/diary.rhtml ($Revision: 1.21 $ / 3行目)

<h2><span class="date"><a name="<%=date.strftime("%Y%m%d")%>" href="<%= opt['index'] %><%%=anchor "<%= @date.strftime( '%Y%m%d' ) %>" %>"><%= @date.strftime( opt['date_format'] ) %></a></span> <span class="title"><%= title %></span><%

↓misc/plugin/index_list.rb →tDiary-2.1.1(N日表示)対応版

# index_list.rb
#
# 「最新」「月」表示に対応した目次を表示。
# recent_listやtitle_listと違い日付のリンク先は日別表示でなくページ内。
# その為に、diary.rhtmlをいじって日付にアンカーを付ける必要がある。
# 骨格にrecent_list.rbを使用。
# [2005-04-20] 月表示では昇順に。

def index_list(date_format = nil, show_title = true)
	date_format ||= @date_format;
	if(@mode == 'latest')
		limit = @conf.latest_limit;
	elsif(@mode == 'month')
		limit = 31;
	else
		return '';
	end

	result = '';
	@diaries.keys.sort.send(@mode == 'latest' ? :reverse_each : :each) {|date|
		break if(limit <= 0);
		diary = @diaries[date];
		next unless(diary.visible?);

		result << %Q[<p class="recentitem"><a href="##{date}">#{diary.date.strftime(date_format)}</a>\n];
		if(show_title && diary.title)
			result << %Q[ #{diary.title}];
		end
		result << %Q[</p>\n<div class="recentsubtitles">\n];
		i = 1;
		if(!@plugin_files.grep(/\/category.rb$/).empty? && diary.categorizable?)
			diary.each_section{|section|
				result << section.categories.collect{|c| category_anchor("#{c}")}.join;
				result << ' '+section.stripped_subtitle_to_html if(section.stripped_subtitle);
				result << "<br>\n";
				i += 1;
			}
		else
			diary.each_section{|section|
				if(section.subtitle)
					result << %Q[#{section.subtitle_to_html}<br>\n];
				end
				i += 1;
			}
		end
		result << "</div>\n";
		limit -= 1;
	}
	return apply_plugin(result);
end

[tDiary] プラグイン: recent_update.rb (最近の「追記」「編集」記録を表示する)

  • キャッシュファイルを作るので@secure = trueでは動かない。
  • 追記なら追加されたセクションのサブタイトルを記録したいところだが無理。
  • 記録された日付から日記のタイトルとかサブタイトルリストとかを取得して表示するのは大層なのでプラグインの出力内容はミニマム(日付のみ)。
  • デフォルトの最大記録件数は30回分。
  • プラグインの出力件数のデフォルトは5件。

↓recent_update.rb

# recent_update.rb
#
# 「追記」「編集」時に、日記の日付と実際の時刻を記録。
# プラグインで最近更新された日記を表示。
# [2005-04-20] 表示数の制限がきいてなかったのを修正。

def recent_update(limit=5)
	result = '';
	uplist = RecentUpdateCache.new(@cache_path);
	uplist.each{|d, up, ar|
		break if(limit == 0);
		date = d.strftime('%Y%m%d');
		result << %Q[<p class="recentitem"><a href="#{@index}#{anchor date}">#{d.strftime('%Y-%m-%d')}</a> <span class="recentupdate_lm">(更新日:#{up.strftime('%Y-%m-%d %H:%M:%S')} /#{ar})</span></p>\n];
		limit -= 1;
	}
	result;
end

add_update_proc(){
	uplist = RecentUpdateCache.new(@cache_path);
	d = @date;
	up = Time.now();
	ar = @mode;
	uplist.append(d, up, ar);
	uplist.save(30);
}

class RecentUpdateCache
	def initialize(cache_path)
		@path = File.join(cache_path, 'recent_update');
		@update_list = [];
		begin
			File.open(@path, 'r') {|f|
				f.each_line{|line| line.chomp!;
					date, up_date, ar = line.split(/\s*,\s*/);
					date = Time.local($1, $2, $3) if(date =~ /(\d{4})-(\d{2})-(\d{2})/);
					up_date = Time.local($1, $2, $3, $4, $5, $6) if(up_date =~ /(\d{4})-(\d{2})-(\d{2}) (\d{2}):(\d{2}):(\d{2})/);
					@update_list.push([date, up_date, ar]);
				}
			}
		rescue
		end
	end

	def append(d, up, ar)
		@update_list.unshift([d, up,ar]);
	end

	def save(limit=-1)
		begin
			File.open(@path, 'w'){|f|
				@update_list.each(){|d, up, ar|
					break if(0 == limit);
					d = d.strftime('%Y-%m-%d') if(d.kind_of?(Time));
					up = up.strftime('%Y-%m-%d %H:%M:%S') if(up.kind_of?(Time));
					f.puts([d,up,ar].join(','));
					limit -= 1;
				}
			}
		rescue
		end
	end

	def each(&block)
		@update_list.each{|d, up, ar| yield(d, up, ar) }
	end
end
本日のツッコミ(全1件) ツッコミを入れる

セルフツッコミ昇順降順を考慮するように(index_list.rb)。表示数の制限が効いてない(recent_update.rb)..


2005年04月19日 (火)

免許がない。

一昨日から無くて、家にあると思ってたけどどうも外で落としたみたい。バイクに乗る人は胸ポケットに入れておくと落ちますので。注意。

警察署と免許センターに行って即日交付。3200円[+600円(証明写真)]もかかったせいで財布の中は400円。(不覚にもチェック漏れしてた) ●REC 3巻を本屋で発見したというのに買うにはチョット足りない。


2005年04月20日 (水)

免許が二枚。

出てきましたよ。出てきましたともさ。

今日になって山科署からハガキが。曰く「遺失物発見通知書」「あなたのものと思われるカードケースが……」

昨日散々家の中引っかき回した後、諦めて再交付を決めたときに「こういうのは探すのをやめてから、新しいのを手に入れた時に出てくるもんだ」と言ってたのが現実のものとなったわけです。嗚呼、3800円。

消印が H17.4.18 8-12 だから翌日配達してくれてたら間に合ったのに。隣の県なのに〜。

[tDiary]プラグイン: カテゴリ表示でリストされるサブタイトルにカテゴリを残す。(category.rb)

つまり現状

2005/04/01#p01 サブタイトル

と表示されるのを

2005/04/01#p01 [カテゴリ] サブタイトル

と表示するようにする。

但し、カテゴリA をリスト表示してるときに、[カテゴリA] なんて表示しても無意味だし、やらない。2つ以上のカテゴリに属す場合に [カテゴリB] というのを表示する。

↓misc/plugin/category.rb ($Revision: 1.21 $) の変更点

#				categorized[c][ymd] << [idx, s.stripped_subtitle_to_html, shorten]
				nonstripped_subtitle = s.categories.collect{|c2| (c2 != c) ? %Q[<%=category_anchor("#{c2}")%>] : '' };
				nonstripped_subtitle.push(' ', s.stripped_subtitle_to_html);
				nonstripped_subtitle = nonstripped_subtitle.join('');
				categorized[c][ymd] << [idx, nonstripped_subtitle, shorten]

コメントアウトされた1行目がオリジナルで、2-5行目が追加部分。


2005年04月23日 (土)

Mozilla Firefox 1.0.3 を使ってみた。

タブブラウズだとか(標準の)IEにできないことができることよりも、IEでできることが(気付いた限りでは)全てできるということを評価したい。

以前 Mozillaを使ってみたものの乗り換えなかったのは些細な事、

  • 起動が遅い
  • ブックマークのドラッグによる並べ替えができない
  • Googleツールバー(上に移動、検索語ハイライト、検索語ボタン)がない

といったこと。Sleipnirの様なIEコンポーネントを使ったカスタムブラウザではなくMSIEを使ってるような人間には何ができるかより何ができなくなるかの方がより重要だったりする。

FirefoxはIEと同じく単なるWebブラウザだからシンプルだし軽快に動作する。UIも異質なものでなくJAVAアプリよりよっぽどWindowsしてる(ツールバーを好きに移動できないのだけが違う)。ブックマークもフォルダのドラッグはできないもののそれ以外は直接ドラッグして並べ替えられる。ブックマークをサイドバーに読み込むオプションがあるおかげでIEのように特別なことをしなくても「Bookまーく」をサイドバー内に常に開いておくこともできる。Googleツールバーに相当するFirefoxの拡張機能も第三者の手で公開されてる。

大して重要ではないもののDOMインスペクタとJavaScriptコンソールはあって困るものではないし、EUC-JPが読めないメモ帳でHTMLソースを開かれて困ることもない。

IE7がどうなるか気になるものの、IE6.0対Firefoxでは IE6.0+αであるFirefoxの勝ち。

 追記

古い日記を見てみたら驚くほど今と同じことが書かれてた(^_^A


2005年04月24日 (日)

[tDiary] squeeze.rb の Internal Server Error

squeeze.rb を index.rbと同じフォルダにコピーした後、CGIとしてsqueeze.rbを実行すると Internal Server Errorになる。

原因は tdiary.confを一行ずつ読み込んで @option のある行だけを eval() してることにある。

tdiary.conf.sample には

@options['bot'] = [

	'^(Naverbot|Cowbot)-',
	'^BlogLines/',
'^blogmap',
'^FAST-WebCrawler/',
'^Hatena Antenna/',
'MI[CK]AN/',
'^msnbot/',
'^NG/',
'^Openbot/',
'^samidare',
'^TAMATEBAKO/',
'^TomSoftAntenna'

]

ってのがあって、一行目だけではRubyスクリプトとしては不完全なので eval()したときに Syntax Errorがでる。そしてエラーはキャッチされずにそのまま Internal Server Error へとつながる。

普通に使ってるだけでエラーが出るようになってるってわけだ。どうして TDiary::Configを使わないのだろう。


2005年04月25日 (月)

[本日の購入][]高殿 円 【銃姫】 3 〜Two and is One〜

 [2005-04-26]

三巻の内容を端的に伝える言葉を抜き出すとコレ↓

自分を洗ってくれた女の子の顔面に ぶっかけ

(一部意図的に省略)

純情少年セドリック(十四歳・童貞)があわあわしてるうちに脱がされて風呂に入れられて双子の姉妹(十五歳)にいいように弄ばれるお話です。(本当)

[本日の購入][]桑島 由一 【神様家族】 6 鉄棒工場

[本日の購入][マンガ]花見沢Q太郎 【●REC】 volume.3

相変わらずのラブラブっぷり。本の中には二人のしあわせ空間がコレデモカって詰まっとるとですよ。おかげでマンガ読んでニヤけてるヘンな人にならないように、勝手に緩んでくる頬を引き締めるのが大変。

[本日の購入][マンガ]きづき あきら 【針とオレンジ】

[本日の購入][マンガ]巻田 佳春 【RADICAL☆てんぷてーしょん】

 [2005-04-26]

ほんわか鬼畜。ろり中出し。中出し万歳。

[tDiary]wiki_parser.rb: 引用文の行頭の空白を勝手に消さないように変更。

引用ってのは改行も空白も含めてそのまま写したいから、全てのテーマに

blockquote {
  white-space: pre;
}

を適用した上で、wiki_parser.rbの

			when /^""\s*(.*)/ # block quote

			when /^""(.*)/ # block quote

に変更。IE6.0の互換モードでは white-space:preが効かないらしいが tDiaryは HTML4.01Strictな HTMLを吐くので互換モードにはならず問題なし。

 [2005-06-23]

結局は改行を挿入する方法が欲しかったわけだけど、今日、やっと、その方法がわかった。Wikiスタイルの書き方の、

」(2つの二重引用符)で始まる行は、引用(<blockquote>扱い)となる。文中の改行は、通常段落の行頭に「」を付けたものとして扱う。

と書いてある意味が今になってわかりました。行頭の「""」を取り除いた部分を通常の段落と同じように扱うという意味なのね。

""段落1:単一の改行は無
""視されます。
""
""段落2:空改行は段落の区切りになります。

段落1:単一の改行は無 視されます。

段落2:空改行は段落の区切りになります。


2005年04月27日 (水)

[tDiary]プラグイン: amazon5.rb (amazon.rbのAmazonWebService利用版。)

Amazon Webサービスを使ってキャッシュをXMLで保存する以外は amazon.rbと大体*一緒。ひとつだけ新しいメソッド追加。

5に意味は無くて、2とか3は既にありそうだな〜ってことで。

 [2005-04-28]

キャッシュが効いてなかったり、nilに対して存在しない呼び出しをしてたり、AssociateIDを一か所埋め込んでなかったり、widthとheightを間違えてたり、amazon.rbのisbn()を呼び出してたりしたのを修正。多分 amazon.rbなしでも動くんじゃないかな (この日記では両方オンにして二種類キャッシュしてXMLの方だけ使って表示してる)。

 [2005-04-29]

ruby-amazon(RAA)なんてあるんな。知らんかった。標準添付じゃないから使わなくてもいいかな。

* では何が違うかっていうとバグが潜んでそうなところが違う。

[本日の購入][マンガ]木村 太彦 【瀬戸の花嫁】 七

[本日の購入][マンガ]ウエダ ハジメ 【Qコちゃん THE地球侵略少女】 1

[本日の購入][]木村 航 【ぴよぴよキングダム】 2 ときのしおり


2005年04月28日 (木)

[本日の購入][マンガ]吾妻 ひでお 【失踪日記】

「あがつまひでお」って読んでた。「あづまひでお」だって。そうか普通そうだよな。

[本日の購入][マンガ]えりちん 【みたむらくん】 3


2005年04月30日 (土)

[本日の購入][]桜庭 一樹 【砂糖菓子の弾丸は撃ちぬけない】

[本日の購入][マンガ]浦沢 直樹 【PLUTO】 002

[本日の購入][マンガ]荒木 飛呂彦 【STEEL BALL RUN】 2

[本日の購入][マンガ]ウエダ ハジメ 【Qコちゃん THE地球侵略少女】 2

[本日の購入][マンガ]和月 伸宏 【武装錬金】 6

[本日の購入][マンガ]椿 あす×まっつー 【これが私の御主人様】 3