クパン。CPAN。CPAN。
しんいちはCPANを覚えた。てぃろりろってぃってぃってぃ〜
Perlプログラマのレベル10 - Perlプログラミング救命病棟より - naoyaのはてなダイアリー
***
今日はオフだったので、強気で2回洗濯をした。
たまってた下着類とかさばる服を全部干せた。
それで、今日の午後はたっぷり時間があるから、
研究にいそしもうと思ったのだが、
GoogleAnalyticsWidgetが動かない理由が気になって、
ふたたび手をつけてしまった。
したら、もう夜だし。
ああ、バカだ。
***
当初、GoogleAnalyticsWidgetが動かないのは、
モジュールが足らないからだとか、
IDやパスワードの設定がおかしいからで、
つまり、プラグインのソースに問題はなくて、
そのソースがちゃんと動く環境にしてやれば動く、
という認識の元作業していた。
だけど、その認識は改めた方がよいという疑いが、
段々と確信に変わってきている。
おそらく、GoogleAnalyticsWidgetはMT4.1では動かない。
ひとつには、googleにデータを読みにいく際のURIが
このウィジェットが公開された当時とは変わっている可能性が大。
というかたぶん変わってる。
もうひとつは、ダッシュボード・テンプレートの書き換えが
うまくいってない。
前の記事にも書いたけど、テンプレートの一部を
正規表現で探してきて、そこを置換するという処理で、
テンプレートを書き換えようとしているが、
正規表現でマッチする部分がない。
これはおそらくMT4.0がMT4.1になったときに変わってしまったのでは
ないかと思われる。
***
というわけで、プラグインのコードをまったくノータッチで
このGoogleAnalyticsWidgetを動かすのは無理っぽい。
そうしたら、書き換えなきゃいけない。
てか、自分で一から書くのとあまりかわらない気がしてきた。
このWidgetを実現するのは実はそんなにむずかしくない。
1.GoogleAnalyticsにログインする。
2.アクセス解析のXMLを取得する
3.XMLのデータから訪問者数の部分を抜き出して、整形して保存
4.ダッシュボードに表示
これをもっと詳しくいうと
1.LWP::UserAgentのインスタンスを生成し、GoogleAnalyticsにログインしてCookieを保持
2.そのエージェントにXMLを取得させる
3.XML::SimpleにXMLを食わせて、整形したものをmt-static/support/dashbord/0/006あたりにgoogleanalytics.xmlとか名前を付けて保存
4.blog_statsのタブを参考にダッシュボードに表示するためのテンプレートをつくってcallbackで読ませる
ということだ。
1,2,はもうできる。
3,はたぶんできる。
問題は4で、まだ、callbackやMTのテンプレートについて理解していないので
模索中。
***
一から書くといっても、GoogleAnalyticsWidgetのlib/Analytics.pmは
それなりに使えそう。
オブジェクト指向で書かれていて、
Perlでオブジェクト指向には慣れていない自分にとって
いい勉強になった。
***
今日、CPANでXML::Simpleをインストールした。
感動だ。
CPANのモジュールを自分が使うなんて、
縁遠い話だと思ってた。
でも使えた。
たとえばCrypt::SSLeayはこんな感じ。
sudo cpan install Crypt::SSLeay
そうすると、パスワードを聞かれるので、
このMacのrootのパスワードを入れる。
(アプリケーションをインストールするときなどに聞かれるやつ)
はじめてcpanを使おうとしたときは、
すこし躓きそうになったが、
てきとうにチコチコとEnterキーを叩いたり、
ftp://ftp.....
などとcpanが接続するftpのアドレスを入力したりしたら
動いた。
FTPのアドレス:cpanの設定変更
おそらくCPANのバージョンが古かったので、
FTPのアドレスを入力しなきゃならなかったが、
バージョンが新しければいらないだろう。
次に入れようとしたのがXML::Simpleモジュール。
ところが、これは
sudo cpan install XML::Simple
だけではうまくいかない。
Mac OS X に XML::Parser と expat をインストール - Daio Today
libexpatというのが必要らしいが、それって何かしらない。
とりあえずDLする。
Daio Todayさんのとこには
「解凍して、ディレクトリに入る。
makeはデフォルト状態で特に問題なし。」
と、さらっとしか書いてない。
DLしたあと何をしたらいいかわからない。
とりあえず、DLしたファイルを解凍。
それからターミナルを起動して、
cd フォルダ
で、解凍してできたフォルダに移動。
んで?
「./configure」って打てばいいわけ?
打ってみた。
したら、ターミナルに文字ががーっと流れていき、
新しいファイルが次々できる。
これでよかったらしい。
それからmekeとかした。
(いまだにmakeコマンドが何をするものなのかわからん)
で、もう1回、XML::SimpleをCPANする。
できた。
ついにオレもCPANするよーになったどー
ということで冒頭のリンクに戻る。
Perlプログラマのレベル10 - Perlプログラミング救命病棟より - naoyaのはてなダイアリー
今はレベル6と7の間ぐらいでしょうか?
レキシカル変数とダイナミック変数の違いとか知らないですが。
「レベル6: Perl の講習を受けている人もいる。
オブジェクトの使い方を知っており、
この知識とComprehensive Perl Archive Network(CPAN)を利用すれば
強力なプログラムをすばやく作成できると知っている。
次のレベルに進んで、
この能力拡大がどこまで行くのか見たいと思っている」
次のレベルに進んで、
この能力拡大がどこまで行くのか見たいと思っている、
というのはほんとにそう思う。
CPANが持っているモジュールは本当にすごい。
最近になって使い出した
LWP::UserAgentとかXML::Simpleとか、すっごく便利で、
あんなことやこんなことが簡単に実現しそうだ、
というのがいろいろ湧いてくる。
プログラムが楽しくて仕方ない。
プログラマになった方がいいのかな?