Google App Engine

Scala で Google App Engine の続き

先日のブログには,Eclipse だけではエンハンスがとおらないので,外のbuild.xmlを使う必要がある,なんてことを書いた.が,いろいろいじっていたら,そんな必要は無いことがわかった...エンハンスに失敗するのは,scala関係のjarがビルドパスに登録され…

App Engine の負荷とインスタンス数

先日インスタンスとスレッドの関係を調べるために,いくつも同時にリクエストを発行してみたのだけど,4つしかインスタンスができなかった.エラーが起きるほどリクエストがたまっているにもかかわらず,インスタンスが増えてくれない. どういう理屈でイン…

Scala で Google App Engine

以前ScalaでGoogle App Engineが使えないかと思って,試してみた.そのときには,サーブレットは普通に動くけど,JDOのエンハンサが動いてくれなくて,JDOが使えなかった.今回,ちょっといじってみたらJDOを含めて動かすことができたので書いておく. コマ…

Google App Engine はマルチスレッドで動いているのか?

Programming Google App Engine の93ページ上のあたりに,App Engine の一つのインスタンス上で同時に複数のリクエストをそれぞれのスレッドで処理する「かもしれない (may) 」,だからちゃんとスレッドセーフに書く様に,という趣旨のことが書いてある.実…

App Engine deferred for Java

Task Queue App Engineでは,一つのサーブレットは30秒しか実行出来ない上,スレッドを使うことができない.このため普通の方法では,長時間かかるようなタスクを実行することができない.これを補う機能としてTask Queueがある.Task Queueでは,サーブレッ…

App Engine Memcache のincrementの挙動

App EngineのMemCacheにはアトミックなインクリメントが実装されている.符号付き64ビット長で管理されていて,Long.MAX_VALUEを越えると,負の値に巻き戻る,と言うことになっている. Incrementing by positive amounts will reach signed 64-bit max (2^6…

App Engine 1.3.0 とBlobstore

ついこの間1.2.8がでたばっかりなのに,もう1.3.0がでた.ここのところのGoogleのラッシュはすさまじい.クリスマス休暇に入る前に,今年やった仕事を全部リリースしようとしてるんじゃないだろうか. Blobstore 1.3.0 の目玉はBlobstoreというデータストア…

App EngineのLogをXMPPで飛ばす.

Log をリアルタイムで見たい App Engineにはよくできたログコンソールがあり,フィルタリングとかもできるのだが,Webベースの悲しさ,必ずリロードしなければ最新の情報をみることができない.これを解決する素晴らしい記事がこちら.叢雲の歌:XMPPを使っ…

App Engine 1.2.8

でた.1.2.6 のあと,Python版だけバグフィックス版の1.2.7が出ていたが,1.2.8はPythonとJava同時リリース.新機能の追加はあまりないようだ.Admin Consoleの強化がひとつのポイントらしい.Task Queue APIで作られたタスクやキューの管理ツールが追加され…

クラウドの技術

一部を書かせていただいたムックが発売になりました.今は亡きUnix Magazineの特集を再編したものですが,半年の業界の変動に対応すべく,大幅に書き換えられています. 私が書いた部分はさておき,全体に力作ぞろいです.よろしかったら買ってください(^_^)…

Task Queueのクォータ拡大

ブログ記事によると,Task QueueのQuotaが拡大されたらしい. 無料で使えるクォータ: 1日あたり1万から10万タスクに 課金クォータ: 1日あたり10万から100万タスクに 100万タスクってすごいな..何をするんだろう.それはともかく,注目は最後の Stay tuned…

App Engine 1.2.7

1.2.6からわずか数日で,1.2.7がでたようだ. ただしPythonのみ.バグフィックス. こんな短期間で出たことからもわかるように,結構大きなバグだったようだ.Modelクラスのコンストラクタにkeyword引数をつけたら,変なことになってしまったらしい. Javaの…

Scala で Google App Engine

Scalaのプログラムは,かなりそのままJavaのクラスファイルとなるので,Google App EngineのサーブレットをScalaで書けるんじゃないかと思っていたが,やってみたら,すごく簡単に書けた. 方法は,こちらのサイトを参考.Eclipseのプラグインを使う. 準備 …

App Engine でメイル受信

1.2.6で追加されたメイルの受信を試してみる.メイル受信機能は,XMPPの受信と同じでWeb hookで実現されている.つまり,メイルが来ると特定のURLに対するアクセスが発生して,それに対応するサーブレットが呼び出される.受信できるメイルアドレスは, 任意…

App Engine 1.2.6

公式ブログによると,1.2.6がリリースされたようだ.主な変更は, ついにメイル受信に対応.予想どおり,Web Hookパターンで書く.任意のメイルアドレスのメイルが受け取れるようなので,いろいろと便利に使えそうだ.また,開発サーバのコンソールから,受…

Google App Engine for Java [実践]クラウドシステム構築

(株)グルージェント App Engine 入門書.こちらは,Javaのみを対象としている.必要な情報が過不足無く書かれていて,なかなかの良書.いま2冊しかApp Engineの日本語の本は無いと思うが,2冊のうちでは圧倒的にこちらがおすすめだ.データストア周りがかな…

Twitter to Google Talk bridge

TwitterをGmailのWebインターフェイス上のGoogle Talkで読み書きできるといいなあと思い,調べてみたところ,Twitterには昔はJabber(XMPP)インターフェイスがあったが,ある時点からなくなったらしい.ちょうどいいので,App Engineで作ってみた. 設計 Twit…

Velocity vs. FreeMarker

JavaのテンプレートエンジンとしてはFreeMarkerを愛用しているのだけど,サイトが今年になってからアップデートされていなかったり,やっぱり世間的にはVelocityであろう,という声もあり,Velocityも調べてみた. Velocity VelocityはApacheのプロジェクト…

Twitter Java API

TwitterはRESTインターフェイスを提供していて,データ形式もRSS,XML,JSONと選べる.したがって,どのような言語からでも簡単にアクセスできるのだが,それでも面倒だという人のためにwrapper APIを書いてくれている人がいる.Java のAPIをググったところ,2…

Migration to a Better Datastore

App EngineのブログにMigration to a Better Datastoreという記事が出ていたので,野良翻訳してみる.要約 これまでは,Bigtableの複製機能でデータセンタ間の複製を行っていたが,整合性が無くなる可能性があるため,データセンタがまるごとクラッシュした…

Google App Engine でメイルの受信

Google App Engine 最大の死角 ここ数ヶ月で急速に整備の進んだGoogle App Engineだが,できて当然なのにまだできていないことがある.メイルの受信だ.メイルの送信はできるし,XMPPの受信だってできるのに,なぜか普通のメイルの受信ができない.Googleに…

XMPP on Google App Engine

XMPPってなんだ? よくわかっていないのだが,インスタントメッセージを標準化しようというプロトコルらしい.こちらに非常によくまとまっているのだが,プロトコルとしてはメイルにかなり近いようだ.アドレスもメイルと同じ表現で,XXX@domain.nameと書く…

新人プログラマのためのGoogle App Engineクラウド・アプリケーション開発講座

掌田 津耶乃 やっと出た日本語のGoogle App Engineの本.著者は,出るのが早いが変な本になってることの多い,掌田 津耶乃氏.以前のJavaFXの本は,出るまえに言語仕様ががらっと変わって,意味が無くなっていた.関係ないが,著者紹介によると,小学生の少…

Google App Engine 1.2.5

でた.これまではPython版とJava版のバージョンは一致していなかったのだけど,こんどから同じ番号になるようだ.Java版は1.2.2からジャンプアップした形. XMPPサポート 今回の目玉.IMのインターフェイス.これを使うと,Google TalkなどのIMにメッセージ…

Google App Engine 1.2.4の密かな新機能

8月初頭に発表されたGoogle App Engine 1.2.4には,Remote APIの強化などのまっとうな新機能以外に,2つ隠し機能?がある,という記事がApp Engineのブログに出ていた.いずれも小ネタではあるが,結構便利そうだ. ヘッダに管理情報が出力される 管理者とし…

Google File System に関するインタビューのサマリ

ACMのacmqueueにGFS: Evolution on Fast-forwardと題した興味深い記事があったので,サマリをメモしておく.Berkeley FSの設計をしたKirk McKusickと,GFSのリードであるSean Quinlanの対談. GFSはシングルマスタ GFSは大規模なシステムであるにもかかわら…

Google App Engine for Java でBasic認証

Google App Engine for Javaは,Servletをベースとしている.Servletエンジンの多くには,Basic認証が組み込まれていて,設定ファイルを書くだけで使えるようなのだが,設定ファイルの書き方は,個々のServletエンジンに依存しているらしい.Google App Engi…

Google App Engine Pythonでtask queueがサポート

こちらの記事によると,AppEngine PythonのSDK1.2.3にタスクキューが試験的に実装されたらしい.下記のコードは上記の記事から引用 # ユーザにメイルを送信 for u in users: taskqueue.add(url='/work/sendmail', params=dict(to=u.email, subject='Hello ' …

Google App Engine についてあなたが多分知らない10のこと.

Google App Engineのブログより.なんかスターとかいただいたので,もう少し丁寧に訳してみる. Google App Engine についてあなたが多分知らない10のこと. 1. アプリケーションのバージョンは数字ではなく文字列である. app.yamlやappengine-webのほとん…

Google App Engine と Senその後(2)

Google App Engine上で形態素解析機Senを使う試み.ようやくうまく行った.メモリが足りないせいじゃないか,というのは私の間違いで,メモリの問題ではなかった.問題をまとめておこう. App Engineの特性 アップロードできるファイルは1つ10Mバイトまで. 1…