nDiki : URI
URI - Universal Resource Identifier
RFC3986 で定義されている識別子。 2005年1月に、RFC3986 が出るまでは RFC2396 で定義されていた。
パスセグメントで使用できる文字 [RFC2396]
pchar = unreserved | escaped | ":" | "@" | "&" | "=" | "+" | "$" | ","
及び、param との区切り ";"。 "/"、";"、"=" は予約されているためパスセグメント中で使うにはエスケープする必要がある。
ということでエスケープなしで使える文字は、
0-9a-zA-Z | "-" | "_" | "." | "!" | "~" | "*" | "'" | "(" | ")" | ":" | "&" | "+" | "$" | ","
Windows では
\/:,;*?"<>|
はファイル名に使えないので、これを考慮すると
0-0a-zA-Z | "-" | "_" | "." | "!" | "~" | "'" | "(" | ")" | "&" | "+" | "$"
"&"、"+", "$" はパスセグメント中ではエスケープする必要はないが、reserved に含まれる文字なので使わない方が場合によっては無難。 これも考慮すると、
0-0a-zA-Z | "-" | "_" | "." | "!" | "~" | "'" | "(" | ")"
という文字集合を使うというのも手。
スポンサード リンク
Related term
2004年2月9日 (月)
■ [ WiKicker ] 自動InterWiki

一昨日実装した、 複数のキーワード集合による、AutomaticLinkモジュールを WiKicker CGI プログラムから使えるようにしてみた。
ローカルにおいておいたキーワードリストファイルを読み込み AutomaticLink 処理(WikiForum 内で AutomaticLink でマッチしていない部分文字列に対して)。 マッチした場合は InterWiki を使ってURIに変換しリンク化する。
あわせてIndexPage.txtでWiKicker WikiForum 内の PageName を取得できるようにした。
これで例えば、2つの WiKicker WikiForum が cron で互いの IndexPage.txt を定期的に取得し、AutomaticLink するようにすれば、相補的に連携する事ができるようになる(ただし AutomaticLink のみ。WikiName や BracketName は依然としてその WikiForum 内のみ)。
AutomaticLink でのリンク先は(指定した)任意の InterWiki で定義できるので、あるキーワード集合について Google の検索結果ページや「はてなダイアリーキーワード」への自動リンクも実現可能(はてなダイアリーキーワード自動リンクAPIはキーワードリストではなく正規表現を返してくるので、元に戻す必要有り。またあれだけ巨大なキーワードリストだと毎回 AutomaticLink のために、trie 再生成するのも辛いのでもう一工夫必要)。
- [ WiKicker ] 複数のキーワード集合による、AutomaticLink (2004-02-07)
- [ WiKicker ] 憧れのサイドバー (2004-01-23)
- Windows 上での Apache 2.0.53 では PATH_INF... (2005-04-10)
- はてなダイアリーキーワード自動リンクAPI (2004-02-05)
- [ WiKicker ] 「最近のアクセスログ」処理思案 (2004-01-17)
2004年2月15日 (日)
■ [ DiKicker ] URIの検討

基本的には、「日記ページ + キーワードページ」になるので、時間による範囲指定とキーワードによる指定ができればよいのだが、すっきりとまとめるのはなかなか難しい。 特にキーワードには '/' を含められるようになり path_info にのせると path segment 数が不定になるので、一番最後に持ってくる必要があるというのがポイント。
ここ最近ずっと悩んでいたのだが、えいやと決めた。
- DiKicker に n 年日記機能を追加 (2006-11-03)
- WiKicker 0.41 リリース - cookie まわりの処理を変更 (2006-12-03)
- [ WiKicker ] 日記機能開発開始 (2003-12-27)
- 21:00 [ nDiki ] hnsからDiKickerへ (2004-02-22)
- [ WiKicker ] 複数のキーワード集合による、AutomaticLink (2004-02-07)
2004年2月23日 (月)
■ [ DiKicker ] 旬表示を実装

各月上旬・下旬・中旬の記事を表示するURIの処理を実装。
とか。
単体テストを追加したら、昨日のコードにバグ発見。 の stat で、実行時ディレクトリとは別の場所にある記事ファイルの stat をパス指定なしでファイル名だけで指定しているところがあった。 どうりで更新していないのに、毎回データベース更新が起きる訳だ。 修正。
やはり単体テスト重要。 しかし今だにテストファースト開発の体にはなれず。
- DiKicker に TermDB が肥大化するバグ (2006-12-08)
- Perl v5.8.8 の CGI.pm の PATH_INFO 処理の問... (2006-07-08)
- [ Perl ] PDL 2.4.1 から eigens が固有ベクトルを... (2004-03-05)
- [ WiKicker ] 複数のキーワード集合による、AutomaticLink (2004-02-07)
- nDiki のレスポンスが悪くなってきたので DiKicker 修正 (2006-08-29)
2004年7月23日 (金)
■ TortoiseSVN と svn+ssh な svn:externals

以前 TortoiseSVN から svn+ssh で接続する際にユーザ名をURIに含めることで認証が通るようにしてみた。
しかし今日 svn:externals プロパティで外部定義の設定をしていてはたと困る。 svn:externals で指定するURI はリポジトリ利用者で共有するので、チェックアウトする時のURIのようにユーザ名を含める訳にはいかない。
で、さらっと調べたところ TortoiseSVN の SSHクライアントの設定のところでユーザ名を指定できるようだ。 デフォルトで TortoisePlink.exe へのフルパスが設定されているが
前略\TortoisePlink.exe -l ユーザ名
のようにすればユーザ名を指定できる。
一つのリポジトリにアクセスするだけならとりあえずこれでしのげそうだ。
それにしても更新をかけた際に外部定義毎にパスワードの問い合わせがあるので面倒(外部定義先が同じURIであっても)。
やはりきちんとセッションを保存しておくようにせねば。
それから、TortoiseSVN は 1.0.4 から 1.0.8 に上げておく。
- TortoiseSVN 1.0.4 (2004-05-17)
- 普通の人向けに svnserve を立ち上げるか (2005-07-26)
- TortoiseSVN と svn+ssh (2004-07-26)
- Unison + Zebedee (2004-06-11)
- ノート PC を持たずに会社に行きたい (2006-12-21)
2004年7月24日 (土)
■ [ WiKicker ] URI抽出正規表現修正

- Perl v5.8.8 の CGI.pm の PATH_INFO 処理の問... (2006-07-08)
- [ WiKicker ] 自動InterWiki (2004-02-09)
- WiKicker 0.27 リリース (2005-10-05)
- [ WiKicker ]If-Modified-Since: 関連バグ (2003-10-02)
- はてなダイアリーキーワード自動リンクAPI (2004-02-05)
2004年8月19日 (木)
■ ActivePerl 5.6.1 Build 638 にバンドルされているモジュールとライセンス

ExtUtils::Installed でリストアップしてチェック。
| a | ActivePerl::DocTools |
| ActiveState::RelocateTree | |
| a | ActiveState::Rx |
| * | Archive::Tar |
| o | Archive::Zip |
| * | Compress::Zlib |
| o | Data::Dump |
| * | Digest |
| * | Digest::HMAC |
| * | Digest::MD2 |
| * | Digest::MD4 |
| * | Digest::MD5 |
| * | Digest::SHA1 |
| * | File::CounterFile |
| * | Font::AFM |
| * | HTML-Tree |
| * | HTML::Parser |
| * | HTML::Tagset |
| o | IO::Zlib |
| * | MD5 |
| * | MIME::Base64 |
| * | Net (libnet) |
| * | PPM |
| PPM-Agent-Perl | |
| PPM::Shell | |
| * | Perl |
| * | SOAP::Lite |
| * | Storable |
| o | Test::Simple |
| o | Text::Autoformat |
| * | Tk |
| * | URI |
| o | Unicode::String |
| * | Win32 (libwin32) |
| a | Win32::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
が含まれていないかをチェック。
- 自前 PPM リポジトリの管理 (2006-07-03)
- PAR + ActivePerl で実行形式ファイルを作った時のライセンスは? (2004-07-21)
- PAR::Repository でビルド済み Perl モジュールをネット... (2006-12-12)
- PAR に関する ActivePerl のライセンス (2006-06-16)
- RPC::XML のかわりに XMLRPC::Lite (2004-08-31)
2004年9月7日 (火)
■ どこも指さないURI

どこも指さないURIという定義はあるのだろうか? RFC2396だと、空文字列のURIは許されなさそう。 URI reference としては空文字列もOKだが、この場合当該リソース自身を表すので「どこも指さない」訳ではない。
そういう特殊表現のための scheme や URN も見当らない。
NULLにあたるURIがあると便利だと思うのだが。
- Last.fm Radio Player でラジオを聞いてみる (2006-02-04)
- URI のパスセグメントの中の = (2005-04-21)
- [ DiKicker ] 1日表示・1記事表示URIを追加。 (2004-11-19)
- Windows 上での Apache 2.0.53 では PATH_INF... (2005-04-10)
- Google Desktop の web clips で RSS を読む (2006-05-18)
2004年11月19日 (金)
■ [ DiKicker ] 1日表示・1記事表示URIを追加。

今まで「最近表示」「旬表示」しかなかったところを、やっと拡張。
- [ WiKicker ] 複数のキーワード集合による、AutomaticLink (2004-02-07)
- [ DiKicker ] URIの検討 (2004-02-15)
- [ DiKicker ] 旬表示を実装 (2004-02-23)
- Perl v5.8.8 の CGI.pm の PATH_INFO 処理の問... (2006-07-08)
- DiKicker にそろそろコメント機能を実装するか (2005-01-26)
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 の連動など、前からやりたいとは思っていたのでこれを機会に実装するかな。 いろいろ決めないといかん。
- 速度改善のため nDiki からくっつき BBS を外す (2005-10-16)
- [ DiKicker ] くっつき BBSをくっつけてみた。 (2004-05-04)
- nDiki に「はてなスター」をつけてみた (2007-07-11)
- iCalendar 形式経由でスケジュールを社内 Blog に表示 (2007-01-08)
- [ DiKicker ] RSS で全文をフィード (2005-06-13)
2005年1月27日 (木)
■ 国際化識別子IRIのRFC

WiKicker を含めた WikiEngine など(非ASCII)キーワードからURIを生成するタイプのソフトウェア開発において今後要チェック。
- WiKicker における PageName 最長文字数 (2006-06-10)
- Windows 上での Apache 2.0.53 では PATH_INF... (2005-04-10)
- [ WiKicker ] WiKicker へ脚注機能追加 (2004-02-10)
- [ WiKicker ] 複数のキーワード集合による、AutomaticLink (2004-02-07)
- [ WiKicker ] If-Modified-Since: 関連作業ほぼ済 (2003-09-19)
スポンサード リンク
■よく検索されるキーワード
perl(62) torrent(54) linux(48) 提案書(47) windows(43) 書き方(41) 使い方(29) アジェンダ(26) x31(25) 充電式カイロ(25) cvs(22) インストール(20) サンプル(20) thinkpad(19) アジェンダとは(19) f-01a(18) wiki(17) c#(16) 感想(16) カイロ(16) usb(16) java(16) 秋葉原(15) debian(15) ヨドバシカメラ(15) subversion(15) 壁紙(15) 作り方(15) 静電気(14) apache(14) グッズ(14) デロンギ(13) フリー(13) sh-01a(13) ganttproject(13) 修理(13) ssh(12) svn(12) ヨドバシ(12) truecrypt(12) ダイソー(11) 手帳(11) activeperl(11) ubuntu(11) ほぼ日手帳(11) firefox(10) mew(10) mp980(10) ドラマ(10) 日本語(10) n-01a(10) google(10) tc-1(10) 評判(10) ツール(10) djunit(9) cgi(9) 動画(9) mp3(9) オイルヒーター(9) docomo(9) rcs(9) 除去(9) centos(9) メモリ(9) エネループ(9) 設定(9) p-01a(9) tortoisesvn(9) 無印(8) ケース(8) 口コミ(8) ミノルタ(8) メール(8) インストーラ(8) 会議(8) xampp(8) 加湿器(8) af(7) 値段(7)■注目キーワード
購入 買った 発売日 フリー 無料 価格 値段 作り方 選び方 使い方 方法 設定 サンプル ダウンロード 限定 在庫 予約 穴場 比較 検証 レビュー 感想 評価 評判 使用感 使ってみた 口コミ 噂 最新 MP3 動画 意味 お薦め お勧め おすすめ 便利 Blog ブログ mixi 修理 デザインProcess Time: 15.142371s / load averages: 0.48, 0.35, 0.38
nDiki by WATANABE Yoshimasa (profile)
Powered by DiKicker
Base theme by Nana (for tDiary)



スポンサード リンク