テストファースト開発に慣れてしまうと、テストコード無しにプログラムを書くというのは不安でたまらなく感じてくる。
テストが欲しい。安らぎが欲しい。
今開発している WiKicker ベースの Web アプリケーションもだんだん機能が増えてきて、コードを触るのがコワくなってきた。
今回は Basic 認証等もあるので、WWW::Mechanize::CGI ではなくてきちんと deploy してから Test::WWW::Mechanize でテストすることにした。
Test::WWW::Mechanize、使ってみると WWW::Mechanize + Test::More よりテストを書くのも読むのも楽になった。
deploy が必要なリグレッションテストはさすがに t/ の下に入れておくのはどうかと思う。 プロジェクト的にはビルドサーバを用意して、そこで自動的にテストできるような環境を用意するのが良さそうだ。
ポータブルアプリケーション詰め込み。
自分の場合エディタと Perl があれば随分できることが増えるので、何とか Perl を入れておきたい。 しかし定番の Windows 用 ActivePerl はセットアップが必要であり、持ち歩きには向かない。
何かいい Perl ディストリビューションがないかなと探してみたところ、インストール不要の Apache ディストリビューションが目についた。 そういえばこれらには Perl が含まれていてインストール不要で使えるものがあるらしいので、それらが使えるかもしれない。
標準の XAMPP では Perl インタプリタしか入っていなかった。 さすがにこれでは使い物にならない。
XAMPP で実用的な Perl 環境を用意するにはこちら。ActivePerl 5.8.8.817 上に Web アプリケーションに必要そうな パッケージが用意されている。 そのかわり 200MB (!) 近い容量が必要。 でかすぎ。
README には setup_xampp.bat に実行の指示がある。
ActivePerl 5.8.7.815 が含まれている。 Perl インタプリタと、いくつかのパッケージが含まれている。 パッケージは結構少なめにおさえてあるので、容量はかなり少ない。 しかし
perl -MConfig -e "print Config::myconfig()"
が動かないなどそのまま使えるわけではなさそうだ。
試した2つとも結局は ActivePerl を使っているようである。 ActivePerl の部分のライセンスはどうなっているのだろう?
もしかしたら ActivePerl の AS package を展開して、不要なファイルを削除すれば (インストーラで設定されるリポジトリなどの情報を使う部分は駄目にしろ)、ある程度動くのかな。
それと Installer.bat の中で、一部ファイル(.bat、Config.pm、Config_heavy.pl、perllocal.pod、.packlist、config.h) のリロケーションをしているので、このあたりがポイントになりそう。
要確認。
Perl で書いた Web アプリケーションのポータブルな Win32 デモ環境として XAMPP を使ってみるとどんな感じになるか試してみた。
使ったバージョンは以下。
(http://www.apachefriends.org/jp/xampp-windows.html)
それぞれ 自己解凍型 7-ZIP アーカイブをとってくる。 最初に XAMPP を展開し、次にその xampp ディレクトリの中で Perl アドオンを展開。 xampp ディレクトリを c: の直下に移動する。
次にコマンドプロンプトを開き c:\xampp\perl\bin へ移動後 ppm コマンドを起動して作成済みの PPM パッケージをインストールする。 インストール先は \xampp\perl 以下とドライブ無しのパスで指定されているようで、問題なく必要な Perl ライブラリをインストールできた。
次に \xampp\xampp-control.exe を実行して GUI 管理ツールを立ち上げ、その画面から Apache を起動。 普通の Win32 版 Apache もインストールしてある PC だったため、xampp-control から Apache を起動したらそちらが立ち上がってしまったが、これは Svc にチェックが入っていたからだった。Svc を外せば \xampp 以下の Apache がきちんと起動する。
あとは \xampp\htdocs 以下で WiKicker CGI プログラムの配置や設定ファイルを作成すれば OK。 もともと WiKicker は相対パスだけで動くようになっている*1ので、問題なく実行することができた。
*1多分
一度セットアップできた \xampp ディレクトリを TrueCrypt 仮想ドライブにコピーして起動してみた。
こちらも問題なく OK。
ということで XAMPP でお手軽に Perl CGI プログラムの動く Web サーバ環境を作れることを確認できた。
問題があるとすれば XAMPP + Perl アドオンが馬鹿でかいところか。400MB オーバー。 今回何が一番時間がかかったかって、XAMPP + Perl アドオンを展開した直後の xampp ディレクトリを、後でまた使えるように 7-ZIP の最高圧縮する処理に時間がかかった。 使っている PC では 50分以上かかったよ。
やまだ君が声をかけてくれた飲み会に参加。 宮寺先生、福田先生、やまだ君、田中丸君、花田君、自分の6人。
待ち合わせ場所の連絡が無かったので、とりあえず電気街口に行ったら落ち合えた(実は連絡はきちんとしてもらっていたのだけれど、メールサーバ障害で届いていなかった)。
場所は矢まと秋葉原店。座敷で壁で仕切られたテーブルなので、他を気にせずに会話できたのは良かったが、ドリンクがくるのが遅かったのが×。
技術形の話は、以前に比べて Web アプリケーション系の話が増えたなあと実感。
Linux クライアントがないので静観していたのだけれども、最近 Dropbox や ZumoDrive などいろいろオンラインサービスを使ってみていることもあり、Evernote も手をつけてみることにした。
という点をカバーできればいいかなと思う。
昨日登録して使用開始。
月40MB はやはり心理的に窮屈。随所にメータがあるので、気になってしょうがない。 メモは躊躇なくガンガンできなければいけない。
使い勝手がよければ有料でもいいのだけれど、まだ評価しきれていないので何ともいえないところ。 メモがたまってくるとロックインされてしまうので、有料オプションは慎重に考えたい。
Web アプリケーションだけでなくクライアントソフトウェアがあるという点でインタフェース的にも便利そうだ。 ポータブルアプリケーション化できるなど、メモツールとしてのポイントを良く押さえているところも好感が持てる。
使っていて気になるところは以下。
日本語がもっさりするのはノートとしてはちょっとつらいところ。
Google ノートブックより洗練されていて分かりやすい。 というか Google ノートブックはちょと分かりにくすぎ。
Linux 向けのクライアントソフトウェアがないので、Linux PC からは Web サイトでつきあうことになるので使い慣れなければ。
メールでノートの作成もできる。 自分は今ケータイからは GTD 的の inbox に放り込みたい時は RTM へ、それ以外は Gmail へメールしていた。 ちょっとした原稿やアイデアメモなどは後でそのま再編集できるという点で、Gmail に送るよりは Evernote に送った方が便利だな。
欲をいえば、Gmail アドレスに送ってフィルタで Evernote に転送してもちゃんと受け付けてくれればいいのになと思う。今はダメ。 それができると 1カ所に送信するだけで Gmail と Evernote にアーカイブできるのだけれどな。
Google Mobile Proxy 経由は NG。
PC2M からは OK。 検索可能。プレーンテキストなノートなら編集も可能のようだ。 ちょっとしたメモの参照に使えそうである。
絶賛する人もいる Evernote。自分にとってどれぐらい使えるのかはまだ未知数。 しばらくいじってみようと思う。
最近 Mojolicious ベースの Web アプリケーション開発をしているんだけれど、そういえば Plack がどう動いているのかコードを読んだことなかったので plackup から流れを追ってみたり。Plack::Runner::build() の活用あたりが魔術ぽい。
昼はヴィレッジヴァンガード。ちょっと欲しけどどうしても欲しいわけではないものが並んでいて、あいかわらずいつも通り何も買わない出てきた。デッドストックに出会えそうで出会えないのもいいね。
Mojolicious に限らず Web アプリケーション開発のかなり基礎のところから解説。ビギナーが「書けそう」って思えるトーク。
今年のベストトーク賞で2連覇達成。聞いた人が「帰って自分で何かできそう/やろう」という気持ちを起こさせる要素がきちんと入っているので yusukebe 氏のトークはいつもいいなと思ってます。
プログラムを書いて AWS の管理を自動化できるという話。API もあるけど CLI もあるよと。AWS 使ってねと。
Carton:
ローカルで
git commit cpanfile.snapshot
デプロイ先で
carton install --deployment
cpanm、 Carton の最新の機能今後入れる予定の機能の紹介。テストに Travis CI を使い始めたとのこと。
おとよさんと学食。自分が通った大学もこれぐらい学食充実してくれてたら良かったなー(久しぶりに喫茶鳩のおじや(だっけ?)食べたい)。
tDiary から Ruby に入った人が多いのかな。 Perl Monger にはザワザワする刺激のあるいい座談会。
結論的にはプログラミング言語の選択というのはプロダクト/サービス開発の一要素でしかないし、優れたエンジニアならどの言語でも書けるよねという無難な落とし所でまとめ。
10周年目を迎える livedoor Blog の裏側。 エンジニアの総意工夫があったコードだけれどだんだんレガシーになってメンテナンスコスト大きくなるよねという話は mixi もそうで非常に同感。
同一端末内の複数のアプリで、シングルサインオンする仕組み。
日吉キャンパス、第1校舎と高等学校グランドの間の階段を降りていくとなんか田舎な風景が広がっていてトリップした感じになれて良い。
一昨年の Hideo Kimura 氏、昨年の Gosuke Miyashita 氏と同様にマネージャーというポジションでのトーク。
今年は参加者1,131名。
牧氏・櫛氏の運営参加は今年が最後とのこと。お疲れさまでした。 なにか組織的にもいろいろな動きが裏でもあるのかもしれないし、あるいは新しい世代への交代を意図しているのかもしれない。
JANOG + LLNOC により構築されたネットワークのおかげで今年は昨年に比べて非常に快適だったことにも感謝。
今年は例年に比べてプログラミング言語 Perl についてのトークが多かったように思う。同時に今年はなんとなく Perl の人気の陰りを感じもした。昨今のネットサービスで Perl が対応言語に含まれてないこともよくあるとかそのような。
Perl コミュニティとしてコミットしたりいろいろ働きかけていきましょうという話はあるし、次の世代による新しいコミュニティの立ち上がりもある感じだし、Perl 言語自体もまだまだ貪欲に機能改良が進んでいるという話もあるし悲観することはないのだけれどもね。
ここ数年とは違う空気感だったことは確か。Perl 的にも YAPC::Asia 的にも新しい時代が来るのかな。
Happy programming in Perl!
Naney (なにい) です。株式会社MIXIで SNS 事業の部長をしています。
※本サイトの内容は個人的見解であり所属組織とは関係ありません。