トップ(最新)

nDiki : WWW

WWW - World Wide WebWeb

スポンサード リンク

Related term

1999年1月19日 (火)

mirror-2.9, put の chmod 不具合 このエントリーを含むはてなブックマーク

WWW ページ管理の仕事で mirror 2.9 を利用しているのだが、いままでアップロード(put)時にサーバ側で chmod がうまくできないでいた。 相手 FTP サーバは FTP server (Version wu-2.4(7) Tue Jun 9 21:37:03 JST 1998)。 ftp で chmod すると

 501 CHMOD: Mode value must be between 0 and 0777

というエラーになってしまう。 どうやら Perl の関数でローカルのファイルの mode を取得した時のものをそのまま送ってしまっているのが問題のようだ。

mirror の 3419行目

 # Convert from octal
 # Suggested patch to limit bits being set
 # $mode = $mode & 0777; ここ!

のコメントマークを外して有効にすると chmod 成功するようになった。

スポンサード リンク


[ 1月19日全て ]

2001年1月4日 (木)

CGI プログラム、Out of memory! に泣く このエントリーを含むはてなブックマーク

昨日Web サーバWWW::Search モジュール、拙作 WWW::Search::Namazu2 をインストールNamazu メタサーチ CGI も準備万端。手元でもきちんと動作している。

Web サーバ上に CGI プログラムをセットアップ。 入力ページもきちんと出た。 が、検索させると結果がでない。 Apacheエラーログを見ると……Out of memory!

無限ループかなにかに落ちるところはないんだけどなぁ……。 いろいろコネクリまわしたが、Out of memory! は解消できず。 WWW::Search モジュールを手でいじって、使わないモジュールのロードをおさえたりすると、ちょっと先まで進むようになるがやはり Out of memory!

モジュール間の相性でメモリを食いすぎている……なんて事もないだろうなぁ。

 $ulimit -a
 cpu time               (seconds, -t)  unlimited
 file size           (512-blocks, -f)  unlimited
 data seg size           (kbytes, -d)  524288
 stack size              (kbytes, -s)  65536
 core file size      (512-blocks, -c)  unlimited
 max memory size         (kbytes, -m)  unlimited
 locked memory           (kbytes, -l)  unlimited
 max user processes              (-u)  4115
 open files                      (-n)  8232

の限界を越えたか? サーバのメモリはさすがに使いきってないようだし。 バーチャルサーバだけに1プロセスがメモリ食いすぎると(他人にされると自分も)困るので理解できるが、ちと苦しいなぁ。

Perl をやめる」という案は「Perl モジュール開発」と相反するから却下。

@ 追記

2001年5月6日に、Apache の設定で limit がかけられているらしい事が判明。 (2001年5月6日追記)


[ 1月4日全て ]

2003年12月9日 (火)

[ お仕事 ] サーバ構築開始 このエントリーを含むはてなブックマーク

来月OCNエコノミー回線を利用していたWWW/DNS/SMTPサーバをADSL回線側へ持っていくため、同時にサーバも新しく設定しなおすことに先日決まったのでそろそろ準備を。

最低限RAID1ぐらいを組んでおこうといろいろ検討したのだが、Debian GNU/Linux を使って安価にATAハードウェアRAID組めるカードが見つからず(FastTrak TX2000は管理ツールがWindows用しなないようだし、RockatRAID 133 は Debian GNU/Linux で使っているという情報がほどんどないし)。

で結局ソフトウェアRAIDにすることにした。

@ Deskstar 7K250

http://www.naney.org/personal/diary/img/2003/X/X2003-12-09-0004.jpg

(7200rpm, UltraATA/100, FDB) 80GB を2台。 購入。

@ GATEWAY のPCへ

Promise Ultra ATA 66 GATEWAY

以前私が開発Windows BOX として使っていたPCをサーバにあてることになっている。 フタを開けて2台はいっているHDD(13GB と 60GB)を抜いて買ってきた Deskstar と交換。 内蔵ベイのディスク交換のためベイごと抜かなければならないので面倒。

@ Debian GNU/Linux

GATEWAY

インストールCDでブート。HDD発見できず。 実はHDDはもともと ATA66カードで接続していたので(CD-ROMはオンボート)、このままでは認識しないと。 メニューから一旦 shell に入って、

 cat /proc/pci

で、

 Bus  0, device  13, function  0:
   Unknown mass storage controller: Promise Technology Unknown device (rev 1).
     Vendor id=105a. Device id=4d38.
     Medium devsel.  IRQ 10.  Master Capable. Latency=64.
     I/O at 0x1440 [0x1441]
     I/O at 0x1434 [0x1435]
     I/O at 0x1438 [0x1439]
     I/O at 0x1430 [0x1431]
     I/O at 0x10c0 [0x10c1]
     Non-prefetchable 32 bit memory at 0xe8000000 [0xe8000000].

と出たので、

 boot: linux ide0=0x1440,0x1436 ide1=0x1438,0x1432

でブート。これでめでたく認識。 ここで今日はそろそろタイムアウト。 続きはまた明日。


[ 12月9日全て ]

2006年12月12日 (火)

PAR::Repositoryビルド済み Perl モジュールをネットワーク配信 このエントリーを含むはてなブックマーク

@ 実行可能ファイル作成としての PAR

PAR といえば Perl スクリプトを実行可能ファイル(Windows なら EXE 形式ファイル)に変換するモジュールとして有名である。

ちなみに実行可能ファイルを作成する部分はは PAR 0.97 より PAR-Packer パッケージに分けられ、PAR 自体はインストールしやすい pure Perl なパッケージになっている。

@ PAR モジュールアーカイブからのローダとしての PAR

PAR が提供するもう一つの(こちらが本来はメイン?)機能は、プログラムの実行時に必要な Perl モジュールPAR ファイルと呼ばれる Perl モジュールアーカイブファイルからロードする機能である。 XS モジュールなどもコンパイルすることができるどこかの環境で1度ビルドして PAR ファイルにしておけば、同じアーキテクチャのホスト上でそのまま利用することができる。

@ PAR リポジトリ

ロードしたい PAR ファイルはファイルパスだけではなく URL でも指定することができ、必要な時にオンデマンドでフェッチさせることができる。 これを使えば Perl プログラムの集中管理可能だ。

PAR 0.951 からは PAR リポジトリというコンセプトが追加され、パッケージ毎に作った PAR ファイルをサーバ上(あるいはローカル)のリポジトリに蓄積してオンデマンドでロードできるようになった。

個別に PAR ファイルを指定する従来の方式に比べてかなり便利そうである。 ということで試用してみた。

まずは

あたりをインストールし準備 OK。

@ 1. PAR リポジトリを作成する

最初に PAR-Repository に含まれている parrepo で。

 parrepo create -r /tmp/PAR

PAR リポジトリファイルの中にはデータベースファイルが作成されるが、これは DBM::Deep というアーキテクチャ非依存のものを使っているので、Linux でも Windows でもどちらからでもアクセス可能である (つまり Linux 上でリポジトリをメンテできるということだ)。

@ 2. Perl パッケージを PAR ファイル化する

次に必要な PAR ファイルを作成する。 作成したいパッケージを展開してビルドし、blib ができている状態で PAR::Dist を使ってパッケージ化する。

 perl Makefile.PL
 make
 make test
 perl -MPAR::Dist -e blib_to_par

例えば ActivePerl*1 上で WWW-Mechanize-1.20 を PAR ファイル化すると

 WWW-Mechanize-1.20-MSWin32-x86-multi-thread-5.8.8.par

というファイルが作成される。

普段から ActivePerl で必要なライブラリは基本的に自前で PPM パッケージ化して、動作確認した上で PPM リポジトリに蓄積するようにしているので、合わせて次の手順でパッケージを作ることになる。

 perl Makefile.PL
 nmake
 nmake test
 perl -MPAR::Dist -e blib_to_par
 make_ppm

*1ここでは Windows 上の

@ 3. PAR リポジトリPAR ファイルを登録する

PAR ファイルができたら parrepo でリポジトリに登録する。

 parrepo inject -r /tmp/PAR -f xxx.par

@ 4. PAR リポジトリ上のライブラリを使用してみる

例えば先ほどの WWW::Mechanize がリポジトリに登録されている状態で

 #!/usr/bin/perl
 use PAR { repository => 'file:///tmp/PAR/' };
 use WWW::Mechanize;
 my $mech = WWW::Mechanize->new;
 $mech->get('http://www.example.com');
 print $mech->content;

というスクリプトを書いて実行すると、PAR リポジトリから WWW::Mechanize がロードされて正しく実行される。

ここでリポジトリを Web サーバアップロードして、repository のところに URL を指定するようにすることもできる。 例えばリポジトリを http://www.example.com/PAR/ に配置したとすると

 #!/usr/bin/perl
 use PAR { repository => 'http://www.example.com/PAR/' };
 use WWW::Mechanize;
 my $mech = WWW::Mechanize->new;
 $mech->get('http://www.example.com');
 print $mech->content;

と書き換えることで、インストールしていない WWW::Mechanize を使用できるようになる。

@ Perl プログラムを実行形式化する

先ほどの Perl スクリプトを get_top_page.pl という名前で保存して pp で実行ファイル化する。

 pp -o get_top_page.exe -M PAR::Repository::Client get_top_page.pl

とすれば get_top_page.exe という実行可能ファイルが作成される。 WWW::Mechanize はオンデマンドで http://www.example.com/PAR/ からフェッチされるので、アップデートが必要な場合は新しい PAR ファイルを作成してリポジトリを更新するだけでよい。 EXE ファイルを作成しなおして利用者に配付しなすといった作業も不要だ。

@ スクリプトもリポジトリにおく

さらには実行するスクリプトをも PAR リポジトリに置いておくことが可能だ。

例えば WWW-Mechanize に含まれている mech-dump をオンデマンドにフェッチして実行する実行形式ファイルは以下のコマンドで作成できる。

 pp -o mech-dump.exe -M PAR::Repository::Client \
   -e "use PAR { repository => 'http://www.example.com/PAR/', \
                 run => 'mech-dump' }"

@ まとめ

ActivePerl では PPM があるとはいえ、普通のユーザにちょっとしたプログラムを使ってもらうのに「ActivePerlインストールして、PPM パッケージインストールして、……」というのは手間すぎる。

pp で プログラムに必要なものを全てバンドルした実行形式化ファイルにするという方法ももちろんあるのだが、頻繁にアップデートするようなスクリプトの場合には、起動のための部分だけ pp で作成しておいてあとは PAR リポジトリで集中管理するというのもちょっと魅力的である。


[ 12月12日全て ]

Related web page

mixi2gmail WWW::Mechanize 0.7.5/Hpricot 対応版 - World Wide Walker
* &nbsp;mixi2gmail.rb少し前から mixi のちょこちょこした変更もあって以前書いたmixi2gmail.rb の挙動が怪しくなっていたので、<strong>WWW</strong>::Mechanize 0.7.5 への対応も兼ねてコードを書き直した。最近のバージョンでは取得結果を Hpricot::Doc で返すようになり、XPath での検索も出来るようなので、以前の正規表現で切り出す形から XPath で抜き出す形に変更。画像の扱いもHTMLの中にインラインで表示さ
http://yoosee.net/d/archives/2008/04/04/002.html
www.luxiotech.com - LuxioTech k.k.
http://www.google.com/gwt/n?source=pagecreator&u=http%3A%2F%2Fwww.luxiotech.com-a.googlepages.com%2Fhome
勝手にブログ評論(α版) http://www.naney.org/diki
GET リクエストのようであるとも言える。漆黒のコーディングは、闇夜に舞う。紳士淑女は刮目してノート PCを見よ。どれだけ多くの血を流そうとも、必ずやを手に入れるという作者の強い意志を感じる。結局、ノート PCしかない。むしろ「パック伝票待ち」大会などと称して、それをたたえるのはどうだろうか。ホームエレクターがそんなに好きなのか。まあ良い。パリの12区あ
http://onosendai.jp/hyoron/hyoron.php?URL=http%3A%2F%2Fwww.naney.org%2Fdiki
WWWブラウザによる設定におけるクロスサイト・リクエスト・フォージェリの脆弱性について - FAQ for YAMAHA RT Series / Security
RTW65b と RTX1100 と RT107e でビンゴ。
http://www.rtpro.yamaha.co.jp/RT/FAQ/Security/JVN88575577.html
WWW SQL Designer
http://ondras.zarovi.cz/sql/
WWW::Mixi 0.50版公開。 - Walrus, Voxing.
どこかに書いたか忘れましたが、<strong>WWW</strong>::Mixiの開発動機には「inetdでは<strong>WWW</strong>::Mechanizeを使えない(使えなかった)けど、LWPでmixiのscrapingは面倒!」と思ったことがあります。そこで、LWPモジュールさえ利用できれば動作する<strong>WWW</strong>::Mixiモジュールを作成しました。私のイメージでは、<strong>WWW</strong>::Mixiと<strong>WWW</strong>::Mixi::Scarperでは依存モジュールの差も、大きな違いです。 このところ、「perl」タグの記事 - Walrus,
http://walrus.vox.com/library/post/wwwmixi-050%E7%89%88%E5%85%AC%E9%96%8B.html
www.textfile.org - 自分はもうこれ以上は仕事できない、というところから5回くらいは壁を越えられる気がする
http://d.hatena.ne.jp/jkondo/20070727/1185575866 id:jkondoさんによる。 うーん、主旨はわからないでもないけれど、人によっては危険な考え方。取扱注意な文章だと思う。 結城の経験を振り返ってみると「ああ、あのとき頑張って本当によかった」と思うこともあるけれど「ああ、あのとき頑張らなくて本当に本当によかった」と思うこともたくさんある。そして、「頑張らなくてよかった」
http://d.hatena.ne.jp/textfile/20070728/jkondo
www.textfile.org - Six Basic Truths of Free APIs
http://radar.oreilly.com/archives/2007/04/six_rules_for_a.html 「フリーなAPI」についての6個の基本的な真実。以下は(かなりはしょった)要点。 フリーなAPIを提供している企業には理由がある。 APIがなくならないようにするためにはお金がかかるものだ。 API提供者が想定していない利用法をしたら、API提供者と喧嘩することになるだろう。 API提供者は、そのAPIの上にあなたよりも容易に類似
http://d.hatena.ne.jp/textfile/20070501/sbtofa
www.textfile.org - ビル・ゲイツは娘のPC利用時間を制限している
CNETの記事やITmediaの記事によると、ビル・ゲイツ氏は娘のPC利用時間を平日は1日45分間、週末は1日1時間(宿題に使う場合はそれ以外の使用を認めている)に制限しているらしい。 http://slashdot.jp/article.pl?sid=07/02/24/2315202 以下、結城の家の話。我が家では子供のPC利用時間を制限していない。今度検討しよう。現在は、 子供の専用PCがある。 PCを使う場所は親の隣の席。 子供のPCはイ
http://d.hatena.ne.jp/textfile/20070301/pc
www.textfile.org - 『Compilers』Monica S. Lam, Ravi Sethi, Jeffrey D. Ullman, Alfred V. Aho
Compilers へえ。ドラゴンブックの新版? &quot;21st Century Compilers&quot; だそうです。 via http://<strong>www</strong>.kmonos.net/wlog/64.html#_1452060831 ;---------------------------------------------------------------------
http://d.hatena.ne.jp/textfile/20060831/dragon

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

うなぎ(432) スーパー(266) 温め方(192) 温め(74) 書き方(47) 調理(46) perl(44) 提案書(37) windows(36) linux(35) cvs(32) アジェンダ(29) ウナギ(28) debian(25) ドラマ(22) svn(21) 壁紙(21) 動画(20) (19) java(19) ガッテン(18) 美味しく(18) 冷蔵庫(18) インストール(16) 画像(16) サンプル(16) 使い方(15) rcs(14) 修理(14) テンプレート(13) torrent(12) ためしてガッテン(12) tc-1(12) 温める(12) so905ics(11) web(11) iphone(11) x31(11) 渡辺杏(11) subversion(11) make(11) ganttproject(10) 影舞(10) おいしく(10) ノート(9) ガントチャート(9) パック(9) ヨドバシカメラ(9) gmail(9) apache(9) ツール(9) 映画(9) porter(9) 時計(8) thinkpad(8) emacs(8) wiki(8) usb(8) レンジ(8) google(8) gtd(8) 大井町(8) gnu(8) c#(7) ダイソー(7) 4c(7) 日本語(7) twitter(7) 提案書の書き方(7) 生年月日(7) 市原隼人(7) リフィル(7) pc(7) c++(7) 写真(7) djunit(6) scons(6) ボールペン(6) 故障(6) 方眼(6)

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

Process Time: 0.054454s / load averages: 1.20, 1.37, 1.38
nDiki by WATANABE Yoshimasa (profile)
Powered by DiKicker
Base theme by Nana (for tDiary)