先日 Google から正式公開された モバイル向け Google Analytics ですが、「Google Analytics for Mobileの導入時に注意したほうがいいこと | 晄夏ノート -hicage no oto-」によると、PHP用に配布されている ga.php ファイルにタイポ(コードの打ち間違い)があるとのこと。
$SERVER["HTTP_X_UP_SUBNO"];
$SERVER["HTTP_X_JPHONE_UID"];
$SERVER["HTTP_X_EM_UID"];
↑ここ。
どうやら $_SERVER としないといけないところを $SERVER としてしまっているようです。こちらでも今ダウンロードしてみた ga.php を確認してみると、

↑ あらびっくりw
というわけで、すでに ga.php をサイトに設置している方は修正しておいたほうがよさそうです。
ProgrammableWebの「Google’s Secret Weather API」という記事で、GoogleがiGoogleの裏で利用しているという天気予報のAPIが紹介されています。
これによると、たとえば東京の天気であれば
http://www.google.com/ig/api?weather=%E6%9D%B1%E4%BA%AC
のようにweatherというパラメータに地名を指定します。レスポンスは以下のようなXMLで取得されます。

もし日本語で取得できない場合は、パラメータに hl=ja をつければ日本語で返ってきます。
なお、Google グループのディスカッションによると「for gadget use only」とされていますが、利用しないほうがよいと思われます。
Windowsのアプリケーションには、よく「F11キー」を押すとフルスクリーンモードになるものがありますが、TwitterクライアントのTweetDeckもF11キーでフルスクリーンモードにできるそうです。

↑ 通常はウィンドウ上部にバーが表示されていますが、

↑ F11を押すとバーが消えて全画面でTweetDeckが使えるようになります。
元に戻す場合はもう一度F11を押すか、Escキーを押してください。いまのところフルスクリーンモードはWindows限定だそうです。
(via: TweetDeck Support :: Can I use TweetDeck in true full-screen mode?)

先月、といっても1週間ほど前の話ですが、約4年間勤めていた株式会社フィードフォースを退職しました。会社のみなさまには4年間本当にお世話になりました。
4年前に転職活動をしていた頃、自分でコードを書いてサービスを作れるWebエンジニアに憧れて会社を探していました。といってもほとんど技術を持ち合わせていなかったのですが、そんな中ありがたく採用していただいたのがフィードフォース(当時はルートコミュニケーションズ)でした。入社当時はそれまでとの全く違う仕事のやり方に、軽くカルチャーショックを受けた覚えがあります。
フィードフォースの技術チームはアジャイル開発をモットーとしていて、朝のスタンドアップミーティング、タスクは細かく分けてホワイトボードに貼り付け、テストを書いてからコードを書くテスト駆動開発、KPTで振り返りなどなどが入社当時からおこなわれていました。これらは現在でも変わりません。
会社ではRSS Suiteという企業向けのRSS配信ASPの開発を、入社当時から退職するまで主に担当していました。4年前はまだRSSがくる?こない?みたいな時期だったので色々と面白くやっていました。個人的にもこのブログで頻繁にRSSの話題を取り上げることで色々と勉強したりしていました。
また、技術チームは「週40時間労働」をモットーにしていたので、仕事が終わってからの時間を有意義に活用していました。おかげでブログやウェブ関連のイベントにも積極的に出ていくことができましたし、平日の夜や休日の時間を利用してちょっとしたネットサービスを自分で開発することもできるようになりました。そういった業務外の時間で得た知識や技術を逆に仕事に生かす、ということもいくらかできたんじゃないかと思います。
そんなわけでこの4年間はかなり充実していたと思います。
そんな中、個人的にやりたいことも増えてきたせいで「時間が足りないなー」と思うようになってきて、2010年ってキリがいいよなぁと思い(8月)、まぁここは迷ってもしょうがないから思い切ろう(11月)、と考えて会社を辞めることにしました。
このような時期にも関わらずあたたかく送り出してくれた会社のみなさまには本当に感謝しています。
これからはネットサービスだけでなくiPhoneアプリやmixiアプリの開発など、個人的にまだやっていない分野にも手を出して色々と模索していこうと思っています。受託をすると確実に自分の時間が減ってしまうので当面はやらないつもりです。
しばらくはブログ書きつつ開発しつつ、面白いアイデアを思いついたらそれをなるべく形にするということをモットーにがんばっていくつもりですので、今後ともよろしくお願いいたします。
Search Engine Landの「Google Maps To Add “Google Store Views”」という記事によると、アメリカのOh! Nutsというお店にGoogleの人がやってきて、店内を撮影していったそうです。
I received a tip from a New York retailer named Oh Nuts, that Google came to their store to take pictures for a new Google Maps product named “Google Store Views.” I was told that they took pictures of the inside of the store, every 6 feet, in all directions. They also took pictures of products.
記事によると「Google Store Views」という新機能のために店内の6フィートごとに360度の全方位を撮影していったとのこと。記事では撮影中の様子をおさめた写真も掲載されています。
追伸にはGoogle広報担当によるコメントも掲載されていますが、
We are always experimenting with new features for Google Maps. We have nothing further to announce at this time.
「Google Mapsは常に新機能の実験をしていてそれ以上言えることはない」だそうです。
関連記事: Is Google Planning to Take Street View into Stores? (Updated)
iPhoneの画面にアプリ16個をきれいに並べるとドラえもんが出現することで話題の「ドラえもんアプリ」が、iTunesの無料Appランキング上位を占拠していました。

これのおかげで下位16個のアプリは泣いてるわけですね。
似たようなコンセプトのアプリがさらに出てくると、もっとひどいことになるやもしれません。。
» 大人のためのドラえもん特集2010 - Yahoo! JAPAN
福岡県の目野酒造から「レディチョコレート」という、なんとチョコレート入りの梅酒が発売されたそうです。

» リキュール:チョコ入り、バレンタインにいかが 目野酒造が発売--柳川 /福岡 - 毎日jp(毎日新聞)
アルコール度数は5度でれっきとしたリキュール。チョコレートの香りの中にほんのり梅酒の香りがするとのこと。
記事によると目野酒造では、昨年レディミカンというみかん梅酒も発表しています。こちらもレディチョコレート同様、かわいい小瓶に入っております。
梅酒好きなあの人に、いかがでしょうか。
» レディチョコレート - 目野酒造 | 梅酒.in

色々Twitter連携するにはOAuth認証を扱えるようにしておかないと、というわけで以前やりかけて放置していたOAuthをイチからやり直してみました。
PHPで書いてるので参考にしたのは「PHPでTwitter APIのOAuthを使う方法まとめ - 頭ん中」です。PEARのHTTP_OAuthを使っていてとてもわかりやすかったです。
コードの書き方は上のエントリーを参考にしてもらうとして、ここでは認証した後どうすればいいのか考えたことをつらつら書いておきます。
認証が通るとアクセストークンを取得できて、そのトークンを利用するとユーザーのデータにアクセスできます。なので取得したアクセストークンをデータベースに保存しておくわけですが、TwitterのOAuth認証画面(アクセスを許可するかどうか選択する画面)で許可されるたびにアクセストークンが再発行されるようなので、すでにトークンを取得済みなら認証画面にアクセスさせないとか、再発行されたアクセストークンでデータベースを更新するといった処理が必要です。
トークンの有効期限はおそらくない?と思うのですが、よくわかってません。
また、アクセストークンを取得できてもそのユーザーが誰なのかはまだ分からないので、おそらく account/verify_credentials というメソッドをリクエストしてユーザー情報を取得するんだと思います。
自分のアプリケーションと連携する場合は、アプリケーションで利用しているセッション管理の仕組みと組み合わせてあげます。ユーザーのアカウントとTwitterアカウントを連携させる場合は、認証が通った後にTwitterのユーザー情報を取得して、そこからTwitterのユーザーIDだけユーザーと紐付けておけばいいと思います。screen_nameは変更可能なので紐付けには適しません。
APIのレスポンスはXMLよりJSONのほうが軽いし扱いやすいので、JSONで取得してそのままデータベースとかキャッシュとかに放り込んでおけばいいのかなと思います。
あと、データベースに保存するアクセストークンは扱いとしてはパスワードと同じものなので、必ず暗号化して保存しておく必要があります。ただし、Twitter APIをリクエストする際に復号する必要があるので、復号可能な暗号化方式で暗号化します。自分の場合は PEARのCrypt_Blowfishを使ってみました。
$key = base64_encode('暗号化用のキー');
$blowfish = new Crypt_Blowfish($key);
$accessToken = $blowfish->encrypt(base64_encode('アクセストークン'));
のように手軽に使えます。
HTTP_OAuthを使うやり方が大体わかったので、あとは色々連携機能を考えていくつもりです。

「Inside Adsense - 日本語: Google Maps API で AdSense が利用できます」という記事があったので、だいぶ前に作っていた「飲食店検索 - この辺で」の地図上にAdSense広告を表示してみました。

↑ 地図上に広告が表示されます。
広告を表示するやり方としては2通りあって、ひとつは「GoogleBar」という地図上に検索用のテキストボックスを表示するコンポーネントの検索結果に表示する方法、もうひとつは「GAdsManager」を利用して地図上に広告ユニットを表示する方法です。
自分のサイトではGoogleBarは使っていないので、GAdsManagerを利用しました。
GAdsManagerの使い方は以下のような感じです。
var map = new GMap2(document.getElementById('map'));
var adsManager = new GAdsManager(map, 'Adsense の プロパティID', {
style: G_ADSMANAGER_STYLE_ADUNIT,
maxAdsOnMap: 4,
channel: 'カスタムチャネルのID番号',
minZoomLevel: 6,
position: new GControlPosition(G_ANCHOR_BOTTOM_RIGHT, new GSize(0, 24))
});
adsManager.enable();
GAdsManagerの引数には、
- 1. GMap2オブジェクト
- 2. 「partner-pub-」で始まるAdSenseのプロパティID (アカウント情報から確認)
- 3. GAdsManagerOptionsオブジェクト
を指定します。3番目のGAdsManagerOptionsのプロパティは、
- style: G_ADSMANAGER_STYLE_ADUNIT または G_ADSMANAGER_STYLE_ICON を指定できますが、前者のほうしか確認できませんでした。
- maxAdsOnMap: 表示する広告の最大数。デフォルトは10ですが、2以上の場合は同時に表示される広告は2個ずつです。
- channel: AdSenseのカスタムチャネルのID番号。番号のほうなので注意してください。
- minZoomLevel: 広告を表示させるズームレベルの最小値。デフォルトは6です。
- position: AdSenseユニットを表示させる位置をGControlPositionオブジェクトで指定します。
GControlPositionの第一引数には
- G_ANCHOR_TOP_RIGHT
- G_ANCHOR_TOP_LEFT
- G_ANCHOR_BOTTOM_RIGHT
- G_ANCHOR_BOTTOM_LEFT
が指定でき、第二引数では地図の端からのオフセットを GSize で指定します。
という具合です。広告の色とかはカスタマイズできません。オフセットを指定できるので地図上の任意の場所に広告を表示させることができますが、そのあたりは節度をもって。
詳しくはGAdsManagerのリファレンスを参照してください。
とりあえず箇条書き。
- 第一印象はでかいtouch。
- iPadのサイトを見れば見るほどほしくなる。
- 外に持ち歩くようなものではなさそう。
- iPadが家族向けだとするとiBooksは微妙。本を読むと端末を個人が占有することになるので。
- 家庭のカレンダーの電子化が進みそう。
- やっぱりポイントはアプリだと思う。
- iPhoneのSafariが微妙だけどiPadは大丈夫か?
- iPad Caseがいい。フタを折りたたんで斜めに角度がつくのが。
- Wi-Fiモデル(16GB)が日本で5万円未満だったらいいな。
とりあえず早くさわってみたい。
» アップル - iPad - ウェブ、メール、写真を体験する最高の方法。