Catalyst使ってみた

ってことで早速Catalystをさわってみましたヨ。

まずは手始めに、Class::DBIを必要としないElementary, ... use Catalyst qw(初挑戦);のサンプルをなぞってみた。

一つ一つ解釈しながら手動かすとなるほどなるほどよくわかります。

sub default : Private { my ($self, $c) = @_; $c->res->output('Hello World! &l;ta href="page2/">go to page.'); }

でここの部分でHTMLを解釈しなかったので?と思ったが、多分Content-Typeだろうなと思って、それを追加したらうまく表示された。

sub default : Private { my ($self, $c) = @_; $c->res->content_type("text/html; charset=UTF-8");  $c->res->output('Hello World! <a href="page2/">go to page.'); }

ちょっと触れただけだけど、かなり面白い!なんといってもテスト用のサーバーがスクリプトから起動すると、すごく便利だ。

WEB+DB PRESS

PDFのPerlStyleがかなりためになった。特に2回のClass::DBIのあたりと3回のTemplate-Toolkitの使い方はかなりわかりやすかった。

ProductName Web+DB press (特別総集編)

技術評論社 / ?円 ( 2005-03 )


ってことはCatalystに突入かも。

ちょっと作り直したいものがあるので、Catalystでやってみたい気分満載じゃ。

音ログエラー

DOM & OPTICALでなにやら、ファンキーチックなのが出てきたヨ

DOM & OPTICAL

WWW-Curl

CurlではOKだけどWgetはプロキシーが超えられないという謎の挙動は、結局解決しなかった。500番(Internal Server Error)でSSLの接続ができないというエラーなのはわかったが。

[Yum-devel] RHN Support

Some added "magic" is apparently needed since rhnlib is able to go through it but urllib isn't. Actually the same problem happens with wget vs curl: curl is able to go through the proxy with https, wget isn't, with the same exact proxy config. Any ideas?

色々調べたけど、そういうものっぽいのか?

というわけで、WWW::Curlを入れてみた。

make testのあたりが素直でないので、perl -MCPANでなくて、普通にmake test無しでいれた。force installでも良かったのかな

#!/usr/bin/perl use strict; use WWW::Curl::Easy; my $url = 'https://www.google.com/adsense/'; my $curl = new WWW::Curl::Easy; $curl->setopt(CURLOPT_URL,$url); #$curl->setopt(CURLOPT_SSL_VERIFYHOST,0); #$curl->setopt(CURLOPT_SSL_VERIFYPEER,0); my $code = $curl->perform;

認証周りで悩んだときはCURLOPT_SSL*をつけておけばいい。ちょっと使ってみた感じではやっぱCURLOPT_周りがわかりにくいのと、やっぱWWW::Mechanize使いたかったなぁってこと。

カワハギボート釣り

沼津の西浦で久々のボート釣り。狙うはカワハギ

富士山を眺めながら、昼過ぎ釣り開始。暖かくて、釣り日和かなと思っていた割には、釣りはじめてすぐに風が強くなってしまった。やたらと荒い波に、ボートが木の葉のように揺れまくって、あたりはとりにくいし、餌も針につけづらくなっている状況に加え、干潮がやってきて、あたりが全然なくなったのと同時に会話も途絶えた。

ちょっと失敗したかなと思った(っていうか全然釣れないし、帰ってもいいかななんて。)が、久しぶりの釣りという事で、強風のなかなんとかボートを波の弱い生簀と生簀の間に移動。揺れに耐えながら釣り続行。結局3時過ぎには、風が弱まって快適に。

海面が綺麗なので撮ってみた。そして、外道で石鯛の稚魚が二匹と真鯛の稚魚が3匹釣れたがリリース。一応、アジとか鰯とかのためにサビキ仕掛けは持っていったが使わなかった。

結局七匹釣れたので、ノルマとしては達成したかな。日が落ちる寸前まで釣っていたので、富士山赤く染まり始めてました。てっぺんは白く染まってます。

帰って捌いて肝和えにして旨かった。明日は、残った白身を鍋にでもしようかと。

PVFS(Parallel Virtual Filesystem)

クラスタでPVFS組んだら、実際にI/O performanceがどのくらいあがるのかは気になるところだ。

IBM dW:Linux:高性能Linuxクラスタリング、第1回:クラスタリングの基本 - Japan

ファイル入出力がボトルネックになるとき

一部のアプリケーションは、ディスクに大量のデータを頻繁に読み書きする必要があり、しばしば、計算の中で最も遅いステップになります。より高速なハード・ドライブがあればよいのですが、十分に高速でない場合もあります。

Linuxクラスターで一般的なように、物理ディスク・パーティションがすべてのノード間で共有されていた場合(たとえば、NFSを使用して)、問題は特に明白になります。このような場合は、並列ファイルシステムが便利です。

並列ファイルシステムは、ファイル内のデータを、クラスターの複数のノード(I/Oノードといいます)に接続された複数のディスクに分散します。プログラムがファイルを読み取るときには、そのファイルの複数の部分が複数のディスクから並行して読み取られます。これにより、特定のディスク・コントローラーの負荷が軽減されて、より多くの要求を処理できるようになります。(PVFSは、オープン・ソースの並列ファイルシステムの好例です。標準的なIDEハード・ディスクを使用したLinuxクラスターで1GBsec以上のディスク・パフォーマンスが達成されています。)

WWW::MechanizeとCurlでIISの認証を通す

大抵の会社のイントラはサーバーがIISで、しかも、ウィンドウズの認証使っていることが多いはず。(そして、素人にもわかる微妙なASPで汚いHTMLが吐き出されていて、改行のないHTMLが、、、)

まぁそういったURLも、自動チェックさせるとやっぱ便利なんで、すこしイントラのサイトも、WWW::Mechanize+XML::RSSで効率よく捌こうとおもっている。ところで、WWW::Mechanizeでウィンドウズの認証どうすんの?という話になるがLWP::Authen::Ntlmがあるから大丈夫らしい。

ポイントはkeep_aliveを忘れないことと、credentialsメソッドを使うことだ。

use strict; use WWW::Mechanize; # my $mech = WWW::Mechanize->new( keep_alive => 1, autocheck => 1); # $mech->credentials('www.company.com:80', '', "MyDomain\\MyUserCode", 'MyPassword');

curlだったら--ntlmオプションをつければよい。

curl --ntlm --user username:password site_url

ただ、HTMLをGETしたいだけだったらcurl->mailでもいいかもとは思う。

福梅

なめり駅の側にある、福梅(うどん屋)で冷やしきつねをいただいた。

udon

甘く煮付けた揚げと生姜のすりおろしがさっぱりしていてうまかった。

curl

--traceオプションでトレースできて便利!

さて、WWW::Mechanizeのhttps通信がプロキシを超えられなくてすっかり凹んでる。IEもネットスケープもcurlもうまくいっているのにwgetとWWW::Mechanizeはプロキシにはねられテルっぽいってどういうこと?はねられてるってよりも500返してきてるってのがどうも気に入らないゾ。

プロキシかまさなければ、WWW::Mechanizeもきちんと通信出来ているので、もしやヘッダーか?やっぱヘッダーなのか?と疑っているが、正直疲れた。

なんか鍵絡みの気がしないわけでもないが、、、