Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                

タグ

gaeに関するshin1x1のブックマーク (225)

  • #AppEngine 用のアプリケーションの自動テストについて(4) - TaskQueueに関するテスト

    下記のAppEngineアプリケーションの自動テストシリーズに続く、第四回目です。 AppEngine用のアプリケーションの自動テストについて(1) #AppEngine 用のアプリケーションの自動テストについて(2) - Datastoreに関するテスト #AppEngine 用のアプリケーションの自動テストについて(3) - メール送信に関するテスト Taskの「投入」をテストする TaskQueueのテストといっても「Taskの投入」をテストするのか「Taskの実行」をテストするのか、といった2種類のテスト対象が考えられます。 今回は「Taskの投入」をテストする説明をします。「WebHandlerによるTask実行」については、例えば私はテストしやすいように以下のような手法で実装しています。 何らかの機能で、Taskを投入する 投入されたTaskはWebHandler内で実行するこ

    shin1x1
    shin1x1 2010/01/11
  • UIプロトタイプ:autocomplete (jQuery plug-in jSuggest)

    昨日に引き続いて、今日も作成中の Google App Engine アプリ用のUI部品の作成。HTMLの一部に記述された(もしくは別途JSONで取得した)ワード・リストの入力を autocomplete を使って簡単にしようという試み(Google Suggestのようにダイナミックにリストを取得する必要はない)。 そこで、まずは既存のライブラリ・プラグインの調査から。必要とする人も多いようで、少し調べただけで20個ぐらい見つかる。デモを見て5つに絞ってからそれぞれのソースコードを解析。例によってどうしようもない品質のコードもあるので、結局のところたどり着いたのは、比較的コードがきれいなこの二つ。 jQuery Autocomplete Mod JQuery Plugins by Dylan Verheul - autocomplete どちらかをそのまま使っても良かったのだが、どちらも

  • GAE(google app engine) インデックスのトラブルの顛末 - Object Design

    GoogleAppEngineの開発していたところ、ローカルの開発環境でも問題ないのですが、 GAEにアップロードして作動させるとうまく動かないことがありました。 調べてみると、GQLクエリ部分で問題が発生しているようです。 いろいろ調べたり、グーグルグループで質問したりしてなんとか解消できたので、 解消方法をメモしておきます。 基的認識 ローカルの開発環境でうまく作動していても、サーバ上でうまく作動するとは限らない。→GQLクエリ関係 index.yaml が意図通り作成されていない場合は、手動で作成する必要がある → # AUTOGENERATE 行は削除する GQLで条件問い合わせを行う場合は、インデックスが正しく作成されている必要があります。 自動で生成される index.yaml がこちらの意図通りになっていない場合があるので、 手動で index.yaml を書き直す必要があ

    shin1x1
    shin1x1 2010/01/07
  • Song of Cloud: グローバルトランザクション処理のパターン

    送金のトランザクション処理パターンでは、Google App Engine (GAE)のEntity Groupにまたがるトランザクション処理を行う方法について紹介しました。また、それに少しだけ最適化を施した結果、下図のような処理になりました。 しかし、このトランザクション処理はいくつかの制約があります。 (a) 送金中に合計金額がずれる (b) 送金先の口座に制約をかけられない このトランザクションはEventual Consistency (結果整合性)というレベルの整合性保証しかしないため、2つのEntity Groupの値にずれが発生する場合があります(a)。たとえば、口座(A)から口座(B)に1000円だけ送金する場合、(1)と(2)の間は「口座(A)から出金したが、口座(B)に入金されていない」という状態になります。 また、送金元の口座に制約はかけられますが、送金先の口座に制約

  • マイクロソフト萩原正義氏MIJS講演「スケールアウト設計における問題点の考察と分析手法の提案」 : 小野和俊のブログ

    昨年末にMIJSのコンソーシアム内での交流会があり、前回のはてな伊藤さん講演に続き、理事会の方から講演者の選定とコンタクトを依頼されたので、マイクロソフトの萩原さんに「クラウドの時代のデータモデリング」の講演をお願いした。 今回萩原さんに講演をお願いしたのは、以前参加させていただいたマイクロソフト系のイベントでの萩原さんの講演が大変興味深い内容だったからだ。 以下、今回の講演を聞きながら私がメモした内容である。 「スケールアウト設計における問題点の考察と分析手法の提案」 現在マイクロソフトでクラウドの技術のうち、開発の現場に対して、どういうやり方をしなければいけないかを提案する仕事をしている。 今日お話しする内容は、インターネットや書籍で紹介されているものよりも、深いところを話していきたい。とはいえ1時間という短い時間なので、ポイントを絞って話をしていきたい。マイクロソフトはWindows

    マイクロソフト萩原正義氏MIJS講演「スケールアウト設計における問題点の考察と分析手法の提案」 : 小野和俊のブログ
    shin1x1
    shin1x1 2010/01/07
    GAE上での設計で、もやもやしていた時に良エントリ。あとでじっくり。
  • Google App Engineを使ったサイトを調べる方法

    コメント (Close):2 teilnehmen 10-01-06 (水) 18:46 まだ、ここはGAEじゃないんですね 🙂 #遅ればせながら、あけましておめでとうございます shinbara 10-01-07 (木) 9:32 teilnehmenさん: あけましておめでとうございます! 今年もよろしくお願いしますー。 ここはそのままです:-D PythonWordPressがあると良いんですけどねー。 トラックバック:0 このエントリーのトラックバックURL /blog/2010/01/website_use_gae.html/trackback Listed below are links to weblogs that reference Google App Engineを使ったサイトを調べる方法 from Shin x blog

    shin1x1
    shin1x1 2010/01/07
    独自ドメインじゃなきゃ、*.appspot.comで分かりますけどね
  • tweepyでtwitterの3-legged OAuth認証を試してみた(GoogleAppEngine) – taichino.com

    そろそろGAE上でユーザ登録が必要なサービスを作りたいのですが、ユーザ登録周りの実装はやりたくないので、twitterのOAuthを代わりに使ってみる事にしました。twitterAPIを叩くのにこれまではtwythonを使っていたのですが,OAuthに対応していなかったので、今回はtweepyを使います。以前2-legged OAuthを試してみましたが、今回は3-legged OAuthです。 twitterのOAuth認証によるログイン、ログアウトとログイン後にユーザのタイムライン表示と、tweetを実装しています。ロジックのソースは以下になりますが、まず動作しているサンプルを見るのが早いと思います。 # -*- coding: utf-8 -*- import os import cgi import logging from google.appengine.ext.webapp

  • 「リニアにスケールするように作れる」からこそのGoogle App Engine

    Google App Engineを使った最初の作品 Tiny Message (http://tinymsg.appspot.com)をリリースしてまだ20時間経っていないが、設計の過程でいろいろと学べたことがある。 その中でも一番収穫として大きいのは、「Google App Engineを使えば、リニアにスケールするサービスを作ることが可能」だということが実感できたこと。 もちろん、Google App Engine上に作ったからと言ってすべてのアプリがリニアにスケールするわけではなし、どんなアプリでもそう作れるわけではない。Entity Groupの構成を間違えればそこがボトルネックになるし、Queryの二重ループなんかを書いたら、すぐにタイムアウトしてしまう。 リニアなスケーラビリティを持つDatastoreの上で作るとは言え、やはりDatastoreの仕組みをちゃんと理解してデー

    shin1x1
    shin1x1 2010/01/05
  • Google App Engine: mixi OpenIDで認証する

    mixiがOpenIDに対応したということで早速Google App Engineで実装してみた。以前のエントリで紹介したがGoogle App Engineのサンプル集にOpenID ConsumerというWebアプリがあるので、そのソースコードを利用させてもらった。 しかし、実際に使ってみればわかるのだがこのコードにはいくつかのバグ(とGoogle App Engineの制限)があってちゃんと動かない。下記のリンク先は正常に動くように修正したものだ。 mixi OpenID テスト 以下にバグの箇所とその修正コードを示す。 consumer.py 344-345行目の以下のコードを self.response.set_status(302) self.response.headers['Location'] = redirect_url 以下のように修正する。 self.respons

  • Google App EngineからTwitterのreplyなどをim.kayac.com for iPhoneに通知させる - すぎゃーんメモ

    前提条件:http://im.kayac.com/ ちょっと引っ越す予定なので自宅サーバーを止めていて、tiarraが動いていない。 今までtiarraからim.kayac.comでiPhoneに通知させていたTwitterのリプライなどが来なくなってしまって寂しいので、Twitterの情報はGoogleAppEngineを使ってAPI経由で情報を取得して通知するようにしてみた。 #!/usr/bin/env python # -*- coding: utf-8 -*- import base64 import logging import urllib import yaml from django.utils import simplejson from google.appengine.api import memcache from google.appengine.api imp

    Google App EngineからTwitterのreplyなどをim.kayac.com for iPhoneに通知させる - すぎゃーんメモ
  • 100万PV/日のmixiアプリモバイルをGoogle App Engineで実装した@gclue_akira氏に直撃インタビュー

    Akira Sasaki @gclue_akira 日のMIXIモバイルの解析結果。 PV 365,170PV/8時間 Googleへの支払い $5.11。 100円よりももっていってました。バッティングセンターのCPU時間が妙に高くなっているので、明日最適化すればもう少し安くなると思います。 2009-10-28 01:28:00

    100万PV/日のmixiアプリモバイルをGoogle App Engineで実装した@gclue_akira氏に直撃インタビュー
    shin1x1
    shin1x1 2010/01/02
  • Python-twoauth - ./techno-devel

    About This OAuth でしか使えない、Twitter APIPython 向けラッパーです。 Basic 認証に対応させるつもりはありません。 Python v2.5 の標準ライブラリしか使ってません。 すべての REST API Method に対応させてあります。 Retweet とか、Lists とかも、完全サポート。 ライセンスは MIT License です。 バグ報告などは <info [at] techno-st.net> へ。 Download 最新版: v0.1.0 http://github.com/techno/python-twoauth/downloads Repository http://github.com/techno/python-twoauth Changes v0.1.0 取りあえず公開... How to use インス

  • GAE/J、アプリを独自ドメインで使う : CB NANASHI管理人ブログ

    2009年08月23日21:20 カテゴリGoogle App Engine GAE/J、アプリを独自ドメインで使う cbnanashi@GAEを独自ドメインのURLに割り当てました。新しいURLはhttp://www.cbnanashi.com/になります。よろしくお願い致します。 独自ドメイン割り当ての方法を簡単にまとめておきます(メモしておかなかったので大雑把です)。作業に当たっては次のページが参考になりました。 Google Apps の URL にアプリケーションを展開する - Google App Engine - Google Code Google App Engine: 独自ドメインでの利用 - にーやんのブログ 2 今回ドメインはVALUE DOMAINで取得しました。Google App Engineのアプリにはnaked domain(h ttp://cbnanas

    shin1x1
    shin1x1 2009/12/28
  • Offline Processing on App Engine: a Look Aheadを見たメモ - スティルハウスの書庫の書庫

    Offline Processing on App Engine: a Look Ahead 背景 バックグラウンド処理やバッチ処理の要求がとても多い cronはあるが、たくさんの処理や高頻度の処理には向かない 概要 現状はApp Engine Labsの扱い:APIが未確定。課金方法も未定 Python版が6/18にリリース済み(追ってJava版) TQとは? ベストエフォートFIFOに処理要求を登録しておくと、バックグラウンドで実行。 実行に失敗した場合は、成功するまでリトライする taskqueue.add(description_of_work ) TQのメリット 非同期 軽量で遅延が少ない。Datastoreの最大3倍 信頼性が高い:成功するまでリトライ スケーラブル:新しいタスクをいくらでも追加できる。それぞれ並列処理される。 他のTQシステム 各種MQ、Amazon SQS、

    Offline Processing on App Engine: a Look Aheadを見たメモ - スティルハウスの書庫の書庫
    shin1x1
    shin1x1 2009/12/26
  • GAE Python で Task Queue - eggmanの日記

    クラウドしたいということで、Google App Engine で遊びはじめた。 まず、たくさんのデータを登録するために、PythonでTask Queue APIを使ってみた。 例の動作内容 OPMLを取得する OPMLのXMLをperseしてmemcacheに入れる。 200件ごとに分割してTask Queueに登録する。 Task Queueに登録すると勝手に、CPUに割り当てて並列実行してくれる。無料版の場合、最大5個まで同時実行してくれる。並列に実行しているのを見ると楽しい。 DataStoreへの登録は1-10件/1秒らしく、200件で24秒かかる。分割を250件にすると30秒を超えてTaskが途中でkillされる。 DataStoreに5000件登録するだけで、無料版のCPU時間の2%を使ってしまう。ということは、無料版だと25万件登録するとCPU時間のQuota/1dayに

    GAE Python で Task Queue - eggmanの日記
  • GitHub - hideki/clustsrch: clustsrch = clustering + yahoo! boss + google app engine

    You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session. You switched accounts on another tab or window. Reload to refresh your session. Dismiss alert

    GitHub - hideki/clustsrch: clustsrch = clustering + yahoo! boss + google app engine
  • 「Google App Engine」効果でPython利用が急増 | OSDN Magazine

    調査会社の米Evans Dataの最新調査によると、2008年4月に米Googleが「Google App Engine」を公開以来、北米開発者におけるスクリプト言語「Python」の利用が1年半で約45%増加したという。 この調査は、今年10月、北米地区の開発者500人を対象に詳細な調査を行い、「North American Development Survey」としてまとめたもの。 それによると、GoogleがApp Engineを公開して1年半でPythonの利用が13%から20.3%となり、45%増加したという。App Engineは、GoogleのインフラでWebアプリケーションの開発・実行ができるサービス。2008年4月の発表時はPythonにしか対応しておらず、1年後の2009年4月にJava対応が加わっている。 Evans Dataによると、RubyPHPPerlなど他

    「Google App Engine」効果でPython利用が急増 | OSDN Magazine
  • 「クラウド」という技術はない

    筆者は新たなキーワードが登場したとき、マーケティング的な要素をぬぐい取り、できるだけ技術そのものを見ようと努めている。その視点で2009年の話題のキーワード「クラウドコンピューティング」を見てみると、「クラウド」とひとくくりで呼んでいるものに実体はないように思う。 ここでは、米Amazon Web Services(米Amazon.com)の「Amazon EC2」、米Salesforce.comの「Force.com」、米Googleの「Google App Engine」、米Microsoftの「Azure」の順で、技術質や押さえどころを書いてみたい。 Amazon EC2→自動化されたホスティング・サービス Amazon EC2は、インターネットを介して仮想サーバーを貸し出すサービスである。CPUやメモリー、ディスクなどのスペックが決まっている仮想サーバーを選択すると、数分程度の

    「クラウド」という技術はない
  • GoogleAppEngineで動くGyazoクローンgaezooのソースをアップしました。 - When it’s ready.

    開発サーバとappspot.comで、アプリに返すURLを適宜変更する部分を書くのに手間取ったけど、なんとか簡単に使用出来るようになったので晒してみる。ツッコミ歓迎です。思いっきり公開先書くの忘れてた。 http://bitbucket.org/a2c/gaezoo/ 今動いているのは、gaezoo.appspot.comです。特にアクセスしても何も無いですけど・・・ サンプルは、http://gaezoo.appspot.com/4c7f4a666917d03fb0c7dac080103b23.png 追記:Twitterへのポストボタンつけました。 末尾のpngをpostに変えることで、挙動が変わります。 サンプルは、http://gaezoo.appspot.com/4c7f4a666917d03fb0c7dac080103b23.post ファイル構成 -- app.yaml --

    GoogleAppEngineで動くGyazoクローンgaezooのソースをアップしました。 - When it’s ready.
  • Song of Cloud: TaskQueueを使ってメールを送信する

    GAEにはMail送信サービスがあり、これを使ってEメールを送信することができます。 しかし、メール送信は必ず成功するとは限らないので、通常はメールを送信する際、送信の成功/失敗を確認し、失敗時には再送信するよう処理すると思います。 GAEでもそういう処理を書くことはできますが、「レスポンスを30秒以内に返さなければならない」という制約があるため、ひとつの処理の中で何度も繰り返すかもしれない処理を行うと、途中でタイムアウトとなり強制的に処理が中断されてしまう可能性があります。 そこで、より確実にメール送信を行うことができるよう、同じくGAEで使えるTaskQueueサービスを使いバックグラウンドでメール送信をする仕組みを作りました。 例えばあるフォームからPOSTされたときにメールを送信しようとした場合、 1. ServletでPOSTを受け取り、送信するメールの情報を作成 2. Task

    shin1x1
    shin1x1 2009/12/23