.app 1 .dev 1 #11WeeksOfAndroid 13 #11WeeksOfAndroid Android TV 1 #Android11 3 #DevFest16 1 #DevFest17 1 #DevFest18 1 #DevFest19 1 #DevFest20 1 #DevFest21 1 #DevFest22 1 #DevFest23 1 #hack4jp 3 11 weeks of Android 2 A MESSAGE FROM OUR CEO 1 A/B Testing 1 A4A 4 Accelerator 6 Accessibility 1 accuracy 1 Actions on Google 16 Activation Atlas 1 address validation API 1 Addy Osmani 1 ADK 2 AdMob 32 Ads
2. App Engine to infinity and beyond Takashi Matsuo Google, Inc. Feb 18, 2011 3. 自己紹介 松尾貴史 @tmatsuo App Engine Developer Advocate Kay's Daddy http://code.google.com/p/kay-framework/ 5. App Engine のこれまで 3 年 - 進化を続けるプラットフォーム Apr 2008 Python launch May 2008 Memcache API, Images API Jul 2008 Logs export Aug 2008 Batch write/delete Oct 2008 HTTPS support Dec 2008 Status dashboard, quota details Feb 200
Authors: Daniel Shawcross Wilkerson and Simon Fredrick Vicente Goldsmith Contributors: Ryan Barrett, Erick Armbrust, Robert Johnson, Alfred Fuller Massively scalable web applications encounter a fundamental tension in computing between performance and correctness: performance is often addressed by using a large and therefore distributed machine where programs are multi-threaded and interruptib
Aしげる先生の記事で http://songofcloud.gluegent.com/2010/04/google-app-engine-sdk-133.html CommittedButStillApplyingExceptionなんてものが出来たと聞いていろいろ読み返してみた。 http://code.google.com/intl/ja/appengine/articles/life_of_write.html http://code.google.com/intl/en/appengine/articles/transaction_isolation.html http://code.google.com/intl/ja/appengine/articles/transaction_isolation.html DataStoreのcommit呼び出し = [Entityの更新=C
※2010/4/23 sessionのクリアについてご指摘頂き、追記しました。Google App Engine for Java(GAE/J)にて、どんなアプリを使う場合でも (自分的に)ほぼ必須となる設定ファイルのまとめ。 ていうか、リファレンス読めばいーんだけどさ 1.sessionを有効にする & クリアの設定をする Javaでsession使わないケースなんてあるのか? appengine-web.xml に 下記を追加 <sessions-enabled>true</sessions-enabled> GAE/Jでsessionを使う場合、このままだとDatastoreにsession情報が残ったままなので定期的にクリアするcronを設定する web.xml に 下記を追加 <servlet> <servlet-name>_ah_sessioncleanup</servlet-
最近Apps MarketplaceというプラットフォームがGoogleから公開されました。B|CtoB なアプリケーションを登録できるプラットフォームです。アプリケーションの登録・公開方法については@ITさんに記事がありますので、そちらを参考にして下さい。今はまだ開発ベンダ向けのGoogleによる課金のサービスが提供されていませんが、これが開始される時までにそれなりにMarketplace向けのアプリの構築に慣れておきたいものです。私の場合は、モチロン AppEngine を使うことにします。 Google Apps Marketplace企業向けアプリ出店入門(1/2) ─ @IT 注意が必要な点として、登録できるアプリケーションには2種類あるって事です。アプリケーションの登録時に「directly installed into Google Apps domains」という選択肢をオ
Mapion マピオンラボ Java Google App Engine for Java、Slim3のWEBアプリを独自ドメインに切り替えるとき 休日に「なうまぴおん」のサーバ側をしこしこ作った岩澤(Twitterアカウントは@iwazer)です。 うらなんとかディレクターからはGoogle App Engine for Java(GAE/j) そのものやSlim3の使い方的なエントリーキボンヌ言われたんですが、どちらもたいへん使いやすく公式ドキュメントを読むだけでやりたい事がすぐ実装できてしまう!なので公開直前に慌ててやった修正について書きます。 開発中やプレビューリリース中にはGAE/jからデフォルトで与えられるドメイン (name.appspot.com) を使えるので、面倒な設定なしにアプリをアップロードするだけですぐに公開することができます。 その後、正式リリースする際には独自
1.3.1までは,データストアからの読み出し個数が1000個以下に限られていた.なので,1000個以上のデータを取り出すときに,rangeを使ってやろうとするとうまく動かなかった.というのは,range(990, 1010) とやると,0から1100までのキーをとりだして,その後,990から1010までの中身を取りに行く,という実装なので,0から1100までのキーを取りだすという時点で,落ちてしまうからだ.また,そもそも20個だけ読みたいのに,1100個キーを取りだしてしまうので非効率. これまでの方法 そこでよく知られているテクが,これ.条件式を組み合わせることで,rangeのオフセットを常に0にしたままスキャンする方法.このサンプルはPythonだけど,JDOで書いてもそのまま動く. 1.3.1 ところが,1.3.1になって事情が変わった.1000個の制約が無くなったので,とりあえず性
Google App Engine上でアプリを作りはじめて約二ヶ月。いろいろと分かって来たこともあるので、自分へのメモも含めてまとめてみる。まずは、Datastoreの話から。 なによりも大切なのはデータベースの設計 あたりまえと言えばあたりまえの話だが、App Engine上でアプリを作る上でもっとも大切なこと(=頭を使うべきところ)は、データベースの設計である。特にリレーショナル・データベース(RDB)上でのアプリ作りに慣れた人には、大きな「発想の転換」が必要なので、ここは注意が必要。 特に絶対にやっては行けないのは、 将来RDB上へ移行できるようにレイヤーを作って、その上にアプリを作る RDB上に作ったアプリをデータモデルを大幅に変更せずにApp Engine上に移植する RDBを前提に設計されたフレームワークをApp Engine上に載せて、その上にアプリを作る など。App En
Note: You will be prompted for user name and password for your Google account by appcfg.py script. My session looked like this: Now you can visit your App Engine site at http://drydropsample.appspot.com and you should see the welcome page: Step 3: point DryDrop site to your GitHub repo Go to the admin section of your DryDrop site and switch to the settings page: Set “Pull from” to http://github.co
他の話を期待してる人も多いと思うのだけど、まとめるのに時間がかかりそうなので小ネタを。 まず、このエンティティ使用状況をみてください。 これ、http://kistools.appspot.com/rateで格納されているエンティティのひとつなんですけど、Metadataが85%になってます。 内訳はこんな感じで、Integerのプロパティが2つあって、あとはMetadataです。 同じIntegerでも利用率が違うというのも面白いところですが、確かに上のプロパティのほうが桁数が大きいデータが入ってるとはいえ、これは誤差かも。 ところで、Metadata。 Google App Engineのデータストアは、それぞれのエンティティにプロパティ名まで格納しているはずです。 ということは、長いプロパティ名を使うとそれだけMetadata容量が増えてしまう。特にログのように量の増えがちなデータに
News AppScale 1.0.3 released! See the Project Site above for download. AppScale operates transparently over Eucalyptus -- the open-source IaaS cloud fabric! This work is supported by grants from Google and the National Science Foundation. Thanks! The AppScale logo graphic (Common Fan Coral) is artwork created by Adam Laverty who has granted us permission to use it as part of the AppScale logo. Tha
Google App Engine(GAE)で独自ドメインを使う方法です。 GAEに設置したアプリケーションはデフォルトでは、[アプリケーションID + .appspot.com]というドメインでアクセスすることができます。 また、これとは別に独自ドメインをアプリケーションに割り当てることもできます。 独自ドメインを割り当てる方法は知っていないと嵌りやすいので手順を書いておきます。 仕組みと手順 まずは仕組みから。 GAEでの独自ドメイン割り当ては、独自ドメインのCNAMEでGAEサーバを指すことで実現します。よって独自ドメインのDNSが設定できる必要があります。 私はドメイン管理にムームードメインを使っているのですが、ムームードメインではコントロールパネル(Web管理画面)にてDNSの設定ができます。 次に手順。 前提として独自ドメインは既に取得済みとします。 Google Appsを申
Google App Engine のDatastoreには、通常のリレーショナルデータベースと比べた時にいくつかの制限があるが、その一つが「このプロパティの値は常にユニークでなければならない」という指定(ユニーク制限)ができないことである。 Invoice IDのように自動生成するものであれば、アプリケーション側でなんとかすることも簡単だが、メールアドレスやハンドル名など、ユーザーが入力するものになると、ユニークであることをきちんと判定した上でEntityを作ることが必要になる。 もちろん、単純に「有無をチェックして、なければ作る」というプログラムではスレッド間の競合に対応できないので、そこはトランザクションを使ってアトミックに処理をする必要がある。 App Engine上でトランザクションを実現するには、エンティティグループという仕組みを使って行うが、気をつけなければいけないのは、エン
Triggered by the interest of one of our users, last week was mostly dedicated to finding out how (how well) ABCL runs on Google App Engine (GAE). This is what we found out: To those readers who don't know: GAE is an environment for hosting web applications, backed by Google's storage and server clouds. It supports running applications written in Python and Java. GAE's Java environment turns out to
楽観的排他制御にはBigTableの排他制御+独自のチェック(またはJDOのVersion管理+自前の更新前のバージョンチェック)を使うJDOを使う場合は自動でTransactionを開始する機能が邪魔なので止めておくPersistenceManagerを開くタイミング、閉じるタイミングLow-Level APIのパラレルGETは存在しないKeyをパラメタに渡してもエラーにならないスキーマのバージョンをEntityに持たせておくとマイグレーションが必要な場合に便利 感想実はひがさんも私も予定した事を全ては伝えきれなかったのですが、それでも問題なかったと思います。発表者の発表の合間合間に会場の皆さんを交えた色々な議論が交わされた分だけ、ひがさんも私も予定より押してしまった要因なのですが、個人的にこの進み方は良かったと感じました。おかげさまでより濃い内容になったんだと思います。appengin
Google Appengineのメンテナンス時間がある時、datastoreが読み込み専用になるのが多いと思いますが、データを書こうとする時に、CapabilitiesErrorと言う例外が起こる。それを自分のコードうまく処理しないと、500エラーがでて、ユーザには良くない表現になる。 ドキュメントがないけども、実は、Appengine SDKでmaintenanceが行ってるかどうかをチェックできる capabalities と言うAPIがあります。 メンテナンスがスケジュールされて、ある時間以内にメンテナンスを行うかをチェックします。僕は django を使ってるけど、capabilities API に特に依存がないですね。 from google.appengine.api.capabilities import CapabilitySet datastore_write = C
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く