2013-05-16
yum reinstall
yum | |
今まで yum でパッケージ管理してるソフトウェアの設定ファイルを書き換えまくりすぎて、元に戻したいけどバックアップ取ってねぇーってときは削除して入れ直してたけど、ふと man とか見たら reinstall というサブコマンドがあることを今更知った。
削除しようとすると依存解決でとんでもないもの削除しようとするので(postfix削除しようとするとcrontabまで道連れにしようとするとか)今度からこれでいいや。
2013-03-09
2013-02-10
Net::Google::Analytics::OAuth2 で google analytics api を叩こうとしたら refresh token が取得できなかった
perl | |
google analytics には api*1 がある。
認証・認可には oauth2 を使う。authsub というのもあるみたいだけどどうやらこれから使うなら oauth2 使っとく方がいいらしい。
おいおい perl 無いじゃねーか、と思うと、載ってないだけで cpan にある*3。
認証部分は Net::Google::Analytics::OAuth2 を使う。
よしこれを使おう、まずは pod に従い interactive メソッドで access_token / refresh_token を入手しよう、とすると中途半端に失敗するはず。access_token しか取れない。
実は最近 google 側の仕様変更があった*4ようで、 refresh token を受け取るにはパラメータを追加する必要がある。それにモジュールが追随してない。
というわけで。
--- a/lib/Net/Google/Analytics/OAuth2.pm
+++ b/lib/Net/Google/Analytics/OAuth2.pm
@@ -70,8 +70,9 @@ sub refresh_access_token {
sub interactive {
my $self = shift;
+ my $extra_params = @_ == 1 ? $_[0] : { @_ };
- my $url = $self->authorize_url;
+ my $url = $self->authorize_url($extra_params);
とでもしてやって、
$oauth->interactive( approval_prompt => "force", access_type => "offline", );
とすると refresh token も取れる。
このモジュールは最近までメンテナンスされてるし github にあるので誰か pull req 送ったら世界が平和になる気がする。
叩く
たとえば
が欲しいと思ったら
my $req = $analytics->new_request( ids => "ga:$profile_id", dimensions => "ga:pagePath", metrics => "ga:Pageviews", filters => "ga:pagePath=~/you/want/page/path", sort => "-ga:Pageviews", start_date => "2013-01-01", end_date => "2013-01-31", ); my $res = $analytics->retrieve($req); $res->is_success or do { warn json->decode($res->content)->{error}->{message}; exit; }; my $pv = 0; for my $row ( @{$res->rows} ) { $pv += $row->get_pageviews; } say $pv;
とかすると取れる。
git log の日付が見づらいので見やすくする
git | |
% git log --date=iso
この挙動をデフォルトにする。 .gitconfig に追記する。
[log] date = iso
2013-01-12
python 2.4 の環境で autojump を使う
zsh | |
autojump は python 2.6 を要求するが入れたくないので 2.4 で動く古いバージョンを使っている。
配布元 に書いてある。
If you are unable to update Python to a supported version, older versions of autojump can be downloaded and installed manually. Python v2.4 is supported by release v12.
最新版とどのくらい違うかは知らないけどこれで十分。
2013-01-10
Term::ANSIColorでターミナルに色付きで出力する
perl | |
色々できるけど単純に color と colored だけ使って不便は無い。
use strict; use warnings; use Term::ANSIColor qw/colored/; for my $c (qw/black red green yellow blue magenta cyan white/) { print colored(["$c"], "$c\t"); print colored(["bright_$c"], "bright_$c\t"); print colored(["on_$c"], "on_$c\t"); print "\t" if length $c < 5; print colored(["on_bright_$c"], "on_bright_$c\t"); print "\n"; } for my $i (0..15) { print colored(["ansi$i"], "ansi$i\t"); print colored(["grey$i"], "grey$i\t"); print colored(["on_ansi$i"], "on_ansi$i\t"); print colored(["on_grey$i"], "on_grey$i\t"); print "\n"; }

