nDiki : くっつき BBS

くっつき BBS

たつを氏が公開している、いわゆるJavaScript IncludeによってHTMLに貼りつけるタイプのBBS。

2004年5月4日 (火)

[ DiKicker ] くっつき BBSをくっつけてみた。

DiKicker でのコメント機能についてだがあらためて実装するのも大変なので、たつを氏のくっつき BBSを組み込んでみた (v1.0rc2)。

ファイルレイアウト

 $HOME/etc/kuttukibbs/kuttukibbs.conf - 設定ファイル (一部変更)
 $HOME/var/log/kuttukibbslog.txt - 管理者用ログファイル

 $HTML/kuttukibbs/kuttukibbs.cgi - CGIプログラム (一部変更)
 $HTML/kuttukibbs/getlog.cgi - (一部変更)
 $HTML/var/kblog/$ID.log
 $HTML/var/kblog/$ID.js

DiKicker への埋め込み

記事毎ののHTMLフラグメントを生成する際に、kuttukibbs.cgi へのリンクと、(getlog.cgi経由での)Feedファイルの読み込み部分を埋め込むように変更。

くっつくFeedファイルが無い場合は commentshortクラスの div要素 (tDiary スタイル)が存在しなくなるようにしたかったのでレンダラではこれを埋め込まず、getlog.cgi で出力するようにした。

ついでに getlog.cgi は

  • charset指定を UTF-8 に修正
  • 違う階層Feedファイルを読むように修正

した。

kuttukibbs.cgi のUTF-8対応

Feedファイル用にコメントを切りつめる際、UTF-8 だと後続バイトが切り捨てられる場合がある。 WiKickerUTF-8 用の substr / length ラッパがあるのでこれを使うように修正。

tDiary テーマの修正

tDiary では日単位でのコメントでありテーマもそれにあわせてデザインされている。 DiKicker では記事単位にコメントをつけるようにしたいので(またそうでないと記事単位で集約した場合に困るので)、使っているテーマ(Nana さんの flower をベースにしているもの)のCSSを修正。

くっつけてみる

テストした範囲ではうまくいっているようだ。 HTMLレンダリング済みの記事はキャッシュが更新されないとコメントするためのリンクが現れないが順次出てくるはず。

くっつきとして見るには要 JavaScript サポート。

スポンサード リンク
[ 5月4日全て ]

2005年1月26日 (水)

DiKicker にそろそろコメント機能を実装するか

くっつき BBS

nDiki では、たつを氏が公開しているくっつき BBSを利用してコメント機能をつけている。 くっつき BBSは自前でBBS機能を実装しなくても、JavaScript Include を使うことでコメントをページに貼りつけられるという優れもの。

CGI プログラム経由の JavaScript Include 方式は遅い/負荷がかかる

nDiki では JavaScript Include する際、コメントがない(=JavaScriptファイルがない)場合でも404にならないようにCGI プログラム経由で貼りつけていた。 しかし、この方法だと1ページに多くのコメント領域があると何度もCGI プログラムが実行されるのでサーバへ負荷がかかる。

また Web ブラウザHTMLの途中でscript要素が出てくると、そのスクリプトファイルを読み込んで処理するまで残りをレンダリングできない。 このためサーバが重かったりして、途中スクリプトファイルの読み込みでひっかかるとユーザ側でのページ表示完了が遅くなってしまう。

ということでこの方式をやめて、単純にコメントJavaScriptファイルのURIを指定するようにした。 その使わなくなったCGI プログラムで、tDiaryテーマ用の「commentshortクラスdiv要素」を書き出していたので、この部分は DiKicker に戻す。 現在のコードでは、コメントが無くてもこのdiv要素が出力されてしまうので、ちょっとみぐるしいがしばらくご容赦。

やはりDiKickerでネイティブにコメント機能を実装しよう

コメント内の AutomaticLink 処理や cookie の連動など、前からやりたいとは思っていたのでこれを機会に実装するかな。 いろいろ決めないといかん。

[ 1月26日全て ]

2005年6月13日 (月)

[ DiKicker ] RSS で全文をフィード

今まで RSS には記事の先頭300文字までを description に書き出していたところを、全文出力に変更。 あわせて、RDF Site Summary 1.0 Content Module を使用して、記事全文HTMLフラグメントものせてしまうようにした。

数行の修正しただけで、HTMLフラグメントは通常表示用にレンダリングしたものなのでいくつか問題点あり。

  • DiKicker 内のページへのリンクに相対URLが含まれている。例えば Sage ならちゃんと相対参照の解決がされるけれど、 Bloglines だとそのまま www.bloglines.com 内への参照になってしまう。
  • (くっつき BBS 用の)JavaScript Includeコードが含まれている。

近日中に修正。

[ 6月13日全て ]

2005年6月14日 (火)

[ DiKicker ] 早速 RSS まわりを改良

昨日のRSSまわりの作業の続き。

  • 記事内の相対URLを絶対URLに修正。
  • くっつき BBS のコードを埋め込むコードの場所を動かして、RSS に入らないように修正。
[ 6月14日全て ]

2005年9月12日 (月)

nDiki のコメント欄にコメントスパム

更新チェックをしたら、nDiki にコメントが入っていたので「どれどれ」と見てみる。

うぎゃー。

丁度攻撃を受けているところやんけ。

NaneyOrgWiki にもリンクスパムな書き込みがちょくちょくあるのだが、幸い絨毯爆撃的なものは受けていない。 今回もそんな感じでたかだか数十回ぐらいの書き込みだろうと、.htaccess で接続元のIPアドレスを deny しつつコメントを消していく。

……はっ、速い。

追いつかん。終わらん。

マジ攻撃ですか。IP アドレスもかなり散らしてきてますか。 あきらめて、CGI プログラムを移動して書き込みできないように。

その後もしばらく連続アクセスがあったが、途中で気がついたのか止まった。

ということで、現在一時的にコメントの全文表示・新規不能状態。

くっつき BBSを使っているのだが、まさかこれが攻撃されるとは。 そろそろ DiKicker 自体にコメント機能を直接実装しようとしていたところだったのだが、いろいろ対策を打たないといけないと思うと萎えるなあ。

[ 9月12日全て ]

2005年10月16日 (日)

速度改善のため nDiki からくっつき BBS を外す

DiKicker にはまたコメント機能を実装しておらず、かわりにくっつき BBS を利用できるようにしてある。 くっつき BBSJavaScript Include を利用して手軽にコメント機能を追加できる便利な BBS。

JavaScript Include なのでコメント部分については Web ブラウザ側で外部スクリプトを読み込んでいくことになる。外部スクリプトをロードしている間はレンダリングが先に進まないので、外部スクリプトの配信・転送に時間がかかるとそこで表示がひっかかてしまう。 このため DiKicker としてのページの生成・出力が短い時間で終わっていても、結果的に閲覧者側でのレンダリング完了には時間がかかってしまう。

nDiki でもかなり遅く感じるようになってきたので、一旦くっつき BBSを外すことにした。 やはり早々にコメント機能を実装しなくては。

[ 10月16日全て ]

2006年5月4日 (木)

DiKicker のスタイルを若干修正

昨日の夜に DiKicker のコードをちょっといじって、表示形式を変更。

  • 記事先頭に ■で示していた permalink を、明示的に記事下部に表示。
  • 旬別カレンダーの位置をフッタの下の方へ移動。記事処理コードの中から、フッタ処理コードの中へ移動し配置場所の自由度を上げた。
  • くっつき BBS へのリンクを削除 (コメントスパム攻撃以来書き込み停止してしまっていたこともあるので)。
[ 5月4日全て ]

About Me

Naney Naney (なにい)です。株式会社ミクシィで SNS 事業の部長をしています。

nDiki1999年1月に始めたコンピュータ日誌を前身とする NaneyWeb 日記(兼パーソナルナレッジベース)です。ちょっとしたノートは nNote にあります。

※内容は個人的見解であり所属組織とは関係ありません。

follow us in feedly

月別インデックス
Process Time: 0.104077s / load averages: 0.39, 0.81, 0.77
nDiki by WATANABE Yoshimasa (Naney, Google profile)
Powered by DiKicker