タグ

gaeに関するvoidy21のブックマーク (168)

  • specs で GAE/J データストアのユニットテスト - LocalServiceTestHelper使用 - なんとなくな Developer のメモ

    GAE/J データストアを使用した処理のローカル上でのユニットテスト(BDD なのでユニットテストとは呼ばないかも)を specs(Scala用BDDツール)で実施してみました。 テストには GAE/J SDK の lib/testing/appengine-testing.jar ファイルに含まれる LocalServiceTestHelper クラスを使っていますが、今のところ日語ドキュメントに使い方が書かれていないようなのでご注意下さい。 使用した環境は以下の通りです。(sbtの環境は id:fits:20100810 と同じ) GAE/J SDK 1.3.7 sbt-appengine-plugin 2.1 specs 1.6.5 サンプルソースは http://github.com/fits/try_samples/tree/master/blog/20100927/ 事前準備

    specs で GAE/J データストアのユニットテスト - LocalServiceTestHelper使用 - なんとなくな Developer のメモ
  • IDEA+sbt-appengineで流れるような開発 | Ken's evitation

    前回の投稿でIDEAとsbt-appengineが連携してくれたのは嬉しいけど、ソースを修正するたびにappserverの再起動は面倒!! 出来ることなら、IDEAでコーディング→ブラウザ確認→コーディング→…と繰り返したい。 こちらも実現できたので、方法を紹介。 やったことはこれだけ。 JRebelでクラスリローディング クラスファイルの出力先をwebapp配下にする sbtでソースコード監視 環境を簡単に書いておくと、IDEA+sbt(appengine plugin)という組み合わせ。 MyProjectがあって、その下にSubProject1, SubProject2がある構成。このMyProjectとかSubProjectはsbtの管理下にある状態。 まずはJRebelの導入から。 JRebel自体は有償だけど、Scala開発者にはライセンスを提供してくれてるのでこれを活

  • GAE/Jで運用中に発生する例外(と一部対処法) : CB NANASHI管理人ブログ

    2010年02月24日22:34 カテゴリGoogle App Engineサイト構築 GAE/Jで運用中に発生する例外(と一部対処法) App Engineでのアプリケーション実行中に私が遭遇した不測の例外やエラーについて、原因と(一部のみですが)対策を書いてみます。 あくまでも個人的な経験に基づくもので、多分に推測を含みますが、多少ともお役に立てば幸いです。例外の種類は随時追加したいと思います。コードの誤りや、よりよい対策などがあれば、お知らせ頂ければ幸いです。 今回記述した例外、エラーの種類 DatastoreTimeoutException ApiProxy$UnknownException ApiProxy$CapabilityDisabledException GCacheException DeadlineExceededException ConcurrentModific

    voidy21
    voidy21 2011/04/06
  • Google App Engine SDK 1.4.3リリース文抄訳 « python練習帳

    GoogleAppEngine SDKのバージョン1.4.3が3月30日にリリースされました。マイナーバージョンアップですが、バグフィックスだけでなく、新機能も実装されています。GAEで開発をされている方は特別な事情のない限りアップデートをお勧めします。 リリースノート 青文字が原文です。訳に間違いがありましたら、Wordpressのコメント欄もしくは、Facebookのコメントで指摘頂けると助かります。気になる部分は、土日に検証してみようと思います。 http://code.google.com/p/googleappengine/wiki/SdkReleaseNotesを訳しました。 File APIをサポートしました。FileAPIを使うとblobstore内のファイルを読み書きできます。 Added Files API that allows writing to and read

    voidy21
    voidy21 2011/04/04
  • [Google App Engine編]画面設計で制約を避ける

    クラウドコンピューティングサービスは、従来にない拡張性を持ち、好きなときに好きなだけのリソースを使えるシステム基盤を提供するものです。しかし、その特性を生かすには、クラウド事業者ごとに異なる設計のルールを守らなければなりません。 そこで連載は、米Googleのサービス「Google App Engine」に焦点を当て、その「デザインパターン」について解説をします。ここでは、クラウドサービスの特性を生かしたり、制約を回避したりするための設計ノウハウをデザインパターンと呼んでいます。 今回解説する設計ノウハウを「デザインパターン」と呼ぶことに、違和感を持つ読者もいるかもしれません。「これこそクラウド設計のデザインパターンだ」と言えるものは、今後さまざまな知見が集まって確立していくのだと思います。現在はその知見が少しずつたまってきている段階でしょう。今回の連載が、そうした知見の一つになってほし

    [Google App Engine編]画面設計で制約を避ける
    voidy21
    voidy21 2011/03/24
  • GAE/P DataStore vs Memcached « python練習帳

    csv2table この結果から、Memcachedの性能は、DataStoreと比べてReadで3倍程度、Writeで8倍程度高速であることが分かる。Memcachedのキャッシュヒット率が50%を超えるようなサービスであれば、Memcached導入によるパフォーマンスアップが期待できそうだ。 測定用プログラム 測定に用いたプログラムを掲載しておく。 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 #!/usr/bin/env python from google.appengine.e

    voidy21
    voidy21 2011/02/18
  • appengine ja night #13 に行ってきたよ&しゃべってきたよ - たごもりすメモ

    まあしゃべったのはBeerTalk最後の10分だけだけど。そして参加は2セッションめの途中(開始数分)からだった。あああ。 とりあえず主催の @kazunori_279 さん、および参加者のみなさま、楽しいイベントでした。また会場提供のニフティの皆様、ありがとうございました。 Ustreamに録画されてるのでURLを貼っておく。自分がしゃべったのはみっつめの最後の10分くらい。 http://www.ustream.tv/recorded/12004856 http://www.ustream.tv/recorded/12005449 http://www.ustream.tv/recorded/12006429 内容 主催者によるまとめ #appengine ja night #13 が終わりました! - スティルハウスの書庫 を読むのが早いと思います。あとは appengine ja

    voidy21
    voidy21 2011/02/14
  • Slim3でDIコンテナっぽくテストする方法 - テツ日記

    2週間ほど前に、急遽SAStruts+Seasar2+S2JDBCの現場のヘルプに呼ばれました。 ところがテツさん、Seasar2はおろかDIコンテナ自体やったことなくて、大急ぎで勉強する羽目になりまして。 今も勉強しながら作業しているんですが、そんな中ふと「あれ、Slim3でもDIっぽく作れるのでは…?」という考えが浮かんできました。 思い立ったら早速検証! まずは、DI(Dependency Injection)についてのおさらい 例えばとあるメソッドを public int getCount(){ Foo foo = new Foo(); Bar bar = new Bar(); return foo.getCount() + bar.getCount(); } みたいに作ると、Foo#getCount()はDatastoreにアクセスしていて、Bar#getCount()はURLフ

    Slim3でDIコンテナっぽくテストする方法 - テツ日記
  • 今は昔のkonjak翻訳 φ(・ω・´ )…: Channel API Overview (Java)

    voidy21
    voidy21 2011/02/03
  • Channel APIで他のユーザーにプッシュ通信でアラートメッセージを送るサンプル - sifue's blog

    今日は久しぶりの外出がない休日だったこともあって、GoogleAppEngineのChannel APIを使ったサンプルを作ってみました。GoogleAppEngine SDK Java 1.4.0ではChannel APIが標準搭載されて、プッシュ通信を使ってネトゲーっぽいことができるようになるらしいので、ちょっと調べてみようかなと思ったのが発端です。 ちなみに1.4.0は現在prerelease中で、まだローカル環境でしか実行できませんが、githubの方にソースは上げておきました。1.4.0が正式リリースされた暁には、ちゃんとサーバー上で動くはずです。 https://github.com/sifue/channelsample 仕様は、同じURLを開いている人にプッシュ通信で突然メッセージをアラートを使って送りつけるというサンプルです。Channel APIがどういう仕組なのかほん

    Channel APIで他のユーザーにプッシュ通信でアラートメッセージを送るサンプル - sifue's blog
    voidy21
    voidy21 2011/01/29
  • GAE/JでHTTPSの利用を強制するときの注意点とTips - Kengo's blog

    Google App EngineではHTTPSを使うことができます。また、web.xmlにsecurity-constraintを記述することによって、HTTPSの利用を強制することもできます。 設定方法については公式サイトに載っているのですが、HTTPSの強制をCronやTask Queueと併用する場合に1点注意する必要があります。 これらのサービスはサーブレットにHTTPでアクセスするため、対象がHTTPSの利用を強制されている場合に403 Forbiddenで返されてしまうのです。このためCronやTask Queueから使うサーブレットについてはHTTPSを強制せず、HTTPの許可を保つ必要があります。 とは言え「CronやTask Queueで使わないURLをピックアップして、それ以外をsecurity-constraintに登録」というのは面倒で漏れも出そうです。楽できない

    GAE/JでHTTPSの利用を強制するときの注意点とTips - Kengo's blog
  • 2chの過去ログを時系列で参照 - miz999のブログ

    録画しておいたテレビ番組を見ていて「この時の実況スレはどうなっていたのかしらん?」って思うことが多々あるのですが、過去ログを集めてるサイト、過去ログ検索 - READ2CHとかログ速なんかでは、スレが立った時間か落ちた時間で列挙されていて、"access by time"的な使い方が出来ません。 というわけで、その時間のスレタイ一覧を5分おきにfetchしてstoreしておくサイトをGoogle App Engineで適当に作った。適当なのでtitleさえ付けるの忘れたくらい。 http://2ch-thread-timemachine.appspot.com/ 最近、スクリーンショット貼ったほうが取っ付き易いなと思い始めたので、マメに貼りました。 基的に集めるのは実況スレのみ。使い方は見ての通り。過去ログはログ速に飛ばしてそこで見るようにしてます。保存データは1ヶ月分ですが、無料領域で

    2chの過去ログを時系列で参照 - miz999のブログ
    voidy21
    voidy21 2011/01/20
  • Google App EngineをSSLプロキシにする·G-Proxy MOONGIFT

    G-ProxyはGoogle App EngineをSSLプロキシにする。 [/s2If] G-ProxyはGoogle App Engine/Java製のオープンソース・ソフトウェア。10数年前のインターネットでプロキシというとアングラな雰囲気があった。また企業においてはインターネット接続速度の改善やセキュリティ上の理由で用いられることが多かった。 デモ 今でも企業では使われているだろうが、最近では上記の理由以外でも使われることがある。一つはFiresheepと言う公開無線LANをターゲットにした情報漏洩から逃れるため、もう一つは中国の検閲から逃れるために使われるのだ。それがG-Proxyだ。 G-ProxyはGoogle App EngineをWebプロキシにするソフトウェアだ。Google App EngineではSSLが無料で提供されているので、G-Proxyを使えば常時SSLを使

    voidy21
    voidy21 2011/01/05
  • slim3でjspのスクリプトレットでもHot Reloadingする方法 - あおうさ@日記

    slim3のHotReloadingでClassCastExceptionのエラーが発生した - あおうさ@日記の続き。 解決方法をid:higayasuoさんに教えてもらったので下記のようにした。 BlogDao.class public List<Blog> findAll() { List<Blog> blogList = from().getResultList(); return (List<Blog>)this.pm.detachCopyAll(blogList); // シリアライズできるようにdetachする } IndexController.class List<Blog> blogList = new BlogDao().findAll(); requestScope("blogList", blogList); ViewHelper.class public sta

    slim3でjspのスクリプトレットでもHot Reloadingする方法 - あおうさ@日記
  • GAEの勉強メモ - KodaNote

    勉強中。気になったことをメモしていく。 「オープンソース徹底活用 Slim3 on Google App Engine for Java」 参考URL(徐々に増やしていく) IndexController を作成 http://www.yuyak.com/blog/244/ slimのデータ登録のサンプル掲載 http://d.hatena.ne.jp/hoshisoft/20091202/1259752391 Slim3 日語サイト(非公式) http://sites.google.com/site/slim3documentja/getting-started-with-gwt GAEで行こう http://tomotaro3.seesaa.net/ Slim3でAjaxを活用したアプリケーションを構築する http://tech.topgate.co.jp/gijutsu-shir

    GAEの勉強メモ - KodaNote
    voidy21
    voidy21 2010/12/27
  • App Engineで動く並列処理フレームワーク ElShard - GeekFactory

    App Engineで大量のデータを並列処理するフレームワーク ElShard を作っています。batch addとdeleteのサンプルができたので、とりあえずまとめてみます。 ElShardは、入力リストを分割して処理して集約する考え方に基づいています。並列処理はApp EngineのTaskQueueで実現しています。タスク間では10kBのペイロードしかやり取りできないため、データをやり取りする用途には適していません。そのため、実際のデータはDatastoreに格納しておき、キーをタスク間でやり取りすることになります。 現段階では集約をどうやって実現するか未定ですが、キーでソートされるというDatastoreの性質をうまく利用できる気がします。Matcher APIが使えるといいなぁ。 リストを処理する ElShardでは、InputとTaskの2種類のタスクを組み合わせてジョブネッ

    App Engineで動く並列処理フレームワーク ElShard - GeekFactory
    voidy21
    voidy21 2010/12/27
  • Channel API+Matcher APIでつくるイベント駆動Webアプリ - スティルハウスの書庫の書庫

    これはappengine ja night #12のプレゼン資料です。 Channel APIとは Channel APIは、App Engineで動作するプッシュ通信サービスです。詳しくはこちら: #appengine でComet! Channel APIでpushできるぞ Channel API on Google App Engine Matcher APIとは Matcher APIとは、「スケーラブルなリアルタイムマッチングサービス」です。 マッチングの条件を独自のクエリ構文で記述して登録 エンティティやdictの内容が条件に合致すると、タスクで通知 数千、数万件の条件を数秒でチェックし通知できます Matcher APIとは 簡単に言うと。。 DB/Datastoreのクエリは「過去に対するクエリ」 Matcherのクエリは「未来に対するクエリ」 例えばこんなdb.Model

    Channel API+Matcher APIでつくるイベント駆動Webアプリ - スティルハウスの書庫の書庫
    voidy21
    voidy21 2010/12/22
  • Google App Engine で DataStore を Python 対話シェルから参照する - てっく煮ブログ

    いまさらながらに Google App Engine をちょろちょろと触っている。DataStore を対話シェルから使えると便利そうなので、やり方を確立してみた。結論としては次のコードを対話シェル上で実行すれば使えるようになった。(Google App Engine SDK for Python Windows 版 1.4.0 にて確認) import os import sys import tempfile DIR_PATH = r"C:\Program Files\Google\google_appengine" APP_ID = "helloworld" sys.path += [ DIR_PATH, os.path.join(DIR_PATH, 'lib', 'antlr3'), os.path.join(DIR_PATH, 'lib', 'django'), os.path.

    voidy21
    voidy21 2010/12/20
  • GAEのChannel APIでリアルタイムWebアプリ - にのせき日記

    SDK 1.4.0で使えるようになったChannel APIを使ってRetrospectiveappを実装してみる。 前回はPusherを使ってWebSocketで通知していたのがChannel APIを使ってCometで通知されるようになるだけ。 WebフレームワークはBottleを使用。 デモ:http://5.latest.myretrospective.appspot.com/ Model from google.appengine.ext import db class Note(db.Model): x = db.IntegerProperty(required = True) y = db.IntegerProperty(required = True) w = db.IntegerProperty(required = True) h = db.IntegerPropert

    GAEのChannel APIでリアルタイムWebアプリ - にのせき日記
    voidy21
    voidy21 2010/12/14
  • GAEを用いた独自C2DMの構築. android 端末にデータをpush push !! (たぶんiphoneも大丈夫) | Pandroid ブログ

    Tweet友人からこんなん(Android1.6でもAndroid Marketなくても動くC2DMを作ってみた)あるんだけど作れる?と聞かれ裏も取らずに作れるよーと返してしまったので頑張って作ってみました。 独自C2DM システム構成 throw Life ブログさんの図ではオレオレC2DMに Google 公式 C2DM が使用されているようなのですが、この独自C2DMではGAE(Google App Engine)のみを用いています。 ブラウザから送信されたデータをGAE(cloud)経由で端末にPUSHするシンプルな構成です。 この独自C2DMの一番の肝は、つい先日(12月8日頃に)リリースされた Google App Engine SDK 1.4.0 で正式サポートされている Channel API です。 Channel API を簡単に説明すると、Googleのサーバ(GA

    voidy21
    voidy21 2010/12/14