2009年7月8日水曜日

AIRのURLRequestで・・・

AIRっぽい話を書くのは久しぶり?(このブログ自体が久しぶりですが・・・)

AIRで気楽にHTTP通信させるためのクラス「URLRequest」なんですが、これを使って取ってきたHTMLがどうも英語圏向け。ブラウザで見ると日本語。

はて。。。確かブラウザには優先する言語なる設定があって、それはHTTPヘッダの、、、なんだっけ、、、Accept-Languageかな、に乗っかるはずで、サーバはそれを見て、どの言語で返すか決める(選択肢がある場合はですが)はずで、上記でアクセスしようとしたサイトはそういう動きになっているのであろう。

しかし、URLRequestはAccept-Languageを乗せてくれないようだ。ほ、ほほう。。。困ったね。

じゃあ、HTTPヘッダをいじればいいんだよな?ってことで調べたら、
URLRequest::requestHeaders
っていうのに設定すれば良いようだ。。。待て。焦るな。

良く読んでみよう。
「ブラウザの制限により、カスタム HTTP リクエストヘッダは POST リクエストだけをサポートし、GET リクエストはサポートしません。」

ノー!
え、じゃあ、GETの時はどうすればいいの?
このグローバリゼーション真っ只中の21世紀に日本語など使うなと?いや、困るんだけど。

ちなみに、件のサイトとは、Push It!を使ってくれている方なら度々見ているはずの、ログインページです。Google様の用意してくれているページですので、手のくだしようがないです。

対応策、、、あるかなあ。。。

☆☆☆☆☆☆☆ 宣伝 ☆☆☆☆☆☆☆
オンライン・オフライン二刀流の付箋紙ソフト、Push It!
まだβ版を名乗ってますが、普通に使えます。改善要望もここにコメント残してくれれば善処します。
ログインページは英語ですけど!他は全部日本語です。
ぜひ、使ってみてください。

2009年6月12日金曜日

Push It!を久々にバージョンアップ

0.9.3をリリースしました。
0.9.2から早3か月以上か。。。

タスクトレイのメニューを大幅に強化したので、試してみてください(同じ操作はメイン画面でもできますが)。

そして、待望の!(待望か?)
  • 起動時にネットワーク接続しない選択肢
    起動すると即オンラインになろうとして気持ち悪かった人はぜひ、オプションを開いて、
    「起動時のネットワーク接続」→「オフライン」
    を選択してみてください。明示的にオンラインにするまでネットワークにつなぎません。
  • スタートアップ起動
    Windowsでログオンした時に自動的に起動できるようにしました。これもオプションを開いてみてください。Mac/Linuxでは試してませんが。。。多分できるでしょう。
    ただ、「AIRアプリケーションの自動起動」のエントリで書いたように、自動起動ONのままアンインストールするとスタートアップにショートカットが残るので注意。OFFにしてからアンインストールしましょう。
  • いなくなった付箋紙を探せる
    タスクトレイメニュー右クリック→「付箋紙表示」、もしくはメイン画面のタグ名右にあるボタンのクリックで、付箋紙にクイックアクセスできます。どこに行ったか分からない付箋紙を探すのに役立ててください。
ちなみに内部的な話で恐縮ですが、「付箋紙の削除」も同期させる必要があるため、サーバ側には「削除したよフラグ」だけ付けて、データ自体は残してたのですが、これだとデータがいつまでも増え続けるので、削除後30日以上経ったものは、サーバからも消すことにしました。

じゃあ、30日以上開けて同期したら、削除が同期されないのか?というと、ちゃんとそういうことはないように作ってあります(ただその場合はちょっと時間がかかる可能性はありますが)。
もともと仕組み上は削除に備えてそうしてたんだけど、実際に削除はしてなかったんです。
なぜか。GAEに定期処理の仕組みがなかったから。GAEはHTTP/HTTPSアクセス契機でしか処理を実行できなかったのだ。

でも万歳!確か今年に入ってからだったと思うけど、GAEにCronの機能が加わって、ブラウザからのアクセス契機でない定期処理も実行できるようになったのだ!実に喜ばしい。

2009年6月3日水曜日

AIRアプリケーションの自動起動

自分の作ったアプリをいつでも使って欲しい!となったらやっぱりスタートアップフォルダに突っ込むに限りますよね。

AIRの場合、ランタイムにそれ用のAPI(NativeApplication::startAtLogin)が用意されているので、登録するのも解除するのも、今登録されてるかどうか調べるのもらっくらく、なんですが、一つ問題が。

アンインストールしてもショートカットがスタートアップに残ってしまうのだ(Windowsの場合ね。他はわからん)。。。
なおかつ、アンインストールする時に削除する仕組みを作りたいと思っても、アンインストーラはAIRのランタイムで完結しているので、自前のクリーンアップロジックを組みこめないのである(これはAIRアプリで作ったデータファイルなども同じ理由で、やはり残ってしまう)。

AIRのランタイムでそういうところまでちゃんと面倒みるようにしてもらえないだろうか。。。切に願いたい。

2009年6月1日月曜日

Google Wave

ご無沙汰してます。

しばらく更新しない間に、GAE/Jが出たりとかでGAE界隈に限らずGoogleの動きは相変わらず激しいですなあ。

そんな中Google Waveですよ。
要するにリアルタイムな情報共有プラットフォーム、なんですかね?かつオフラインでの使用も考慮している、と。。。まてまて。。。それってまさにPush It!が目指す方向と完全にバッティングしてるんですけど!?

そうか~、そうきたか~。
そうすると、Push It!サーバはGoogle Waveに乗せ換えるってこともできるかも知れない。
乗せ換えないにしても、少なくとも何かしら統合することで素敵な未来がひらけるかも知れない。
一つのデータをWaveに統合されたビューと、付箋紙のビューのどちらでも見られるとかね。
更新も同期もWaveのリッチな機能にお任せだ、すごいぞ。
しかし、居場所もないかもね。。。まだ正式発表されてないけど、戦略を練らなくては。。。

ちなみに、Adobeのリアルタイムコンテンツ配信プラットフォーム(なのかどうか良く分からないが)も、Waveでしたな。あっちはどうなってるんだろう。情報がご無沙汰ですけど。

2009年2月25日水曜日

Over Quota

最近ユーザー数が増えてきたから、なのかどうかわかりませんが、日中帯のアクセスがほとんど「Over Quota」になってしまって、何もできない事態が続いているようです。
引っかかっている方、ご迷惑をおかけしてます。

Quota Detailあたりを見ても、何も引っかかる要素はなさそうなんですが、多分、
・Quota Detailには、Over Quotaでエラーになったものは計上されない。
・でもカウントされててやっぱりQuotaに引っかかる。
みたいな感じなのかなと思います。

GAEのQuotaカウントは、日本時間の16時にリセットされるので、それ以降数時間はQuotaに引っかからずに快適に使えるみたいです。。。なんだよ。

Over Quotaを引き起こしてるのはAIRのクライアントが毎分のようにアクセスするからなのはわかってるんですが、ポリシーとしてそこは譲れない、でもOver Quotaの最中はトップページもみれなきゃダウンロードもできないという本末転倒な事態になってしまうのもまずい。
なので、コンテンツサーバとアップデートチェック用サーバを分けるのも一つの手かな、とか思ったりしています。

なるべく早急に解決しますので、もうしばらく我慢してください。申し訳ありません。

2009年1月19日月曜日

GAEのバージョンアップなど

しばらく書いてない間にGAEの環境も何かとパワーアップしております。

まず、既出だけど、Admin ConsoleにQuota Detailsが追加されました。
自分のアプリがOver Quotaで怒られることが多くなったら、ここを見ると解決しそうだね。
でも、残念なことが一つ。
各種Quota値は24時間に使用したAPIの数とかになってるんだけど、その24時間っていうのが、日本時間だと16時から次の16時までの24時間になっている(多分)。
じゃあ、24時間でどのくらい使われているのか知りたい!と思ったら、16時ギリギリにQuota Detailsを開かないといけない。それを過ぎるとカウンタがリセットされてしまうのだ。
Quotaを「直近の24時間」にしてもらうのがベストなんだけど、意外と大変なんだよね、直近の○○時間の統計って。
プログラマの皆さんならわかると思う。
単なるカウンタなら1個用意しておけばいいところを、(例えば過去24時間といった)時限付きカウンタだと、秒とは言わないまでも分単位などでカウンタを用意しないといけないということを。

あ、話がわき道に逸れました。で、何を言いたいかというと、つまり直近24時間が難しいのは分かるので、せめて「前日分」の結果を見られるようにしておいてもらえないだろうか。
「今は大丈夫だけど○○APIが90%使ってるから、もうちょっとユーザが増えたらアウトだな」とか見たいじゃないですか、やっぱり。


さて、次がSystem Status。
これはAdmin ConsoleからもGAEのホームからもたどれるけど、GAEがちゃんと稼動しているか、とか、各種APIが通常のレスポンスタイムで動作しているか見れるもの。
ここで言うレスポンスタイムは、「GAE全般において」だから、「僕の」「あなたの」アプリケーションにおいて、ではない。でも参考にはなるだろう。
Datastoreとmemcacheのレスポンスの違いに驚いたりする。
(前も書いたけど、memcacheのQuota制限を緩めてくれ~)

あとなんですかね、時々びょーんとレスポンスが悪くなる時があって、なんかバッチでも動いてるんすかね。気になります。


最後に、SDK1.1.8が1/7にリリースされました。久々ですね。
(どうでもいいですが、リリースノートによると2008/1/7のようです。って、1年前にリリースされてたんですか!?そんなわけないですね)
リリースされるたびにマニアック度を増す修正内容(w
多分、自分も含めて普通の人はアップデートしなくてもいいでしょうね。

☆☆☆☆☆☆☆☆☆ Push It!の宣伝 ☆☆☆☆☆☆☆☆☆☆
最近リリースがご無沙汰ですが、Push It!の開発は地味に続けてます。
正式リリースまでにしっかり作りこんでおきたい裏の部分を今やってるので、あんまり華々しい変化はないんですが、もう少しでβが取れて、RC(リリースキャンディデート。正式版候補)が出せると思います。
と言いながらも、今現在でもちゃ~んと動きますので、ぜひ皆さん使ってください。
不具合報告はバンバン受け付けます。

Linux版AIRの報告

前回エントリから1ヶ月も間が空いてしまいましたねえ。
いろいろと忙しくなってしまって、なかなか。

さて、前回エントリで書いたLinux版AIR1.5で、Push It!を動かしてみました。
環境はVirtualBox2.1.0上のUbuntuでした。

結果は、というと、、、なんとも拍子抜けするほど普通に動きました。
Gnome環境でしか試してないですが、タスクトレイを使った動作もできました。
その辺はWindows系と共通っぽい。
(MacOSXのDockだと使うAPIがちょっと違うのだ。この辺を読むと良いよ)