2010年8月18日水曜日

GAEのDashboardがまたえらいことになり、Quotaもえらいことになっていた

GAEで管理者だけがアクセスできるページ(なんて呼ぶんだろうね?管理コンソール?)で初期表示される画面が「Dashboard」って名前なんですが、ここのChartっていうグラフに、1秒あたりのリクエスト、送信バイト、受信バイト、などが表示できるのです。

で、今日ふと開いてみたら、 過去30日分を表示できるようになってる!
今までは24時間がMAXじゃなかったかと思うんだが。。。

そして、30daysを選んでみると、過去30日分が表示される。。。ってことはこれまでも表示してなかったけど、データとしては保持してたってことですね!?

恐るべしGoogle、である。
これまでも管理コンソールには気付くとメニューが増えていたりして、侮れない。

あとついでだから言っておこう。
GAEには無料でどこまで使えます~という制限があって、ま、端的に言うとそれを超えると(GAE利用開発者を悩ますOver Quotaというやつだ)使えなくなるわけなんだが、その制限が大きく緩和されている。いつの間にか。

古いのは日本語版を見れば分かる(2010/8/18時点。気付いたら英語版に追随しているかもしれない。気をつけよう)
http://code.google.com/intl/en/appengine/docs/quotas.html
を開いて、言語をEnglishと日本語で切り替えてみよう。

例えば1日当りのリクエスト数は、
旧:1,300,000 件
現:43,200,000 requests
とかになって、、、増えすぎじゃね!?


俺かつがれてる??実は課金が発生してる?どうしよう。。。

2010年7月16日金曜日

ごめんなさい・・・

もう対処済みですが、本サイトの方で案内した通り、付箋紙が登録も変更も削除もできなくなる状態が発生してました。本当に申し訳ありませんでした。

原因、、、なんですが、分かってるんですが本当のところは良く分かってないのです。
(どっちやねん!)

AIRのクライアントを立ち上げると、
(1) HTTP(non SSL)のサイトにアクセスして、Googleログインする。
(2) セッションキー(Cookie)が払いだされる。
(3) そのCookieを使ってHTTPもHTTPSも通信する。
という動きになっていたんですが、

ある時から(1) の方法で取得した(2)のCookieがHTTPSで使えなくなってしまっていました。

AIRのクライアントは、
・更新の確認(だけ)はHTTP
・付箋紙の取得、登録、変更、削除はHTTPS
でおこなうように作られているので、後者が全部失敗しちゃってました。

前は(3)がOKだったんですけどね・・・。HTTPでアクセスして取得したCookieをHTTPSで使えなくしたのは誰なんだ?というところが分かってません。
・GAEか?
・Googleアカウントか?
・Windows(InternetExplorer)か?
・AIRランタイムなのか?
嫌疑がかかるのはこれだけいます。

とはいえです。セッションキーをHTTPで送り続けるのもセキュリティ的にまずかったなとは思うので、(1)はHTTPSにするように変更しました。

じゃあ、HTTPを使ってる「更新の確認」はどうすんの?とお思いでしょうか。
ええ、そこをクリアするのに少々時間がかかってお待たせしてしまいました。

結論としては、HTTPSでログイン後、HTTP専用のセッションキーを内部的には払いだすようにしてます。HTTP専用セッションキーは例え盗まれたとしても「更新があるか・ないか」しか分かるものはない(Googleアカウントすら秘密)ので、セキュリティ的には大丈夫かな、と思います。

ふぅ。。。あせったな。。。

2010年3月29日月曜日

「GAEでのメール受信」のその後

以前のエントリ「GAEでのメール受信」で、文字コードが分からん話を書きまして、issue Trackerにも問題として上がってるわけなんですが、いつまで経っても直ってこないなあ、なんて思ってたら、ドキュメントの方に、

original is the complete message, including data not exposed by the other fields such as email headers, as a Python email.message.Message.

こんな文言が!
あれ?前なかったよね、この説明。あったのかな・・・。

ということで、
message.original.get_content_charset()
とかしてやると、文字コードが取り出せるようになりました!
(multipartだともうちょっと工夫が必要だが、まあやることはだいたい同じ)

なのでまあ、GAEの用意してくれたライブラリに頼る必要はありません。
かつ、柔軟に扱えるのでお勧めかな。ちょっと面倒がありますが。

これでメール受信も実用になりそうです。めでたしめでたし。

2010/3/30追記:
てなこと言ってたら、1.3.2で改修されたとか(試してないけど)。タイミングわりぃな・・・。

☆☆☆☆☆☆ Push It!の宣伝 ☆☆☆☆☆☆
メール受信による付箋紙投稿機能も鋭意開発中。
ますます便利になるオンライン/オフライン付箋紙ソフトPush It!をぜひご愛顧下さい。

2010年2月17日水曜日

Google Data APIを使ってスプレッドシートをいじってみる

さてさて、本職の方が半年ほど、
お、今日は日付が変わる前に帰れた。ラッキー
てな感じだったので、Push It!の方もバグが出ない限りはあまりいじれてなかったのだが、ようやく本職も落ち着いてきたので、やり残してたことのいくつかに手を付けたいと思う。

第一弾。 付箋紙の変更履歴をGoogle Docsのスプレッドシートに残してみよう!

ということで、まずはGData APIをまさぐる。
(まず既知のバグっぽい動きをなんとかしろとかいう話もあるがそれはこっちに置いといて)

ふむ・・・Google Docsをいじるためには、Google Documents List Data APIを使えばいいわけね?おっけおっけ。認証も通るようになったし、次はスプレッドシートにワークシートを追加だ・・・ってそんなAPIなくね?
・・・ないね?ないよね?


どーすんだー、と思ってたら、Google Spreadsheets Data APIというものがあった。
なるほど、さっきのはあくまでドキュメントのリストを操作するためのAPIであって、スプレッドシートをいじるのはこっちなのね?解決。

・・・どぅええ~?!

Doc Listの方で認証通したのに、また認証を求められるんですけど・・・。どっちもGoogle Docsへのアクセス許可じゃないんか~い!

というような紆余曲折がありつつ、徐々に前に進んでます。

なのですが、ドキュメント類があまりにも充実してなさすぎで頭にくる。
GData APIはAtom準拠らしいんで本当はURIを自前で構築してみたり、返ってきた値がXMLなんでそれを解析してみたり面倒な作業が必要なのだが、そこはそれ。各種言語用のライブラリが用意されているので、いかにもその言語のライブラリであるかのようにアクセスできるようにはなっている。
のだが、そのライブラリのリファレンスがない(と思う)のだ
あるのはDeveloper's Guideっていう、まあ一連の操作を順を追って説明していく形のもの。網羅的でもなんでもない。
(あとプロトコルのリファレンスはある。がそれを見て使えるくらいならそもそもライブラリなど使っていない)。

どんなクラスが、関数が、関数の引数が、クラス変数があってどう使うか、ってことは本来リファレンスに書いてあるべきだと思うが、それがない。
ただソースコードは公開されているので(つかPythonだと公開せざるを得ないのだが)、それをリファレンスとして使うことができないでも、、、ない。むしろDeveloper's Guideなどでもソースへのリンクが張られてたりするところを見ると、Googleとしては「ソースがリファレンスである」とでも言いたげである。まじですか・・・。

ということで、本当に亀の歩みのようにゆっくりと前に進んでます・・・。