トップページ⇒php
997コメント290KB

Google App Engine 3アプ目

■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん2010/02/25(木) 19:38:10ID:???
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/

■参考サイト
App Engine ギャラリー
http://appgallery.appspot.com/
ドキュメント
http://code.google.com/appengine/docs/python/overview.html

■推奨フレームワーク
kay 圭
http://code.google.com/p/kay-framework/
日本語ドキュメント
http://kay-docs-jp.shehas.net/index.html
あとKayにバンドルしているWerkzeugのデバッガはけっこう使いやすいですよ。使い方なんかはこのあたりを見てください
http://kay-docs-jp.shehas.net/debugging.html
Google App Engineプログラミング入門 (kay の解説本)
http://www.amazon.co.jp/dp/4048676938
0496nobodyさん2010/11/18(木) 15:28:36ID:???
>>493
>「俺は非難する」じゃなくて「非難されて当然」なんだな。
>自分の意見として物を言えない奴に、技術屋は向いてないと思うよ。

1行目と2行目に何のつながりも感じない。
0497nobodyさん2010/11/18(木) 19:34:23ID:???
>>496
ヒント:主語
0498nobodyさん2010/11/18(木) 20:06:23ID:???
主語がどうした?ww
0499nobodyさん2010/11/18(木) 20:29:55ID:???
db.StringPropertyでユニーク指定はどうやるのでしょうか?
ユニークの項目で見て、違いがあれば更新し、なければ追加するという処理なのですが、毎回SELECTして判定しないといけませんか?
0500nobodyさん2010/11/18(木) 20:38:24ID:???
pythonなら
Google AppEngine 3アプ目
http://hibari.2ch.net/test/read.cgi/php/1267057923/
0501nobodyさん2010/11/18(木) 20:53:18ID:???
>>500
こちらで聞きたいと思います。ありがとうございます
0502nobodyさん2010/11/18(木) 21:36:38ID:???
ひがは、なんかいつも変なタイミングでキレるよな。意味わからん。
0503nobodyさん2010/11/20(土) 07:49:19ID:???
>>502
たとえば?
0504nobodyさん2010/11/20(土) 09:25:31ID:???
いや
心の琴線に触れるとキレるという点ではタイミングは変じゃない
0505nobodyさん2010/11/20(土) 09:32:23ID:???
それ琴線じゃなくてぎゃくりん(なぜか変換できない)では?
0506nobodyさん2010/11/20(土) 15:45:07ID:???
逆鱗とかキレるとか普通の人間じゃないのは確か
0507nobodyさん2010/11/20(土) 21:48:37ID:???
cronだけ使ってたらなんか規約違反とかあるのかな
0508nobodyさん2010/11/22(月) 04:33:32ID:???
appengineで動くリコメンデーションエンジンってないでしょうか?
JAVAでもPythonどちらでもかまわないんですけど。
0509nobodyさん2010/11/22(月) 08:14:38ID:???
> 503
自分で探せや。はぶとかしんとかASIPとか理事とかで。
0510nobodyさん2010/11/22(月) 08:59:38ID:???
規約的には、単一で完結しないアプリケーションは違反じゃなかったっけ?
今はGoogleのお目こぼしも多そうだけど。

>>507
単一で完結する、cronツールとして見えれば、問題ないと思う。
0511nobodyさん2010/11/25(木) 16:40:46ID:???
slim3はレイテンシの低さをうたってたけど、1.4は
インスタンスが常時3個は存在することを保障するらしいから
意味なくなったね
0512nobodyさん2010/11/25(木) 20:19:40ID:???
>>511
インスタンスが増えてもIOが減るわけではないんじゃ?
0513nobodyさん2010/11/25(木) 20:34:22ID:???
slim3嫌いだけど起動のイニシャルコストは重要だと思う。スケールアウトの条件に平均レスポンスタイムが関係するらしいし。
最近得意気に言ってたAjaxで起動速度改善の話はGWTでは元々出来てることを、手書きでやってるだけで、何を今さらと思ったな。
0514nobodyさん2010/11/25(木) 20:36:17ID:???
>>509
探してみた。ひがさんっていろんな人とケンカしてんだな。
はぶさんって、初期のseasarを広めてくれた人じゃないの?なんでそんな恩ある人とケンカしたん?
0515nobodyさん2010/11/25(木) 21:21:24ID:???
>>513
インスタンスが常時3個もあれば、イニシャルコストが事実上ゼロになるという話
それから、GWTはAjaxそのもの
0516nobodyさん2010/11/25(木) 22:10:32ID:???
Twitterやひがやすをのブログやはてなブックマークも合わせて見てたがキレ芸でよく祭りになる有名な人だったんだな

Javaのコミュニティの人なのがもったいない。
こういう人こそ、PythonやRubyのコミュニティに必要だと思う。
あ、RubyにはRailsのDHHがいるか。
0517nobodyさん2010/11/25(木) 22:40:27ID:???
迷惑だ
来ないでくれ
0518nobodyさん2010/11/25(木) 23:22:55ID:???
>>515
リクエストが殺到してインスタンスが増える時は影響あるんじゃねーの?
0519nobodyさん2010/11/27(土) 16:20:55ID:???
makotokuwataさんは発言に関する知識が狭いのが問題で、
higayasuoさんは読まずに見当違いに脊髄反射してるのが問題だっただけ。

Twitterだしどっちも適当に流しときゃいいのに、
だんだんお互いボロ出しまくっただけ、というように見えた。
0520nobodyさん2010/11/27(土) 16:35:47ID:???
どうみてもhigayasuoの方が問題アリアリだろ
0521nobodyさん2010/11/27(土) 16:50:05ID:???
知識が狭いとツイートするだけで問題なのかよ
おかしなやつだな(>>519が)
0522nobodyさん2010/11/27(土) 17:15:34ID:???
流せば終わりな話をいつまでもグダグダ続けるのはどこでも同じだなw
0523nobodyさん2010/11/27(土) 18:28:22ID:???
>>522
そう思う。
0524nobodyさん2010/11/27(土) 19:03:21ID:???
higayasuoは火消しに必死だなw
0525nobodyさん2010/11/27(土) 22:51:09ID:???
ひがやすおはSlim3が普及さえすればOKなんだから、火消しする必要なんて無いだろ。
0526nobodyさん2010/11/28(日) 19:30:13ID:???
知識が狭いからつっこまれる要素が満載だった、て事だろ
0527nobodyさん2010/11/29(月) 03:29:47ID:???
>>526
だよなあ。知識も心も狭いよな、tagomorisは。
0528nobodyさん2010/11/29(月) 07:58:19ID:???
何だこの流れ。
こうやって騒げば騒ぐほど、相対的に損をするのはどっちなのか分からんのかな。。
0529nobodyさん2010/11/29(月) 12:08:40ID:???
>>528
損をさせるためにやってるんでしょ。
支援者のふりをして実は…というのはよくあること。
0530nobodyさん2010/11/29(月) 19:57:19ID:???
どちらにせよ、今回の件ではJava界隈の奴等はキモいことだけはわかった。
0531nobodyさん2010/11/30(火) 01:33:42ID:???
そう思わせることが目的なんじゃないの?
それで得をするのは誰なんだろう。
まあ、騒ぎを起こして楽しむ人とか扇動の練習する人とか
単純な損得の枠の外にいる人のこともあるけど。
0532nobodyさん2010/11/30(火) 01:56:25ID:???
そんな陰謀なんてねーよ
DQNなhigayasuoが因縁付けて煽動しただけだろ
0533nobodyさん2010/11/30(火) 12:15:34ID:???
陰謀と言えば大きな話に感じるけれど
何か利益がある(と期待してる)から人は行動するわけで。
行動の結果が成功か失敗かは別にして。
0534nobodyさん2010/11/30(火) 13:47:40ID:???
>何か利益がある(と期待してる)から人は行動するわけで。

君の推論はここがおかしい
0535nobodyさん2010/11/30(火) 21:47:01ID:???
セッションをクリアするのに
com.google.apphosting.utils.servlet.SessionCleanupServletを使用してるのですが、
頻繁に下記のエラーが出ます。
どうすれば良いか対応方法を教えて頂けないでしょうか。

Uncaught exception from servlet
org.slim3.util.WrapRuntimeException: java.lang.IllegalArgumenException: can't operate on multiple entity groups in a single transaction. found both Element {
05365352010/11/30(火) 21:52:15ID:???
ごめん!もうちょっと自分で調べてみます。
0537nobodyさん2010/11/30(火) 23:55:18ID:???
>>534
説明がないからどういった理由でそのように書き込んだのかわからないけど
とりあえずまぎらわしいと思った点で
利益のところは金銭に限った意味じゃないからメリットと書いた方がよかった。
0538nobodyさん2010/12/01(水) 01:36:24ID:???
>>537
おまいさんのそのレスにはどんなメリットがあるんだい?
05395352010/12/01(水) 18:24:47ID:???
だめだ。やっぱりわからん。
みなさんのところではでませんか?というか疑問なのだが、
SessionCleanupServletはどうやってセッションを消そうとしてんだ?

私の理解としてはセッションといいつつ、データストアに蓄積していると思ったのだが。。
!!?どうやってこのグローバルトランザクションを使用せずにエンティティグループをまたがって処理するんだ。。
というか_ah_sessionは同一のエンティティグループなんですかね。。。
混乱した。どなたか教えてください。
0540nobodyさん2010/12/02(木) 01:45:33ID:???
>>538
誤解が解けたならうれしい。
0541nobody2010/12/03(金) 12:07:52ID:s0WM2/sT
どなたかこのエラーの対策わかる方いらっしゃいませんか。
対策が全くわからなくて困っています。。。

A serious problem was encountered with the process that handled this request,
causing it to exit.
This is likely to cause a new process to be used for the next request to your application.
If you see this message frequently,
you may be throwing exceptions during the initialization of your application.
(Error code 104)
0542nobodyさん2010/12/03(金) 13:02:00ID:???
index.yaml を削除
0543nobodyさん2010/12/03(金) 22:29:08ID:???
GoogleのApp EngineがリアルタイムPushや各種制限値の拡大などで大きくパワーアップ
http://jp.techcrunch.com/archives/20101202google-app-engine-now-streamlines-push-boosts-api-limits-and-more/

個人的には
Always On
が一番うれしいが有料か…
0544nobodyさん2010/12/04(土) 04:08:56ID:???
また詐欺か
0545nobodyさん2010/12/04(土) 10:39:17ID:???
cronから起動したジョブを10分も動かせるとか!
0546nobodyさん2010/12/04(土) 13:05:11ID:???
リアルタイムPushってなんだろ
0547nobodyさん2010/12/11(土) 00:57:04ID:???
あれだろ、今まではComet的なものは実現出来なかった
それが出来るようになったとか
0548nobodyさん2010/12/11(土) 01:03:52ID:???
http://code.google.com/intl/ja/appengine/docs/java/mail/usingjavamail.html
を見てメール送信試してみたのですが、

送信先にメールが届くのですが、
転送設定してないつもりなのですが、なぜか送信元にも転送されてしまいます。

送信元に届くメールのヘッダは下記の通りです。
送信元:送信元アドレス
宛先:送信先アドレス
delivered-to:送信元アドレス

これってそういうものなんでしょうか。
0549nobodyさん2010/12/11(土) 09:01:51ID:???
iie
0550nobodyさん2010/12/11(土) 15:36:14ID:???
だよね。一体なんでだろう。。。
0551nobodyさん2010/12/11(土) 18:38:08ID:???
送信元がadminじゃないからとか
0552nobodyさん2010/12/11(土) 19:17:52ID:???
送信元がadminじゃなくてメール送れるんでしたっけ。。

何か探してたらここが関係してるのかなと思った。
http://code.google.com/p/googleappengine/issues/detail?id=1800

でも皆さんのところでは起きてないと考えると上記は違うか。。
0553nobodyさん2010/12/18(土) 23:31:03ID:q2RrSMpz
cometはHTML5が正式に世に広まるまでのつかの間のhackだよね
0554nobodyさん2010/12/20(月) 07:49:49ID:???
WebSoketsって標準化されたcometぐらいの位置付けかと思ってた。
0555nobodyさん2010/12/20(月) 22:47:29ID:???
ウェブソケットはHTTPじゃない(ハンドシェークに使うだけ)からコメットとは別物
0556nobodyさん2010/12/29(水) 22:08:21ID:???
higayasuoが騒ぎ起こしてなんて今更感ひどい話だろw
0557nobodyさん2010/12/29(水) 22:10:38ID:???
わるいこうしんしてなかた・・・・;;
0558nobodyさん2010/12/31(金) 17:35:19ID:GQBIxTT7
Javaが中心のこっちのスレは開発者に痛い奴がいるからろくな話題がないな。
0559nobodyさん2010/12/31(金) 17:42:15ID:???
higayasuoも
そいつをdisってる香具師も
どっちも遺体
0560 【吉】 【459円】 株価【19】 2011/01/01(土) 00:31:15ID:???
あけおめ
0561nobodyさん2011/01/02(日) 05:29:33ID:???
>>558
higayasuoの件の時は、その相手となったmakotokuwata擁護派みたいなのも湧いてきもさ倍増だった
0562nobodyさん2011/01/02(日) 10:43:55ID:???
年が開けたというのにまだ根に持ってるとは
相当悔しかったようだな
0563nobodyさん2011/01/02(日) 10:48:15ID:???
>>554
普及まで10年はかかりそうだけどな
0564nobodyさん2011/01/05(水) 05:36:13ID:yED64VOg
Python勉強しようかJava勉強しようか非常に悩む

JavaならAndroidとかデスクトップアプリとか別分野にも使えるけど
Pythonだとそうもいかない

でもPythonがWebアプリだけのために勉強できるくらい簡単と言うイメージもある
0565nobodyさん2011/01/05(水) 13:54:15ID:???
>>564
応用範囲の広さならjavaでいいんじゃね?
おれはjavaもpythonも同じくらい知ってて(同じくらい知らないと言ったほうが正しいが)
手軽だからって理由でpython使ってる
0566nobodyさん2011/01/05(水) 22:13:10ID:???
Java勉強したあとならPythonも比較的楽に習得できるだろうしJavaでいいと思う。
Javaで難しく感じたらPythonやってみてもいいんじゃないかな。
0567nobodyさん2011/01/05(水) 23:32:51ID:yED64VOg
やっぱJavaか。
そうする。
ありがと。
0568nobodyさん2011/01/06(木) 05:41:20ID:???
Jinja2が使えるPythonがイイYO!
0569nobodyさん2011/01/06(木) 12:09:13ID:???
テンプレートエンジンはこれが気になる,jQuery1.5には標準で入るとか
http://api.jquery.com/category/plugins/templates/
0570nobodyさん2011/01/06(木) 13:05:34ID:???
>>564
さりげなく嘘を書くな
おまえhigayasuoだろ
0571nobodyさん2011/01/09(日) 16:15:37ID:???
オライリーから本でるみたい
http://www.oreilly.co.jp/books/9784873114750/
0572nobodyさん2011/01/14(金) 11:09:30ID:???
ベストプラクティスを集めたSlim3本が欲しいなぁ
カーソルを使ったページングの実装とか
JSPの代わりに他のテンプレートエンジンを使った効率的な開発とか
0573nobodyさん2011/01/18(火) 16:03:04ID:???
管理画面のGQLでPrimaryKeyでのORDER BYの書き方がわからない
0574nobodyさん2011/01/20(木) 15:20:25ID:???
>>573
order by __key__
0575nobodyさん2011/01/20(木) 17:31:40ID:???
https://appengine.google.com/start/checkappid?app_id=appengine
0576nobodyさん2011/01/21(金) 18:46:07ID:???
http://itpro.nikkeibp.co.jp/article/NEWS/20110121/356336/
さて、競合がチラホラと出てきたようだ。
JavaやRuby on RailsとRDBMS対応
自動スケール
ランニングコストは高め(?)だろうが
KVSであるDatastoreにはない柔軟性が魅力
選択肢が増えるのは良い
0577nobodyさん2011/01/21(金) 20:57:19ID:???
>>576
まだDBスケールしないよ
0578nobodyさん2011/01/30(日) 17:15:52ID:???
slim3使ってるんですが、同時にデータ書き込みがあった場合ってどうなるんでしょうか?
エンティティのロックってのがいまいち理解できない・・。
0579nobodyさん2011/02/01(火) 12:42:46ID:???
>>578
http://sites.google.com/site/slim3documentja/documents/slim3-datastore/transactions#TOC-7
これによると
@Attribute(version = true)
private Long version;
がモデルに定義されていれば例外が発生するみたいだね
0580nobodyさん2011/02/11(金) 02:47:41ID:???
http://www.seattleconsulting.co.jp/gae/gae_blog_03.html
このページどおりに学習を進めているんですが、
List<Head>
というところでエラーが出てしまいます。
<>ってどういう演算子なんでしょうか?
0581nobodyさん2011/02/11(金) 15:42:56ID:???
>>580
リストの中身がHead型だっていうしるしだと思えばいいよ。
<>がないと実際の中身がHeadでも各メソッドはObjectでいちいちキャストしなきゃいけないけど
<>がついてるとそういう手間が省ける。

正しい概念や細かい仕様は総称型とかジェネリクスでググれ。
0582nobodyさん2011/02/12(土) 12:25:22ID:???
Java1.4の頃まではC++のテンプレートは不要って言ってたよねw
0583nobodyさん2011/02/12(土) 15:30:58ID:???
ここ最近のレベル低下具合はどうだ
0584nobodyさん2011/02/12(土) 15:53:10ID:g204No91
Slim3はソフトスキーマ(プロパティ項目が可変)が使えないから、
俺は使わないだろうな。
0585nobodyさん2011/02/17(木) 17:59:17ID:3sMY7SNV
nokogiri挿入開始!
0586nobodyさん2011/02/18(金) 16:50:11ID:TdKQL8WX
nokogiri入んないのな、FFIはいんねーよw
つーことは、hpricotぉー・・・

com.google.apphosting.api.DeadlineExceededException、ぶったおす
0587nobodyさん2011/02/18(金) 17:00:40ID:TdKQL8WX
なぬぅー、hpricotすんなり入りやがったw
標準のパーサさん、今までありがとう!!!
0588nobodyさん2011/02/19(土) 11:49:30ID:???
うぬぬぬぬ・・・
AppEngine::URLFetch::DownloadError (java.io.IOException: Timeout ...
0589nobodyさん2011/02/23(水) 11:31:09.89ID:t6+Y/5np
206 デフォルトの名無しさん [sage] 2011/02/23(水) 00:30:05.97 ID: Be:
    かってに、google に甘い期待をしているんだけど、

    ttp://sourceforge.jp/magazine/11/02/22/104206

    これとかを見ると、google 的には、
    C++ は Web アプリみたいにして、
    Android に持っていくつもりなのかな。

    プログラマのヘマでセキュリティーホール作られるよりは、
    制限あっても、sandbox 内で…って感じで。

    Javaが選ばれた理由も、そんなんじゃなかったっけ?
0590nobodyさん2011/02/25(金) 15:48:13.47ID:4/qlOsDP
あのぅ Pythonスレが落ちちゃってるのですが(´・ω・`)ショボーン
0591nobodyさん2011/02/25(金) 16:41:38.28ID:???
Google AppEngine 3アプ目
http://hibari.2ch.net/test/read.cgi/php/1267057923/
0592nobodyさん2011/02/26(土) 20:53:32.86ID:osaw625P
Auto increment(オートインクリメント)なプロパティってどうやって作ればいいんでしょうか?
なぜオートインクリメントなプロパティが欲しいかというと,エンティティに対応する短いurlを生成させたいからです.
まず初めに見たのは,http://d.hatena.ne.jp/shunsuk/20090617/1245244755ですが
トランザクションを使うためにクラスにある全てのオブジェクトを同じエンティティグループに入れているので
http://satoshi.blogs.com/life/2010/02/app_engine.htmlに書いてあるようにスケールしないのではないかと思います.
次に見たのはhttp://vrypan.net/log/2008/04/27/unique-integer-ids-in-google-datastore/ですが,
これインクリメントはトランザクションになっていますが,その後のカウンターの取得がインクリメントと一緒のトランザクションになっていないので
割り当てたオートインクリメントな数字がダブってしまわないでしょうか?間違っていたら教えてもらえると嬉しいです.
最後に見たのはhttp://d.hatena.ne.jp/ruby-U/20090625/1245933651ですが,
これは番号がダブってしまった場合エンティティを生成せずExceptionを投げるので,
本質的な解決にはなっていないと思います.
どなたかオートインクリメントなプロパティを作る良いプラクティスがあったら教えていただけると嬉しいです.
05935922011/02/26(土) 20:54:13.01ID:???
あー,すみません.Pythonの話です.
0594nobodyさん2011/02/26(土) 23:12:42.69ID:???
http://vrypan.net/log/2008/04/27/unique-integer-ids-in-google-datastore/
これでいい

>その後のカウンターの取得がインクリメントと一緒のトランザクションになっていないので
>割り当てたオートインクリメントな数字がダブってしまわないでしょうか

なんでそう思ったの?
0595nobodyさん2011/02/26(土) 23:23:27.61ID:???
だめじゃん
def inc(self):
  self.__check_sanity__()
  def __inc1__(self):
    obj = db.get(self.__key)
    obj.count += 1
    obj.put()
    return db.count
  return db.run_in_transaction(self.__inc1__)

db.get(self.__key) が None
05965922011/02/27(日) 00:00:50.06ID:???
>>594
ありがとうございます.そう思った訳は,カウンターの数字が今現在0で,AとB,二つの.incが行われるとき,
Aのdb.run_in_transaction(self.__inc1__)(カウンターの数字が1に変わる)
Bのdb.run_in_transaction(self.__inc1__)(カウンターの数字が2に変わる)
Aのself.get()(2を取得する)
Bのself.get()(2を取得する)
となり,同じ数字を取得してしまうことがあると思ったからです.
なにか勘違いしていたら教えていただけると嬉しいです _ _
■ このスレッドは過去ログ倉庫に格納されています