27052007 music
メタモが楽しみ
27052007 music
メタモが楽しみ
27052007 perl
FC6のこんな構成で
CatalystからImage::Magickが動かない。Catalyst組み込みのサーバーだとOKなんだけど、mod_perl,fcgidでは動かない。
どうも、アップロードしたファイルが読めてないようで、
my $i = Imager->new; $i->read(file => $upload->tempname);
のところでコケテル。あーselinuxの設定か?と思って見直したんだけど、全然違った。単順にアップロードするだけならできてるし、readできてないみたい。
もうちょっと追ってみたら、
Exception 420: no decode delegate for this image format
とあってどうもImage::Magickがファイルの形式判別できてないみたいな感じ。
うーん、全然わからんなぁと悩んでたら、use Imager; という記事がナイスなタイミングで。
ナイスすぎる。早速乗り換え。
っていうかちょっと書き直しただけですぐ動いた。
my $i = Imager->new; $i->read(file => $photo_data->tempname); my $w = $i->getwidth(); my $h = $i->getheight(); my ($width,$height,$top,$left); if($w > $h){ $width = $h; $height = $h; $top = 0; $left = int(($w - $h)/2); }elsif($h > $w){ $width = $w; $height = $w; $top = int(($h - $w)/2); $left = 0; }
画像を正方形にして36pxのアイコンにするという処理なので、とりあえずちょっと書き直したら動いたけど、
例えば scale() の項目を見ると、200x200に「収まるように」小さくするには、type => 'min'、縦横比を無視してそのサイズに引き伸ばしたい場合は type => 'nonprop' というオプションをつければいいことがわかります。
minっていうオプション付けれぼ綺麗にかけそう。
そういえば、ImagerとかImage::Magick,imlib2なんかのリサイズを比較したエントリあったなと、livedoorclip探した。タグつけしないと探しづらくてあかんなぁ。
25052007 wiki
FSWikiにXML-RPCのインターフェースつけた。
Gamessとかの科学計算にはありがちな、長々とした実行結果をパースして、Wikiに突っ込むとかするとよいかもと思ってる。解釈を書き込めるし、編集も簡単だし、pdfに出力できるし。
24052007 perl
TheSchwartzで分散ジョブ実行環境が順調に立ち上がったのだけどWorkerのプロセスってのは普通どうしておくんだろうか?
nohupで動かしておくんだろうか?
それともデーモン化させたほうがいいんだろうか?
と、コンソールで立ち上がってるWorker眺めながらふと考えた。
24052007 perl
HTML::Widgetをつかってるフォームでタグ入力の部分をgoogle suggestっぽくやりたかったので、widgetに空のdivタグを突っ込むひつようがあった。
が、結局fieldsetタグの外側に押し出されてしまって思ったようにdivを突っ込めなかった。
my $w = $c->widget('bookmark_form')->method('post'); $w->element_container_class('Cheer::Container'); my $com_area = $w->element('Textarea', 'comment' ) ->label('comment: '); $com_area->cols(60) ->rows(5) ->value($comment); my $t = $w->element('Textfield', 'tag' )->size(50)->label('tag(word): '); $t->value($joined_tag) if $joined_tag; $t->attributes( autocomplete => "off" ); my $e = $w->element( 'Upload', 'pdf' )->size(20)->label('pdf_file : '); $e->accept('text/html'); $e->maxlength(1000); $w->element('Submit', 'submit' )->value('submit'); $w->element('Block')->attributes( id => "suggest" );
しょうがないので最後にBlockを突っ込んでからmargin指定してDivの位置をそれっぽく合わせた。
24052007 apache
あらー、昨晩サーバーにつながらなくて更新できなかったヨ。
ってわけで、早く寝て早く起きる。起きたら、アクセスログ見て原因っぽいTMCrawlerを弾くようにした。
CatalystでTT使ってRSS2.0のフィードを吐き出したかったんだけど、datetimeのあたりでRFC822のフォーマットで時刻を出力しないといけないらしい。
都合のいいプラグインがみつからなかったので、Template::Plugin::DtFormatterを使って。
[% USE DtFormatter(patterns => {
'rfc822' => '%a, %d %b %Y %H:%M:%S %z',
time_zone => 'Asia/Tokyo' }) -%]
...
<pubDate>[% DtFormatter.format(ub.clip_time, 'rfc822') %]</pubDate>
フォーマットはDateTime::Format::Mailを参考に。
TT使わないでXML::Feedを使ったほうが良いのかな?
わからん。
22052007 music
21052007 php
tiny tiny rssをイントラにインストールして使おうとしたんだけど、lwpでいうno_proxyみたいな設定がないので困った。
結局Snoopyの_connectメソッドに、正規表現をこんな感じで追加して、イントラのサイトのRSSはプロキシーを介さないようにしてみた。
function _connect(&$fp,$URI) { if(!empty($this->proxy_host) && !empty($this->proxy_port) && !preg_match('/mywork.co.jp/', $URI)) .............. if($this->_connect($fp,$URI))
ちゃんと動いているっぽい。