nDiki : URI

2004年7月24日 (土)

[ WiKicker ] URI抽出正規表現修正

URIの後続文字までマッチしてしまうバグがあったので修正。

[ 7月24日全て ]

2004年8月19日 (木)

ActivePerl 5.6.1 Build 638 にバンドルされているモジュールとライセンス

ExtUtils::Installed でリストアップしてチェック。

aActivePerl::DocTools
ActiveState::RelocateTree
aActiveState::Rx
*Archive::Tar
oArchive::Zip
*Compress::Zlib
oData::Dump
*Digest
*Digest::HMAC
*Digest::MD2
*Digest::MD4
*Digest::MD5
*Digest::SHA1
*File::CounterFile
*Font::AFM
*HTML-Tree
*HTML::Parser
*HTML::Tagset
oIO::Zlib
*MD5
*MIME::Base64
*Net (libnet)
*PPM
PPM-Agent-Perl
PPM::Shell
*Perl
*SOAP::Lite
*Storable
oTest::Simple
oText::Autoformat
*Tk
*URI
oUnicode::String
*Win32 (libwin32)
aWin32::AuthenticateUser
*XML::Parser
*XML::Simple
*libwww-perl

'*' は Copyright.html で オリジナルがオープンソースのものとして列挙されているもの。 'o' は列挙されていないが、オリジナルが Perl と同じライセンスThe Artistic License のもの。 'a' は ActiveState の Copyright があるもの (ActiveState Community License)。 それ以外は明記がないもの。

PAR でパッケージ化するには、Perl と同じライセンスの(あるいは再配布の問題のないもの)もののみストールしてある状態にしておき、PAR 化した中身に

  • ActivePerl/*
  • ActiveState/*
  • PPM/* (一部)
  • ppm-conf/*
  • Win32/AuthenticateUser.pm

が含まれていないかをチェック。

[ 8月19日全て ]

2004年9月7日 (火)

どこも指さないURI

どこも指さないURIという定義はあるのだろうか? RFC2396だと、空文字列のURIは許されなさそう。 URI reference としては空文字列もOKだが、この場合当該リソース自身を表すので「どこも指さない」訳ではない。

そういう特殊表現のための scheme や URN も見当らない。

NULLにあたるURIがあると便利だと思うのだが。

[ 9月7日全て ]

2004年11月19日 (金)

[ DiKicker ] 1日表示・1記事表示URIを追加。

今まで「最近表示」「旬表示」しかなかったところを、やっと拡張。

[ 11月19日全て ]

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年1月27日 (木)

国際化識別子IRIのRFC

IRIRFC3987になった。

WiKicker を含めた WikiEngine など(非ASCII)キーワードからURIを生成するタイプのソフトウェア開発において今後要チェック。

[ 1月27日全て ]

2005年4月10日 (日)

Windows 上での Apache 2.0.53 では PATH_INFOシフト JIS

WiKickerWindows 上での動作確認の続き。 WiKickerPPM パッケージを作成して ActivePerl 5.8.6.811 上にインストール。 依存するモジュールで、ActivePerl に入っていないものは以下の通り。

既に手元で PPM パッケージ化済みなので、これもインストールしておく。

後は RCS をパスの通っているディレクトリに入れてタイムゾーンを設定。

 TZ=JST-9

CGI プログラムとして実行。 お、表示できた。 書き込みはと。

エラー

予想していたけれど、sendmail に依存していたところ。 sendmail が見つからない場合はメールの送信をスキップするように修正。

これでうまく動くかなと思ったら、日本語名のページを作るとうまく表示できない問題を発見。

PATH_INFOシフト JIS で渡される

WiKicker では UTF-8 文字列をURIエスケープして WikiPageURLを生成している。 このURIにアクセスされると WiKicker は、PATH_INFO から WikiName を取り出す。 この文字列がシフト JIS になってしまっている。

Windowsファイル名に使用する charset にあわせて、Apache が変換してしまっているようだ。 調べてみると他の WikiEngine でも同様の問題にあっているという記事が見つかった。

将来の 2.0 系でパッチが取り込まれて修正されるとか、そうでないとか。

現状どうするかなぁ。 WiKicker 側でシフト JIS から UTF-8 に戻すというのもできない事はないけれど、あまりやりたくはないな。 いったんシフト JIS を介しているという時点で、シフト JIS に無い文字の扱いに関する問題をかかえてしまっているし(Apache が)。

対策案:

  • Apache 1.x 系を使う (まだ未確認だが、こちらだと勝手に変換されないらしい)
  • WiKickerPATH_INFO を使わないオプションをつける(URI Query Component は勝手に変換されない)
  • WiKicker 側でシフト JIS から UTF-8 に変換する
[ 4月10日全て ]

2005年4月15日 (金)

PATH_INFO のかわりに REQUEST_URISCRIPT_NAME を使う

結局 Apache 1.3.33 でもやはり PATH_INFOUTF-8 では無くなってしまうようだ。

ということで WiKicker 側で対処。 SERVER_SOFTWARE 環境変数を見て Win32Apache だった場合、PATH_INFO を使わず REQUEST_URISCRIPT_NAME 環境変数を使って PATH_INFO にあたる文字列を取り出すようにした。

これで期待するページにアクセスできるようになった。

ただし別件で、ページ書き込み時に失敗する問題が発覚。 ページの補助情報を保存している部分の処理がこけるらしく、一度エラーになると以降のアクセスがエラーになってしまう。 要調査。

[ 4月15日全て ]

2005年4月21日 (木)

URI のパスセグメントの中の =

RFC2396 ではパスセグメント中の = は予約されているためエスケープする必要があったが、2005年1月にでたRFC3986 では必ずしもその必要がなくなったように読める。

RFC3986RFC2396からいろいろ変更点があるようなので、きちんと読んでおく必要がありそうだ。

[ 4月21日全て ]

2005年10月5日 (水)

WiKicker 0.27 リリース

機能的にちょっと区切りをつける必要がでたので、WiKikcker の新しいバージョンをリリース。 2005年5月10日より、約5カ月ぶり。

バグ修正の他、

  • 若干のHTML構造変更(メイン部分を <div class="main">でくくるようにしたり、SearchPageの検索フォームを一部修正したり)。
  • 新しいスキーマ anchor、1-area-map-image、1-area-map-limage、1-area-map-rimage を追加。
  • HTMLタグ付けブロック文法を追加(オプション)。

など。

HTMLタグ付けブロック文法におけるHTMLのサニタイズについては、HTML 4.01 仕様書を見て主に

  • HEAD の中で使うものなどは除外
  • フォーム関係、フレーム、スクリプト、オブジェクト関係は除外
  • %Script; な属性は除外
  • %URI; な属性はスクリプトかどうかチェック

といった風にフィルタリングするようにした。 結構許したので、そのまま有効にする場合には組織内利用とか個人利用向けにした方が良い。

必要に応じてルールを変更できるように、サニタイズするモジュールは設定で変更できるようにしておいた。適宜お好みで。HTMLタグ付けブロック自体はデメリットも多いのであまり使わない方が良いと思うけれど。

[ 10月5日全て ]

About Me

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

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

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

月別インデックス
Process Time: 0.085049s / load averages: 0.30, 0.47, 0.53
nDiki by WATANABE Yoshimasa (Naney)
Powered by DiKicker