たつをの ChangeLog : 2009-10-21

また、マッシュアップアワードが開催されます。
ウェブAPIを使ったマッシュアップサイトやアプリケーションのコンテストです。
もう5回目なのですねー。
週末プログラマー、深夜プログラマーの方もぜひぜひ!
締切は11月4日です。

- Mashup Awards 5 on CREYLE
http://mashupaward.jp/
Web アプリケーションの開発コンテスト Mashup Awards 5 (MA5) が今年も開催! API や新しいデバイス・プラットフォームを活用した提案をお待ちします。
- MA5 - Mashup Awards 5参加受付中! (Yahoo! JAPAN Tech Blog)
http://techblog.yahoo.co.jp/cat206/ma5_mashup_awards_5_5/

それに先駆けて、というか、その締切に先駆けて、API提供会社による連続プレゼン会である「マッシュアップキャラバン」が開催されます。
というか、開催されています。
全4回のシリーズです。

- 技術セミナーイベント MA5 Mashup Caravan(東京)を開催!
http://mashupaward.jp/blog/caravantokyo/

で、実は私も26日(月)19時からのマッシュアップキャラバンに30分のプレゼンで登壇します!主にYDNのショッピングAPIのコンテンツマッチの仕組みとかその他の新し目のAPIについて話す予定です。

- MA5 Mashup Caravan in GINZA/2 (by RECRUIT) : ATND
http://atnd.org/events/1789

場所は銀座のリクルートです。
ご興味のある方で都合のつく方ははぜひご来場下さいませ!

前回のマッシュアップキャラバンの様子:
- [を] 「Mashup Caravan in Tokyo」(for MA4)、参加レポート[2008-07-12-1]
この記事に言及しているこのブログ内の記事

夜に恵比寿を散歩してたら、電線の上をイタチみたいなネコみたいな得体の知れないやつが歩いているのを発見!
自衛隊の敷地から電線を伝って住宅地に入って来ました。

恵比寿でハクビシン

電線上を移動するそいつを追っていきましたが、最後は緑の多い住宅の庭に消えていきました。

電線上のハクビシン

どうやらハクビシンだったようです。
顔に白い筋があったしな。

ハクビシンのお散歩 ハクビシン
(Photos by iPhone and TiltShift Generator[2009-09-09-5])

「ハクビシンの綱渡り」という面白い曲芸が見れてツイてる!
夜の散歩も楽しいなあ。

§

ちなみに、iPhone で撮ったオリジナルの写真(前掲の最後の写真)はこんな感じ。
ハクビシン写真、加工前
これを iPhone アプリ「TiltShift Generator」で修正したのが今回の写真です。
やはりこういうタスクにはかかせないわー。

ref.
- [を] iPhoneアプリ「TiltShift Generator」は明るさ調整に重宝[2009-10-16-4]

となりのトトロ ネコバス(L)


ゆーすけべ氏の「Google Analytics API を Perl から扱うスクリプト」が非常に素晴らしいのですが、標準Perlモジュールしか入ってない環境だといろいろとアレだったので改造しました。

- [ゆ]: Google Analytics API を Perl から扱うスクリプト
http://yusukebe.com/archives/09/10/19/054257.html
- Google Analytics Developer Docs - Google Analytics - Google Code
http://code.google.com/intl/ja/apis/analytics/docs/

標準モジュールうんぬんよりも、「さくらの500円レンタルサーバで動くようにしました!」というのが正しいか。(追記091022: さくらのデフォルト環境で、ということです。説明不足でした。)


スクリプト(仮名 gaapi.pl)の使い方。
コマンドラインから使います。
引数なしで実行すると、ProfileID が分かります。数字6桁くらいのやつ。
その ProfileID と日付を引数に渡すとその日のPVが分かります。
実行例:
./gaapi.pl ga:138852 2009-10-10

以下、コード(gaapi.pl):
#!/usr/bin/perl
use strict;
use warnings;
use HTTP::Request::Common ();
use LWP::UserAgent;
use XML::Simple;
use Data::Dumper;

my $email = 'YOU@gmail.com';
my $password = 'PASSWORD';
my $source = 'yusukebe-GoogleAnalyticsCommand-001-kai1';
my ( $req, $res, $auth_key );
my $ua = LWP::UserAgent->new();
my $xs = XML::Simple->new( KeyAttr => [''], ForceArray => ['entry'] );

auth();
if ( defined $ARGV[0] and defined $ARGV[1] ) {
    analytic( { profile_id => $ARGV[0], date_string => $ARGV[1] } );
} else {
    ls();
}

sub auth {
    my $auth_url = 'https://www.google.com/accounts/ClientLogin';
    my $service = 'analytics';
    $req = HTTP::Request::Common::POST(
        $auth_url,
        [
            accountType => 'GOOGLE',
            Email => $email,
            Passwd => $password,
            service => $service,
            source => $source
        ]
    );
    $res = $ua->request($req);
    die $res->status_line if $res->is_error;
    my $content = $res->content;
    if ( $res->content =~ /Auth=([^\s]+)/ ) {
        $auth_key = $1;
    } else {
        die "can't find auth key!";
    }
}

sub analytic {
    my $args = shift;
    my $feed_url = 'https://www.google.com/analytics/feeds/data';
    my $profile_id = $args->{profile_id};
    my $date_string = $args->{date_string};
    $feed_url =
        "$feed_url?ids=$args->{profile_id}&metrics=ga:pageviews".
	"&start-date=$args->{date_string}&end-date=$args->{date_string}".
	"&prettyprint=true"; #xxx
    $res = $ua->request(
        HTTP::Request::Common::GET(
            $feed_url, 'Authorization' => "GoogleLogin Auth=$auth_key"
        )
    );

    my $ref = $xs->XMLin( $res->content );
    print Dumper($ref), "\n";
}

sub ls {
    $res = $ua->request(
        HTTP::Request::Common::GET(
            'https://www.google.com/analytics/feeds/accounts/default?prettyprint=true',
            'Authorization' => "GoogleLogin Auth=$auth_key"
        )
    );

    my $ref = $xs->XMLin( $res->content );
    print Dumper($ref), "\n";
}
この記事に言及しているこのブログ内の記事

今日発売のiPhone本。
一部のネット界隈で猛烈に話題になっていました。

堀正岳, 佐々木正悟 / iPhone情報整理術 ~あなたを情報"強者"に変える57の活用法!


てなわけで、夜に恵比寿駅ビルにある有隣堂に買いに行きました。
あった、あった。平積み、平積み。
初日ながら結構売れてる感じ。
iPhone情報整理術、発売日ながらよく出てる

dankogai の恥ずかしい表紙の本と一緒に買いました。
iPhone本のついでにダンコガイ本も買っちゃった
小飼弾 / 空気を読むな、本を読め。


その足で恵比寿のオシャレなカフェ(ま、マクドナルドですけど)に行って一気に読みました。(一緒に行った妻はdankogai本を読んでました。)
散歩の途中でおしゃれなカフェで休憩

私はそこそこヘビーに iPhone を使いこなしている部類の人間だと自負しているので、この本の内容に目新しさを期待してなかったのですが、意外と知らなかったことが多く、非常にためになりました。スルーせずに読んどいて良かったー!

メタな話題は以上。
以下、読書メモです。

- 『「整理」とは書類をどこかに保管することではなく、どうやったら安心して捨てられるようにできるかと考えることなのです。』(p.17)

- 読みながらインストールしたアプリ:
-- Air Sharing(p.28) : 600円もするけど著者を信じて入れてみたら、こりゃすごい。さっそく大活躍。
-- Google Mobile App(p.138) : 「入れてなかったのかよ!」とつっこまれそうですが。

- 仕事術がらみのアプリだと「Remenber The Milk」(p.68)を私も使っています。そのうち記事書く!

- iPhone と紙の手帳・メモ帳のコラボ話(p.129,133)。私は iPhone + ほぼ日手帳、ロディアメモ帳。

- マップのブックマークはぜんぜん使ってなかった(p.161)。活用しよっと。

- iPhone の iPod 機能には、2倍速再生と30秒巻き戻しがある(p.194)。オーディオブックとかリスニングとかに便利。耳勉強法[2009-06-17-4]の最強ツール!

- Tips:
-- qwerty入力のときに「123」を押したままドラッグすればキーボード切り替えなしで数字記号入力が可能(p.219)。
-- ホーム画面にウェブページが登録できる(p.221)。アイコンがそのページのサムネイルになる。さっそくじゃんじゃん登録した!
-- ピリオド長押しで「.co.jp」や「.com」が入力できる(p.223)。

なお、妻が近々 iPhone をゲットする予定なので、参考書として読んでもらうつもりです。
ひろがれ iPhone の輪!

追記091023:
質問コメント頂いたので回答。
キーボードで「ああ」とか「なななんと」など、ア段の音を連続入力する方法は載ってますか?
載ってますよ!
正解はテンキーの「→」ボタンです。(ref. [2009-08-14-1])

先日、恵比寿駅前に赤い郵便ポストが二つ並んでたことを報告しましたが[2009-10-02-4]、渋谷にも二つ並んでいました。

渋谷ダブルポスト

こちらは間に木が入っているので、「なかよし」度は若干下がりますね。

ref.
- [を] ダブルポスト[2009-10-02-4]
double posts
(恵比寿駅前のダブルポスト。)

たつをの ChangeLog
Powered by chalow