モジュールをロードするモジュールはどれを使うのがいい?
モジュールをロードするモジュールは幾つかあるが、どれを使うのがいいんだろうか。まぁ場合によりけりなんだろうけど。僕が知ってるのはだいたいこんな所です。
UNIVERSAL::require
ちなみに僕は普段、何も気にせず UNIVERSAL::require を使ってました。OO な感じで書けるのが個人的にはいいかなと思ってた。
Module::Load
Module::Load は調べてみたら Perl 5.10 から標準添付のモジュールになっているんで、特に理由が無ければこれを使うのがいいんだろうか。
Class::Load
なんと言っても、CPANモジュールガイドで紹介されているというのが大きい。CPAN本に倣ってこれを使うか。
- 作者: 冨田尚樹,タナカユカリ
- 出版社/メーカー: ワークスコーポレーション
- 発売日: 2011/04/08
- メディア: 単行本(ソフトカバー)
- 購入: 20人 クリック: 2,028回
- この商品を含むブログ (21件) を見る
おそらく、それぞれのモジュールは使い分けるものなんだろうけど、ちょいと調査不足でピンと来ていないので、引き続き調査しようと思う。
YAPC::Asia Tokyo 2011 に行ってきた
東京工業大学で開催された、YAPC::Asia Tokyo 2011 に行ってきました。僕は、今年を含めて4回目の参加でしたが、今年は参加者と交流をするという目的を持って参加しました。そのかいもあり、色んな方と交流できて、本当に楽しい2日間となりました。
前夜祭は仕事の都合で参加できなかったのですが、1日目、2日目と参加出来ましたので、レポートをまとめたいと思います。
個人的に良かったと思ったセッション
実は、1日目、2日目共に70周年講堂のセッションばっかり聞いてました。
Carton: CPAN dependencies manager
miyagawaさんのセッション。依存モジュールの関係やバージョンの違いを解決するためのアプリケーション。僕も、依存関係やバージョンの違いをどのように管理しようか悩んでいたところなので、Carton を使うことで解決しそうです。早速試してみたいと思います。
SmartPhone development guide with Node/CoffeeScript and HTML5 technologies, for Perl programmers
Naoya Itoさんのセッション。スマートフォンアプリは今後、ネイティブから HTML で書く流れになってきている。あと、印象的だったのは「クライアントをjsならサーバもjsでという流れは変わらない」でした。node も来ているという話でしたので、僕も最近、node を触り始めてるので頑張って覚えようと思います。
Mobageソーシャルゲームにおける大規模サーバ運用 with Perl
riywoさんのセッション。mobage のインフラ側の話。HandlerSocket での高速化や DevOps について。「仕様を少し妥協するだけでハッピーになれる」はまさにそうだと僕も感じました。
watch your log - Komainu
nekokakさんのセッション。ログ監視の話。死活監視やリソース監視に比べると後回しにされやすい。Komainu を使うと監視だけではなく、accesslogの集計や application logの集計が出来る。僕もサーバエンジニアをやっていることもあり個人的には1番興味深く聞くことが出来ました。Komainu も是非試してみようと思います。
YAPC全体の感想
Perl だけではなく、インフラ周り、DevOps と Perl を取り巻く内容も多いのが特徴的だったと思います。個人的には、Perl でコードを書きつつサーバの管理もするという立場なので、幅広く色んなことが聞けたのは大きかったです。
懇親会
実は過去3回の YAPC では懇親会に参加したことが無かったので今回が初参加でした。懇親会の前に、ももいろクローバーZ(以下、ももクロ)つながりで Twitter で仲良くして頂いていた @sugyan さんにまずは挨拶。ももクロを知らなかったら、交流する機会が無かったかもしれないと思うと、ももクロが僕の交流を円滑にしてくれたと言っても過言ではないです。
懇親会では、@sugyan さんを通じて @riywo さん、@miyagawa さんとも交流でき、本当に感謝しています!また、尊敬している @zigorou さんとも久しぶりに会話が出来て楽しい懇親会となりました。
最後に一言
セッションやLTの話し手側も楽しそうだなと思いました。僕も機会があれば、LTあたりで何か話せるようになりたいです!
東京電力の電力使用量を表示するスクリプトを書いてみた
http://linknode.net/tepco.htmlの JSON API を使用して、コマンドラインから現在の電気使用量/電気使用率を表示するスクリプト書いてみた。
gist にアップしてあるのでソースコードはここ東京電力の電気使用量を表示するスクリプト · GitHubで確認できます。
別に特別難しいことをしてる訳じゃないけど、業務で PHP を書くことが多くなって、Perl を書くことが少なくなってきたのでそのリハビリと、gist を使ってみようというのが目的だったりする。
最近アウトプットが減ってきているので、その辺もなんとかしたいもんです。
MySQL Cluster の ndb_size.pl を使うための準備
MySQL のストレージエンジン、NDB Cluster のテーブルサイズの見積をするのに便利なコマンド、ndb_size.pl*1は、依存モジュール等がありそのままでは使えないんで、その準備の仕方をメモしておく。
依存しているモジュール
- HTML::Template
- Class::MethodMaker
- DBD::mysql
インストール方法
CPAN モジュールを入れるときは、cpanm が便利なのでこれを使う。
# cpanm HTML::Template # cpanm Class::MethodMaker
DBD::mysql は MySQL をソースコンパイルで入れた場合、パスが通っていないとテストでこけるのでその辺の設定をする。
# export PATH=/usr/local/mysql/bin:$PATH # vim /etc/ld.so.conf /usr/local/mysql/lib/mysql # ldconfig
最後に DBD::mysql を入れて終わり。
# cpanm DBD::mysql
使い方
使い始めたばかりで詳しくないけどコマンドの紹介。大体こんな感じで使う。
ちなみにコマンドは、/usr/local/mysql/bin にある。
% perl ndb_size.pl --database=testdb --hostname=localhost --user=test --password=hoge --format=html > size.html
色々調べてみて、ブログに書けそうなら続編として書くつもりです。
Perlのリハビリ開始
昨年、転職した会社の開発言語が、PHP と Perl だったのだが、なぜかやったこともない PHP の案件ばっかりやることになって、ここ最近はPHP の勉強を中心にやってた。
PHP に関しては、良い作法もまだよくわからないし、自分のスキルを生かすことなく悶々としてた。ただ、違う言語を習得することは技術の幅が広がるし、活躍の場も広がると思う。
しかしながら、自分が最も得意としている Perl で開発する方が、はまる事も少なくなるだろうし、開発工数も抑えることができると思う。
そんな経緯もあり、次の開発は Perl で書くことになるだろう。もちろん、既存の PHP で書かれたサービスのメンテのために、ゆるく勉強は続けるつもり。
前置きが長くなってしまったけど、Perl でプロダクトコードを書くにあたり、リハビリが必要かなと思い勉強を始めたのである。
Perl を勉強するにあたって、とりあえずこんなところを抑えようと思っている。