Google AppEngine 3アプ目
■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん
2010/02/25(木) 09:32:03ID:5mUqVSikhttp://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
0233nobodyさん
2010/03/25(木) 15:32:51ID:???↓ 質問にすべて「はい」と答える
↓ うつ病、等質認定
等質になればパワハラ加害者に復習しても無罪みたいだよ
★両親と姉殺害で死刑求刑の被告に無罪判決 水戸地裁土浦支部
・茨城県土浦市で平成16年11月、両親と姉を包丁で刺すなどして殺害したとして
殺人罪に問われ、死刑を求刑されていた同市、男性被告(31)に対する判決公判が
27日、水戸地裁土浦支部で開かれ、伊藤茂夫裁判長は無罪を言い渡した。
裁判では、検察側が「冷酷、残忍で非道極まりない犯行」として死刑を求刑したのに
対し、弁護側は「被告は当時、統合失調症に罹患(りかん)しており、心神喪失状態
だった」として無罪を主張していた
http://headlines.yahoo.co.jp/hl?a=20080627-00000927-san-soci
※元ニューススレ
・【社会】「自分の居場所ない」 ひきこもり28歳、両親と姉の殺害認める…初公判
県警の調べでは、飯嶋被告は自宅に引きこもって生活。「自分の居場所がなく
死刑になってでも父らを殺すしかないと思った」と供述した。"
http://news19.2ch.net/test/read.cgi/newsplus/1121771630/
茨城陸自宿舎殺人:被害者の公務災害を認定 東京地裁 【毎日新聞】
http://mainichi.jp/select/jiken/news/20090416k0000m040095000c.html
陸上自衛隊航空学校霞ケ浦分校(茨城県土浦市)の宿舎で、隊員の松原孝吉さん(当時25歳)が
就寝中に同僚に殴られ死亡した事件を巡り、両親が「公務災害に当たる」として国に
計約1億3800万円の補償や賠償を求めた訴訟で、東京地裁は15日、
約3170万円の支払いを命じた。広谷章雄裁判長は「公務災害」と認めた。
判決によると、松原さんは05年5月、部屋で就寝中に同室の隊員の男に木製バットで頭を殴られ死亡した。
男は殺人容疑で逮捕されたが、統合失調症により心神喪失と判断され不起訴処分となった。
国側は「就寝は職務と関係ない」と主張したが、判決は「自衛隊法で松原さんは宿舎居住を義務づけられ、
公務上の災害で死亡したと言える」とし、国に補償を命じた。陸自側の安全配慮義務違反を主張した賠償請求は退けた。【伊藤一郎】
0234nobodyさん
2010/03/25(木) 15:33:24ID:???お前、どこでエラーがでるのかぐらい晒せよ
> body_line = body_line unicode(h[0][0], "iso-2022-jp")
なんだこれ?
構文自体間違ってるだろ。
unicode(h[0][0], "iso-2022-jp", 'ignore')
してみろ。
0235nobodyさん
2010/03/25(木) 15:53:14ID:???中学では内気過ぎて反抗なんてしないし、出来なかったせいか、暴力を受けたり、恥ずかしい事などをされても親や先生に訴える事もありませんでした。
そんな私にも、中二の二学期に転校してきたA君だけは優しくしてくれました。女子トイレの中でのイジメは続きましたが、教室で何かあると、A君は必ず助けてくれました。自分が他の男子に殴られても、私の味方になってくれました。
私にとってA君は神様の様な存在で、A君と二人で居る時だけが現実の世界なんだと思っていました。今私が生きているのもA君のおかげだと思います。
私はA君みたいに誰かを守る事は出来ないと思いますが、味方にはなれると思います。
イジメに対する復讐なんて、余計に惨めで愚かな事ではないでしょうか?
過去を乗り越え、これからの幸せを見つけていく方が、明るく前向きな気持ちになれるのではないかと思います。
0236nobodyさん
2010/03/25(木) 16:46:28ID:???0237nobodyさん
2010/03/25(木) 19:08:20ID:???0238nobodyさん
2010/03/25(木) 19:52:21ID:???自分自身の行いが災いとして舞い戻り後悔されるでしょう…
いつか……必ず……
0239nobodyさん
2010/03/25(木) 20:08:45ID:???0240nobodyさん
2010/03/26(金) 01:49:40ID:???0241nobodyさん
2010/03/26(金) 06:46:21ID:???0242nobodyさん
2010/03/26(金) 19:32:04ID:???0243nobodyさん
2010/03/27(土) 15:56:17ID:???>>232
Google App Engineでイジメを解決するツールを作ろう!
>>233
Google App Engineで精神病を解決するツールを作ろう!
サイトの設計は>>244以降でお願いします。
0244nobodyさん
2010/03/27(土) 16:29:05ID:???0245nobodyさん
2010/03/28(日) 16:24:56ID:???このエラーが解決出来ない(涙
0246Zeno ◆5nZQbNmQPs
2010/03/28(日) 17:37:25ID:M8LbN6As>>245
文字列型の値を参照する変数に対し、
文字列が持たない attribute にアクセスしようとするとそうなる。
>>> s = ''
>>> s.hoge
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
AttributeError: 'str' object has no attribute 'hoge'
str タイプに hoge は含まれていない:
>>> 'hoge' in str.__dict__
False
0247nobodyさん
2010/03/28(日) 17:56:47ID:???Zenoさん、レスありがとうございます。
ん〜、型変換しないといけないのでしょうか?
Google App Engineなんですが、ローカル環境(WinXP+Python2.5.4+SDK)
では動くのですが、GAEにアップすると「ttributeError: 'str' object has no attribute 'hoge' 」
が出ちゃいます。
以下の箇所です。
Queries = memcache.get("query")
if Queries is None:
Queries = db.GqlQuery("SELECT * FROM hoge LIMIT 10")
memcache.set("query", Queries, 10000)
for p in Queries:
hoge = p.hoge
0248nobodyさん
2010/03/28(日) 17:57:42ID:???インテンド飛んでしあまったので、再投稿です。
Queries = memcache.get("query")
if Queries is None:
Queries = db.GqlQuery("SELECT * FROM hoge LIMIT 10")
memcache.set("query", Queries, 10000)
for p in Queries:
hoge = p.hoge
0249Zeno ◆5nZQbNmQPs
2010/03/28(日) 18:08:57ID:M8LbN6As>>248
まずは memcache 無しで試してみろ。
Queries = db.GqlQuery("SELECT * FROM hoge LIMIT 10")
for p in Queries:
hoge = p.hoge
これで同じエラーがでるのであれば、
ローカルとプロダクションのデータストアの
シンクができていないのだと思われる。
つまり、hoge のカラムを(後から)ローカル側で追加したのは良いが、
そのカラムの定義がリフレクトされていないか、
そもそも値が入っていないかだ。
0250Zeno ◆5nZQbNmQPs
2010/03/28(日) 18:19:05ID:M8LbN6As>>248
ところで、>>249 をやる必要はない。
そもそも memcache に入っている key='query'
の値が文字列となって返ってきているのが問題だ。
Queries = memcache.get("query")
を抜いてやれば問題ない。
memcache.set("query", Queries, 10000)
これも問題だ。そもそもピックルできないものは
memcache に入らない仕様だったと思うが。
0251>247-248
2010/03/28(日) 20:11:20ID:???0252Zeno ◆5nZQbNmQPs
2010/03/28(日) 20:51:28ID:M8LbN6As>>251
以下の可能性が考えられる:
1. db.GqlQuery("SELECT * FROM hoge LIMIT 10") の結果はそもそも
pickle できない。
2. db.GqlQuery("SELECT * FROM hoge LIMIT 10") の結果は
pickle できるが、pickleされたオブジェクトサイズが上限である
1メガバイトを越えている。
どちらにしても、以下のようにしてキャッシュが
成功したか否かを確認できる:
cache_success = memcache.set("query", Queries, 10000)
logging.warning( 'Memcache: %s' % ((cache_success and 'success') or 'failure',))
自分で db.GqlQuery("SELECT * FROM hoge LIMIT 10") が
pickle できないかできるかを試してみても良い。
いつまで迷走してるんだ。早くやれ。
0253>247-248
2010/03/28(日) 22:56:10ID:???GQLをキャッシュするのではなく、素直にHTML出力部をcacheする
ようにしました。Zenoさんいろいろありがとう。
さてさて、お陰様でGoogle App EngineでWebサービスつくってみましたー。
pugyatter m9(^Д^)プギャ---ッ
http://pugyatter.appspot.com/
0254nobodyさん
2010/03/28(日) 23:05:40ID:???見にいったらエラー出たぞ
BadQueryError: Parse Error: Expected no additional symbols at symbol /Name
0257nobodyさん
2010/03/28(日) 23:32:04ID:???0258>247-248
2010/03/29(月) 00:07:12ID:???本当ですねー。素人プログラマなんで大目に見てください。
さてさて、GQLのDBって「ID/Name」のカラムでソートできるのでしょうか?
このカラムってオートインクリメントになるのだろうか?
0259nobodyさん
2010/03/29(月) 02:01:30ID:???0260nobodyさん
2010/03/29(月) 07:33:09ID:???0262nobodyさん
2010/03/30(火) 18:01:29ID:???JRuby on Rails でアプリ作ってます。
これをデプロイしてブラウザで見ようとすると、たいてい一回目は
「The server encountered an error and could not complete your request.」
のエラーが出てアクセスできません。
ただし、リロードかけると見れます。
これは、Railsが大きすぎるからなんですかね?
やはるSinatraとかじゃないとダメですか?
0264nobodyさん
2010/03/30(火) 18:35:54ID:???0265nobodyさん
2010/03/30(火) 19:04:43ID:???0266nobodyさん
2010/03/30(火) 20:35:19ID:???ひがやすお氏のブログ見た感じ、Railsは現実的じゃないみたい。
Sintara でも使えるけどやっぱりネイティブサポートの Java や Python にくらべると相当辛い。
よっぽどの事情がないかぎりは GAE か Ruby のどっちかを諦めた方が良いと思うよ。今のところ。
ttp://d.hatena.ne.jp/higayasuo/20100319/1268984735
0267nobodyさん
2010/03/30(火) 21:09:00ID:???というか、 Java でも辛いんだけどね。
信頼できて実用レベルなのは Python だけだよ。
0268nobodyさん
2010/03/31(水) 00:30:46ID:???0269nobodyさん
2010/03/31(水) 06:58:43ID:???ttp://code.google.com/intl/ko-KR/appengine/docs/roadmap.html
> Features on Deck
> - SSL for third-party domains
> - Background servers capable of running for longer than 30s
> - Ability to reserve instances to reduce application loading overhead
> - Ability to select different availability vs. latency options for Datastore
> - Support for mapping operations across datasets
> - Datastore dump and restore facility
> - Raise request/response size limits for some APIs
> - Improved monitoring and alerting of application serving
> - Support for Browser Push (Comet) communication
> - Built-in support for OAuth & OpenID
独自ドメインでもSSLが使えるようになる予定がいちばん最初に明記されていてよかった。
0270nobodyさん
2010/03/31(水) 08:04:42ID:???0271262
2010/03/31(水) 09:07:22ID:???ご返答ありがとうございます。
ひがやすお氏の記事は拝見してましたが、それでもできる術はないかと、
悪戦苦闘しておりました。
0273nobodyさん
2010/03/31(水) 16:41:19ID:???0274270
2010/03/31(水) 22:37:47ID:???↓
googleからメール来ない
↓
auのメールにフィルタリングかけてたのが原因っぽい
↓
フィルタリング解除して再度GAEアカウント作成を試みる
↓
エラーメッセージが出る
The phone number has been sent too many messages or has already been used to confirm an account.
↓
googleの問い合わせフォームからエラー解除依頼中←今ココ
0275nobodyさん
2010/04/01(木) 02:12:01ID:???docomo ユーザーだけど同様に SMS フィルタしてて同じ目に遭った orz
0276nobodyさん
2010/04/01(木) 02:22:13ID:???0277nobodyさん
2010/04/01(木) 02:30:57ID:???SMS フィルタ解除したら
リトライで間に合ったみたい
0278nobodyさん
2010/04/01(木) 08:06:14ID:???やっとGAEできるぜヒャッハー!!
Hello,
You're receiving this email because you indicated you'd had some problems verifying your Google App Engine account using SMS. We just wanted to let you know we've enabled your account--you should be able to create applications now!
To start creating applications with Google App Engine, simply follow this link:
https://appengine.google.com/
Thanks!
The Google App Engine Team
0279nobodyさん
2010/04/01(木) 08:44:09ID:???0280nobodyさん
2010/04/01(木) 14:00:35ID:???0281nobodyさん
2010/04/02(金) 17:40:11ID:???必ず確かめるべし、と書いてあったんですが、成功したかどうかはどうやって
確かめるんでしょうか。
0282nobodyさん
2010/04/02(金) 19:12:40ID:???0283nobodyさん
2010/04/02(金) 22:31:10ID:???コレクションってどの種類いれても全部arraylistで返ってくるんですか?
0284nobodyさん
2010/04/02(金) 23:59:07ID:???ローカルサーバでの開発がそこそこ枯れているんなら、実際の運用上は、
com.google.appengine.api.datastore.DatastoreTimeoutException
を投げてこないか見張るだけでほぼ問題ないような
最近のアップデートでは自動的に数回までリトライしてくれるようになったんだっけ?
java.lang.StackOverflowErrorとかjava.lang.OutOfMemoryErrorまで
見張りたいんなら、これはもうThrowableを投げてこないか見張るしかないっ。
0285nobodyさん
2010/04/04(日) 12:22:27ID:???0286nobodyさん
2010/04/04(日) 16:47:34ID:???0289nobodyさん
2010/04/04(日) 23:58:38ID:???メアド変更したら取り放題じゃん
0290nobodyさん
2010/04/05(月) 19:28:29ID:???0291nobodyさん
2010/04/09(金) 22:06:10ID:VePKi7+Ihoge.appspot.comを作ったのはhoge@gmail.comのユーザーだ
みたいな情報って一般人に紐付けされたりする?
0292nobodyさん
2010/04/09(金) 22:47:06ID:???って俺もそれ気になってたなぁ。
多分大丈夫だとは思う。
0293nobodyさん
2010/04/09(金) 22:55:12ID:???0294nobodyさん
2010/04/09(金) 23:10:05ID:???初期の頃は6文字以下も作れたし既にgmail名取られた奴でも作れた
なので多分それは無い
そもそもアプリ共有出来るし紐付けって考えは意味無いと思う
気になるなら別のアプリ名で取り直してhogeは放置しておくのが吉
0295nobodyさん
2010/04/09(金) 23:43:20ID:???といった要件にGAEは向いているのでしょうか?
少し調べた範囲だとタスクキュー使ってデータ分割しながら集計すれば
やれなくはなさそうですが、厳しいですかね?
0296nobodyさん
2010/04/10(土) 06:47:37ID:???0298nobodyさん
2010/04/10(土) 11:14:43ID:???重い処理は10−30秒程度が限界で、それ以上はエラーでるよ。
Queueは非同期処理で利用するものじゃない?
0299nobodyさん
2010/04/10(土) 11:31:53ID:???Google さんからは Scalable な書き方として
データ追加時に一緒に逐次集計しろというお達しがある
0300nobodyさん
2010/04/10(土) 14:32:57ID:???http://gimpo.2ch.net/test/read.cgi/nendai/1269784099/
0301nobodyさん
2010/04/11(日) 11:21:59ID:DpoFQfFhquery = Test.all()
query.filter('code =', target.encode('utf-8'))
query[0].item='ABC'
query[0].put()
とやっても更新される気配がないんですが、
どうすればレコードを更新できますか
0302nobodyさん
2010/04/11(日) 12:37:38ID:???query[0].put()
でうまくいってなさそう。
instance = query.fetch(1)[0] か instance = query.fetch(1)
instance.item = 'ABC'
instance.put()
としたらどうでしょう。
0303nobodyさん
2010/04/12(月) 16:50:03ID:+DZBAaxOimport cgi
print 'Content-Type: text/plain\n'
print '<html><head></head><body><form action="?guid=ON&cmd=regist" method = "post">'
print 'あなたの名前は<br><input type="text" name="name" maxlength="10" istyle="3"><br>'
print '<input type="submit" value="答える"></form>'
f = cgi.FieldStorage()
if f.has_key('cmd') and f['cmd'].value=='regist' and f.has_key('name'):
print 'name=%s<br>' % f['name'].value
ローカルでは動くのにGAE上では値を受け取れないのはなぜですか
0304nobodyさん
2010/04/12(月) 17:26:16ID:???0306nobodyさん
2010/04/13(火) 11:12:29ID:???間違って作った奴消してもまた10個作れる?
それとPV月500万までって事だけど
一つのアプリに対して500万PV?
それとも10個全部あわせて500万PV?
0307nobodyさん
2010/04/13(火) 13:15:18ID:???0308nobodyさん
2010/04/13(火) 21:53:37ID:???0309nobodyさん
2010/04/14(水) 10:10:53ID:???消すお願いをしてから3日くらい掛かるけどw
0310nobodyさん
2010/04/14(水) 16:39:10ID:???( ・ω・) dd
/ ~つと)
0311nobodyさん
2010/04/14(水) 20:33:23ID:???誰かヤフオクでAppengineのアカウント売ってくれ。
0312nobodyさん
2010/04/14(水) 20:46:46ID:???# fetchした場合
query = Model.all()
res = query.order('date').fetch(100)
# iterableの場合
query = Model.all()
res = query.order('date')
0315nobodyさん
2010/04/14(水) 23:32:58ID:???>この2つのクエリの実行方法の違いってなんでしょう?
>
># fetchした場合
>query = Model.all()
>res = query.order('date').fetch(100)
これは Model オブジェクトを要素とするリストになる。
>
># iterableの場合
>query = Model.all()
>res = query.order('date')
これはリストではなく google.appengine.ext.db.Query オブジェクト。
この時点ではまだDatastoreからデータをとってきていない。
0316nobodyさん
2010/04/14(水) 23:47:27ID:???ちょうどRailsでいうところの script/console がほしいです。
0317nobodyさん
2010/04/15(木) 00:17:02ID:???0318nobodyさん
2010/04/15(木) 06:36:48ID:???main.py ってどのmain.pyでしょうか。
$ find google_appengine -name 'main.py'
../google_appengine/lib/antlr3/antlr3/main.py
../google_appengine/lib/django/django/contrib/admin/views/main.py
../google_appengine/new_project_template/main.py
どれにも、sys.pathを設定しているような箇所はなさそうです。
0319nobodyさん
2010/04/15(木) 07:04:23ID:???0320nobodyさん
2010/04/15(木) 14:34:15ID:???ローカルのPythonだとOKなんですが、GAE環境だと
ImportError: No module named GeoIP
が出てしまいます。。
0322nobodyさん
2010/04/21(水) 19:05:15ID:???複数の要素をとってきてfor文を使う場合はiterable
ひとつの要素だけをとってきた場合はfetch
それいがいの場合はケースバイケース
難しければぜんぶfetchでいいよ、効率悪いかもしれないけど
0323nobodyさん
2010/04/21(水) 21:23:46ID:???fetch、ひとつというよりは、Queryに合致した要素すべてをforとかで処理したい場合だと思う。
iterableをforで回した場合って、Datastoreへのリクエスト数が増えるのかな?
0324nobodyさん
2010/04/21(水) 22:00:47ID:???0325nobodyさん
2010/04/21(水) 22:10:54ID:???0326nobodyさん
2010/04/22(木) 01:27:40ID:???例えば下記のようなモデルがあって__key__で昇順にソートしたクエリは
dateを昇順にソートしたクエリと同じでしょうか?
class A(db.Model):
date = db.DateTimeProperty(auto_now_add=True)
0328nobodyさん
2010/04/22(木) 19:17:14ID:???max 値を記録する Entity を別に作れと
google の中の人も言っている
0329nobodyさん
2010/04/23(金) 15:51:22ID:???>iterableをforで回した場合って、Datastoreへのリクエスト数が増えるのかな?
増えないと思うけど。
0330nobodyさん
2010/04/23(金) 21:15:43ID:???0331nobodyさん
2010/04/24(土) 00:19:16ID:???このデータを1度に削除するにはどうすればいいですか?
0332nobodyさん
2010/04/24(土) 07:30:50ID:???■ このスレッドは過去ログ倉庫に格納されています