nDiki : Web サーバ
Related term
2004年12月31日 (金)
■ 私的10大ニュース2004 [ work ]

今年の大事件、マイブームなど。
@ プロジェクトマネジメント
入社して満3年。今年は随分仕事の内容が変わってきた。 トム・デマルコの本を読んでみたり。 事後評価セッションを実施してみたり。
@ サーバ移行
DNS サーバ、メールサーバ、Web サーバを一斉入れ換え。Debian GNU/Linux に移行。 RAIDではまる。
RAIDまわりが何かよろしくないようだし、ホスト自体以前デスクトップとして使っていたPCなので安定したものに置き換えたい。
@ 飲み会
- Debian GNU/Linux に Hyper Estraier 1.2... (2006-05-31)
- [ お仕事 ] OCNエコノミー -> OCN ADSLアクセスIP8「フ... (2004-01-16)
- フォト イメージング エキスポ 2005 (2005-03-18)
- 今日のさえずり - 部長なのか? (2008-06-10)
- すごいKPT事後評価セッション (2005-10-07)
2005年1月21日 (金)
■ リモートポートフォワーディングでライブカメラを晒す

プライベートネットワーク上に設置したBL-C10を外部からアクセスできるようにする時の方法を確認。
ということで、公開しているサーバでHTTPを中継するという方向で。 となると SSH の remote port forwarding か。
- 公開サーバ: www.example.com
- BL-C10: 192.168.0.X
として192.168.0.0/24 にいる自分のPCから
ssh -R 3000:192.168.0.X:80 www.example.com
で www.example.com:3000 にアクセスするとライブカメラが見られるようになる。 ただし www.example.com の sshd の設定で
GatewayPorts yes
になっていないと、他のホストからアクセスできない。 www.example.com 上の stone で外部からアクセスできるようにさらに転送用のポートを作る。
自分のPCから
ssh -R 3000:192.168.0.X:80 www.example.com stone 127.0.0.1:3000 30001
で、
www.example.com:3001 -> www.example.com:3000 -> 192.168.0.X:80
と転送されるようになる。 実験も成功 (実験環境では ssh を実行する時に -1 オプションをつけないと -R がうまく動かない事を忘れていてちょっとはまった)。
自宅(ADSL接続)上の BL-C10 を上の方法で晒してアクセスしてみる。 ADSL回線を上って下る事になるが、ちょっと覗くにはそれなりの描画更新ができている様子。 BL-C10 の内蔵 Web サーバで動画を見ながらカメラを操作した時のレスポンスが悪かったのだが、これは stone の -f オプションで子プロセスを数個上げておくようにすることで改善された。
上の方法だと ssh を止めてもリモートホストの stone のプロセスが残ってしまい、別途 kill しないといけないのでちょっと面倒。 何かうまい方法はないかな。
- [ お仕事 ] OCNエコノミー -> OCN ADSLアクセスIP8「フ... (2004-01-16)
- Tor で hidden service (2005-02-13)
- ホームネットワークカメラ BL-C10 買っちゃった (2005-01-18)
- [ Linux ] SSH remote port forwarding (2004-02-02)
- ネットワークカメラが欲しい (2005-01-15)
2005年2月13日 (日)
■ Tor で hidden service

Tor: An anonymous Internet communication system を試してみる。 Torは匿名接続を提供するシステム。 アプリケーションで Tor クライアント(あるいはサーバ)をSOCKSサーバとして指定すると、いくつかの Tor サーバを経由して目的のサービスに接続されるようになる。 途中の経路は時間とともにどんどん変わっていく(らしい)。
@ インストール
Debian パッケージになっているので apt-get。
@ Privoxy と連携させて Web閲覧
もともと普段から使用している Privoxy の config に、
forward-socks4a / localhost:9050 .
という設定を追加して再起動。Privoxy がローカルサーバで動いている Tor 経由で接続するようになる。
Firefox -> Privoxy(localhost:8118) -> Tor(localhost:9050)
-> Tor server -> ... -> Tor server -> Web サーバ
という感じに複数の Tor サーバを経由して目的にサーバに接続されるようになる。
Web サーバのアクセスログを見ながら何度かHTTPアクセスをしてみると、IP アドレス(経路の最後の Tor server)が変わっていくのがわかる。
@ 使用感
かなりレスポンスが悪くなる。 現状では常時設定しておくのは辛い感じ。
Tor では名乗りを上げない限り(待ち受けポートを開けた上で、ディレクトリサーバに登録する)サーバにはならない。 このため、Tor server が絶対的に足りていないのかもしれない。
@ hidden service
Tor の面白い機能の一つに匿名サービスを提供する機能がある。 Web サーバやSSHサーバなどを匿名で晒すことができる。
この時動かす tor は Tor サーバである必要はなく Tor クライアントでかまわない。
/etc/tor/torrc に
HiddenServerDir /var/lib/tor/hidden_http_service/ HiddenServicePort 80 127.0.0.1:80
を追加して、tor を再起動。
/var/lib/tor/hiden_http_service/hostname というファイルに ****************.onion というホスト名が書かれているので、Tor + Privoxy 経由で http://****************.onion/ にアクセスすると、先ほどの tor が動いているサーバの Web サーバのページが見える。 hidden service を提供している tor は NAT の中にいてもOK(のようだ)。
閲覧者側に Tor (とPrivoxyなど)がインストールしてあれば、ダイナミックDNSに登録したりしなくても好きなタイミングで Web サーバにアクセスしてもらえるようになる。 面白い。
ローカルの Apache に 「ServerAlias *.onion」な Virtual Host の設定を追加して、Tor 経由専用のWebサイトも実験的に準備しておいてみた(例によって Wiki)。
- Debian GNU/Linux に Hyper Estraier 1.2... (2006-05-31)
- ノート PC で Apache Virtual Host (2004-12-15)
- Firefox 拡張機能の整理 (2005-02-05)
- [ Debian ] Privoxy + SSH (2004-01-28)
- 例によってPHS接続用に WWWOFFLE を設定 (2005-08-02)
2005年3月18日 (金)
■ フォト イメージング エキスポ 2005

仕事関連の調査(と趣味の世界)のために東京ビッグサイトで開催されているフォト イメージング エキスポ 2005 に行ってきた。 今年の会期は17日~20日。 今年から1000円。 昨日面倒臭い事前登録(一旦メールアドレスを登録して、メールに書かれたURLにアクセスして、フォームを入力して、またメールがきて、それを印刷)したおかげで750円。
@ 1000万画素超RAWデータ自由自在 ~ハイエンドカメラ vs ハイエンドMac~ 鹿野宏 (10:40 - 11:30)
デジタルイメージングファクトリー on Mac OS X
目当ての無料セミナーだった一つ。 公式サイトで見かけてやってきた訳だが、もらったガイドブックに見あたらずはてと困る。受付で聞きてもすぐ返事がもらえなかったぐらい知られていない。 結局別刷りのシートにプログラムが書いてあったようで、それを教えてくてた。
内容は鹿野氏による「撮影から現像・クライアントへ渡す画像ファイル化までをスムーズに行う技術」のお話。
- ハイエンドカメラで撮影してケーブル経由ですぐにPCに転送
- STROBOX
- キヤノン、ニコン、富士フイルムのそれぞれのソフトウェアのTips
- 現像ソフト、Photoshop でのバッチ処理
- G5 + Xserve RAID での高速処理環境
カメラでシャッターを切ってそれがPC側に転送されるのが意外に速いのには驚き。 モデルを使った撮影では玄光社のSTROBOXを使っていた。 銀レフを貼った白い箱の一面にディヒューザー貼り、側面に穴を空けてヒカル小町Di(改?)をくっつけるというDIY的な商品。
ヒカル小町の活用方法として面白い。これはいいな。ヒカル小町Diを持っているので、自分でも似たようなものを作ってみようかな。買うと1セット15,000円(税・送料込み)。高っ。
ただし、通常のヒカル小町Diはセンサーがフラッシュ方向と同じ方向を向いているのでこのままだと無理っぽい。この商品のはセンサーが後ろに向くように改造してあるようだ。光ファイバかなにかでまわすようにすればいけるかな。
ソフトウェアの方はカラープロファイルの設定の話とか、バッチ処理の話とか。 (ニコンのだったかな)ディレクトリを定期的に監視して、新しく画像ファイルが保存されたら自動的に処理をかけたりできるようだ。便利になってきているんだね。
Xserve RAID はデザインがよくラックにいれなくても立てておいたりできるので、良さそう。ランプがピカピカ光って綺麗だし。
Xserve RAID を使用・未使用(G5 内蔵HDD)の比較デモは失敗のようで、同じような時間がかかっていた。
プロのお仕事の技が見られてなかなか有意義であった。
@ デジタルフォトのサーバ管理術 ~フォトスタジオでのMac OS X Serverの活用法~ アップルコンピュータ(株) (11:50 - 12:40)
デジタルイメージングファクトリー on Mac OS X
こちらはひどいプレゼンテーション。 プレゼンテーションツールのファイルが開けなくていきなりつまる。
内容は Mac OS X Server のセールストーク。 RAIDレベルの解説からはじまって Xserve RAID の商品説明、それから Mac OS X Server の素晴しさの解説。
ことあるごとにLinuxに対抗意識を燃やす。
- Linuxだとコマンドを叩かなければなりませんが Mac OS X Server では GUI で簡単に設定できます(でもデモではことごとく失敗)。
- Linux だと Web サーバにするかどうかとか、サーバの用途を決めてインストールしていかなければなりませんが、Mac OS X Server では GUI で有効/無効を切り換えるだけです(つまり、全部ガツンといれちゃっているだけでしょ?)。
- 簡単にホームや設定をサーバでまとめて管理できます(GUIで小綺麗に設定できるのは確かにいいですが、技術的にはかなーり古くからある話)。
結局デジタルフォトもくそもない、ただの準備不足のセミナーであった。
@ LPLは引伸機を1台も展示していなかった
LPL商事株式会社のブースが引伸機を1台も展示していなかった。 ショック。
@ FinePix F10 メチャイイ
先週発売になった FinePix F10 ももちろん展示されていた。 触ってみたところ、起動時間が体感的にはやい。 シャッターを切った時のレスポンスも驚くほどはやい。
イイ!
やっぱり買っちゃいそうだ。
@ DSC-S40
スペック上若干大きくなったものの、DSC-U40の後継となりえるかという視点でチェック。 ……。ダメダメ。太っちょ。 ぼてっとしていて思っていた以上に大きく感じる。 作りもちゃちい感じ。
@ その他
去年にもましてフィルムカメラの影が薄くなっている。 ニコンも Nikon F6 すらデモ機が見あたらなかった(どこかに1台ぐらいあったのかもしれないけれど)。
自分が見てきたのはコシナの BESSA-R2A と、Rollei 35RFぐらい。 コシナの28mm用ビューファインダーは 28/35mm mini Finder と 28mm View Finder M のどちらが良いのだろう? 見比べてみると mini Finder の方が結構小さ目で見辛そうに思えるけど。
オロナミンCは今年はなし。
- 運動会カメラ事情 (2008-10-25)
- ホームネットワークカメラ BL-C10 買っちゃった (2005-01-18)
- ロバート・キャパの未公開カラー写真 (2005-02-19)
- デジカメ写真管理ソフトウェア digiKam (2006-03-10)
- Flickr::UploadでLinuxから画像アップロード (2005-04-22)
2005年5月16日 (月)
■ はてなブックマーク上の最新ブックマークを nDiki に

自分でタグ付けできないのでどうなのかと思っていたはてなブックマークであるが、気がつけば登録したブックマークももうすぐ1500。
タグ付けできない部分は、検索機能である程度カバー。 お気に入り機能のおかげで旬のネタ収集もできる。 なんだかんだいっても、さすが「はてな」という感じ。
日々登録しているブックマークを活用したいということで RSS を利用して、nDiki に表示してみることにした。 出勤前のちょっとした時間で Perl スクリプトとしてささっと実装。
- ローカルPCで以下の作業を行うスクリプトを書く
- LWP::Simple を使用して RSS を取得
- XML::RSS で parse() したあと、items から HTMLフラグメントを生成
- nDiki のフッタに挿入
- cron で1時間毎に
という形で実現。
- DiKicker にはフッタファイルに別のファイルをインクルードする機能がないので、フッタを書き換えてしまえ。
- サーバに XML::RSS を入れるのが面倒なので、ローカルPCでやってしまえ。どうせブックマークが更新されるのは、そのPCを使っている時だけだから。
という手ぬきであっさり実装。
- はてなブックマーク上の検索結果を nDiki に (2005-10-30)
- Twitter ステータスを nDiki サイドバーに表示 (2007-11-09)
- Plagger のインストールが大変なので XML::RSS で RSS ... (2006-06-10)
- Rubric でプライベート SBS を立てるも 0.140 では日本語に不具合 (2006-07-22)
- クリッピングに便利な CMS 「Tumblr」を使ってみる (2007-04-13)
2005年6月2日 (木)
■ FreeMind でマインドマップ

@ きっかけ
「企画書書いてみ」 →「いきなりプレゼンツールでゴリゴリではなくて、アイデアまとめからだよな」 →「そういえばマインドマップというのをたまに見かけるっけ。ちょっと前から気になっていたんだよね」 →「ツール探し。Linux でも Windows でも動く FreeMind が良さそげ。」
@ FreeMind を入れてみた
操作がシンプルですぐ覚えられる。 キー操作によるインタフェースが良く出きていて、2次元的な図として書いていくのだけれど普通のエディタと同じような感覚で入力していける。このため変に思考を遮らないのが良い。
ただし HHK Lite には FreeMind で多用するカーソルや Insert キーがないのでちょっと不便。Fn と組み合わせて押さなければならない。 慣れれば問題ないとは思うけど。
それか、FreeMind のキーストロークをカスタマイズするか。
@ 機能
- HTML形式での書き出し機能あり。
- アプレットを利用して、そのままデータファイルを Web サーバに置いて公開することも可能。プロジェクトメモ等で、関係者が全員アプレットを使用できる環境だと分っている時は、こちらの方が綺麗でみやすい。
- 何かと必要な画像形式でのエクスポートは 0.8.0 から(?)。安定版は現在 0.7.1 で、Debian GNU/Linux sid のもこれ。最初は 0.7.1 を使ってみたが、すぐ 0.8.0 rc3 にのりかえ。
@ 本とか
とりあえず、読まなくてもいいかなと。
特に系統的な方法論とかがあるような感じがしなかったし、そもそも、そういうのにしばられずに使うのが良いだろうし。
本でもWebでの紹介でも「脳のなんちゃら」とかって書いてあるけど、 そんなのどうでもいいんじゃないか? 実際本当にそうなの? 「表でまとめて考えると良い」って時は脳も表形式で機能しているの? 「グラフにまとめている」時は?
@ 議事録x2に使ってみる
昨日と今日の2件のミーティングの内容をまとめてみる。 テキストで書くと、時系列ベースから抜け出しにくい。 かわりにマインドマッピングツールを使うとその場で木構造をいじって意見・提案・質問等に簡単にまとめなおすことができ、それにより話題のポイントが浮かびあがってくる。
なるほど面白い。すごく整理できてしまった感じ。
@ その他使ってみる
その他、頭の中で考えている内容をまとめたり、プロジェクトの問題点の洗い出しにちょっと使ってみたが、どんどんノードが増えていって面白い。
この記事もまず、FreeMind で下書きしてみた。 これぐらいの分量なら、充分下書きになる。
なかなかいい感じなので、しばらく使ってみようと思う。
- 「すごい会議」2度目 (2005-06-03)
- flickrfs で Flickr をマウントして写真をコピーする (2008-02-21)
- Windows でも Linux でも動くタスク管理ツール Task Coach (2006-01-12)
- Linux で使えるデスクトップ検索ツール Beagle でローカルファイ... (2006-08-08)
- 今日のさえずり - 首なし犬 (2008-03-26)
2006年1月31日 (火)
■ 音楽再生にあわせて処理をする amaroK スクリプトを書いてみる

amaroK で聞いた音楽の情報を Last.fm に送って、最近聞いた曲を表示させてみたりアーティスト毎の集計を見てみたりしようと思っていたのだが、どうもこの機能がうまく動かない。
しょうがないので、自前でスクリプトを書いて遊んでみることにした。
@ 書き方
amaroK のスクリプトマネージャから、スクリプトをインストールし実行するとそのスクリプトが実行される。 イベントが発生する度に amaroK からスクリプトの標準入力にイベントの内容をあらわす文字列を送られてくるので、スクリプト側では標準入力を行単位で待ち受けて処理をしていけばよい。
amaroK が終了する際やスクリプトを停止した場合には SIGTERM が送られてくるので、これをキャッチして終了処理を行うようにしておく。 データの保存などの必要がなければ、特に何もする必要無し。
簡単。
スクリプトをインストールするには、一旦 .amarokscript.tar か .amarokscript.tar.bz2 にまとめおく必要がある。 スクリプトマネージャからこのファイルをインストールすると、~/.kde/share/apps/amarok/scripts/ 以下にインストールされて使えるようになる。
自分でいろいろ試す分には一旦形式的にインストールした後、直接このディレクトリの中のファイルを編集してスクリプトを改良していくのが手っ取り早い。
ただしスクリプトの編集をした後は、もちろんスクリプトマネージャでスクリプトを起動しなおす必要がある。 自分の場合はこれも面倒なので、(今回対象としたい)trackChange イベントがきたら特定のディレクトリの下のスクリプトを run-parts で走らせる最低限の amaroK スクリプトを作ってインストールしておき、あとは run-parts で実行されるスクリプトをいじって遊ぶことにした。 これだと毎回 run-parts が呼ばれて非効率は良いが、スクリプトをトライアンドエラーするには楽チンだ。
@ スクリプトから情報の取得
基本的な情報は DCOP インタフェースで取得できる。例えば amaroK で曲を再生中に
dcop amarok player title
のように dcop コマンドを実行するとタイトルを出力させることができる。 dcop で様々な情報を取得したり、また再生・停止などの操作をしたりすることが可能。
@ 再生履歴を取得するプログラムを書いてみた
実行するたびに dcop を使って amaroK から再生中の曲情報を取得し、最後の10曲に関する情報を Storable でファイルに書き込んでおくスクリプトを作成。 あわせて、カバー画像も amaroK からもらって PerlMagick で縮小して保存しておくようにした。
これであとは Web サーバを更新するようにすれば、最近聞いた曲を Web サイトに表示できるようになるはず。
- FreeMind でマインドマップ (2005-06-02)
- amaroK から Last.fm へ送信できるようになった (2006-02-03)
- [ Linux ] SSH remote port forwarding (2004-02-02)
- [ CLIE ] Plucker (2004-03-27)
- Template Toolkit + PAR (2004-09-13)
2006年2月18日 (土)
■ Perl CGI プログラムのテストには WWW::Mechanize::CGI を

CGI プログラムを書いていて、いつも困るのがリグレッションテスト。
パッケージのビルド時に実行するテストスーツ (make check / make test 用テストプログラム群) に含めておきたいが、さすがにその場で Web サーバの下へセットアップするわけにもいかない。 ミニ Web サーバを同梱してテストスーツ内で起動する方法はちょっとおおがかかりだし、ポート番号の選択やらサーバの停止の問題もあって、かなり面倒。
結局、テストスーツの中で環境変数や標準入力など CGI リクエスト環境をセットアップして、CGI プログラムを実行するという王道(?)かつ泥臭いテストを書くことになったりする。
何かいいものはないかと探していたところ、WWW::Mechanize::CGI というものをみつけた。
LWP::UserAgent を継承した WWW::Mechanize モジュールは Web ブラウジングを容易にする有名どころのモジュールである。
WWW::Mechanize::CGI モジュールはさらにこれを拡張したモジュールで、HTTP リクエストを、仮想的に CGI プログラムやサブルーチンへの呼出しにしてくれる。 これを用いるとあたかも Web サーバ上の CGI プログラムにリクエストしレスポンスを受けとっているかのように、テストプログラムを書くことができる。
素晴しい。
さっそく WiKicker のテストを書き換えてみた:
use Test::More tests => 2;
use WiKicker::WikICGI::Controller;
use WWW::Mechanize::CGI;
use File::Temp qw(tempdir);
use File::Spec;
my $www_dir = tempdir(CLEANUP => 1);
my $mech = WWW::Mechanize::CGI->new;
$mech->cgi(sub {
$ENV{PATH_INFO} = '' if $ENV{PATH_INFO} eq '/';
WiKicker::WikiCGI::Controller->new->run});
$mech->env($mech->env,
SCRIPT_FILENAME => File::Spec
->catfile($www_dir . '/wiki'),
SCRIPT_NAME => '/wiki');
my $response = $mech->get('http://localhost/wiki');
ok($response->is_success);
like($response->content,
qr|<title>WikiForum\[WiKicker\]: FrontPage</title>|);
WWW::Mechanize::CGI オブジェクトを new した後、cgi メソッドで CGI サブルーチンを指定するか、cgi_application メソッドで外部 CGI プログラムを指定する。 ここでは直接、CGI サブルーチン (WiKicker::WikiCGI::Controller->new->run を実行)を指定した。
なおここで WWW::Mechanize::CGI が使っている HTTP::Request::AsCGI 0.5 における PATH_INFO の扱いが Apache などとは違って、空でも必ず '/' が入るようになっている。 これだと WiKicker では困るので、サブルーチンのところで修正している。
後は必要ならば WWW::Mechanize::CGI::env で、追加の環境変数設定を行っておく。
セットアップが済めば通常の WWW::Mechanize と同様に get 等でリクエストを行いレスポンスを受けとることができるようになる。
いい。しばらく試してみて不具合がなさそうなら、定番のテストスタイルにしたい。
ちなみに Test::Harness 用の Test::WWW::Mechanize にあわせて、Test::WWW::Mechanize::CGI というものもある。 これらを用いるとさらにテストを書くのが楽になるが、依存するモジュールも多いので無理に使わないほうがいいかもしれない。
- Test::WWW::Mechanize で Web アプリケーションをテ... (2006-09-13)
- 一般ユーザで Apache 2.0 を起動する最小限の httpd.conf (2006-07-15)
- 他の Web サイトの情報を URI::Fetch でキャッシュ付き取得 (2005-10-29)
- CGI プログラム、Out of memory! に泣く (2001-01-04)
- [ WiKicker ] 「最近のアクセスログ」処理思案 (2004-01-17)
2006年5月31日 (水)
■ Debian GNU/Linux に Hyper Estraier 1.2.7 を野良インストールする

DiKicker を使って社内 Blog を始めてから早いものでもう半月ほど経ち、記事もそれなりにたまってきた。
DiKicker にはキーワードによる串刺し表示機能があるものの、検索機能は自前で持っていないため任意の文字列で検索をすることができない。 これだと過去記事が活用されなくなってしまう。
ということでそろそろ検索エンジンをセットアップすることにした。
同じサーバで Namazu をインストールして過去メールの検索に使用しているが、今回は Hyper Estraier を使ってみることにした。
が選択理由。 今回は自分の社内 Blog だけでなく、自分の立てている Wiki (WiKicker) や他人が立てている PukiWiki、静的な HTML ページなどもまとめて検索できるようにしたいという考えがある。 このため複数のサーバに分散したコンテンツを、クローラでインデックス生成できるというのは魅力的である。
P2P連携機能の方は技術的に面白そうということで。
@ Debian GNU/Linux でのテスト
まずは自分のノート PC 上にセットアップして、いろいろ試してみることにする。 さっそく apt-get で Hyper Estraier をパッケージインストール。
estmaster でノードマスタを起動し、ユーザ設定とノード作成を行う。
で次に Web クローラ estwaver の設定をして、ノート PC ローカルの Web サーバのコンテンツをインデックス化してみる。
で、検索。
あれ?
検索結果件数が 0。よくみるとインデックスされている文書が 0 だ。 確かに estwaver がモリモリ fetch して登録しているようなのだが……。
しこたま悩んだ末、Debian パッケージの Hyper Estraier は 1.2.5 でこのバージョンの estmaster は ノードサーバへの登録機能がまだないということにようやく気がついた。
とほほ。
@ ソースからインストール
ということなので、Hyper Estraier 1.2.7 をソースからインストールすることにした。 Debian パッケージの QDBM だと古いので、こちらもあわせてインストール。
今回はパッケージ化せずに /usr/local/hyperestraier-1.2.7 に、とりまとめてインストールすることにしておく。
@ QDBM
wget http://qdbm.sourceforge.net/qdbm-1.8.58.tar.gz tar zxvf qdbm-1.8.58.tar.gz cd qdbm-1.8.58 ./configure --enable-zlib --prefix=/usr/local/hyperestraier-1.2.7 make make check make install
@ Hyper Estraier
wget http://hyperestraier.sourceforge.net/hyperestraier-1.2.7.tar.gz tar zxvf hyperestraier-1.2.7.tar.gz cd hyperestraier-1.2.7 PKG_CONFIG_PATH=/usr/local/hyperestraier-1.2.7/lib/pkgconfig ./configure --prefix=/usr/local/hyperestraier-1.2.7 make make check
インストール完了。
最初インストールしたものを実行すると落ちて何だろうと思っていた。 これについては deb パッケージでインストールした関連パッケージを purge してビルドし直しインストールしたら問題なく動くようになった。
メデタシメデタシ。
明日は会社のサーバでも設定しよう。
- Hyper Estraier で社内 Web コンテンツ検索 (2006-06-01)
- Rubric でプライベート SBS を立てるも 0.140 では日本語に不具合 (2006-07-22)
- Linux で使えるデスクトップ検索ツール Beagle でローカルファイ... (2006-08-08)
- はいぱー日記システムで日記を開始 (2001-05-11)
- メールボックスを Gmail に集約 (2007-08-08)
2006年6月10日 (土)
■ WiKicker における PageName 最長文字数

WiKicker では PageName を エンコードした文字列を URI に埋め込んだり、サーバで保存する際のファイル名にしたりしている。 このため、PageName の最長文字数はそれらの最長文字数に依存しているはずである。
今まで確認を後回しにしていたのだが、新しい機能の追加の際に確認しておく必要があるので調査してみた。
@ WiKicker の実装
WiKicker の実装がらみとして最長を決める要素としては
- PageName の UTF-8 表現を URI エスケープしてページ URI に含めている。→ URI、HTTP、HTML、Web サーバ、Web ブラウザの実装による最長の制約
- PageName を base64 にエンコードしてファイル名にしている。→ ファイルシステムのファイル名、パス名の最長の制約
がある。
@ 各仕様等による制約
- HTTP では URI の長さには制限なし (RFC2616 3.2.1)
- Web サーバは Request-URI が長いと 414 Request-URI Too Long を返す (RFC2616 10.4.15)。Apache は LimitRequestLine ディレクティブにより、URI を含むリクエスト行のサイズを制限することができる(配布時には 8190)。
- Internet Explorer が扱える URL の長さは 2083文字。
- ext2 はファイル名は 255文字まで(増やすこともできる)。
- 手元の Linux 2.6.15 で試したところ、パス名は 4095文字まで。
@ WiKicker で問題が出ない PageName 最長文字数
上記の中ではファイル名による制約が一番大きい。
WiKicker 内部でファイル名として base64 (の亜種) でエンコードしたものを使っているので、元の文字列はは最長 189バイトまでなければならない。base64 だと3バイトで4文字になるため、189バイトで 252文字となる。
WiKicker ではここでさらにファイル名に ',v'、'-lock' をつける事があるので、実際には元の文字列は最長 186 バイトまでとなる。
PageName が 186 バイトまでだとすると、URL エスケープしたとして558バイト。 WikiEngine のスクリプトの URL や他のパラメータとあわせても、これぐらいなら大丈夫のはずである。
ということで WiKicker では Linux 上だと通常 PageName は 186 バイトが最長と言ってよさそうだ。 日本語の文字はだいたい UTF-8 で3バイトになるので、62 文字までということになる。
そのうち、WiKicker に制約チェックを入れることにしよう。 そのうち。
- Windows 上での Apache 2.0.53 では PATH_INF... (2005-04-10)
- 最後がピリオド(.)で終わるファイル名をつけられない (2005-04-19)
- WiKicker 実装 (2002-10-20)
- WiKicker 0.35 リリース - 添付機能の修正など (2006-06-20)
- [ WiKicker ] If-Modified-Since: 関連作業ほぼ済 (2003-09-19)
スポンサード リンク
■よく検索されるキーワード
torrent(109) x31(45) thinkpad(31) 動画(29) 提案書(26) mp980(24) 手帳(24) windows(23) linux(23) 画像(21) 使い方(21) リフィル(21) debian(20) usb(20) tc-1(19) perl(19) 筆まめ(18) 壁紙(17) ほぼ日手帳(16) 冷蔵庫(14) ドラマ(13) wiki(13) 書き方(12) ダイソー(12) システム手帳(12) 宮根誠司(12) ノート(11) so905ics(11) 無印(11) バッグインバッグ(11) 映画(11) 設定(10) 修理(10) 宮根(9) ssh(9) a6(9) ほぼ日(9) 黒田征太郎(9) バッグ(9) gmail(8) 感想(8) 娘(8) f-01a(8) メモリ(8) gtd(8) ブログ(8) nikon(8) allinanchor:*.torrent(8) ボールペン(7) 方眼(7) ポイント(7) 4c(7) ヨドバシカメラ(7) ケース(7) twitter(7) apache(7) ht-01a(7) ヨドバシ(7) ubuntu(7) truecrypt(7) n-02a(7) 作り方(7) minolta(7) af(6) インストール(6) ガントチャート(6) mp3(6) zippo(6) hdd(6) emacs(6) レビュー(6) カバー(6) vq1005(6) 日本語(6) ハクキンカイロ(6) 無印良品(6) グレゴリー(6) 交換(6) nikkor(6) pixus(6)■注目キーワード
購入 買った 発売日 フリー 無料 価格 値段 作り方 選び方 使い方 方法 設定 サンプル ダウンロード 限定 在庫 予約 穴場 比較 検証 レビュー 感想 評価 評判 使用感 使ってみた 口コミ 噂 最新 MP3 動画 意味 お薦め お勧め おすすめ 便利 Blog ブログ mixi 修理 デザイン ビックカメラProcess Time: 0.246507s / load averages: 0.14, 0.19, 0.24
nDiki by WATANABE Yoshimasa (profile)
Powered by DiKicker
Base theme by Nana (for tDiary)











スポンサード リンク