2008-01-24 Thu

Imager で JPEG ファイルを扱うときの画質レベル

少し前に、写真をブログ用に縮小する Perl スクリプトを書いたのですが、
どうも生成される画像の質がよろしくありません。

かなりストレスを感じたので、Imager のマニュアルに目を通すと、
以下のような趣旨の一文が見つかりました。

画像を write するときに、jpegquality を設定できるよ。標準値は75だよ。


あわてて試したところ、「jpegquality = 95」くらいだと、
食べ物がおいしそうなまま画像が小さくなることが分かりました。
今後 Imager を使うときは、jpegquality くらいは設定します。

投稿者:としのり  日時:23:59:59 | コメント | トラックバック |

2007-04-21 Sat

HTTP::Response::Encoding

HTTP::Response::Encodingというモジュールが公開されていた。

404 Blog Not Found:CPAN - HTTP::Response::Encoding Released!

HTTP-Response-Encoding を Release したのでお知らせします。


とても手軽に利用できて良いですね。
研究室には文字化けで困っている人が多いので、喜びそうです。

個人的に使っているモジュールでは、HTTP::Response::Encodingと
同様にレスポンスのヘッダーを見て文字コードを探しています。
# 駄目ならコンテンツ中のmetaタグをみたり、あきらめてGuessしたり。

取得するコンテンツの文字コードがshift-jisとeuc-jpの場合に、
Content-Typeヘッダーに文字コードとして解釈できないものが
意外と入ってくると感じるので、
文字コードとして解釈できないパターンを見つけるたびに、
正規表現パターンを拡張しています。

投稿者:としのり  日時:23:59:59 | コメント | トラックバック |

2007-04-08 Sun

Gangho

Xangoの牧さんが開発中の、クローラーフレームワークの
バージョン0.0.1が公開された。

現状ではXangoよりも性能が劣るみたいだけど、
将来的には良い感じになるはずです。
応援してます。

投稿者:としのり  日時:23:59:59 | コメント | トラックバック |

2007-04-07 Sat

Xangoは何かが変らしい

弾さんと話したときに、Xangoが何か変と言っていた。
私が今まで使っていたのは、古いXangoだったので、
今回のHackathonで最新版を見てみようと思う。
変じゃありませんように。

でも、まー、たぶんXangoはやんちゃなので、
POEがついてこないんじゃないかな??
という話をid:nagayamaとした。

画像

ちなみに、弾さんの家に来てみたら昨日帰ったはずの
id:nagayamaとid:yappoがいてビックリ。
夜中に楽しいことがあったらしい。いいなー。

投稿者:としのり  日時:23:59:59 | コメント | トラックバック |

2007-04-06 Fri

libusbとDevice::USBのインストール

YAPC::ASIA 2007で大盛り上がりした、Yappoさんの
Device::USB::MissileLunchersをインストールしようとした。

必要なものは、libusbとlibusbを叩くDevice::USB、
あとは、Device::USB::MissileLunchers(CPANにない)。

libusb


% wget http://prdownloads.sourceforge.net/libusb/libusb-0.1.12.tar.gz
% ./confiure
% ./make
% ./make install

Device::USB


cpanシェルで、install Device::USBするだけ。

・・と、ここまで来たところで、竹迫さんがミサイルを発射したので、
情熱がどこかへ行ってしまった。なので作業終了。

とりあえず、libusbを使うとUSBデバイスの認識や操作を
できるということが頭に刻み付けられたのでおk。

投稿者:としのり  日時:23:59:59 | コメント | トラックバック |

2007-04-06 Fri

CPANモジュールのアップは1回目はノリで

川崎さんにCPANモジュールのアップについて聞いてみたら、
「1回目はノリでアップしちゃえば?」と言われた。
本当にノリでアップして失敗しないようにだけ、気をつけよう。

なんでCPANモジュールのアップを考えるかというと、
自分が研究で使うモジュールを、頻繁にコピーしてるうえに、
そのモジュールを配布することが多くなったから。
自前のモジュールもたまにアップデートするし、
何よりコピーして渡すのは面倒。

「Install hogehoge」すれば、インストールできるよって
言ってあげることで、面倒な作業から開放される人を
何人か見捨ててきたので、そろそろ助けられる人になりたい。
そのためには、まずはアップロードだよね。

実際には、自前のモジュールの置換可能な部分は
極力、既存のモジュールを使うようにしたり、
メソッド名を整備したりとか、いろいろやることは多い。
何事も順番にやろう。

投稿者:としのり  日時:23:59:59 | コメント | トラックバック |

2007-04-06 Fri

Hackathon 1日目

Hackathonに参加させてもらえることになったので、
格好良いことで有名な弾さんのお宅にお邪魔した。

エレベーターに乗る前から驚きの連続だったし、
ドアが開く音にも、中に入ってからも驚いた。
私の想像力を超えた広さだったので、
行く人が口々にすごいと言うのは良く分かった。

家に入ると、すでに石垣さんや川崎さんがいた。
あとKaoとIngyとJessyとLiuと、・・・って、
普段Perlを介してお世話になっている人が
沢山いてミーハーな私はそれだけで感動した。

慣れない雰囲気に慣れるまでに1時間くらいかかった。

Kaoの料理とNaomiさんのもてなしで、みんな幸せだった。
なんというか出てくる食べ物と飲み物が全部おいしい。
甘くないサトイモ入りのお汁粉は、
今年に入って一番衝撃的なデザートだった。
どれもこれも美味しかった。All Dishes were realy tasty!!

いろいろやりながら気合を注入するような日だった。

投稿者:としのり  日時:23:59:59 | コメント | トラックバック |

2007-04-05 Thu

後片付け

クロージングのあと、会場のゴミ拾いをした。

ゴミ拾いを手伝ってくれたハッカーはちょっとだけいた。
とりあえずid:hibomaは手伝ってくれた。ありがとうございます。

ゴミ拾いのあとは梱包とかチケットの半券をカウントするとか。
さらに机を片付けたりなんだりして終了。
最後の机片付けはスピーカーが残って片付けてくれた。
本当に助かりました。ありがとうございます。

みんなで一丸となって片付けたから、
呆気ないほど早く片づけが終わった。そして解散。

今年のYAPCはプレゼンをほとんど見ていないから、
プレゼンの内容はじつはほとんど知らないセッションが大半。
来週の動画公開が楽しみだなー。

投稿者:としのり  日時:23:59:59 | コメント | トラックバック |

2007-04-05 Thu

クロージング

ライトニングトークが終わったあとは、ぼちぼちクロージング。
片付けられるものから順に片付けたよ。

そんで、竹迫さんが作ったエンディングムービーを鑑賞。
2日間のできごとを思い出して、2日の濃さを実感した。

まだ1回もYAPCに来たことがないPerlユーザはYAPCに来たほうがいい。
ハッカーの日常の挙動は、観察するといろいろ発見があるし。
プレゼンではウケを狙いつつ哲学をぶつける人が多いから、
見終わったあと少なからず影響をうけると思う。
YAPCで受けた影響は、日々の開発を実りあるものにしてくれると思う。
少なくとも私はShibuya.pmに行ったらコードが変わったよ。

ムービーが流れた後、自然と拍手が起きた。
去年ほどではないけれど、止まない拍手は心地よかった。
拍手を聞いたら、体の疲れは吹き飛んだ。報われた。

また来年もYAPCがあるといいな。やっぱり東京でいいよ。
ま、どこでやるにしても来年もお手伝いしたいと思いました。

投稿者:としのり  日時:23:59:59 | コメント | トラックバック |

2007-04-05 Thu

ライトニングトーク

ライトニングトークでは、伝説のにぽだんか光臨した。
モニターで見たけど超笑ったよ。

途中から会場で直接みていたけれど、
全体としては、にぽたんとYappoが持っていった感の
強いLTだった。2人のあとの発表者は大変だなーと思った。

投稿者:としのり  日時:23:59:59 | コメント | トラックバック |

2007-04-05 Thu

え、結局Jiftyなのか

午後にDBICに関するセッションが2つあったけど、
tokuhiromくんのプレゼンは面白かった。
オチがタイトルと違うよ。全然違うよ。

投稿者:としのり  日時:23:59:59 | コメント | トラックバック |

2007-04-05 Thu

まったり午後

午後のセッションが始まると、
会場内は嵐の前の静けさのような静かさ。
トラブルも無く、知り合いと駄弁ったりしてるうちに、
時間が過ぎていく。

投稿者:としのり  日時:23:59:59 | コメント | トラックバック |

2007-04-05 Thu

ネットワーク問題は一応解決

今日は、一応ネットワーク問題は解決したみたい。
会場内に1つしかなかったSSIDを大きく4つに分けたみたい。

来年もYAPCがあるとしたら会場の無線LANの確保は大切だなー。

投稿者:としのり  日時:23:59:59 | コメント | トラックバック |

2007-04-05 Thu

ノベルティの配布

Yahoo!のトラベルタグを配布することになったので、
3会の会場前の机でトラベルタグを配布した。
なかなか人気で、すぐに100個くらい無くなった。
帰りまでに全部もらわれると嬉しいなー。

他にも、配布してしまって問題ないノベルティは
机の上において自由にお持ちいただくことにした。

投稿者:としのり  日時:23:59:59 | コメント | トラックバック |

2007-04-05 Thu

YAPC-ASIA 2007 2日目

YAPC-ASIA 2007の2日目です。
昨日にひきつづき、ボランティアで参加させていただきました。

今日は朝から大失敗をしてしまいましたが
1日目のうちに大きな仕事は終わってしまった感じで、
全体的に1日目よりゆるく時間が経過した気がしました。

2日目はセッションが2箇所に分かれていて、
1階で行なわれていた英語のセッションは全く聞けませんでした。
日本語のセッションとライトニングトークは聞けました。

2日目は全体的にJiftyを使いたくなるようなことが多かったです。
あとは、強烈なライトニングトークが印象的でした。

細かい感想や出来事は、順次追加エントリを追加します。

最後の最後はスタッフとスピーカーが、みんなで机を片付けて、
細かいものを片付けて終了でした。

オーガナイザーの皆さん、ボランティアのみなさん、
スピーカーのみなさん、お客さま、おつかれさまでした。
来年もYAPC::ASIA 2008があると良いですね。

投稿者:としのり  日時:23:59:59 | コメント | トラックバック |

2007-04-04 Wed

YAPC-ASIA 2007 1日目

今年のYAPCは、ボランティアで参加させていただきました。

こういうカンファレンスは立ち位置が運営側に近い方が、
自分の内面に対し有益な情報量が高いと思います。
YAPCはセッションを全部動画にしているから、
スタッフが仕事に集中できるのもポイントかも。

ほとんどの発表をテレビ画面を通してみることになったから、
細かいことは分かりませんでした。
来週アップされる動画をみようと思います。

細かい感想や出来事は、順次エントリを追加します。

投稿者:としのり  日時:23:59:59 | コメント | トラックバック |

2007-03-28 Wed

CPANを使い始めにくいって聞いた

このまえのブログ合宿で
「CPANのモジュールをインストールとか訳がわかんない」
と聞いて、あー、確かに昔は訳が分からなかったなーと思った。
今も分かってない部分は多いですけど。

Perlを始めたころに困ったのは、サンプル集に「use XML::Simple」と
気軽に書いてあるのでuseしてみたら、XML::Simpleなんて見つからないよ
とエラーメッセージが出てしまったことかな。
研究室のPCだとモジュールが入っていたけど、
自分の環境にはモジュールが入っていなかったみたい。

そもそも、そのころはCPANモジュールが足りないことも分からなくて
本当に困り果ててBlog Hacksを読んだ気がする。
そのころはプログラミング言語を勉強するためには、
仕様を書いてある本を読みまくれ!なんて分かっていても手が出なかった。
とくにPerlの場合は「プログラミングPerl」を見ると、
あの分厚さと2冊に分かれているのとでノックアウトですよ。
ということで、CPANについてBlog Hacksを読んで軽く理解して、
「perl -MCPAN -e shell」した気がするな。

で、まず最初にBundle::CPANを入れろ!って英文で表示されたから、
「install Bundle::CPAN」してみた。訳も分からずに。
そしたら、あとはyes!yes!って言っているうちにモジュールが
インストールできたみたいだった。
このときに、「install モジュール名」って書くと
モジュールがインストールできるっぽいことに気がついた。

で、問題のXML::Simpleをインストールしようとしたら、
やっぱり怒られてしまうので困った。
仕方が無くメッセージを精読してみると、
必要なライブラリがインストールされていないことに気が付いた。
「ライブラリ名....no」とか表示されたあとエラーが出まくってたし。
ということで、ライブラリが足りないときには
apt-get installしたり、ソースからコンパイルして、
CPANモジュールが利用しているライブラリを入れるんだと気が付いた。
ライブラリが足りないときのエラーメッセージは、特徴的なので
そのまま検索エンジンに突っ込むと、どんなライブラリに関する
メッセージなのかが分かったりした。

あとは、CPANモジュールが足りないってエラーが出るときが
あるんだなと気が付いた。hoge::fugaがnot foundだよ見たいなエラーが
でたら、その見つかっていなモジュールをinstallしてみて、
そのモジュールもエラーを吐いたらそれを解決して・・・と
芋づる式にエラーを解決する方法を学習した。

ところが、そんなことではどうにもならない場合があることに気が付いた。
どういう場合かというと「必要なものはすべて揃っているけど、
テストがちゃんと動作しないから駄目」という場合だ。

こういうときのエラーメッセージも特徴的だから、
検索エンジンに突っ込んでみると、悩んでいる人は結構多い。
で、よく「force install」すれば解決すると書いてある。
そのころにforceっていう無理やりインストールするオプションが
あるんだなと分かった。

じゃ、見た目には必要なライブラリは揃っていて、
テストだけが上手くいかないときにはforceを使えば良いのかというと、
そういうものでも無いことに気が付いた。
キッカケは、他の人が「force insatall」するしかなかったという
モジュールを普通にインストールできたことを発見したときだった。
まったく同じOSで、こういうことが起きるということは、
私とその人でインストール済みのモジュールやライブラリが違うってこと。
つまり、見た目に良く分からない場合でも、apt-getで何かを
追加すれば解決できる問題も多そうだということに気が付いた。

このころには、テストを順番に読むのが面倒だと思いつつ、
ちゃんとエラーでこけっ放しのテストは読むようになった。
テストを読むと、エラーが絶対にでるから無視すれば良い場合と、
エラーが出るわけがないから出ていたら困る場合があることに気が付いた。
エラーが出るわけが無い場合は解決方法を探さなきゃいけなくて、
テストが悪いと分かった場合にはforce installすればいいって分かった。

いくつもモジュールのエラーを解決するうちに、
本当にお手上げのときもあることに気が付いた。
こういうときにはどうしたらいいんだろう。
解決方法は今のところ3パターンあって、以下のとおり。

- 環境ごとにパッケージ化されているPerlモジュールをインストールする
- とりあえずforce installする
- OSを最近のものに入れ替える。情報が多いOSに乗り換える。

どうしてもインストールできないモジュールを手軽にインストールするには
境ごとにパッケージ化されているPerlモジュールをインストすればいい。
Debianだと「hoge::fuga」モジュールは「libhoge-fuga-perl」という
名前になっていることが多い。とりあえずで解決するには丁度良い。

パッケージ化されているPerlモジュールがない場合もある。
本当に調べつくして、試しつくしたのならforce instalしてもいいかも。

私が最近困った事例としては、1年くらい試行錯誤して使っているうちに、
環境全体が汚れてしまって、ネットで調べても事例の見つからない
エラーが頻発するようになるという状況に陥ったこと。
自分ひとりだけが、そのエラーと戦っているような気分がしたときには、
一回OSを入れ替えて見ると良いかもしれない。
もちろん無駄だったときに、戻れるようにスペアマシンで試すんだけど。
私はDebian Sargeからtestingに乗り変えたら、嘘のようにエラーが起き
なくなった。
それまではmod_perl2のコンパイルがちゃんとできなくて悩んだりしてた。

CPANって分かりづらいよなーと思って、
頭にあることをツラツラかいてみたけれど、
分かったことはCPANを使うこと = エラーと積極的に戦うことなのかも。
CPANは便利だけど大変だよなー、ってことでPHPが流行したりするのは
なんとなく分かったりするけど、じゃあ何でPythonは流行らないんだろう。
ま、いいや。ともかくCPANは今でもよく分からないことが多い。
たぶん自分がモジュールの作者になると、見えてくることがあるんだろうな。
ということで、最近はモジュールの作者になりたいなと思ったりしている。

全然オチないっすよ。これ。もういいや。おしまい。

投稿者:としのり  日時:23:59:59 | コメント | トラックバック |

2007-03-02 Fri

perlのファイル演算子一覧

たまに使うけど、よく忘れるPerlの演算子一覧をメモ。

Perl を使おう! 第5回より。

演算子テスト
-eファイルやディレクトリが存在している
-zファイルが存在していてかつ大きさが0
-sファイルやディレクトリが存在していてかつ大きさが0でない
-rファイルやディレクトリが読みだし可能
-wファイルやディレクトリが書き込み可能
-xファイルやディレクトリが実行可能
-oファイルやディレクトリをユーザが所有
-Rファイルやディレクトリが実効ユーザでなく実ユーザにより読みだし可能<
-Wファイルやディレクトリが実効ユーザでなく実ユーザにより書き込み可能
-Xファイルやディレクトリが実効ユーザでなく実ユーザにより実効可能
-Oファイルやディレクトリが実効ユーザでなく実ユーザにより所有
-f普通のファイルである
-dディレクトリである
-lシンボリックリンクである
-Sソケットである
-p名前つきパイプである
-bブロック特殊デバイスである
-cキャラクタ特殊デバイスである
-uファイルやディレクトリがsetuidされている
-gファイルやディレクトリがsetgidされている
-kファイルやディレクトリがstickyビットがセットされている
-tこのファイルハンドルに対して isatty()が真である
-Tテキストファイルである
-Bバイナリファイルである
-M最終更新からの日数
-A最終アクセスからの日数
-Cinodeの最終変更からの日数

-eして-fして-Wして、駄目なら-dして-Wして、とかやるときに必要。

投稿者:としのり  日時:23:59:59 | コメント | トラックバック |

2007-01-30 Tue

Lighttpd + Catalyst + FastCGIが動かない

Catalystのデバッグ用のサーバ「myapp_server.pl」は「-k -f」しないと、
いちいちIEをリロードしなきゃいけないことにブチ切れ。
もう、あれだ、FastCGIをデバグに使おう!と思った。

だけど、もー、どうにもこうにも動かないのである。
404エラーじゃ無くて、真っ白になってしまう。

Lighttpd-CatalystTechniqueのヘルパーを使ってみようとしたり、
使わないでやってみたりしてるんだけど、なんか駄目。
2時間やって駄目なので週末に再度やってみる。

それとは別の話として、環境を使い始めたころにいじった
わけの分からないことになってるところが影響して、
スムーズな環境構築ができてない場合が多くなってる気がする。
そろそろtestingで再インストールしようかな。
# 検索しても引っかからないエラー多すぎるんだよね。
# しかも、ほかの環境で再現しないんだよね。orz

投稿者:としのり  日時:23:59:59 | コメント | トラックバック |

2007-01-16 Tue

Net::Amazonが0.36になってECS4(AWS4)対応になってた

Net::Amazonがようやくアップデートした。
今回の一番大きな変化はECS4(AWS4)対応ってことみたい。

Net-Amazon-0.36

Revision history for Perl extension Net::Amazon:
0.36 (01/09/2007)
(cb) Update the library to use AWS4 from AWS3. The changes
involved are quite deep. While I have strived to keep interfaces
the same that was not always possible. I am sure there are still
bugs to be had that need to be fixed.


でも、いろいろ変更があるみたいなので
0.35と0.36を取り替えて終了ってわけにはいかなさそうですね。

投稿者:としのり  日時:23:59:59 | コメント | トラックバック |