2007-03-28 Wed
八王子みなみ野 横濱屋 牛レバニラ炒め
今日も近所の横濱屋で夕食。牛レバニラ炒めを頼んだ。

それにしてもカメラのピントが全然合わない。
液晶画面で見てもボケてるってわかるほど合わない。うーむ。
あ、味は、おいしかったですよ。意外とニラ少な目で、
牛レバ野菜炒めなんじゃないかと思いました。
[2007-04-01]:追記
写真が間違っていたので入れ替えました。
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は今でもよく分からないことが多い。
たぶん自分がモジュールの作者になると、見えてくることがあるんだろうな。
ということで、最近はモジュールの作者になりたいなと思ったりしている。
全然オチないっすよ。これ。もういいや。おしまい。
グルメ検索サイトは奥深い
最近、休憩時間にグルメ検索サイトを見ているけれど、
使えるグルメ検索サイトっていうのは、
いろいろ単純な工夫がしてあって面白い。
一つ一つの工夫を機械的に実装してみたくなる。
なんというか、一発で目的の結果にたどりつきたいですよね。
たとえば今いる場所を入力するの面倒だし、
クーポンを探すために4クリックもするのはダルいし、とか。
グルメ検索関連で、ちょっとまじめに調べ物しようかな。
あー、全文検索を手軽に使えるようにもならないとなー。
プログラムを趣味にすると課題が山積みで楽しいなー。
ブログ記事からの店舗名抽出かー
ブログ記事から店舗名抽出できないかな、と思って
いろいろ簡単なアプローチを試したのですが無理ですね。
下手な鉄砲を打ちまくれば再現率は上げることができますが、
精度はボロボロになってしまいます。
なにしろ、抽出した断片を店舗名じゃないと認識するのが
とてつもなく難しい。
いろいろ考えたら、固有名詞抽出をまじめにやれば、
店舗名を単純なアプローチよりは高い精度で抽出できますね。
ということに気が付いたら夜になっちゃいました。あーあ。
Practickはユーザを作れないと意味無い問題
昨日、Practick(プラクティック)という名前の
クイズや練習問題を管理するアプリを公開したのですが、
自分で使っていて、とんでもないことに気がつきました。
ユーザかディレクトリを作れないと、
ジャンルの異なる問題を管理できないんですよ。がーん。
これは使ってみるまで気がつきませんでした。
# 普通はユーザ第一でつくるからぶつからない障害ですね
ということで、早速ユーザを作れるようにしてみようかな。
ま、今日は夜遅いし明日にしようっと。
あ、そういえば公開版に問題を追加していないから、
動作をまったく確認できませんね。いやー、追加しなきゃな。
Practick(プラクティック)は、アルゴリズムとか英訳とか小論文とかのような、
答えを練り上げるような問題に有効なアプリな気がしてます。
そうすると、プライベートモードとかも必要かなと思ったりして、
とりあえず動かして晒すっていうのはいいもんだと実感した夕方でした。
立ってプログラミング
今日はちょっと思い立って半日ほど、立ち上がってプログラミングしてた。
パソコンは自分のヘソより5cm低いくらいの位置に固定した。
立ちながらプログラムしてみて、多少疲労感はあるけれど
たまにやってもいいかなと思った。
立ちながらプログラムするときにはコツがあることも分かった。
- 姿勢が良いほうが、姿勢が悪いときより疲れない。
- 2本の足に均等に体重がかかるように気を使うと疲れにくい。
- 悩みながら実装しているときなどに良さそう
- やせそう
立ちながら、極力快適にプログラミングしようとすると、
最終的には姿勢が良い状態がベストであることに気が付く。
姿勢が良いと適度に体の筋肉を使えるので、
今日はうっすら汗をかいた。毎日やったら痩せるかもね。
あと、立ち上がっていると集中力が増す気がする。
これは作業が終わらないと座れないからかな。
集中力を育成するのに良いかもしれない。
さらに悩みながらイライラ実装しているときに、
立ち上がって実装していると、貧乏ゆすりができないので、
無意識が作業に集中しつづけるし、ガタガタ音がしない。
周囲の人の精神衛生にも良さそう。
ということで、皆さんも一回立ってプログラミングするのは
オススメです。毎日やる気はしませんが・・・・。
ちなみに、後で自分のヘソくらいの高さにパソコンを固定したら、
肩の力が抜けて良い感じでした。ふむふむ。
今後も何か発見をしたらブログに書きます。

