2013-06-30

Google AdSense 10周年、サイトでピンポンゲームが可能に

Google AdSense が 10 周年を迎えたそうな。 で、管理ページを開いてみると、左下すみに 10 周年記念のロゴマーク。
何の気なしにそのマークへマウスを当ててみると…。


1 と 0 とが分離して、いつの間にかピンポンゲームが始まる仕掛け。ゲームは 10 点先取で、操作はマウスのみ。簡単簡単♪と最初はなめてかかっていたのだけれど、7 点ぐらいから球速が速くなり、やや苦闘。パーフェクトで勝つのは至難の業かも。

Google はいつでもこういう遊び心があっていいな、と思ったり。

2013-06-05

Blogger フィードを取ってくる GAE/J アプリで RuntimeException

最近あまり手を付けていなかった GAE/J アプリ Japanese Bloggers Info で、$1.0 / day を超えて 503 Over Quota(サービス停止)が頻発するようになった。

503 Over Quota on GAE/J

タスクキューで呼ばれた Blogger ブログのフィードの確認用サーブレットが何度も止まり、キューがいっぱいになるのが原因らしい。スタックトレースを見るとこんな感じ。

java.lang.RuntimeException: Unable to complete the HTTP request
at com.google.apphosting.utils.security.urlfetch.URLFetchServiceStreamHandler$Connection.getHeader
at com.google.gdata.client.http.HttpGDataRequest.isOAuthProxyErrorResponse
at com.google.gdata.client.http.HttpGDataRequest.checkResponse
at com.google.gdata.client.http.HttpGDataRequest.execute
at com.google.gdata.client.http.GoogleGDataRequest.execute
at com.google.gdata.client.Service.getFeed
at com.google.gdata.client.GoogleService.getFeed

何で、急にこんな例外が出るようになったのかは不明だけれども、とりあえず、

http://example.blogspot.com/feeds/posts/summary?max-results=1&redirect=false

とブログ直下のフィードにアクセスさせていたのを、

http://www.blogger.com/feeds/BLOGID/posts/summary?max-results=1&redirect=false

と、Blogger にブログ ID を使って問い合わせてフィードを得る方法に変えてみたら(参考)、RuntimeException が出なくなった。ブログを登録してもらったときに、フィード URL のほかにブログ ID も保存していてよかったーと思った瞬間。…で、気になるお値段、Billing History もこの通り。

Billing History on GAE/J

日々の課金がみるみる減って、今は元の水準の $0.15 以内で推移している。どうせ最低でも週に $2.10 はかかる仕組みなので(参考)、日に $0.30 以内は許容範囲。釈然としないものをかかえつつも、とりあえずはめでたしと。

2013-06-02

JavaScript の parseInt ではまる



Java の parseInt は特に指定しなければ 10 進数として解析されるので油断していたのだけれど、
JavaScript の場合 parseInt は "010" で 8 進数、"0x10" で 16 進数として解釈されたりするのね。

parseInt("010", 10) とかって、入力値によっては基数を明示しとかないと困ることがあるのか。ほほう。