トップページphp
1001コメント298KB

Google AppEngine 3アプ目

■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん2010/02/25(木) 09:32:03ID:5mUqVSik
Google App Engine
http://code.google.com/appengine/

■過去スレ
Google App Engine
http://pc11.2ch.net/test/read.cgi/php/1207754942/
Google App Engine 2アプ目
http://pc11.2ch.net/test/read.cgi/php/1243654802/

■リンク集
はてなブックマーク
http://b.hatena.ne.jp/t/gae
http://b.hatena.ne.jp/t/Google%20App%20Engine
Delicious
http://delicious.com/popular/gae
http://delicious.com/popular/googleappengine

■参考サイト
App Engine ギャラリー
http://appgallery.appspot.com/
ドキュメント
http://code.google.com/appengine/docs/python/overview.html
0427nobodyさん2010/05/20(木) 10:55:17ID:VD2SkeMN
>>426
特にマニュアル読んだわけじゃないけど
今の所上書きインストールで問題は発生してない
正しい方法かは分からない
0428nobodyさん2010/05/20(木) 17:38:39ID:IZjX6yUz
こんなのくるのか
Google、Amazon S3対抗の開発者向けクラウドストレージサービスを発表
http://enterprise.watch.impress.co.jp/docs/news/20100520_368251.html
04294262010/05/20(木) 22:00:30ID:???
>>427
ありがとう
0430nobodyさん2010/05/20(木) 22:04:02ID:???
そっち貼るならこっちも貼ろうぜ
「Google App Engine」を企業向けに機能強化、プレビュー版発表
http://enterprise.watch.impress.co.jp/docs/news/20100520_368310.html
0431nobodyさん2010/05/20(木) 22:53:16ID:???
>>430
これって企業の社内インフラ向けってことだよね?
0432nobodyさん2010/05/25(火) 23:06:21ID:???
同じアプリケーションを2つ作ったらアウト?
作っても公開しなければセーフ?
0433nobodyさん2010/05/27(木) 01:05:30ID:???
よよいのよい
0434nobodyさん2010/05/28(金) 11:56:50ID:???
urlfetchはローカルだと機能しないんでテストめんどいからurllib2を使ってるんですが
実は速度的に違いとかあるんでしょうか?
0435nobodyさん2010/05/28(金) 14:18:34ID:???
>>434
違いがなかったら車輪の再発明なんかわざわざ搭載しないでしょ。
マニュアルに載ってるよ。
0436nobodyさん2010/05/30(日) 03:23:20ID:???
新しいバルクアップロード何が変わったのよ。あの英語のドキュメント何言ってんだがサッパリなんだが。
0437nobodyさん2010/05/30(日) 12:18:41ID:u2Il9X09
Google App Engine 関連の勉強会
ほかにもあったら教えてちょ


appengine ja night #8
Google App Engine勉強会 利用者による実践的ノウハウの共有
http://atnd.org/events/4305

appengine ja night #8 Beer Talk
App Engine話を肴にビールを飲む会
http://atnd.org/events/4306

appengine ja hack-a-thon #4
Google App Engine勉強会 利用者による楽しいhack-a-thon
http://atnd.org/events/4422

Python4PHPer 第6回講習会
PHPユーザのためのPythonとGoogle App Engine勉強会
http://atnd.org/events/4781

JavaエンジニアのためのGoogle App Engine入門
初心者向けの入門編です
http://atnd.org/events/4872
0438nobodyさん2010/05/31(月) 07:29:59ID:NgpBei4z
Python API と JDO と Java Low-level API との速度比較
http://gaejava.appspot.com/
0439nobodyさん2010/05/31(月) 23:23:57ID:???
Memcache API
http://code.google.com/intl/ja/appengine/docs/python/memcache/overview.html

Memcache APIの制限についてですが、ページ下部にある1MBっていうのは
キャッシュ可能なデータの総数が1MBってことですか?


0440nobodyさん2010/05/31(月) 23:26:54ID:fHwPcLyV
>>439
試して教えてよ
0441nobodyさん2010/06/01(火) 01:36:04ID:???
blobstore使えなくなってる?

昨日だか一昨日の更新から
blobkeyがnullになるんだが…
0442nobodyさん2010/06/01(火) 01:57:57ID:???
>>441
なっていない
0443nobodyさん2010/06/01(火) 02:44:04ID:???
>>442
サーセン、マイバグでした<(ゝ∀・)ゞメンゴメンゴ
0444nobodyさん2010/06/01(火) 18:49:33ID:???
>>439
>キャッシュ可能なデータの総数が1MBってことですか?

総数じゃなくて、キャッシュ可能なデータの最大サイズ。
個数や合計サイズには特に制限はないんじゃないかなあ。
0445nobodyさん2010/06/01(火) 20:43:17ID:???
一回当たりのAPI通信サイズ制限でしょ、必然的に1個(最小単位)の最大サイズ制限にもなるけど
ストアしたデータの量に関しては1個たりとも保障されないmemcacheの特性そのものが制限
0446nobodyさん2010/06/01(火) 21:00:08ID:???
>>445
>ストアしたデータの量に関しては1個たりとも保障されないmemcacheの特性そのものが制限

なるほど。
# 最初、「保障されないmemcache」と読み違えてしまった。
# 「保障されない*という*memcacheの特性」だね。
0447nobodyさん2010/06/01(火) 22:10:15ID:???
お?まじで!?俺もずっと1MBのメモリにいろんなキャッシュデータ詰め込む感じだと思ってた。
0448nobodyさん2010/06/01(火) 22:14:55ID:???
keyや*_multiはなんだと思ってたんだよw
0449nobodyさん2010/06/03(木) 08:55:14ID:???
クエリストリングに日本語というか
URLエンコードされたユニコード文字渡しても
Requestオブジェクトから受け取れないんだけど俺だけ?
ASCIIなら問題無い

正規表現使ったルーティング時には
Request.get()できちんと受け取れてる

WebObのドキュメント見てもそれっぽいのは無いし
Requestオブジェクトやルーティング周りに
手入れするのは嫌だなあ
04504492010/06/03(木) 08:57:51ID:???
ごめん、訂正

> 正規表現使ったルーティング時には
> Request.get()できちんと受け取れてる

Request.get()じゃなくて
getメソッドの引数だった
0451nobodyさん2010/06/03(木) 12:46:32ID:???
おまえだけ
0452nobodyさん2010/06/03(木) 13:55:56ID:???
>>451
マジでか
俺の環境だとこんな単純なでも代入されない
ASCIIは入る

class MainPage(webapp.RequestHandler):
def get(self):
word = self.request.get('word')
self.response.out.write('No word.')

URLエンコードされた文字でも代入される場合もあるけど
'GAEで開発' → GAE%82%C5%8AJ%94%ADは
Request経由で受け取ると'GAE?J'となる
クエリストリングでURLエンコードされた文字列受け取ること
想定してないんじゃないかって思ったんだけど
俺だけなのか…
0453nobodyさん2010/06/03(木) 14:04:18ID:???
SJISでエンコードされてるようですがこれでいいんですか?
0454nobodyさん2010/06/03(木) 14:52:04ID:???
馬鹿は質問の仕方見ただけで馬鹿だと分かるな
0455nobodyさん2010/06/03(木) 15:19:35ID:???
なんか2chでVistaが叩かれてたのに便乗してPCの不具合を全部Vistaのせいにする初心者を思い出した
0456nobodyさん2010/06/03(木) 16:41:07ID:???
Vistaは確かに糞だし
GAEも糞だ
0457nobodyさん2010/06/03(木) 21:21:28ID:???
>>456
情弱乙
0458nobodyさん2010/06/04(金) 10:43:10ID:???
>>452
GAE関係無いよ
文字コード調べような
0459nobodyさん2010/06/05(土) 00:33:53ID:???
>>456
だらず
0460nobodyさん2010/06/05(土) 11:11:48ID:???
>URLエンコードされたユニコード文字渡しても 

>'GAEで開発' → GAE%82%C5%8AJ%94%ADは 

ワロタ
0461nobodyさん2010/06/05(土) 20:34:31ID:???
>>452-461
馬鹿を馬鹿って指さしてただ笑うのは2chらしいけど、
ずらずらレスするより、一行でズバッと間違い指摘してやれよw
0462nobodyさん2010/06/05(土) 22:38:33ID:???
>>461
>>453
0463nobodyさん2010/06/06(日) 01:04:39ID:???
>>461
最速で指摘されてるだろ
0464nobodyさん2010/06/06(日) 14:39:58ID:???
>>461

>>461
0465nobodyさん2010/06/06(日) 21:20:19ID:Glu5WaTW
keyの頭文字に数字使っちゃいけないってどこかに書いてなかったっけ?
普通につかえるんだけど
0466nobodyさん2010/06/06(日) 21:26:55ID:???
いつだったかのアップデートで使えるようになったんじゃなかったかな
0467nobodyさん2010/06/06(日) 22:39:03ID:???
そうだったのか
無駄に接頭語ついててきったねえw
0468nobodyさん2010/06/07(月) 00:19:22ID:???
数字使えてもソート順は文字列と同じだよね?
0469nobodyさん2010/06/08(火) 03:32:53ID:6Ox7L+7U
key_nameに日本語使えるんだな
知らなかった
0470nobodyさん2010/06/08(火) 17:18:17ID:???
トランザクション中で<class 'google.appengine.runtime.DeadlineExceededError'>がでると数分くらい連続してで続けるんだけど
組み方が悪いのかな
0471nobodyさん2010/06/08(火) 17:47:45ID:6Ox7L+7U
いかなんじゃね
0472nobodyさん2010/06/08(火) 21:29:08ID:???
>>470
俺もmemcashe使ってもでるわ 重い
もうどうしようもなのかな....
0473nobodyさん2010/06/08(火) 22:43:50ID:???
>>470
うちでも最近よく出てる。Datastoreが重いらしいからそのせいでは。
ただあまり連続してなくて、散発的な感じ。
0474nobodyさん2010/06/09(水) 00:31:18ID:???
>>472
>>473
俺だけじゃないんだな
わりと頻発するしもう嫌だ
0475nobodyさん2010/06/09(水) 00:39:18ID:???
もう既に公開しちゃってユーザいるから
Googleの罠でも金払えば軽くなるならして欲しい
0476nobodyさん2010/06/09(水) 08:41:59ID:???
すぐに脱出した俺は勝ち組
0477nobodyさん2010/06/09(水) 10:55:13ID:suT+/NkO
Blob Viewerでblobデータ選択して削除しようとすると


Server Error
A server error has occurred.

と3日前ぐらい表示されます。みなさんも同じですか?
0478nobodyさん2010/06/10(木) 14:27:23ID:498abjeu
え?Blobデータ消せないの俺だけ?
0479nobodyさん2010/06/10(木) 18:58:57ID:???
Blob Viewerって課金すると使えるようになるやつ?
使ってる人少ないのかもしれない
0480nobodyさん2010/06/10(木) 20:39:16ID:498abjeu
>>479
そうそう課金すると使える奴。使ってる人少ないのかな。
海外コミュ見てくるか。。
0481nobodyさん2010/06/10(木) 22:22:45ID:498abjeu
Blobstoreのデータ消せない件、本家のissueに挙がってました。
http://code.google.com/p/googleappengine/issues/detail?id=2570

でいろいろ調べた結果、消す方法発見しました。
需要ないと思うけど今後のために晒しときます。

class deleteBlobsHandler(webapp.RequestHandler):
 def get(self):
  q = blobstore.BlobInfo.all()
  for e in q:
   e.delete()
0482nobodyさん2010/06/11(金) 02:48:10ID:???
こんなん来たが・・・失敗時刻の情報も無しにただエンティティリスト渡されてどうやってマージしろと?

During the day of May 25th, 2010, Google App Engine experienced a serving outage that lasted approximately 50 minutes.
In the minutes leading up to the outage, we received a number of writes from your application that we were unable to replicate to the secondary Datastore.
This caused the secondary Datastore to be slightly out of sync when we began serving traffic as part of the outage recovery process.
We call these type of writes “unapplied writes.” Rest assured, unapplied writes do not impact the transactional consistency and have not corrupted your application data.

The follow applications you own have unapplied writes:
***

During the recovery of the failed data center, we were able to produce a log of the unapplied writes that occurred during the outage period.
As a service to you, these unapplied writes are now available from within your application’s to make it easy for you to re-integrate them.
We have also developed a number of tools and example on how to do so.
If you are interested in better understanding this logged data and how you can work with it, please visit the Unapplied Writes FAQ: http://code.google.com/appengine/kb/unappliedwrites.html

Additionally, if you have any follow up questions please reply to this email.
We can also work with you to re-integrate or delete your entities in batch as you see fit for your application.

No action is required on your part; you can choose to ignore these writes if you choose.
We're making these writes available to you because we want you to know that whenever possible, we take every step we can to recover any data, complete or incomplete, that you attempt to store on App Engine.

We apologize for any inconvenience this may have caused you and thank you for your continued support of Google App Engine.

The App Engine team
0483nobodyさん2010/06/11(金) 19:03:22ID:???
SQLでは order by age, height のように複数のカラムを指定してソートできますが
appengine でもできますか。
Webで探しても、複数のプロパティを指定してソートした例が見つからなかったので
もしかしてできないのかと心配しています。
0484nobodyさん2010/06/11(金) 22:42:26ID:???
>>482
いくつきえたの?
0485nobodyさん2010/06/11(金) 22:51:36ID:OxcIBMws
巨神兵状態だな・・・
腐ってやがる
0486nobodyさん2010/06/12(土) 02:54:34ID:???
>>483
ドキュメントに複数プロパティでの並べ替えの例がある。
色々制限があるので、詳しくはドキュメントを参照。
0487nobodyさん2010/06/12(土) 07:03:33ID:???
Togetter - まとめ「データストア障害でエンティティが消えた疑惑」
http://togetter.com/li/24245


確かにぶっとんでる報告あるね
0488nobodyさん2010/06/13(日) 08:41:02ID:5ShZLTyC
ダッシュボードがおかしくなってるのは俺だけ?
0489nobodyさん2010/06/18(金) 16:41:08ID:???
これ見てよ↓
http://livedoor.2.blogimg.jp/agomesu/imgs/4/f/4faec292.png
ばらまこうぜ!
0490nobodyさん2010/06/27(日) 19:44:44ID:LWdgfVKR
なんでもそうだけど、甘く見ると痛い目みるよね
0491nobodyさん2010/07/07(水) 22:46:48ID:???
おまえら元気?
0492nobodyさん2010/07/08(木) 09:01:30ID:???
元気だけど話題はとくにないな
0493nobodyさん2010/07/08(木) 09:05:42ID:???
話題はあるけど話せないネタばかり。
0494nobodyさん2010/07/08(木) 09:27:28ID:???
元気に色々作ってるよ

Bigtableの不安定さは困るけど
Googleのいつもの過渡期の状況だと思うし
最悪データの不整合が起きてもダメージの少ない
断片データばっかりのサービスだから気にしてない

本業が忙しすぎて全然進まないのが悩み
0495名無しさん@そうだ選挙に行こう2010/07/10(土) 11:24:46ID:???
つかこれさ、もの凄く作業効率が悪くね?
ローカルとリモートじゃかなり動作が違ってくるし。

あと、1つのファイルを修正して、Deployするのに3分かかるってどういうことだ?

Deploying new version.
Checking if new version is ready to serve.
Will check again in 1 seconds.
Checking if new version is ready to serve.
Will check again in 2 seconds.
Checking if new version is ready to serve.
Will check again in 4 seconds.
Checking if new version is ready to serve.
Will check again in 8 seconds.
Checking if new version is ready to serve.
Will check again in 16 seconds.
Checking if new version is ready to serve.
Will check again in 32 seconds.
Checking if new version is ready to serve.
Will check again in 60 seconds.
Checking if new version is ready to serve.
Will check again in 60 seconds.
Checking if new version is ready to serve.

Googleってこんな糞な会社だったっけ?
0496名無しさん@そうだ選挙に行こう2010/07/10(土) 14:12:06ID:???
ファイル数増えてるならZIPにするべき
0497名無しさん@そうだ選挙に行こう2010/07/10(土) 14:42:31ID:???
はぁ?
>>495読めよ。
アホかお前?
0498名無しさん@そうだ選挙に行こう2010/07/10(土) 21:14:22ID:???
pgrw
0499名無しさん@そうだ選挙に行こう2010/07/10(土) 22:34:23ID:???
>>498
dopyupyupyupyu
0500名無しさん@そうだ選挙に行こう2010/07/11(日) 08:52:51ID:???
そこまでローカルとリモートが挙動替わるか?
単体テストしてりゃそこまで気にならんと思うレベル

ちなみにうちはDeployには5分以上かかりやがるw
0501名無しさん@そうだ選挙に行こう2010/07/11(日) 09:13:02ID:???
フェッチ処理とかクロンとかいろいろ変わるな
データストアの内容も違うし、モデルもとシンクされん
何か入れないと反映されんからな
意味の成さない糞アプリなら気にならんレベルかもしれんが、
それ以上のことをやろうとすると挙動がかなり変わってくる
GAEを使った人気アプリがないのはその辺の理由が大いに絡んできているんだろう
0502名無しさん@そうだ選挙に行こう2010/07/11(日) 13:41:20ID:???
俺の中で一番キツいのはテストがし難いってことかな
0503名無しさん@そうだ選挙に行こう2010/07/11(日) 15:05:01ID:???
データストアのNULLの処理の挙動に互換性がないのが一番アホだと思う
あとインデックスを後から追加とか削除とかしたときも本番で動作変わるし
0504名無しさん@そうだ選挙に行こう2010/07/11(日) 16:43:47ID:???
ワロタw
結構いるよね、ほのめかしはするけど実は答え知らない自称上級者
0505名無しさん@そうだ選挙に行こう2010/07/11(日) 16:47:40ID:???
スレ検索: 上級者
マッチ0件
0506名無しさん@そうだ選挙に行こう2010/07/11(日) 20:30:29ID:???
WPF と GAE にいったいどんな共通点が・・・
0507名無しさん@そうだ選挙に行こう2010/07/11(日) 20:39:10ID:???
誤爆だろw
俺もあっち見てこっち見てたらデジャブったわw
0508nobodyさん2010/07/12(月) 01:34:04ID:???
>>501
はげどう
0509nobodyさん2010/07/12(月) 06:06:04ID:???
やっぱりみんな同じ意見なんだね。ちょっと安心。
開発ストレス貯まりまくりでワロタよw
いろんな部分で非効率的だよね。

俺はGAE環境での開発が結構進んでたんだけど、
今後の事を考えて、早目にレンタルサーバーに
以降することにしたよ。
アマゾンのクラウドにするかslicehostにするか迷ってるとこ。
0510nobodyさん2010/07/12(月) 07:51:56ID:???
タダほどこわいものはない
を地で逝ってる
0511nobodyさん2010/07/12(月) 09:07:39ID:kdNT9nFj
課金しまくってるのにクソだわ
俺もSlicehostあたりに移行しようかなぁ
0512nobodyさん2010/07/12(月) 09:17:13ID:???
>>511
SlicehostはGoogle App Engineの代替にはならないだろ。
0513nobodyさん2010/07/12(月) 10:09:30ID:???
>>512
んなこと言う必要ないぐらい明白だと思うが。

できることで言えば、
GAE ⊂ Django + MySql
だし、そもそもGAEのデータモデリングはDjangoのそれに修正を加えたものだし、
そこまで移行も時間かからんだろ。
0514nobodyさん2010/07/12(月) 10:15:08ID:???
>>513
>そもそもGAEのデータモデリングはDjangoのそれに修正を加えたものだし

この発想はなかったわ(w
0515nobodyさん2010/07/12(月) 13:24:27ID:???
>>514
それは "発想" と言うより、Googleが公言している「事実」なんだけどな。
0516nobodyさん2010/07/12(月) 18:07:15ID:???
pgr w
0517nobodyさん2010/07/12(月) 18:24:30ID:???
GAEのJRubyでRailsが動きました(キリ
0518nobodyさん2010/07/13(火) 12:34:28ID:???
>>517
どんな感じですか。想像するに遅くて使いものにはならないだろうと思うけど、
実際に使った人の感想が聞きたい。
0519nobodyさん2010/07/13(火) 20:44:33ID:???
>>518
重くて使いものになりません
0520nobodyさん2010/07/16(金) 15:30:39ID:???
プロジェクトが遅れに遅れてクライアントから出入り禁止にされます。
0521nobodyさん2010/07/18(日) 09:49:59ID:???
mixiやRTMのように、個人別に表示内容を変えるサービスを構築中です。
[ユーザのメルアド、投稿内容、時間]というエンティティをつくってbigtableに書き込んでいます。
ログインしたメルアドと上記の値を比較して、一致したものを取り出して表示、としていますが、
これってセキュリティ上まずい気もするし、実際動かしてみても重たい…。
こういうことをしたい時はどのような方法を使えばいいのでしょうか?
0522nobodyさん2010/07/18(日) 19:37:11ID:???
>>521
google.appengine.api.users.Userを使うべし
0523nobodyさん2010/07/18(日) 19:41:23ID:???
>>521は単なるアホだと思ったが>>522はもっとアホだったw
0524nobodyさん2010/07/18(日) 23:10:09ID:???
メアドなりIDなりをキーにするしかないんじゃないの
重いのは他に原因があるはず
0525nobodyさん2010/07/18(日) 23:46:59ID:???
>>522
>>524
DataStoreの制限により1回の問い合わせで最大1000件しか取得できないってのが厄介です。。。
こういう時には一般的にどのような手法を用いるのでしょうか?
0526nobodyさん2010/07/19(月) 00:46:34ID:???
>>525
一度に1000件も必要?
もしかしてforとifで1件ずつメールアドレスが一致するか判断してたりする?

ユーザーの識別だけなら、get_current_user()で取得したユーザーオブジェクトの参照をそのままプロパティに入れられるし、
GQLを使うことで、そのユーザーを参照しているエンティティだけの集合を取得できる。
■ このスレッドは過去ログ倉庫に格納されています