トップ(最新) | <前 | 次>

nDiki : URI

URI - Universal Resource Identifier

RFC3986 で定義されている識別子2005年1月に、RFC3986 が出るまでは RFC2396 で定義されていた。

RFC

  • RFC2396 - Uniform Resource Identifiers (URI): Generic Syntax

パスセグメントで使用できる文字 [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.txtWiKicker WikiForum 内の PageName を取得できるようにした。

これで例えば、2つの WiKicker WikiForumcron で互いの IndexPage.txt を定期的に取得し、AutomaticLink するようにすれば、相補的に連携する事ができるようになる(ただし AutomaticLink のみ。WikiNameBracketName は依然としてその WikiForum 内のみ)。

AutomaticLink でのリンク先は(指定した)任意の InterWiki で定義できるので、あるキーワード集合について Google検索結果ページや「はてなダイアリーキーワード」への自動リンクも実現可能(はてなダイアリーキーワード自動リンクAPIはキーワードリストではなく正規表現を返してくるので、元に戻す必要有り。またあれだけ巨大なキーワードリストだと毎回 AutomaticLink のために、trie 再生成するのも辛いのでもう一工夫必要)。

スポンサード リンク


[ 2月9日全て ]

2004年2月15日 (日)

[ DiKicker ] URIの検討 このエントリーを含むはてなブックマーク

DiKickerURI体系

基本的には、「日記ページ + キーワードページ」になるので、時間による範囲指定とキーワードによる指定ができればよいのだが、すっきりとまとめるのはなかなか難しい。 特にキーワードには '/' を含められるようになり path_info にのせると path segment 数が不定になるので、一番最後に持ってくる必要があるというのがポイント

ここ最近ずっと悩んでいたのだが、えいやと決めた。


[ 2月15日全て ]

2004年2月23日 (月)

[ DiKicker ] 旬表示を実装 このエントリーを含むはてなブックマーク

各月上旬・下旬・中旬の記事を表示するURIの処理を実装。

http://www.naney.org/diki/d/2004-02-c.html

とか。

単体テストを追加したら、昨日のコードにバグ発見。 の stat で、実行時ディレクトリとは別の場所にある記事ファイルの stat をパス指定なしでファイル名だけで指定しているところがあった。 どうりで更新していないのに、毎回データベース更新が起きる訳だ。 修正。

やはり単体テスト重要。 しかし今だにテストファースト開発の体にはなれず。


[ 2月23日全て ]

2004年7月23日 (金)

TortoiseSVNsvn+ssh な svn:externals このエントリーを含むはてなブックマーク

以前 TortoiseSVN から svn+ssh で接続する際にユーザ名をURIに含めることで認証が通るようにしてみた。

しかし今日 svn:externals プロパティで外部定義の設定をしていてはたと困る。 svn:externals で指定するURI はリポジトリ利用者で共有するので、チェックアウトする時のURIのようにユーザ名を含める訳にはいかない。

で、さらっと調べたところ TortoiseSVNSSHクライアントの設定のところでユーザ名を指定できるようだ。 デフォルトで TortoisePlink.exe へのフルパスが設定されているが

 前略\TortoisePlink.exe -l ユーザ名

のようにすればユーザ名を指定できる。

一つのリポジトリにアクセスするだけならとりあえずこれでしのげそうだ。

それにしても更新をかけた際に外部定義毎にパスワードの問い合わせがあるので面倒(外部定義先が同じURIであっても)。

やはりきちんとセッションを保存しておくようにせねば。

それから、TortoiseSVN は 1.0.4 から 1.0.8 に上げておく。


[ 7月23日全て ]

2004年7月24日 (土)

[ 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 化した中身に

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


[ 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日 (木)

[ 1月27日全て ]

スポンサード リンク

■よく検索されるキーワード

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)

この日記のはてなブックマーク数 Add to Google RSS

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)