トップ 最新 追記
RSS feed

ただのにっき


2001-12-21(金) 7391歩 [長年日記]

サンダーバード展

ちょっと行きたいかも。

Funny Video Clips of Cats and Kittens

猫好きでブロードバンドな人は要Bookmark。たまりません。元ネタはお笑いパソコン日誌

そういえば、うち(の隣)の茶々は最近、食って出ていくだけになってしまった。寒いんだから、ホットカーペットの上で寝ていけばいいのに。

tDiary

いろいろ。

書き方は、HOWTO-write-tDiary.htmlという、極めてわかりやすい(名前の)ファイルが付いてるんですけど(笑)。内容がわかりやすいかどうかは保証しませんが:-P

左のナビゲーション、読み上げブラウザに対して親切ではない、というのは知っていたけど忘れてた(笑)。というわけで、見た目は左に置きつつも、実はそうじゃないというレイアウトにしてみた。CSS参照。これならCSS非対応のブラウザでも邪魔じゃない。もっとも、禁断の「position: absolute」を使っちゃってるのがアレなんだけど。

zoeさんのプラグイン3個。ツッコミランキン真月記長日記長。なるほど、日記長はパラメタ渡しにしたわけだ。まぁ、これくらいしか策はないでしょうなぁ。

それにしても、tDiary Themesの次はtDiary Pluginsを作らないとダメかも?(笑)

tDiaryプラグインTips(3) - 先月分のtitle_list

先月分のtitle_listはどうすればというリクエスト。ソースに手を入れない姑息な方法として、こんなのはどうでしょ(もちろん@securefalse)。先月分だけしか出してないけど、元の@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
本日のツッコミ(全3件) [ツッコミを入れる]

きた [うぉっ! そうかー,CGI.newしてTDiaryMonthに喰わすのか. それは気がつかなかった. TOPLEV..]

slim [電柱から飛ぶ猫、すごいですねー。]

みずほちゃん [http://www.spc.gr.jp/tdiary/ からドキュメントを探してました。どうもすいませんでした。]


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台になりました!!

本日のツッコミ(全6件) [ツッコミを入れる]

なかだ [kill $!では。 ツッコミ自体は別になんともなくできましたが。]

skamio [$!は man bashの "Special Parameters"(jmanなら 特殊パラメータ)の項ですな。 !..]

zoe [あれ??いつのまにやらあっぷしてる。。]

きた [Pluginの中で先月の@diariesにアクセスできないものでしょうか? そうすれば先月分にさかのぼってtitle..]

はんばあぐ [Hysteric Programmer日記管理人です。捕獲してくださりありがとうございます。 きっと爆発しますよ。こ..]

でんすけ [ぬぬ、たださんって横浜方面の方なのねん。]


2001-12-19(水) 10404歩 [長年日記]

tDiary

誰かさんが心中をためらってる間に、スナップショットを更新(1.3.1.20011219)。今回はUI中心の変更。異論があるかもしれないので早めにトライしておこう。

  • ツッコミサマリ表示を60→120文字に拡大
  • ツッコミサマリがあふれた場合、古い方から非表示にして「Before...」とした
  • 本日のリンク元を、ツッコミのフォームの下に
  • セクションを囲む<div class="section">...</div>を新設
  • デフォルト提供のプラグインを00default.rbに統合
  • プラグインのnaviをnavi_userとnavi_adminに内部分割
  • 存在しないプラグインを呼び出しても落ちないように対策
  • Varyヘッダを出すようにした
  • 他、ちょこちょこ

ツッコミサマリの文字数は可変にしてもいいんだけど、これくらいがちょうどいいんじゃないかと思うので、とりあえず固定のまま拡張。

「More...」の代わりに「Before...」にしたのには賛否両論あるかも知れない。「Before」という表記も含めて。「これ以前のツッコミ」の方がわかりやすいか。

ツッコミフォームの位置を変えたのが一番影響がありそう。困るのはNebulaのようなテーマのレイアウトが崩れること。でも、インタフェース的にはぜったいこの位置が良いと思うのだが、どうだろうか。

古いプラグイン(calendar、navi、insert)は削除してくらはい。naviの内部分割によって、けんのぼやきにあった指摘をフォローできる。この話はあとでTIPSにでも。

tDiary(2)

あぁっ……バカまるだしだ。しくしく。

スナップショットを更新しました(1.3.1.20011219.1)。

マウスがトロい(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_usernavi_adminを再定義してしまえば、ボタンのラベルや表示順序も自由にできる。

ちなみにnavi系プラグインで使っている@modeという変数には、現在動作しているモードが入っている。これはtdiary.rb内で定義されているTDiaryHogehoge系クラスの「hogehoge」の部分(小文字化されている)。これで現在どんなページを処理しているかがわかる。でもこの仕様はどっかで変わるかも知れない。手抜きが見え見えだし。

tDiary(3)

ちくしょー(泣)。そりゃバグだよ〜。スナップショットを1.3.1.20011219.2にage。

なかださんはどうやってツッコんだのだ!?

本日のツッコミ(全3件) [ツッコミを入れる]

なかだ [Beforeが表示されてるときに、ツッコミへのリンクのfragmentがずれてます]

ただただし [てす、てす]

mizuho_chan [ツッコミがいれる事ができないのはバグだったんですね。設定が悪いのかと思いました。]


トップ 最新 追記
RSS feed