トップページ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
0566nobodyさん2010/08/07(土) 14:15:48ID:Eg7K0i+u
開発環境では問題ないけど本番だとエラーがでます
こういう厄介なエラーのデバッグどうやりますか?
言語はpythonです
0567nobodyさん2010/08/07(土) 15:29:45ID:???
ソース保存時の文字コード間違えてるとか
# -*- coding: hogehoge -*-
書くの忘れてるとか
0568nobodyさん2010/08/07(土) 15:31:51ID:???
GAEならBigTableに入ってるデータのインデックスを持ってるとき
あとからカラム追加してそこがNULL値になってると
開発と本番とでエラー動作が変わったりするな
0569nobodyさん2010/08/07(土) 15:38:02ID:???
>>566
例外をちゃんと見る
ログを見る
0570nobodyさん2010/08/11(水) 05:05:51ID:???
くだすれがあるならそちらに投稿したいのですが、
くだすれに相当するスレが無さそうだったのでお願いします。

このアドレスの、
http://yasu1987.blogspot.com/2010/06/simple-twitter-bot-on-google-app-engine.html
32行目、
status = api.GetUserTimeline()
の処理を(というか全部ですが)Oauthに変えたいのですが、
http://blog.mudaimemo.com/2010/03/google-app-engine-twitteroauth.html
のmain.py のclient.make_request以下を

timeline= client.make_request('http://twitter.com/statuses/user_timeline.json',
token=TWITTER_ACCESS_TOKEN,
secret=TWITTER_ACCESS_TOKEN_SECRET,
protected=True,
method='GET')
と書き換えるのではダメでした。他の言語を扱ったことはあるのですが、
web系の言語は全くなく、かなり断片的に調べてやっているので
全く見当はずれなことをしているかもと思うのですが、よろしければ
どのように書き換えれば上のような事が出来るか教えて頂けないでしょうか。
最終的にしたいのは最初のコードを全てOauthに対応させることなのですが、
参考になるドキュメント、あるいはもっと簡単な方法があれば教えて頂ければ幸いです。
0571nobodyさん2010/08/11(水) 05:32:07ID:???
>>570
まず、そのサイト見るのやめた方がいいと思う。
BASIC認証使ったコードを6月28日に公開する時点で問題外。
0572nobodyさん2010/08/11(水) 06:37:23ID:???
http://0-oo.net/sbox/python-box/appengine-twitter
0573nobodyさん2010/08/12(木) 08:41:01ID:???
>>571
うーん…そうですか しかし、検索ワードを加工して発言するbotを
作りたいので雛形としてはかなり使いやすいのです。
とりあえずこれをOauthに直す方向で行ってみたいと思います。

>>572
なるほど、元々Oauthが使えるんですね。
やってみます。

ところで、上のコードでusertimelineの取得にだけtwitter.Apiを
使ってあるのは何故なんでしょうか。ここの書き換え方がよく分からないのですが、
当てずっぽうで

status = api.GetUserTimeline()

status = AppEngineTwitter.user_timeline()
もしくは
status = AppEngineTwitter.Get('http://twitter.com/statuses/user_timeline')
あたりをやってみたんですが、違ったようです。どうやって書けばよいか、
また、後学のためにソースのどのあたりに注目すればよいか教えて頂けると幸いです。
よろしくお願いします。
0574nobodyさん2010/08/14(土) 14:24:40ID:???
Google appengine の開発用ローカルサーバを
IronPythonで動かした人います?
0575nobodyさん2010/08/14(土) 20:08:45ID:gkT0wk0x
twitterのタイムラインをfetchしたら1MB制限で引っかかりました。
1MBに収まるようにツイートを指定するにはどんな計算をしたらいいですか?
要素が複雑なので難しいです
0576nobodyさん2010/08/16(月) 12:04:45ID:???
ありがとうございました
0577nobodyさん2010/08/16(月) 17:19:43ID:???
何が?
0578nobodyさん2010/08/16(月) 23:02:39ID:???
なんたらguruの人かわいそう
0579nobodyさん2010/08/17(火) 02:10:32ID:???
gu-guruの人?
0580nobodyさん2010/08/17(火) 02:27:19ID:???
ライフスペースのグルじゃね?
0581nobodyさん2010/08/17(火) 22:45:24ID:???
お腹がguruguru
0582nobodyさん2010/08/18(水) 03:38:49ID:???
いま >>581 がいいこと言ったぞ!
0583nobodyさん2010/08/18(水) 05:41:01ID:???
かわいそう過ぎる。。。
0584nobodyさん2010/08/18(水) 08:14:52ID:???
ありがとうございました
0585nobodyさん2010/08/18(水) 10:19:22ID:???
どう鼬増して
0586nobodyさん2010/08/18(水) 10:41:56ID:???
不細工過ぎてかわいそう過ぎる...
0587nobodyさん2010/08/20(金) 03:47:15ID:???
何故スレ違いのレスが増えたのだぜ?
0588nobodyさん2010/08/22(日) 00:58:33ID:6DumZjKa
Channel APIの近況を英語詳しい人教えてくれ
0589nobodyさん2010/08/22(日) 22:34:14ID:???
WEB+DB PRESS vol.58 の Rails 3 / Ruby1.9.2 記事が素晴らしすぎる件
http://www.machu.jp/diary/20100821.html
0590nobodyさん2010/08/22(日) 23:08:39ID:???
Slim3がRails 3相当のフレームワークになれば問題ないよね
0591nobodyさん2010/08/22(日) 23:54:56ID:???
Total Stored Dataを初期化したいのですが、何か方法ありますか?
0592nobodyさん2010/08/23(月) 11:23:33ID:???
Oilで結構逝けてる
0593nobodyさん2010/08/24(火) 14:17:24ID:???
オイル懐かしす
単独で使える便利クラスとか揃ってんの?
0594nobodyさん2010/09/05(日) 09:58:15ID:asSQCvs+
age
0595nobodyさん2010/09/05(日) 13:39:34ID:???
期待age

ttp://coreblog.org/ats/moved-to-google-appengine-based-blog-engine
0596nobodyさん2010/09/13(月) 04:36:35ID:rjSsaPIO
GAE以外でも、googleのアカウントでログインして権限の管理をしたいのですが、どうやればいいですか?
0597nobodyさん2010/09/13(月) 04:45:10ID:???
イミフ
0598nobodyさん2010/09/13(月) 04:47:16ID:rjSsaPIO
たとえば、サイトを自分で用意して、
Googleアカウントでのログインを要求し、
認証されれば、
そのサイトを編集できるようにしたいのです。
0599nobodyさん2010/09/13(月) 05:00:24ID:???
フィッシングですねわかります
0600nobodyさん2010/09/13(月) 05:06:39ID:???
OpenIDじゃね
0601nobodyさん2010/09/13(月) 06:39:05ID:???
>>599
あほがいる
0602nobodyさん2010/09/13(月) 09:13:03ID:???
釣れた釣れた
0603nobodyさん2010/09/13(月) 10:48:48ID:???
>>598
ここに載ってる
ttp://code.google.com/intl/ja/appengine/docs/
後マルチすんな
0604nobodyさん2010/09/13(月) 11:28:47ID:???
>>598
ttp://code.google.com/intl/ja-JP/apis/accounts/docs/OpenID.html
0605nobodyさん2010/09/14(火) 07:11:59ID:???
>>603
マルチなんてしてませんよ
>>604
ありがとうございます
0606nobodyさん2010/09/15(水) 01:14:40ID:???
同じ日の真夜中の4時台に10分違いで、一字一句違わない同一内容の
質問をする赤の他人が出てくるとは、2ちゃんねるも狭くなったもんだ。

[Google AppEngine 3アプ目]
http://hibari.2ch.net/test/read.cgi/php/1267057923/596
>596 nobodyさん New! 2010/09/13(月) 04:36:35 ID:rjSsaPIO
>GAE以外でも、googleのアカウントでログインして権限の管理をしたいのですが、どうやればいいですか?

>[Google App Engine 3アプ目]
http://hibari.2ch.net/test/read.cgi/php/1267094290/358
>358 nobodyさん 2010/09/13(月) 04:46:30 ID:L50Gz2OE
>GAE以外でも、googleのアカウントでログインして権限の管理をしたいのですが、どうやればいいですか?
0607nobodyさん2010/09/15(水) 08:23:24ID:???
しかしこのスレにはたまにあっちのスレとセルフで同期する伝統があるからなぁ
0608nobodyさん2010/09/15(水) 09:18:46ID:???
>>606
誰かがコピーしただけじゃん
そんな意味ないマルチするかよw
0609nobodyさん2010/09/15(水) 10:25:39ID:???
pythonスレ周辺には人の書き込みを他のスレにコピーする妖怪コピペンがいる
俺がpythonくだスレでした質問もコピーにされたし
0610nobodyさん2010/09/15(水) 11:16:51ID:???
糖尿病スレにも居るな
他の人が書いた質問をコピヘしまくる基地外が
0611nobodyさん2010/09/15(水) 12:54:02ID:???
GAEって具体的に何が出来るんですか?
3行でどなたか説明してください
0612nobodyさん2010/09/15(水) 14:25:09ID:???
>>611
Web
アプリが
動かせる
0613nobodyさん2010/09/15(水) 14:39:53ID:???
webアプリっていうのはレンタルサーバにCGIとして動かすのとは違うのですか?
0614nobodyさん2010/09/15(水) 15:36:34ID:???
GAEはCGIじゃなくてWSGI
0615nobodyさん2010/09/15(水) 16:40:24ID:???
使う側としては一緒
作る側としてはだいぶ違う
0616nobodyさん2010/09/15(水) 18:06:48ID:???
CGIよりも作るのは楽
0617nobodyさん2010/09/15(水) 23:44:17ID:???
それは微妙じゃないか
むしろ制約が多くてコーディング自体は面倒くさい
0618nobodyさん2010/09/16(木) 00:34:31ID:???
それはWSGIの問題ではなくて
GAEの問題だろ
0619nobodyさん2010/09/16(木) 01:09:34ID:???
WSGIの方がCGIよりも遥かに高速。
0620nobodyさん2010/09/16(木) 08:22:43ID:???
ここはGAEのスレじゃないのか?
0621nobodyさん2010/09/16(木) 14:59:48ID:???
GAE/PyがWSGIベースだからスレ違いではないと思うけどね。
ただここってGAE/Jのスレじゃなかったっけ
0622nobodyさん2010/09/16(木) 21:24:45ID:???
>>620
誰に何を言おうとしているのか?
http://www.youtube.com/watch?v=P5sWncFiYnA
0623nobodyさん2010/09/17(金) 00:10:46ID:???
ガエピーのスレでしょ
ガエジェイは向こうじゃん
0624nobodyさん2010/09/17(金) 01:39:04ID:???
ややこしいのう
0625nobodyさん2010/09/19(日) 23:32:02ID:ESNx8K3e
デバッガ使って動的解析したいと思い
CentOS上でGAEのテストサーバ動かしてWinpdbでアタッチしてみてるんだけど
pickle.pyのdumps関数内の
Pickler(file, protocol).dump(obj)
でブロックされたままになる。
でもHTTPのリクエストは受け付けていて
ふつーにレスポンスは返す状態。
一体どうなってるのか理解できてない。

どなたかデバッガ使ってる人いますか?
06266252010/09/19(日) 23:58:31ID:???
Kay frameworkです。
06276252010/09/20(月) 00:25:02ID:???
たびたびすみません。
結局
http://kay-docs-jp.shehas.net/debugging.html
ここにあった方法
kay.utils.set_trace()
を使うことにしました。
0628nobodyさん2010/09/20(月) 00:53:06ID:???
ここはJava専用だっけ
0629nobodyさん2010/09/20(月) 11:32:58ID:???
ガエピーのスレだと言ったでしょう!
0630nobodyさん2010/09/26(日) 12:10:02ID:???
>>610
お前、糖尿病スレに出入りしてるのか('A`)
0631nobodyさん2010/09/26(日) 12:24:01ID:???
糖尿病総合スレは荒らしが多いから余り見てないけどね
糖質制限食のスレは巡回してる
0632nobodyさん2010/09/27(月) 20:14:11ID:???
GDD2010JPいく?
0633nobodyさん2010/09/27(月) 20:58:40ID:???
お呼ばれされているけれど金欠のため行かない
0634nobodyさん2010/09/27(月) 21:52:26ID:???
呼ばれてないのに行ったらどうなるのっと
0635nobodyさん2010/09/27(月) 22:26:02ID:???
>>633
一緒にお昼食べよーよー
0636nobodyさん2010/09/27(月) 22:40:25ID:???
>>635
学生の身分だから明日も授業があるというのも理由なんだ
0637nobodyさん2010/09/27(月) 23:57:55ID:???
GDD1日行こうと思って、スケジューラーにもいれといたのに、
3つもうちあわせ入れられた。行けないかな。
0638nobodyさん2010/09/29(水) 23:56:28ID:???
>>637
そういう時は風邪ひけよ
0639nobodyさん2010/09/30(木) 00:07:43ID:???
なんとか2時間ほど空きを見つけて行ってきたが、2時間で充分だった。

>>638
決裁権者なので、そうもいかなかったのだ。
0640nobodyさん2010/09/30(木) 00:10:37ID:???
>>639
決裁権者なら打ち合わせを動かせばいいじゃないか
0641nobodyさん2010/10/03(日) 10:45:20ID:???
> 経験則では、エンティティ グループのサイズは 1 人のユーザーのデータ量に相当するかそれ以下のサイズがよいようです。
http://code.google.com/intl/ja/appengine/docs/python/datastore/keysandentitygroups.html

これどのくらいのサイズってこと?
0642nobodyさん2010/10/05(火) 14:50:00ID:???
これを使ってMMOレベルのゲームサーバって作れる?
利用者の数に応じて帯域を確保できるなら採算とれなくもなさそうな。
0643nobodyさん2010/10/05(火) 15:49:05ID:???
無理
0644nobodyさん2010/10/05(火) 15:55:47ID:???
そもそもMMOがどんな仕組みか少しは理解してるのかね
理解してるのならこれを使おうとは思わないだろうし
無理やり実装しても請求される額考えたら採算合うとは思えないけどな
0645nobodyさん2010/10/05(火) 22:51:33ID:???
memchachedのインクリメントって使う時ある?というかどういう時使うの?
他の操作してる時に消えてるかもしれないmemchachedのデータでインクリメントしても・・・
って気がするんだけど。
0646nobodyさん2010/10/09(土) 02:24:32ID:???
>>645
ttp://code.google.com/intl/ja/appengine/articles/sharding_counters.html

上の記事読むと分かると思うけど、memcacheの値とエンティティの値を
同時に更新することで、カウンタの値の読み込みを高速化することができる。
memcacheの値が消えてたら、エンティティの値を読み込むという
getメソッドを用意するのが味噌。
0647nobodyさん2010/10/10(日) 21:09:50ID:???
その例increase_shards関数putのみのトランザクションだけど
getからトランザクション内でやんなきゃだめじゃね?
0648nobodyさん2010/10/11(月) 11:17:01ID:???
>>647
getからしてるじゃん。
0649nobodyさん2010/10/11(月) 12:14:31ID:???

言い方が悪かったかも
たしかにgetもトランザクションでやってるけど
getとputが別のトランザクションじゃんこれ?

  config = GeneralCounterShardConfig.get_or_insert(name, name=name)
  def txn():
    if config.num_shards < num:
      config.num_shards = num
      config.put()
  db.run_in_transaction(txn)
0650nobodyさん2010/10/11(月) 12:48:34ID:???
その例だと
config = GeneralCounterShardConfig.get_or_insert(name, name=name)
もトランザクション内にいれないとダメっぽいね
まあシャード数の変更でコリジョンするなんて管理者が複数いてよっぽどタイミングが悪いかぎり
起こらないだろうからほとんどの場合問題ないけど
0651nobodyさん2010/10/12(火) 12:06:04ID:???
getのみputのみdeleteのみのトランザクションってどうなんの?
絶対成功するん?
0652nobodyさん2010/10/12(火) 12:16:53ID:???
ああ、まったくそんなことなかったや、成功するのはgetだけか
0653nobodyさん2010/10/16(土) 16:19:09ID:???
POSTされたデータのURLエンコード処理って今までは自分で行う必要があった気がするんですが
今日SDK1.3.8でテストしたら自動でURLエンコードしてくれてたんですが
仕様が変わったんでしょうか。

例えば

def post(self):
 name = self.request.get('name')

ではなく

def post(self):
 name = urllib.unquote_plus(self.request.get('name'))

としないと変数nameに生の文字列が入らなかった気するんですが。。
0654nobodyさん2010/10/17(日) 22:09:54ID:???
>>653
>POSTされたデータのURLエンコード処理って今までは自分で行う必要があった気がするんですが

えーそんなことないと思うけど。
いくらなんでもそんなださい仕様だったら、だれもGAE使ってないと思う。

もし気になるなら古いSDKダウンロードして試してみたらどうでしょう。
0655nobodyさん2010/10/17(日) 23:07:18ID:???
元々誰も使っていなかったというオチ
0656nobodyさん2010/10/18(月) 00:10:55ID:???
GETのQueryStringと勘違いしてるとかじゃなくて?
06576532010/10/19(火) 06:07:41ID:???
すみません。。自分の勘違いでした。。。。
0658nobodyさん2010/10/19(火) 20:07:38ID:???
画像だけ別サイトに保管しても、利用規約上問題あるでしょうか?
画像はさすがにここには置けないよね
0659nobodyさん2010/10/19(火) 21:26:13ID:???
>>657
Oh・・・
0660nobodyさん2010/10/20(水) 11:32:43ID:???
>>658
問題あるわけないじゃん
でもなんでここに置けないの?
0661nobodyさん2010/10/20(水) 14:06:17ID:???
>>660
転送量で金がかかるから

画像系のブログやってるけど、アクセス4000ぐらいでも
転送量が1日10G超えたこともある
0662nobodyさん2010/10/21(木) 01:14:40ID:???
>>661
つFlickr, フォト蔵
0663nobodyさん2010/10/23(土) 00:07:16ID:???
iPhoneの2chクライアントアプリは確か画像のキャッシュにAppEngineつかってたよな
たまによく極稀に2chに張られるのを見かける
あれ、転送量大丈夫なのかな

>>661
ついでにPicasaも
0664nobodyさん2010/10/23(土) 15:09:24ID:???
著作権的に怪しいものは、Picasaとかには置けないよ
アクセス増えると中身をチェックされて、
最悪の場合、アカウントごと消される
0665nobodyさん2010/10/26(火) 12:47:25ID:???
>>663
それ組み込みのうpろだでiPhone板ではデフォ
たまーに503になるけど、流れるのも早いしほとんどスクリーンキャプチャだから
意外とバランス取れてるのかもしれない
0666nobodyさん2010/10/30(土) 10:35:47ID:???
beebee2seeとかいうやつか

アレも結構、Loactionで飛ばしてて流浪の民っぽいのだが
■ このスレッドは過去ログ倉庫に格納されています