« 2014年3月9日 - 2014年3月15日 | トップページ | 2015年10月11日 - 2015年10月17日 »

2014年3月20日 (木)

Cocolog_Pro_Analyzer:ココログプロ用アクセス解析補助 Greasemonkey

ココログの新しいアクセス解析が 2013年12月に導入され、2014年2月に完全に切り換わった。基本的には便利になって、要望の多いらしい生ログなども将来的に対応していくそうだから、私は大きな不満はない。

ただ、ココログプロを使っていて複数のブログを扱っていると、ブログを横断したデータの閲覧性が低下した点は気になる。そういうのは、前は Perl などで robot を書けば、なんとかなったんだが、今回のアクセス解析は JavaScript がメインの動的なページのため、それが難しい。そのあたりを補うための Greasemonkey スクリプトを書いてみた。

配布物

Cocolog_Pro_Analyzer.user.js。メイン配布物。

count_access.pl。上記をページビューに関して使って生成した JSON の後処理として計数する Perl スクリプトの例。というか私のアクセス解析報告で使う(予定の)スクリプト。

count_access_2.pl。JSON の取得がうまくいかないことがある。そういうときは、手作業でコピペしたテキストを用意するしかない。タイトルのところで改行が入るので、二行ずつで一データのテキストを得てそれを処理する。

続きを読む "Cocolog_Pro_Analyzer:ココログプロ用アクセス解析補助 Greasemonkey"

2014-03-20 03:46:54 (JST) in JavaScript, ウェブログ・ココログ関連 | | コメント (5) | トラックバック (0)

2014年3月17日 (月)

Perl でオブジェクト指向 C++風 その4 HashFreezer

このシリーズの最初の記事からもう3年は経過した。先日、 jrf_semaphore.pl (紹介記事へのリンク)を公開し、そこで、デバッグに便利なテクニックを構築したので、今回はその紹介をする。

このシリーズの方法では、メンバ変数へのアクセスは直接、オブジェクト本体であるハッシュ(のリファレンス)をいじって行う。そのため、メンバ名のミススペルがあると、参照時は undefined なので警告があることもあるが、代入時には何の警告も起きない。しかも、こういうときのミススペルに限ってとても見つけにくい。代入したはずのものが、undefined で参照されて警告があっても、そこから、どの代入にミスがあったか、その推理が簡単にできるとは限らない。

これを避けるには、メンバ変数へのアクセスに、setter や getter の関数をいちいち定義していくという方法もありえるのだが、setter が関数になるのはカッコ悪く、かといって lvalue を取るようにするのは、Perl 5.18.1 の perlsub ですら未だに「実験的」という記述が抜けてなくて怖い。caller でメンバ変数名を判断する実装だと、関数渡しにミスが出る可能性も出てくる。

そこで、思い付いたのが Perl の tie の仕組みを使う今回の方法。ハッシュの代入や参照をいちいちチェックするから速度面で不利になる(はずではある)のだが、$DEBUG 変数で、new のときに使わないよう設定できるようにすることで軽くした(つもり)。

続きを読む "Perl でオブジェクト指向 C++風 その4 HashFreezer"

2014-03-17 18:20:35 (JST) in Perl | | コメント (0) | トラックバック (0)