だるろぐ

2013-05-16

yum reinstall

| 00:23 | yum reinstallを含むブックマーク

今まで yum でパッケージ管理してるソフトウェアの設定ファイルを書き換えまくりすぎて、元に戻したいけどバックアップ取ってねぇーってときは削除して入れ直してたけど、ふと man とか見たら reinstall というサブコマンドがあることを今更知った。

削除しようとすると依存解決でとんでもないもの削除しようとするので(postfix削除しようとするとcrontabまで道連れにしようとするとか)今度からこれでいいや。

トラックバック - http://d.hatena.ne.jp/hirafoo/20130516

2013-03-09

vpsでmt入れてみた

| 02:15 | vpsでmt入れてみたを含むブックマーク

http://blog.hirafoo.net/

既にブログあまり書かなくなってるけど。

いや使ってみたくなったんですよ。MTを。


さて名前どうしよう。ここもだるろぐ跡地になるのか。

トラックバック - http://d.hatena.ne.jp/hirafoo/20130309

2013-02-10

Net::Google::Analytics::OAuth2 で google analytics api を叩こうとしたら refresh token が取得できなかった

| 02:08 | Net::Google::Analytics::OAuth2 で google analytics api を叩こうとしたら refresh token が取得できなかったを含むブックマーク

google analytics には api*1 がある。

認証・認可には oauth2 を使う。authsub というのもあるみたいだけどどうやらこれから使うなら oauth2 使っとく方がいいらしい。


api を叩くための各種ライブラリ*2もある。

おいおい 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 送ったら世界が平和になる気がする。

叩く

たとえば

  • /you/want/page/path という uri に前方一致する
  • 2013/01/01-31 間の
  • pvの累計

が欲しいと思ったら


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 の日付が見づらいので見やすくする

| 01:58 | git log の日付が見づらいので見やすくするを含むブックマーク

% git log --date=iso

この挙動をデフォルトにする。 .gitconfig に追記する。

[log]
date = iso
トラックバック - http://d.hatena.ne.jp/hirafoo/20130210

2013-01-12

python 2.4 の環境で autojump を使う

| 00:03 | python 2.4 の環境で autojump を使うを含むブックマーク

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.


最新版とどのくらい違うかは知らないけどこれで十分。

トラックバック - http://d.hatena.ne.jp/hirafoo/20130112

2013-01-10

Term::ANSIColorでターミナルに色付きで出力する

| 23:20 | Term::ANSIColorでターミナルに色付きで出力するを含むブックマーク

色々できるけど単純に 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";
}

f:id:hirafoo:20130110231746p:image

トラックバック - http://d.hatena.ne.jp/hirafoo/20130110

事務用品 名刺 デザイン