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

Google App Engine

■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん2008/04/10(木) 00:29:02ID:???
Google App Engine
http://code.google.com/appengine/
0482nobodyさん2009/01/02(金) 22:37:06ID:???
アプリの設計によるのではないのかな?
0483nobodyさん2009/01/02(金) 22:38:37ID:???
>>481
gaeはまさにそれを目指してるのでは?
0484nobodyさん2009/01/02(金) 23:05:38ID:???
http://japan.cnet.com/panel/story/0,3800077799,20371340-10000908,00.htm
自動的なスケールは幻想だという意見を見かけたもんで。
0485nobodyさん2009/01/02(金) 23:23:58ID:???
HadoopとRDBを同列に語る時点でわかってない人な悪寒。
0486nobodyさん2009/01/02(金) 23:50:18ID:???
江島君はスケールを心配する必要があるほど人気のあるサービスを作ってからこういうことを言えよ
0487nobodyさん2009/01/03(土) 00:17:32ID:???
やっぱりドジャンゴのカスタムタグ書くの面倒くさすぎるな〜
Tempitaは生pythonも書けるから、PHP的に使えるかしらん
0488nobodyさん2009/01/03(土) 04:20:28ID:???
>>481
無限ループで課金されると怖い
0489nobodyさん2009/01/03(土) 05:00:01ID:???
>>484-486
Goodボタンはあるのに
Badボタンは無いのが残念
あったら速攻押すのに
0490nobodyさん2009/01/03(土) 05:06:24ID:???
>>481 >>488
もしさーgoogleがそのサイトにトラフィックを生み出すようなことしたらどうなる?
自作自演で(゚Д゚)ウマー
0491nobodyさん2009/01/03(土) 09:00:50ID:???
アフィリエイトですねわかります
0492nobodyさん2009/01/03(土) 13:00:19ID:???
Mako使ってる人いる?
まんこみたいで抵抗あるけど生python使えるし速いらしい
0493nobodyさん2009/01/03(土) 13:04:59ID:???
Makoいいよ。
ただ,生Python使ったら使ったで別の意味で大変になるけどね。
テンプレートにロジックを書いてはいけないよ。
0494nobodyさん2009/01/03(土) 13:06:31ID:???
ttp://groups.google.co.jp/group/mako-discuss
ttp://labs.unoh.net/2007/05/python_1.html
ttp://jkl.lomo.jp/archive/2008/09/121156.php
ttp://d.hatena.ne.jp/karaki/20080811/1218433794
ttp://d.hatena.ne.jp/shrkw/20070813/1187011774
0495nobodyさん2009/01/03(土) 14:23:12ID:4Qze7k9y

俺は主な <div> 毎に python で関数を作って、それで
""" %(var1)s ... %(var2)s ... %(var3)s """ % locals()
ってな感じでレンダーしてる。
これが一番メンテがしやすくて、直感的。 下手に template エンジンを使うと逆に
構造が複雑になる。
0496nobodyさん2009/01/03(土) 14:25:40ID:???
筋肉バカってこの世界にもいるんだな。
0497nobodyさん2009/01/03(土) 14:26:46ID:???
>>945
自分だけで作って使うWeb appならそれでいいかもね。
でもそれはオナニーとおなじだね。
0498nobodyさん2009/01/03(土) 14:28:30ID:???
djangoのテンプレートで{% for %}まわして
1000件くらいレコード表示(するなよ)してみたら
あたりまえだけど遅くて10秒制限で引っかかる
同じことをpython側でやって1000件表示すると
一瞬で出てきた
gaeについて言えば常に10秒制限気にしないといけないから
割り切ってテンプレ使わない方が良いのかも知れない
0499nobodyさん2009/01/03(土) 14:47:56ID:???
>>496-497
「主な <div> 毎に」 って言ってんじゃん。
マイナーな div は全部 template ファイルに入れてるよ。
base html も定義してあるし、他のテンプレートエンジンの機能も使いこなしてる。
pyhtonコードが密になる部分は python で関数を作ってやった方がいいってことだよ。
ハイブリッド形式が一番だよ。
0500nobodyさん2009/01/03(土) 15:11:22ID:???
>>498
テンプレートがいったんpython化されずに逐次解釈されてるってこと?
そんな恐ろしい処理を行ってたのか
そんなの使えねー
0501nobodyさん2009/01/03(土) 15:14:20ID:???
???
0502nobodyさん2009/01/03(土) 15:19:58ID:???
mankoは一旦pythonコードにコンパイルしてから実行してるみたいだよ
だから速いんじゃない?
コンパイル済みコードのキャッシュは、
gaeではファイルへの書き込みができないから出来ないけど。
自分でmemcacheへのキャッシュ部分を書けばできるかも。
0503nobodyさん2009/01/03(土) 15:44:14ID:???
Mako程度だったら、他とそんなに違いはないし、
普通に Django 標準のエンジン使うわ。
他も全て乗り換えれるほどのbenefitがないものばかり。
わざわざ冒険しなくてもいいんじゃないか?
0504nobodyさん2009/01/03(土) 16:27:52ID:???
>>499
女とセックスしながらオナニーもするのか
そっちの方がキモいわ
0505nobodyさん2009/01/03(土) 17:09:25ID:???
       ____
     /_ノ ' ヽ_\
   /(≡)   (≡)\
  /::::::⌒(__人__)⌒::::: \   mankoいいお…
  |     |r┬-|     |
  \      `ー'´     /     生関数をヘルパとして使えてPHPみたいだお…
0506nobodyさん2009/01/03(土) 17:17:43ID:???
>>505
>>503
0507nobodyさん2009/01/03(土) 17:22:19ID:???
     / ̄ ̄ ̄\ 
    / ─    ─ \ 
   /  (●)  (●)  \.   速度は問題じゃないよ
   |    (__人__)    | 面倒くさいカスタムタグ書かないでいいのが重要なんだよ
   \    ` ⌒´    /
   /              \
0508nobodyさん2009/01/03(土) 17:26:37ID:???
カスタムタグなんて簡単に書けちゃうしなー。
function decorator の仕組みを知らないから面倒だとか言うんじゃない?
で、お前誰だよw
0509nobodyさん2009/01/04(日) 00:14:22ID:???
テストしてると、
ドキュメントディレクトリに.pycというファイルが勝手に作られてウザいのですが
何とかなりませんか?
0510nobodyさん2009/01/04(日) 01:21:21ID:???
マニュアル見た感じ
環境変数に
PYTHONDONTWRITEBYTECODEに適当な値を入れるとか
コマンドラインに-B付ければ作らない…かもしれない

そもそもプロジェクトのディレクトリにファイルが増えたところで・・・って感じがするが
バイトコンパイルした結果をおいて置くディレクトリを選べると便利な気はするが
0511nobodyさん2009/01/04(日) 15:19:17ID:???
webappってリクエストパラメータのバリデーション周辺、
一切提供してないよね?
自分でゴリゴリ書くしかないのかな
0512nobodyさん2009/01/04(日) 15:23:17ID:???
今までPHPやRubyのフレームワークをいくつか見て来たけど
正直webappほど低機能なフレームワークは見たことないです(><)
0513nobodyさん2009/01/04(日) 15:41:10ID:???
マジレスすると,WSGIについて学ぶといいよ。
0514nobodyさん2009/01/04(日) 15:47:39ID:???
>>511
GAE では django のを使うことになっているらしい
ttp://code.google.com/intl/ja/appengine/articles/djangoforms.html

結局自分でゴリってるけど
0515nobodyさん2009/01/04(日) 15:50:27ID:???
http://groups.google.com/group/turbogears-ja/browse_thread/thread/d663d3c53ad5d819
http://groups.google.co.jp/group/pylons-ja/msg/ce1daf74f7439083
http://www.python.jp/doc/nightly/lib/module-wsgiref.validate.html
0516nobodyさん2009/01/05(月) 00:40:19ID:???
webappってUTF-8以外のサイト作れなくね?
Requestクラス中でパラメータをUTF-8決めうちでunicode化してるから、
SJISだとパラメータがぶっこわれちゃう
0517nobodyさん2009/01/05(月) 00:52:53ID:???
つーか、Requestのコンストラクタの中で
レスポンスヘッダたる'CONTENT_TYPE'を調べてるんだが
これはどういう意味なんだ?
グーグラーのくせにリクエストヘッダとレスポンスヘッダ混同してんじゃね?
それとも俺があほなのか…?
0518nobodyさん2009/01/05(月) 01:26:08ID:???
>>517

PUTだとContent-Typeを含むリクエストがあると思う。
ttp://www.w3.org/Protocols/rfc2616/rfc2616-sec9.html#sec9.6 だと
「The recipient of the entity MUST NOT ignore any Content-* (e.g. Content-Range) headers...」とある。

でも、POSTの方には、このことが書かれていないので、よくわからん。
ttp://www.w3.org/Protocols/rfc2616/rfc2616-sec9.html#sec9.5

0519nobodyさん2009/01/05(月) 01:41:06ID:???
本当でした
俺があほでした・・
0520nobodyさん2009/01/05(月) 01:54:03ID:???
post form multipart mime content-type
0521nobodyさん2009/01/05(月) 04:46:14ID:???
実質utf-8決め打ちにしてるのはどうかと思う
google mobileだってsjisなのに。
しかもわざわざwebobに付け加えたみたいだし
変なおせっかいならないほうが余程マシ。
0522nobodyさん2009/01/05(月) 07:53:05ID:???
accept-charset="utf-8"
0523nobodyさん2009/01/06(火) 17:25:51ID:kNeyVv+2
セッションの機構はmemcache使って自分で書かなきゃ駄目ですか?
0524nobodyさん2009/01/06(火) 17:45:42ID:???
gae oil
0525nobodyさん2009/01/06(火) 19:03:17ID:???
ありがとうございました
0526nobodyさん2009/01/06(火) 20:01:45ID:???
開発中なので、loggingでinfo等出力させています
メッセージはappserverのコンソールに出力されています。
これってgaeのサーバにアップする時も残しておいていいのでしょうか?
0527nobodyさん2009/01/06(火) 20:24:11ID:???
いいですよ
0528nobodyさん2009/01/06(火) 22:17:48ID:???
そうですか
ありがとうございました
0529nobodyさん2009/01/07(水) 18:13:56ID:Htk0QDsx
gaeのサイトを独自ドメインで運用しようとしています
http://code.google.com/appengine/articles/domains.html
ここを見て、appsのアカウント作成、gaeとappsのマッピングは済ませたのですが、
dnsをそのサイトにマップする方法が分かりません
どのように書けばいいのでしょうか?
0530nobodyさん2009/01/07(水) 19:12:01ID:???
cname www ghs.google.com.
だけでした
naked domainはappsで対応してないようでちょっと不便ですね(-_-)
今時www付けるなんて冗長だ・・・
0531nobodyさん2009/01/07(水) 19:32:11ID:???
できますよ
0532nobodyさん2009/01/07(水) 20:44:25ID:Htk0QDsx
http://www.google.com/support/a/bin/answer.py?hl=en&answer=91080
Due to recent changes, Google App Engine no longer supports mapping your app to a naked domain.

と書いてありますが、できるのですか?
DNS付属のURL転送を使わないといけないのでは?
0533nobodyさん2009/01/08(木) 02:22:37ID:???
value domainの転送なしドメインにしてたためnaked domainが解決できませんorz
ドメインの転送なんて使わないだろうと思っていたのですが、
たかだか10円違いでこんなことになるとは・・
0534nobodyさん2009/01/08(木) 05:53:28ID:BLsuqMxo
生キロ
0535nobodyさん2009/01/08(木) 06:48:08ID:???
>>533
10円に泣いた男ww

俺はさっきドメイン登録してきたが、もちろん「転送あり」だぜw
0536nobodyさん2009/01/08(木) 15:24:40ID:???
転送なしというラインアップがあること自体がおかしいだろ
そんな差別化紛らわしいだけで一利なし
value domainは馬鹿
0537nobodyさん2009/01/08(木) 15:29:04ID:???
>>536
UIの低能加減からして value-domain がアホなのは自明だけどな。
0538nobodyさん2009/01/08(木) 16:07:06ID:Bg88FJOl
Google App Engine 教えてくれるセミナとかないの?
0539nobodyさん2009/01/08(木) 16:15:09ID:???
ハッカートンとかいうのしてたみたいよ
0540nobodyさん2009/01/08(木) 16:42:03ID:???
今更VDが馬鹿なのを主張されても…
0541nobodyさん2009/01/08(木) 17:52:26ID:???
いつのまにか、google.co.jpにアクセスしたら
www.google.co.jpにリダイレクトされるようになってるな
google的にはホストがないurlなんて糞ってことか。
0542nobodyさん2009/01/08(木) 17:55:35ID:???
urlにwwwが付いてると90年代初頭みたいだよね(´・ω・`)
0543nobodyさん2009/01/08(木) 18:01:51ID:???
>>542
www2, www3 は90'初頭なかんじだけど、wwwは後半だな。
0544nobodyさん2009/01/09(金) 00:22:51ID:PbQMr6cR
データストアでツリーモデル作りたいのですが、
どういうアプローチをしたらいいですか?
0545nobodyさん2009/01/09(金) 02:45:41ID:???
ReferenceProperty って自分参照出来なかったっけ?
0546nobodyさん2009/01/09(金) 03:49:16ID:???
データストアの500M制限って現実的に考えると小さすぎるよな
有料版ではこの制限も取れるんだろうか?
0547nobodyさん2009/01/09(金) 06:22:01ID:???
>>545
できますね。ただ一回のクエリでツリーを取得するのは難しいかと
同じような疑問がグーグルグループにありました
http://groups.google.co.jp/group/google-appengine/browse_thread/thread/879cfff68bf9ab3f/e2a87aaf4cfe29e6?lnk=gst&q=tree#
これから読んでみます
0548nobodyさん2009/01/10(土) 06:26:14ID:luavPm0j
Kindをまたいで、同じプロパティーを持つエンティティーをselectすることはできますか?
sqlの疑似コードで言うと、
select * from * where user_id=1
みたいな
0549nobodyさん2009/01/10(土) 06:51:27ID:???
共通の親クラスから継承するようにモデル作れば?
0550nobodyさん2009/01/10(土) 06:58:10ID:???
確かにモデリング自体は、共通の親を継承させることでできますが、
横断的なselectの可不可は、また別問題では?
SQLでは、from * なんて書き方は絶対できませんが、
データストアはスキーマレスなので、
できないこともないような気もします・・
0551nobodyさん2009/01/10(土) 09:21:18ID:pVr1yf0c
いくらなんでも select * from * は酷いな。
自分で
for table in tables:
... 'select * from %(table)s' ...
みたいにすれば?
0552nobodyさん2009/01/10(土) 10:58:54ID:???
仮に同じプロパティーを持つエンティティー e が取り出せたとして
query = db.GqlQuery('select * from * where user_id=:1', user_id)
for e in query:
  ここで e に対して何が操作出来るかどうやって区別するんだ
0553nobodyさん2009/01/10(土) 11:00:13ID:???
e の polymorphism を利用するべきじゃないか?
0554nobodyさん2009/01/10(土) 11:01:56ID:???
>>550
それは杞憂です
とりあえずうんこ行ってから続き書きます
0555nobodyさん2009/01/10(土) 11:37:33ID:???
goggle的にはentitygroupを作ってparent-key-valueをall_entitiesにぶっこむのが正解らしい
0556nobodyさん2009/01/10(土) 14:15:13ID:???
>>551
それだとKindが増えた時にコストがどんどん増えるので、
最初から一つのインデックスにできたらと思ったのです
>>553
そうですね
>>554
杞憂の言葉の意味分かってますか?
>>555
ありかとうございます。見てみます。
0557nobodyさん2009/01/10(土) 16:33:33ID:???
ttp://s01.megalodon.jp/2008-0928-1547-13/www.death-note.biz/up/img/25243.html
ttp://s03.megalodon.jp/2008-0928-1610-28/www.death-note.biz/up/img/25253.html
ttp://s02.megalodon.jp/2008-0930-1956-35/yutori.2ch.net/test/read.cgi/news4vip/1222517791/53-305
0558nobodyさん2009/01/11(日) 18:08:07ID:???
http://www.moongift.jp/2008/07/httpmr/
http://www.moongift.jp/2008/06/skynet/
http://techon.nikkeibp.co.jp/article/NEWS/20080627/154025/
http://morii3.cocolog-nifty.com/sanpo/2008/09/080909-1218.html
http://diaspar.jp/node?page=2
http://jp.youtube.com/watch?v=-vD6PUdf3Js
http://code.google.com/p/httpmr/
http://www.virtual-tech.net/blog/2008/07/mapreduce-httpmrgroovyflash.html
http://markmail.org/message/pzyqapveerwgu2ki
0559nobodyさん2009/01/12(月) 17:38:30ID:j7rSo5dO
mail.is_email_validの動作おかしくね?
メールアドレスじゃなくても通るっていうか、
mail.is_email_valid('hoge')でもTrueが返ってくるよ
0560nobodyさん2009/01/12(月) 17:51:48ID:???
is_email_valid "google app engine"
でググっても8件しか見つからない・・
gaeってあんま使われてないんの?
0561nobodyさん2009/01/12(月) 18:56:45ID:???
http://markmail.org/message/ddtnnevv3o6xbqrx
0562nobodyさん2009/01/12(月) 19:05:52ID:???
Email address validation with Django and Google App Engine
Email address validation is a quixotic affair that's sure to end with you
sporting a false sense of achievement and your users in tears.
Many "better mousetrap" regular-expression-based validation system
on the web today are overly strict and reject perfectly valid email addresses.

Beyond regular expressions and other string-based techniques,
your options are to check the DNS server
(but DNS lookups can fail on occasion) and vrfy the SMTP server
(but many SMTP servers turn this off to stop email harvesters).
Ultimately, you can actually send an email to the address
and see if there are any bounces.

Or, we could just not bother.

That, at least, is the approach that the Google App Engine SDK currently takes.

Both the google.appengine.ext.db.EmailPropery()
and the google.appengine.api.mail.is_email_valid() functions
only check that a non-empty string instance is passed.

The problem with that is that you really don't want your good friends
asdfhdsjkj and asdfghdsj to make regular camio appearances in your lovely database.
0563nobodyさん2009/01/12(月) 19:08:21ID:???

It feels to me that the best approach is to accept
that we can't truly validate email addresses
and instead perform some light validation
that doesn't provide false positives while blocking
the most obviously non-validating addresses.
This seems to be the approach taken by the validation regular expression in Django
(email_re in django.core.validators).

Phil Haack has a good article about all this from last year
this titled I Knew How To Validate An Email Address
Until I Read The RFC in which he quotes several
unlikely-looking yet valid email addresses from RFC 3696
(Application Techniques for Checking and Transformation of Names)
including such gems like !def!xyz%abc@example.com.
I ran the whole list through Django's validator and they all passed.

All this to say that I'm using the Django email validator
in my Google App Engine apps and it appears to be working well.
0564nobodyさん2009/01/12(月) 22:51:05ID:???
日本語でおk
まとめると「イマイチ使えない関数」ってことっすか?
0565nobodyさん2009/01/12(月) 23:06:58ID:???
言い訳すんなって感じだな。
確かに、!とか%とか""とかスペースとか<> [] ()あたりを全部駆使すれば
相当に訳のわからないValidなアドレスは作れるが、所詮BNFで記述できる
範囲だから実装するのは簡単だし、もしくはふつーの形式以外は
拒否すりゃいい話。
なんか入ってればOKなんて結論になる理由になってない。
0566nobodyさん2009/01/13(火) 02:17:52ID:???
gae oilってZendFramework参考にしてるんだ
pythonerがphpのプロダクト参考にしてるなんて・・プークスクス
0567nobodyさん2009/01/13(火) 03:12:53ID:???
RoRもだね
0568nobodyさん2009/01/13(火) 03:20:19ID:???
RoRの作者も元PHPERだから、PHP様々だねwクスクスプー
0569nobodyさん2009/01/13(火) 03:38:07ID:???
あーだからあんなに使いにくいのか
0570nobodyさん2009/01/13(火) 12:39:27ID:???
馬鹿には使えないんです
0571nobodyさん2009/01/13(火) 13:06:29ID:???
Perl様々だろ、常識的に考えて
0572nobodyさん2009/01/13(火) 14:27:42ID:???
http://pc11.2ch.net/test/read.cgi/tech/1218155094/
0573nobodyさん2009/01/14(水) 18:43:31ID:BrrRMqDH
Google App Engine で Django 1.x を使いたいんだけど、
サポートはまだですか?
0574nobodyさん2009/01/14(水) 20:57:41ID:???
自分でインストールしたらいいだけじゃないの?
pure pythonなら大抵動くでしょ
0575nobodyさん2009/01/15(木) 02:53:40ID:sFuWbZ6t
エンティティーグループを使わずに(トランザクションなしで)
同じKindのエンティティーを同時に作成した時、
それはエラーなしで実行されるのでしょうか?
自動で割り振られるidがほぼ連番なので、
id生成はアトミックに行われているような気もするし、
それだとマズいので、バッティングしないid生成を使っているような気もします
0576nobodyさん2009/01/15(木) 03:56:11ID:???
idはダブらないよ
0577nobodyさん2009/01/15(木) 04:07:27ID:???
たしかに、今動いてるアプリ見ると、
1から始まる連番と200から始まる連番が混在してますね
ノードレベルでアトミックなのかなぁ
連番の間隔もっと離れてた方がいいような気も・・
0578nobodyさん2009/01/15(木) 06:11:06ID:???
きちんと連番にするためにidじゃなくて
自前のカウンタを持たせた場合
カウンタをインクリメントするときに
アトミックでないと当然同じ番号になるケースが起こる
カウンタに対してはアトミックなアクセスが必要
0579nobodyさん2009/01/15(木) 08:12:32ID:???
expandoはプロパティーを好きに追加できますが、プロパティー数に制限ありますか?
0580nobodyさん2009/01/15(木) 22:55:14ID:???
http://www.itmedia.co.jp/news/articles/0901/15/news095.html
Google、Google VideoのアップロードやJaikuなど6サービスを終了

gaeで構築してgaeがいきなり終わったら目も当てられないね
0581nobodyさん2009/01/16(金) 05:58:22ID:JXr+7Aan
モデルを操作するメソッドは、モデル自身に実装させていいのですか?
たとえば、incrementなどです
■ このスレッドは過去ログ倉庫に格納されています