1 :
nobodyさん :
2010/02/25(木) 09:32:03 ID:5mUqVSik
最近の人気エントリ
Google APP Engine Python入門(2010年2月版)
ttp://d.hatena.ne.jp/kagigotonet/20100209/1265726225 > Google APP Engineについては初期のころのまとめはあるのですが、Pythonですとリリースからそろそろ2年近くになり内容も大きく様変わりしています。
> 最速マスターシリーズでもGoogle APP Engineについてのまとめが無く、そろそろアップデートの必要があると思いまとめてみました。
> 基本的にwindows環境中心です。
Google App Engineを使って無料でサイトを立ち上げる方法
http://techblog.ecstudio.jp/tech-tips/freewebsite-with-google-app-engine.html > このGoogle App Engine(以下 GAE)、アプリケーション開発だけでしか使えないと思われがちなのですが、実は設定を工夫すれば通常のHTMLによるサイトを作って運用することも可能です。
> 多少初期設定の手順は複雑ですが、このスペックのサーバーを無料で使用出来ることを考えれば試してみる価値はあるのではないかと思います。
> Webサイトを立ち上げるまでの手順をまとめてみましたので、公開したいと思います。
【特集】Google App Engineで開発するためのフレームワーク × 16 + α
http://coolcoding.com/2010/01/frameworks_for_gae/ > いざGAEで開発をはじめるとしても、素のままで書き始める必要はありません。
> すでに多様なフレームワークが提供されており、そうしたフレームワークを活用することでより素早くGAE上での開発ができるようになります。
> 今回はGAEで開発を行う際にチェックしたいフレームワークを紹介したいと思います。
Google App Engineで開発するスケールするアプリケーション(前編)
http://codezine.jp/article/detail/4591 > 本稿の前編では、主にGoogle App Engineの概要と特徴、そしてWebシステムをスケールするための手法、考え方について説明します。
> 中編・後編では、Google App Engine上で動作する、twitterと連携したアプリケーションを紹介し、Google App Engine上でのアプリケーション構築方法について説明します。
>>7 >Werkzeug
って、名前は聞くんだけど、なにがどうすごいの?
Pythonのやつキモい。 このスレはJava限定で。
kayのせいでpythonキモいという輩が現れたぞ。責任とってくれ。
重複しちゃってることだしPythonとJavaで使い分けるといいと思うんだが テンプレがどっちもPython寄りなんだよな
>>7 >■推奨フレームワーク
>kay 圭
評価星一つのフレームワークが推奨とか、Pythonってどんだけレベル低いんだよ(wwwww
>> 12 具体的に、そのフレームワークのどこがどう悪いの? Javaのフレームワークはましなの?
Python必死だな〜(w GAEはJavaで使ってる人の方が多いだろうから、焦ってるのか(ww
pythonとJava分けた方が良さそうだな
pythonの最大の欠点は空白インデントだと思う IDEとかツールでできることが絶望的に減りそう オール手書きするのが正しいのかもしれないけど
すまんスレチだった
このスレ、検索でひっかからないと思ったら、どうりで。AppとEngineの間にスペースないじゃん(プ Pythonの人はすごいなあ(ww
20 :
nobodyさん :2010/02/25(木) 23:50:53 ID:b3gikMfs
Kayとかハッカソンの奴らはPythonista的にも迷惑な奴らなんです みなさん,本当にごめんなさい...
Google API なんとか の人を敬わないと、労害が発生しますよ!
22 :
nobodyさん :2010/02/26(金) 00:03:30 ID:3WEYi4mT
このスレッドは天才チンパンジー「アイちゃん」が 言語訓練のために立てたものです。 アイと研究員とのやり取りに利用するスレッドなので、 関係者以外は書きこまないで下さい。 京都大学霊長類研究所
818 :デフォルトの名無しさん:2010/02/25(木) 22:06:51 なんかGoogle調子悪いな。トレンドがさっき見たときと今見たときとで違う。。。 GAEにも障害あったらしいし。
>>19 >どうりで(略)スペースないじゃん(プ
ちょwおまw「どおりで」って正しく書いてから指摘汁
道理だから「どうり」で正しい
またJava厨が他人を見下してるのか。 Pythonのインデントはちゃんと利点になっているのに、なにが「最大の欠点」だよ。 自分で使ってもいない言語やフレームワークをディスってんじゃねーよ。
hai
Javaとpythonだったら、完全にpythonの勝ちだな 手軽に開発できるし、簡単に変更できる
相変わらず不毛な流れだなぁ
>>12 > 評価星一つのフレームワークが推奨とか、Pythonってどんだけレベル低いんだよ(wwwww
で、そのフレームワークは何が問題なの?評価一つというソースは何?
勉強し始めなので具体的にお願いします。
Java厨はJavaでのおすすめフレームワークを紹介してください。
>>31 >Java厨はJavaでのおすすめフレームワークを紹介してください。
人にお願いするときに厨呼ばわりはないだろ(w
スペースも入れられない、「どうり」より「どおり」が正しいと思うようなゆとりと 同一視されるのは絶対嫌だと全Pythonistaが嘆いています
真のPythonistaはそのような瑣末な事は気にもとめない
>>31 評価星一つって、アマゾンのことじゃないのかなあ。
ttp://www.amazon.co.jp/dp/4048676938 12 人中、11人の方が、「このレビューが参考になった」と投票しています。
★☆☆☆☆ 誤記が多いです, 2010/1/22
By 又兵衛
動くソースコードが記載されておらず、ところどころ、誤記があるので、そのまま映してしまうと動きません。
せめて、ウェブ上に(動く)ソースコードがあると良いと思います。
PHPなどのデバッグのしやすい言語に慣れた方や初心者の方にはきついと思います。
Pythonの作者がGoogleに勤務していて、Googleの内製アプリがPythonで作られているんだから、GAEのLL言語がPythonになっているのは仕方がない。
他のLLは、JavaVM上で動かすしかない。
GAEは制約が多すぎて、GAE用のアプリを作るのは正直あまり面白くないですね。
日本のIT企業なら、RubyとかPHPとか他の言語もサポートするクラウドを作ってくれるんじゃないかな?
http://headlines.yahoo.co.jp/hl?a=20100225-00000040-san-soci 楽天の三木谷浩史会長兼社長も、一般ユーザーのつぶやきへの反応の早さで有名。サービスへの要望や改善策を見つけて自ら対応することも。
RubyはHerokuがある
正直なところGAEのためにPython始めるほどの余裕なんてないね。 早く他の言語にも対応して欲しい。 あとGAE使う利点って速度とか信頼じゃなくて、 単にBigTableが使えるってだけな気がするんだけど?
>>38 おまえ間違えた本人だろ(w
おまえはどうかわからないけど、Python使ってなくても、普通の人間はそういう間違いを気にするんだよ
日本語ができないやつは、将来暗いぞ
今のうち貯金しておけよ
DBサーバ数十台、Webサーバ数十台と同等の環境がもうできてるわけだ。 Datastoreは無限にスケーラブルでmysqlの分散やDB分割で悩まなくていい。 数十台のサーバとなると故障とかめんどうなわけだが、 電源、ネットワーク、ディスク、NIC、メモリ、ファン、空調・・・、 これらハードウエアを一切気にしなくていい。 OSも考えなくていい、Webサーバも考えなくていい、DNSやホスト名も。 これらを利点と考えられるならJavaでもPythonでも1週間缶詰で勉強して、 もう1週間datastoreを缶詰で勉強しても十分おつりがくるよね。 それだけの規模のサイトとPVをお金に換えられるネタがあればだけど。 さくらの1万円ぐらいのサーバ数台でなんとか済むようなサイトにとっては うま味無いんだよ。
優れてるかはワカランけど、 自分がpython好きなのは、インデント強制。 とあるプロジェクトで丁寧に策定されたコーディング規約があるにも関わらず 誰一人それを守ってなくて、コーダー一人一人が自己主張するコードを書いてた。 当然インデントや改行のタイミング、変数の命名なんてバラバラ。 pythonはその点、強制力とpep8という推奨規約まであるから、チーム開発では 有用な言語の一つだと思うよ。
と、自宅警備員の45が言っております。
>>32 > 人にお願いするときに厨呼ばわりはないだろ(w
よく知りもしないくせにPythonのフレームワークをけなしたのはJava厨のほう。
そんだけえらそうにいうんだから、JavaはGAE用の立派なフレームワークを持ってるんだろ。
それを紹介してみろよ。そしてそれがPython用のそれとくらべて、どこがどう優れているのか言ってみれ。
>>39 それは本の評価であって、フレームワークの評価じゃないよね。
>>51 >そんだけえらそうにいうんだから、JavaはGAE用の立派なフレームワークを持ってるんだろ。
slim3
>>52 日本製のJavaフレームワークが世界標準になる日も近いですね!(・∀・)
>>44 最高にグレートなWebサービスを作りたいです><
今時言語に一つの拘ってるような無能はやってけんだろ
>>51 Java厨には本の評価とフレームワークの評価を区別できないんだろう。Java厨だから仕方ない。
>>52 > そしてそれがPython用のそれとくらべて、どこがどう優れているのか言ってみれ。
先にけなしたのはJava厨のほうだから、ちゃんと根拠を示してほしいよね。
Pythonの人って粘着質でひがみっぽいんですね
最近システムダウンしたのかバジェットの設定できないね。。 Googleさんがんばってください
>>56 それはKayとかハッカソンの人たちだけだから!
ゲハ板にいるようなのが居ついてるなぁ
61 :
nobodyさん :2010/02/27(土) 10:01:58 ID:1pFQ/ECy
Kay使って見たんだけど、Webのチュートリアルが間違っていて先に進めない 誰も使ってないのかな。間違いを指摘されないから直らないのかと思った 書籍は立ち読みしてみたけど、Webにある内容の転記みたいな本だったから買うのやめた その上誤記が多いのなら評価1もうなずける
>>63 略称としては「appengine」のが「GAE」よりよく使われてる気がするけどね。
そういやこのスレ的にAppScaleってどうなん? AppEngineのクローンらしいけど
管理丸投げのメリットをスポイルしてどうすんの
"app engine" の検索結果 約 1,790,000 件 "appengine" の検索結果 約 573,000 件 64はどこの自宅警備員だよWWW
>>67 どこのかは証せないけど、フォーラムやブログなんかで名称挙げるときに、
gaeとかapp engineなんて書いてる人あんまいなくない?
大抵appengineて書いてる気がするけど。
開発イベント(?)に本人しか参加しないフレームワークはないわ。 重要な情報をありがとうな>61
Kay Framework Dev lounge #2寂しすぎて泣けるな…
>>68 "どこのかは証せない"との一致はありません、だとよ
貯金してるか?
おまえきもちわるいなー
73 :
nobodyさん :2010/02/27(土) 13:42:06 ID:BCTlyCJV
ローカルで動かしてるときはちゃんと動いてるのに、 アップロードするとGWTが動いてくれないのはどんな原因がありうる?
貯金しろよ(w > 72
おまえきもちわるいなー
79 :
nobodyさん :2010/02/27(土) 17:29:49 ID:aI9J91Wx
>>62 済みませんです。間違いはどのあたりですか。
すぐ直します!
>>56 そう言うなよ。プログラミング初心者でjava分からないんだよ。
レスがもらえないから自分でレスしたの?よしよし
GAEの入門書なら、
http://www.amazon.co.jp/dp/4899772483/ 新人プログラマのためのGoogle App Engineクラウド・アプリケーション開発講座―JAVA PYTHON対応
がわかりやすい。
PythonもJavaも両方試せるので、作るものにあった方を検討すればOK
小規模でシンプルな機能を作る場合→Pythonでサクッと作る
大規模で複雑な場合→入念に設計してJavaで開発する
Javaの場合は、JVM上で動く他の言語も扱えるから、言語の選択肢は結構増えるかな?Scalaとか面白そう
83 :
nobodyさん :2010/02/28(日) 16:02:18 ID:uLfMlEo6
9 :nobodyさん:2010/02/25(木) 22:10:26 ID:???
Pythonのやつキモい。
このスレはJava限定で。
12 :nobodyさん:2010/02/25(木) 22:55:00 ID:???
>>7 >■推奨フレームワーク
>kay 圭
評価星一つのフレームワークが推奨とか、Pythonってどんだけレベル低いんだよ(wwwww
14 :nobodyさん:2010/02/25(木) 23:16:03 ID:???
Python必死だな〜(w
GAEはJavaで使ってる人の方が多いだろうから、焦ってるのか(ww
16 :nobodyさん:2010/02/25(木) 23:26:50 ID:???
pythonの最大の欠点は空白インデントだと思う
IDEとかツールでできることが絶望的に減りそう
オール手書きするのが正しいのかもしれないけど
19 :nobodyさん:2010/02/25(木) 23:42:39 ID:???
このスレ、検索でひっかからないと思ったら、どうりで。AppとEngineの間にスペースないじゃん(プ
Pythonの人はすごいなあ(ww
84 :
nobodyさん :2010/02/28(日) 18:04:44 ID:uLfMlEo6
20 :nobodyさん:2010/02/25(木) 23:50:53 ID:b3gikMfs
Kayとかハッカソンの奴らはPythonista的にも迷惑な奴らなんです
みなさん,本当にごめんなさい...
21 :nobodyさん:2010/02/26(金) 00:02:40 ID:???
Google API なんとか の人を敬わないと、労害が発生しますよ!
56 :nobodyさん:2010/02/26(金) 18:40:15 ID:???
Pythonの人って粘着質でひがみっぽいんですね
58 :nobodyさん:2010/02/26(金) 20:19:24 ID:???
>>56 それはKayとかハッカソンの人たちだけだから!
69 :nobodyさん:2010/02/27(土) 13:15:37 ID:???
開発イベント(?)に本人しか参加しないフレームワークはないわ。
重要な情報をありがとうな>61
80 :nobodyさん:2010/02/27(土) 18:23:16 ID:???
>>56 そう言うなよ。プログラミング初心者でjava分からないんだよ。
わざわざ自分の書いたレスだけ抽出しなくていいですよ
>>82 この人の本買ったことあるけど、いまいちたんだよな
きちんと本を書く教育を受けていない感じがした
87 :
nobodyさん :2010/02/28(日) 21:16:04 ID:4z5dHcNm
本を書く教育って何だ?
いまいちたん ハァハァ
>> 12
具体的に、そのフレームワークのどこがどう悪いの?
Javaのフレームワークはましなの?
>>19 >どうりで(略)スペースないじゃん(プ
ちょwおまw「どおりで」って正しく書いてから指摘汁
またJava厨が他人を見下してるのか。
Pythonのインデントはちゃんと利点になっているのに、なにが「最大の欠点」だよ。
自分で使ってもいない言語やフレームワークをディスってんじゃねーよ。
>>12 > 評価星一つのフレームワークが推奨とか、Pythonってどんだけレベル低いんだよ(wwwww
で、そのフレームワークは何が問題なの?評価一つというソースは何?
勉強し始めなので具体的にお願いします。
Java厨はJavaでのおすすめフレームワークを紹介してください。
真のPythonistaはそのような瑣末な事は気にもとめない
>>39 又兵衛 はアホ
でFA
>>58 いじめられたのか?
ニヤニヤ
ゲハ板にいるようなのが居ついてるなぁ
>>63 略称としては「appengine」のが「GAE」よりよく使われてる気がするけどね。
>>67 どこのかは証せないけど、フォーラムやブログなんかで名称挙げるときに、
gaeとかapp engineなんて書いてる人あんまいなくない?
大抵appengineて書いてる気がするけど。
おまえきもちわるいなー
おまえきもちわるいなー
>>82 この人の本買ったことあるけど、いまいちたんだよな
きちんと本を書く教育を受けていない感じがした
いまいちたんハァハァ
ここに居る人はみんなgoogle devfest 2010に合格したのかな?
Python GAEで、セッションについて質問です。 ・セッション用のおすすめライブラリはありますか。 ・自分でライブラリを作るとしたら、セッションデータをどこに保存するのが望ましいでしょうか。 ・DataStoreに保存する。(DataStoreへの書き込みはあまり速くないそうなので避けるべき?) ・Memcachedに保存する。(永続性が保証されてない) ・クッキーに保存する。(クライアント側で改ざんされやすい)
あります
>>98 >自分でライブラリを作るとしたら、セッションデータをどこに保存するのが望ましいでしょうか。
求められている仕様に応じた方法を採ればいい。
Kayにセッション機能が組み込まれてなかったか?
こんなこと言うと助長するのは分かっているが、 このスレ気持ち悪い。 それが残念でならない。
おまえきもちわるいなー
104 :
nobodyさん :2010/03/04(木) 13:24:35 ID:YR+Qt7hC
GAE for pythonでアプリケーション(自分専用ですが…)を作って、ディプロイまではしたんですけど、 ログイン状態を保持する方法がどうしてもわかりません。 今の状態では、cookieの有効期間が、「セッションの終わり」になっているのですが、 これを2週間後などに変更する方法がわかりません。 今の状態で使えることは使えるのですが、頻繁に利用しているアプリケーションなので、 パソコンならまだしも、iPhoneでいちいちアカウントとパスワードを入力するのがすごく面倒です。 誰かどんなものでもいいので助言をいただけないでしょうか。
Cookie Expiration: App Engine uses a cookie to keep users logged in to your application. You can control how long each login cookie remains valid before being re-issued by using this parameter. Default(1 Day) 1 Weeks 2 Weeks 管理メニューをみろカスボケ
>>95 合格したに決まってんだろ?自慢でもしたかったのかな?僕ちゃんw
おまえきもちわるいなー
108 :
104 :2010/03/04(木) 19:45:50 ID:gepw/m7g
>>105 管理メニューは、一応1weekにしていますが、Google Accounts APIによるログインを使用していません。
この管理メニューは、Googleアカウントでログインしたときのcookieかと思っていましたが違うのでしょうか?
Googleアカウントを使わずに自前での認証のときのcookieの期限も、ここでの設定なのでしょうか?
なんにもわからなくて申し訳ないです。よろしくお願いします。
>>108 ならそう書けよ、ボケ
お前が実装した認証システムがフルスクラッチなのか、他人のを丸パクリなのか知らんが
その程度の知識じゃ後者なんだろうな
ttp://www.hellohiro.com/cookie.htm これでも読んで少しは社会の役に立つようてめーの糞ブログに
何で詰まったか、どうやって解決したかオナニー記事を書きやがれ
「すみません、pythonなんですぅ」とか言うなよ?
110 :
nobodyさん :2010/03/04(木) 20:58:50 ID:RegPEJzA
なんか軍隊みたいでわろたw
ハートマン軍曹
Datastoreにブラウザで指定したクエリを投げるフロントエンドみたいのって どこかに転がってないでしょうか?デバッグとか分析に使いたいのですが。 (自分で作っても大した手間ではないかもしれないですけど)
>>112 相変わらず馬鹿だらけだな
てめーは管理画面も見れないのか?
我らがGoogle様が用意してくれたDatastore Viewerを
その腐った目で良く見やがれ
自作自演キモイ
こっちが python スレ?
>>113 ローカル開発環境の方にはそういう機能は無いですよね?
>>116 開発環境にも管理画面はある
この種の用意を怠らないのがPythonistaだ
その腐った目でよく見やがれ
うるせーぞパスタ君
きもちわるいなー
最近このスレ勢いでてきたな
もうはるやすみはじまったのかw
CPU Timeってpythonとjavaどっちが有利?
>>119 もしかしてPythonの環境にはあるけどJavaのにはないですか?
GAE使ってエ○サイト運営しています。
きもちわるいなー
Exciteを思い出したよ。 規約的にエロはありなの?
エコサイト?
2chの書き込みのproxy serverとして使えるが 使ってしばらくするとプロキシリストにはいって使えない
junitで、下のようなノリでローカルサーバのdatastore(60MBくらい)にクエリをかけようとすると、 OutOfMemoryErrorでコケてしまうのですが、何か回避策をご存知の方はいないでしょうか。 private final LocalServiceTestHelper helper = new LocalServiceTestHelper( new LocalDataStoreServiceTestConfig(). setNoStorage(false). setBackingStoreLocation("war/WEB-INF/appengine-generated/local_db.bin") ); @Before public void setUp() { helper.setUp(); } @Test public void test() { DatastoreService datastore = DatastoreServiceFactory.getDatastoreService(); Query query = new Query("table"); query.addFilter("name", FilterOperation.EQUAL, "hoge"); PreparedQuery p = datastore.prepare(query); QueryResultIterable<Entity> it = p.asQueryReusltIterable(limit(1000)); for (Entity entity : it) { ... }
┌─┐ │●│ └─┤ _ ∩ ( ゚∀゚)彡 ┌─┬⊂彡 │●│ おっぱい!おっぱい! └─┘ おっぱい!おっぱい!
>>133 分割するほど盛況してないから一緒でいいと思う
言語戦争が始まったら別スレに誘導
> kazunori_279 : 1 get! > higayasuo : 2 get (´ω`) それにしても、これ系のイベントの参加希望者数のインフレはすごいな。
この手の勉強会行く度に思うけど まず会場を手配できるのが凄いお。。。
>>136 セッションはOSSのトップと未踏の天才プログラマーかw
なんかパンピー底辺は参加しづらい
どういう雰囲気なんだろう?
なんか身内同士でわいわいしているのを想像しちゃうんだけど
>>139 はっきり言って、80人もいたら身内もなんもないから大丈夫だお。
会話が不安なら、有名人に取り付いて名刺交換したり話聞いたりするとよろし。
あと、勉強会に来るような連中は人脈を広げるのも目的のひとつだから、 面識がないからって邪険にされることはまずないお。
パンピーや底辺は、大規模な勉強会でひとりぼっち感を募らせるのが関の山だぜ。
>>143 その人数は逆に初心者にはつらくないか。。w
>>142 あるあるある
たぶんメインであろう懇親会になんて怖くて出席出来んよ。
名刺とかこっそり裏で捨てられてそうで・・・
勇気を振り絞って「MLではありがとうございました!」とかいいながら有名どころに絡んでみても、軽くあしらわれたりしてな。 この世界も格差社会だよ。 136と143の参加者数を見ればよく分かる。 著名技術者と底辺の差は開くばかり。
>>145-146 そんなに怖がることないと思うけどなー。
この手の勉強会に何回も顔を出してると、そのうち「○○でもお会いしましたよね!」とかで
知り合いができることも多い。参加してるうちに分かってくるけど、わりと狭い世界だし。
147みたいなのが玉砕するんだぜ。 それか、空気が読めず浮くだけかもな。 酒は飲んでも飲まれるなよ。
>>148 いちおう、各地の勉強会にホイホイ顔出して5年くらいになる雑兵だけど、
いまのところまだ玉砕とかはないなー。
何回も行ってれば嫌でも顔は売れてくるし、できた知り合い経由で違う方面の
勉強会の情報をもらえたりとか、いろいろと出会いは広がってくる。
あと、有名人だからって気後れするこたないよ。議論の一つ吹っかけても丁寧に
答えてくれる人が大半だお。社会人として最低限の礼儀さえ守れば問題ない。
ただし、勉強会には詐欺師、もしくは自覚なしのトラブルメーカーが絶対一人は混じっていると思った方がいい 狭い業界なので変に関わると逃げるに逃げられん
それの何が楽しいの?馬鹿なの?
>>146 143の主催者さんはとっても有名な方だと思ってたんだけどなあ。
参加人数が少ないのは募集人数が少なくて参加しづらいとか、
GAEに興味はあってもKayの開発には興味がないって人が多いからでは?
>>150 そればかりは不特定多数の人間を集めると避けようがないような。。
154 :
nobodyさん :2010/03/09(火) 03:00:35 ID:csp71G8F
kayの中の人はけっこうアホっぽい疑問の投げ方してもちゃんと答えてくれるから、 俺みたいなど素人にはありがたいな。
有名なのに勉強会に10人の参加者が集まらないとか、落ちぶれた演歌歌手みたいで切ないな。
狭い世界だからこそ俺みたいなのなんて初見でクズ技術者だってバレそうでやだ。 2chで身分隠して上から目線であーだこーだいってるのが性にあってるわ。 何度か参加して思ったけど、勉強会とかは若いうちに参加しておく癖つけといた方がいいだろうねえ。
人が集まらない有名人とか 突撃して玉砕するアホとか 空気を読まない迷惑な詐欺師とか そもそも外出しない引きこもりとか そんなやつばっかりなのか(www
そんなもんだよ。 企業製品の宣伝だけで終始するような勉強会もあるしな。
>>155 人をたくさん集めればいいってもんでもないしなぁ
人が少ない上に、駄目な奴ばったりだったら嫌だなぁ
必要以上にネガネガしてる奴がいるけど、なんか嫌な思い出でもあるんだろうか。
書き込み増えたね。GAEが人気になってきたのかねー
>>161 勉強会は合わない人はとことん合わないと思う。
合う人はめっちゃ合うんだけど。
>>161 はい
ただし自分はネガネガじゃなくて事実を書いてるだけのひとですが
いろんな出来事の中からネガティブな「事実」ばかり選んで話してれば、
それはネガネガって呼ぶんじゃないか。
>>163 みたいな言い方ならよく分かるけどねぇ。
フリーでやろうとか独立して会社作ろうとか思ってるなら勉強会とか顔出しまくらんと話にならん。
やっぱ勉強会って底辺ドカタの集まりなんじゃん(プ
JDOで子エンティティ使いたい場合、親のコンストラクタでインスタンス化しないといけないのかよ。 おかげでヌルポ消すのに3時間もかかった。
勉強会ってフリーでやろうとか独立して会社作ろうとか思ってるのばかり呼ぶんか
0x47 0x41 0x21
で、おまえは結局会社作ったり仕事貰えたりしたのか?
一人会社だけど一緒に仕事したりよそから回してもらったりしてるよ
処理しきれない量受注したときとかフリー同士で繋りあると色々助かる
>>169 勉強会の種類によるけどオープン系は結構フリーとかベンチャーの人が多い印象。
MS製品のに一度出たけどこっちはわりと普通(?)の会社から来てる人が多い印象だった。
?xE63F;
Quota DetailsにDatastore CPU Timeというのがありますが、これを積極的に使う方法はあるのでしょうか? 普通のCPU Timeの10倍近く無料で利用できるようなので、うまく処理を振り分けられればCPU timeを節約できますよね。 ただDatastoreのJDOQLってjoinとか!=とかつかえないので、どうしようも無いんですかね。
GAEのサーバ上にテキストファイルをアップロードして、それを読み込んで処理することってできますか?
テンプレートのやってることってそういうもんだろ
むりだよ?
>>177 えっと具体的にはアップロードしたテキストファイルから、適当なデータを読み込んでDBに登録ということがしたいと思っていました
>>178 無理ですか
ありがとうございます
177はやればできる子。 178は駄目な子。
>>176 >GAEのサーバ上にテキストファイルをアップロードして、それを読み込んで処理することってできますか?
テキストファイルのbyteをDatastoreに保存して使う事も出来ます。
Google App Engine をはじめてみよう
ttp://googlejapan.blogspot.com/2010/03/google-app-engine.html > "Google App Engine Java の色々な機能を、実際にコーディングしながら体験
> してみよう" という主旨のもと、Google App Engine for Java のコードラボを
> これまでに3回開催してきました。Java を使った Web アプリケーションの開発
> 経験はあるけれども、App Engine は初めてという方向けで、毎回、即日定員に
> 達してしまう人気コースです。
>
> このコードラボで利用している教材は、GTUG のメンバーとGoogle のソフトウェ
> アエンジニアたちが共同で作り上げたものです。コース設計からドキュメント
> の制作、コース参加者のフィードバックを反映するなど、さまざまな面でGTUG
> メンバーの惜しみない協力をいただきました。
また勉強会詐欺か。
どちらかというとセミナーじゃないの、これ。
無料?
データが飛ぶんだが・・・・ もうどうしろと
書き込んだら正常に終了したかどうか見る必要があるね
スレ自体がクラウドかよ!
なにこれ、ミラーリングされてるの?
a
↑つまんね
>>189 データが飛ぶのは、おまえが「バカ」だからww
196 :
nobodyさん :2010/03/19(金) 20:04:44 ID:a+drQKsn
どっちのスレがマスターでどっちがスレーブなの? 更新処理はどっちのスレにすればおkなんですか?
ここでおk
昨日、app engine使い始めたんだけど、既に挫折しそうだ Javaでslim3 datastore実行時に、ローカル環境だと下記のように出るんだけど、デプロイすると動く 原因分かる人居ないですか? tried to access method com.google.appengine.api.datastore.Entity.<init>(Lcom/google/appengine/api/datastore/Key;)V from class hoge.meta.HogeMeta datastore-indexes.xmlが生成されてないのが、すげーあやしいんだけど。。。 ちなみにキーの生成はこうしてるんだけど、正しい? User author; Key key = Datastore.createKey(Hoge.class, author.getNickname()); というか、ユーザを識別するのってgetNicknameで一意になるの? getUserId使うとやっぱりローカルだと取れないみたいだけど
datastore-indexes.xml手書きで書いたらサーバにインデックスの登録も出来たけど、開発環境じゃやはり動かないな
Java版に明示的にテーブル削除、もしくは、インデックス削除の方法って無いの?
Pythonはこっちのスレでいいですか?
初めて使う人は余計なフレームワーク無しが良いよ。 構造が理解しやすいし、既に用意されているライブラリだけでもかなり楽できるようになってる。 皮をいくら重ねても無意味。分かってから抽象化する分には便利だけどね。
しばらく素で使ってから slim3 が良いよね。
206 :
nobodyさん :2010/03/20(土) 12:37:00 ID:E/cfhbNC
datastore viewer でエンティティの編集画面を表示しようとすると 下記のエラーになります。 UnicodeDecodeError: 'ascii' codec can't decode byte 0xe5 in position 0:..... どなたか原因と解決方法を教えていただけませんでしょうか。 L = [] L.append(unicode("あああ")) L.append(unicode("いいい")) # prop1 is db.StringListProperty obj = Test(prop1=L) obj.put
>UnicodeDecodeError: 'ascii' codec can't decode byte 0xe5 in position 0:..... 文字コード見直せ
208 :
nobodyさん :2010/03/20(土) 13:23:54 ID:E/cfhbNC
>>207 db.StringPropertyに格納した場合は同じエラーになりません。
具体的にどうすれば良いでしょうか・・
ちゃんとutf-8化されてないGoogle側のバグじゃないの?
210 :
ゆかちん :2010/03/20(土) 17:31:14 ID:/aMgByHh
出張先で自分の Appのコードをちょっといじりたいのですが コードダウンロードできないんでしょうか?
>>208 ファイルの先頭でcoding指定してる?
212 :
206 :2010/03/21(日) 09:32:42 ID:iORdRoqY
>>211 はい。
google_appengine\google\appengine\ext\adminフォルダの
__init__.pyの下記の部分を編集することによって解決しました。
ありがとうございました。
>cgi.escape(string_value, True)
cgi.escape(string_value.decode("utf-8"), True)
213 :
nobodyさん :2010/03/21(日) 11:25:04 ID:YCwEc1t+
SQLAlchemy の engine で Bigtable に接続するにはどれを使えば良いのでしょうか?
何をしたい処理か分からん俺は、Memcachedが偉大だと思ふ
216 :
ゆかちん :2010/03/22(月) 09:18:37 ID:QGaENZ/y
出張先で自分の Appのコードをちょっといじりたいのですが コードダウンロードできないんでしょうか?
できません
App Engineではどの言語を使えばいいのか
ttp://d.hatena.ne.jp/higayasuo/20100319/1268984735 > さて肝心な、どの言語を選んだ方がいいかですが、Pythonの出来がいいので、LLな人はPythonを使うのがおすすめです。これまでPHPやRubyを使ってきた方も仕事で使うなら、Pythonを使った方が固いです。
>
> JVM(Java)経由でRuby(JRuby)やPHP(Quercus)を使う手もありますが、Javaのオーバーヘッドに加えてさらにScriptEngineのオーバーヘッドが加わるので速度的には期待できません。
>
> ただ、JRubyは頑張ってチューニングしていて、最新版だとSinatraで8000ms位でspin-upするようなので、なんとか使えるかもしれません。Sinatraでも厳しいくらいなので、AppEngineでRailsを仕事で使うのは、今のところ現実的ではないでしょう。
固い
GAEに標準でないモジュールをimportしている場合 サブディレクトリ等にファイルがあるときは deploy時に自動で一緒に持っていってくれるようですが eggでインストールされているものだと ローカルでは動くのですがdeploy後だとimport鰓になります eggをローカルにインストールするときに-Zでソースにする方法もあるみたいですが ディスク容量が無駄に使われるので抵抗があります eggのままでGAEで動くようにするにはどのようにすれば良いでしょうか?
zip のときは import sys sys.path.append('hoge.1.2.3.zip') import hoge でインポートできるようになってる たぶん sys.path.append('hoge.1.2.3.egg') とかでも一緒じゃないかな やってないからわからん
moinmoinがappengineで使えればなぁ。といつも思う。
お前らお聞きします。 appengineで携帯向けサイト作るにはどうしたらいいんでしょうか? 結構モバイル向けのソーシャルアプリでの運用事例がちらちら見られるのですが、 モバイル対応どうしてるのかと。 railsのjpmobileみたいなのってないんでしょうか? Python+django+uamobile+(αでシコシコ) とかなんでしょうか?Java回りだとそれっぽいの見つけられなかった・・・
pythonでメール受信したいのだがデコード出来ずに困ってる。 コレで動いてたのだが最近エラーが出るようになった。asciiじゃない文字が含まれてるよエラー。 どうすれば良いのか分かる方いませんか? class MailHandler(InboundMailHandler): def receive(self, message): bodies = message.bodies(content_type='text/plain') body_line = "" for body in bodies: h = decode_header(body[1].decode()) body_line = body_line unicode(h[0][0], "iso-2022-jp")
わかりますよ
>>226 みたいなカスは全員自殺するべきだといつも思うわ。
煽っても何も出て来ませんよ
でっていう。 早く自殺しろよ、池沼。
226はやればできる子。 227は駄目な子。
知らないなら黙っててください
いじめ問題の解決策
「世の中からイジメはなくならない」と言う人もいるが、
そういう人はいじめがなぜ起こるのか
http://0dt.org/000236.htmlが分かっていないのです 。 全ての物事には原因がある。
日本にいじめが多いのにも理由があります。 いじめはストレスに対するガス抜きとして行われる。
その原因さえ取り除けばいじめはなくせる。 以下は私が考えた即効性のあるいじめ問題への対処法です。
●生徒に理不尽な強制をしない。
何かをやらせる時は納得のいく理由
http://0dt.org/000256.htmlを説明する 。
●学校の清掃は業者に任せる
生徒に教室の掃除をさせるのは日本などの一部の国だけ。放課後の掃除は生徒にとって一大ストレス要因である。
どうしても生徒に掃除をさせたいなら教師も掃除に参加するべきだ。
●学ラン・セーラー服は廃止
学ランは軍服を模した物であり、窮屈だし黒い色には威圧感を感じる。色彩心理学的に良くない。制服が必要ならブレザーにすれば良い。
●20人学級の実現
狭い教室に40人も詰め込んだら「共食い」のような現象が起こるのも当然。担任教師がケアできるのも20人くらいが限界だ。
一クラスはせいぜい30人以下に減らす必要がある。
●少年法撤廃
学校は教師の隠蔽体質と少年法によって守られている為に無法地帯と化している。
いじめは犯罪である。いじめを行った物には傷害罪を適用して逮捕するべきなのだ。
少年法にょって「子供は何をやっても許される」と言う意識が凶悪な少年犯罪を生み出している。
●スクールポリスを配置する
アメリカのように警察官を学校に配置して学校内でも違法行為を厳しく取り締まらせ、子供達に遵法精神を植えつけよ!
●いじめっ子は出席停止にする
http://ha10.net/debate/1153290164.html 社会的な制裁はいじめへの抑止力として機能するだろう。
●道徳教育の強化
日本人の民度の低さ
http://0dt.org/000160.htmlは正義心が足りないのが原因だ 。
ろくに躾もされていないガキどもには徹底して勧善懲悪を叩き込まなくてはならない。
どうだろう?これらを実践するだけでも虐めを7割くらい減らせられるのではないだろうか?
他にもイジメを撲滅する為の方法は沢山ある。日本でいじめがなくならないのは、学校側の怠慢である!
精神科に行く
↓ 質問にすべて「はい」と答える
↓ うつ病、等質認定
等質になればパワハラ加害者に復習しても無罪みたいだよ
★両親と姉殺害で死刑求刑の被告に無罪判決 水戸地裁土浦支部
・茨城県土浦市で平成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月、部屋で就寝中に同室の隊員の男に木製バットで頭を殴られ死亡した。
男は殺人容疑で逮捕されたが、統合失調症により心神喪失と判断され不起訴処分となった。
国側は「就寝は職務と関係ない」と主張したが、判決は「自衛隊法で松原さんは宿舎居住を義務づけられ、
公務上の災害で死亡したと言える」とし、国に補償を命じた。陸自側の安全配慮義務違反を主張した賠償請求は退けた。【伊藤一郎】
これまで
>>225 の出番無しw
お前、どこでエラーがでるのかぐらい晒せよ
> body_line = body_line unicode(h[0][0], "iso-2022-jp")
なんだこれ?
構文自体間違ってるだろ。
unicode(h[0][0], "iso-2022-jp", 'ignore')
してみろ。
私は小学校の時にバイ菌扱い、みんなは私に触れる事すら気持ち悪い様で、私に触れると「最悪〜」とか言って手を洗う。誰も口をきいてくれないし、目が合うだけでも文句を言われるから、ずっと席に座ったまま机を見て過ごしてました。 中学では内気過ぎて反抗なんてしないし、出来なかったせいか、暴力を受けたり、恥ずかしい事などをされても親や先生に訴える事もありませんでした。 そんな私にも、中二の二学期に転校してきたA君だけは優しくしてくれました。女子トイレの中でのイジメは続きましたが、教室で何かあると、A君は必ず助けてくれました。自分が他の男子に殴られても、私の味方になってくれました。 私にとってA君は神様の様な存在で、A君と二人で居る時だけが現実の世界なんだと思っていました。今私が生きているのもA君のおかげだと思います。 私はA君みたいに誰かを守る事は出来ないと思いますが、味方にはなれると思います。 イジメに対する復讐なんて、余計に惨めで愚かな事ではないでしょうか? 過去を乗り越え、これからの幸せを見つけていく方が、明るく前向きな気持ちになれるのではないかと思います。
こんなスレですら春休みの影響被るんだなぁ。
高卒でフリーター
貴方には必ず天罰が下るでしょう… 自分自身の行いが災いとして舞い戻り後悔されるでしょう… いつか……必ず……
なんか怪しいと思ったら、思った通りの低スペックだったな(w
必死なやつがいるな
If I were you, I would ask him to leave.
このスレの評価:★☆☆☆☆
Google App Engineであらゆる問題を解決しよう!
>>232 Google App Engineでイジメを解決するツールを作ろう!
>>233 Google App Engineで精神病を解決するツールを作ろう!
サイトの設計は
>>244 以降でお願いします。
このスレ気持ち悪い
AttributeError: 'str' object has no attribute 'hoge' このエラーが解決出来ない(涙
246 :
Zeno ◆5nZQbNmQPs :2010/03/28(日) 17:37:25 ID: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
>>246 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
>>247 インテンド飛んでしあまったので、再投稿です。
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
249 :
Zeno ◆5nZQbNmQPs :2010/03/28(日) 18:08:57 ID:M8LbN6As
>>248 まずは memcache 無しで試してみろ。
Queries = db.GqlQuery("SELECT * FROM hoge LIMIT 10")
for p in Queries:
hoge = p.hoge
これで同じエラーがでるのであれば、
ローカルとプロダクションのデータストアの
シンクができていないのだと思われる。
つまり、hoge のカラムを(後から)ローカル側で追加したのは良いが、
そのカラムの定義がリフレクトされていないか、
そもそも値が入っていないかだ。
250 :
Zeno ◆5nZQbNmQPs :2010/03/28(日) 18:19:05 ID:M8LbN6As
>>248 ところで、
>>249 をやる必要はない。
そもそも memcache に入っている key='query'
の値が文字列となって返ってきているのが問題だ。
Queries = memcache.get("query")
を抜いてやれば問題ない。
memcache.set("query", Queries, 10000)
これも問題だ。そもそもピックルできないものは
memcache に入らない仕様だったと思うが。
え?GQLクエリーをmemcache.set出来ないってことなんですか?
252 :
Zeno ◆5nZQbNmQPs :2010/03/28(日) 20:51:28 ID: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 できないかできるかを試してみても良い。
いつまで迷走してるんだ。早くやれ。
>252
GQLをキャッシュするのではなく、素直にHTML出力部をcacheする
ようにしました。Zenoさんいろいろありがとう。
さてさて、お陰様でGoogle App EngineでWebサービスつくってみましたー。
pugyatter m9(^Д^)プギャ---ッ
http://pugyatter.appspot.com/
>>253 見にいったらエラー出たぞ
BadQueryError: Parse Error: Expected no additional symbols at symbol /Name
>>254 ギャァァァァァァー
すぐに直します。
あやうく自分が m9(^Д^)プギャ---ッ されるところだったねw
>>257 本当ですねー。素人プログラマなんで大目に見てください。
さてさて、GQLのDBって「ID/Name」のカラムでソートできるのでしょうか?
このカラムってオートインクリメントになるのだろうか?
糞スレ落ちろ
このスレ気持ち悪い
すみません、同じような経験がある人は教えて下さい。 JRuby on Rails でアプリ作ってます。 これをデプロイしてブラウザで見ようとすると、たいてい一回目は 「The server encountered an error and could not complete your request.」 のエラーが出てアクセスできません。 ただし、リロードかけると見れます。 これは、Railsが大きすぎるからなんですかね? やはるSinatraとかじゃないとダメですか?
>>262 JRuby on Rails? あほすぎwww
Ruby信者必死でウケる
このスレ気持ちいい!!
> Java や Python にくらべると というか、 Java でも辛いんだけどね。 信頼できて実用レベルなのは Python だけだよ。
ひがさんの記事は Slim3 勧める記事だから Java 無理!とは言えない立場だしな。
AppEngineのロードマップが公開
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が使えるようになる予定がいちばん最初に明記されていてよかった。
auだけどSMS受け取れなくてGAEできない。。
271 :
262 :2010/03/31(水) 09:07:22 ID:???
>>266-267 ご返答ありがとうございます。
ひがやすお氏の記事は拝見してましたが、それでもできる術はないかと、
悪戦苦闘しておりました。
>>270 >auだけどSMS受け取れなくてGAEできない。。
くわしく。auでもできるはずだけど?
SMSって、au用語でいうとc-mailのことじゃろか?
274 :
270 :2010/03/31(水) 22:37:47 ID:???
GAEのアカウント作成画面からauのメールアドレス入力 ↓ googleからメール来ない ↓ auのメールにフィルタリングかけてたのが原因っぽい ↓ フィルタリング解除して再度GAEアカウント作成を試みる ↓ エラーメッセージが出る The phone number has been sent too many messages or has already been used to confirm an account. ↓ googleの問い合わせフォームからエラー解除依頼中←今ココ
>auのメールにフィルタリングかけてたのが原因っぽい docomo ユーザーだけど同様に SMS フィルタしてて同じ目に遭った orz
どうやって乗り切ったの?
そのときはすぐ気付いたので SMS フィルタ解除したら リトライで間に合ったみたい
メールチェックしたらもうGoogleから返信が来てたw
やっと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
実は地獄への入り口でした
登録で躓く奴は,次にどんな初歩的なところでコケるんだろうな
あるブログに、Datastoreへのput()は結構な割合で失敗することがあるから 必ず確かめるべし、と書いてあったんですが、成功したかどうかはどうやって 確かめるんでしょうか。
最近のアップデートでそのチェックをApp Engine側がやってくれるようになったはず。
javaのlow level api datastore触ってるんだけど コレクションってどの種類いれても全部arraylistで返ってくるんですか?
>>281 ローカルサーバでの開発がそこそこ枯れているんなら、実際の運用上は、
com.google.appengine.api.datastore.DatastoreTimeoutException
を投げてこないか見張るだけでほぼ問題ないような
最近のアップデートでは自動的に数回までリトライしてくれるようになったんだっけ?
java.lang.StackOverflowErrorとかjava.lang.OutOfMemoryErrorまで
見張りたいんなら、これはもうThrowableを投げてこないか見張るしかないっ。
GAEってエロサイト作ってもおk?
どうぞ
これ携帯メールで認証する意味ってあんの? メアド変更したら取り放題じゃん
何もしないよりゃマシ
291 :
nobodyさん :2010/04/09(金) 22:06:10 ID:VePKi7+I
うっかり本アカでGAE認証したんだけど、
hoge.appspot.comを作ったのは
[email protected] のユーザーだ
みたいな情報って一般人に紐付けされたりする?
そんなばれたらはずかしいもん作るのかwww って俺もそれ気になってたなぁ。 多分大丈夫だとは思う。
壱岐さんキタ━━━━━━(゚∀゚)━━━━━━ !!!!
>>291 初期の頃は6文字以下も作れたし既にgmail名取られた奴でも作れた
なので多分それは無い
そもそもアプリ共有出来るし紐付けって考えは意味無いと思う
気になるなら別のアプリ名で取り直してhogeは放置しておくのが吉
質問ですが、数百万件規模のデータをGAE上で日々集計してレポート形式で表示する、 といった要件にGAEは向いているのでしょうか? 少し調べた範囲だとタスクキュー使ってデータ分割しながら集計すれば やれなくはなさそうですが、厳しいですかね?
厳しいです
>>296 むー、そうですか…ありがとうございました
>>295 重い処理は10−30秒程度が限界で、それ以上はエラーでるよ。
Queueは非同期処理で利用するものじゃない?
>>295 Google さんからは Scalable な書き方として
データ追加時に一緒に逐次集計しろというお達しがある
301 :
nobodyさん :2010/04/11(日) 11:21:59 ID:DpoFQfFh
target = 'A100' query = Test.all() query.filter('code =', target.encode('utf-8')) query[0].item='ABC' query[0].put() とやっても更新される気配がないんですが、 どうすればレコードを更新できますか
query[0].item='ABC' query[0].put() でうまくいってなさそう。 instance = query.fetch(1)[0] か instance = query.fetch(1) instance.item = 'ABC' instance.put() としたらどうでしょう。
303 :
nobodyさん :2010/04/12(月) 16:50:03 ID:+DZBAaxO
# -*- coding: sjis -*- import 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上では値を受け取れないのはなぜですか
registってなに
これ10個アプリ作れるけど 間違って作った奴消してもまた10個作れる? それとPV月500万までって事だけど 一つのアプリに対して500万PV? それとも10個全部あわせて500万PV?
作れる
アプリを登録したら消せないんじゃなかったっけ?
前は消せなかったけど今は消せるようになった 消すお願いをしてから3日くらい掛かるけどw
ヘ⌒ヽフ ( ・ω・) dd / ~つと)
携帯もってない。 誰かヤフオクでAppengineのアカウント売ってくれ。
この2つのクエリの実行方法の違いってなんでしょう? # fetchした場合 query = Model.all() res = query.order('date').fetch(100) # iterableの場合 query = Model.all() res = query.order('date')
>>312 返り行を指定しているかどうかじゃないの?
>>312 >この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からデータをとってきていない。
pythonのインタラクティブシェルからapp engineを使う方法はありますか。 ちょうどRailsでいうところの script/console がほしいです。
main.py の sys.path.append のところを手で実行したら使えますよ
>>317 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を設定しているような箇所はなさそうです。
aho
GAEでGeoIP(
http://www.maxmind.com/ )は使えないんでしょうか?
ローカルのPythonだとOKなんですが、GAE環境だと
ImportError: No module named GeoIP
が出てしまいます。。
>>315 このfetchとiterableってどう使いわけすればいいの????
>>321 複数の要素をとってきてfor文を使う場合はiterable
ひとつの要素だけをとってきた場合はfetch
それいがいの場合はケースバイケース
難しければぜんぶfetchでいいよ、効率悪いかもしれないけど
>>322 fetch、ひとつというよりは、Queryに合致した要素すべてをforとかで処理したい場合だと思う。
iterableをforで回した場合って、Datastoreへのリクエスト数が増えるのかな?
代わりに(Datastoreをサーバ側として)クライアント側の使用メモリは減るわな
rangeとxrangeの違いと似たようなもんかね。
数値idってエンティティがDatastoreに保存された順番で上がっていくんでしょうか? 例えば下記のようなモデルがあって__key__で昇順にソートしたクエリは dateを昇順にソートしたクエリと同じでしょうか? class A(db.Model): date = db.DateTimeProperty(auto_now_add=True)
327 :
326 :2010/04/22(木) 10:17:45 ID:???
>>326 テストしてみましたが、ローカル環境だとキレイに順番でidがふられますが本番環境だとバラバラですね。
id は自分で振る方が良い max 値を記録する Entity を別に作れと google の中の人も言っている
>>323 >iterableをforで回した場合って、Datastoreへのリクエスト数が増えるのかな?
増えないと思うけど。
推測。。
本番環境にcsvで10万行ぐらいアップしたんですが、 このデータを1度に削除するにはどうすればいいですか?
アカウントを削除すれば
>>331 200件程度毎に削除するURLを用意して、1秒後にMeta Refreshでページを
再読み込みするしか方法がないらしいよー
まさかの田代砲
>>262 >>271 spinupタイム(初回起動の時間)がものすごい長くてエラーおこしてるんだよね。
Javaも長いみたいだけど、その上で動くJavaよりもかなり重いJRuby、
さらに重めのフレームワークなRails、この組み合わせはapp engineにすごく悪いみたいよ。
どうしてもRubyやRailsやりたいなら、herokuをオススメしておくよ。
JRuby on AppEngine でいろいろ苦労したあとheroku使うと楽すぎて笑うから。
spinupって次回に備えてメモリに読んでおくことなん?
mod_なんとかでも放置したあとにアクセスするとすごい時間掛かったりするけど
>>333 MovableTypeで再構築長すぎで500エラーでるからとページ自動読み込みしていくアレかとおもた
まあRuby厨は苦労してろってこった
337 :
nobodyさん :2010/04/25(日) 01:44:40 ID:tJ0/rB3Q
entityの元クラス変えちゃったらアプリで削除はできないんだっけ
>>332 アプリケーションの削除が一番楽だけど
依頼してから削除されるまでに3日くらいかかる
それにデータまでちゃんと削除されてるかどうかはあやしい
あとで同じアプリケーション名が使えるとは限らない
などの欠点が多すぎ
そういや今は同じアプリケーション名使えないっぽいな 昔は出来たからそのノリで3日後登録しようとしたけどSorryだった
340 :
nobodyさん :2010/04/29(木) 20:22:19 ID:TZ2OdXi4
携帯AdsenseをGAE/Pyで使う方法はないだろうか
>>340 PHPやらJAVAのコードをPythonに移植したら良いじゃない
342 :
nobodyさん :2010/04/30(金) 15:19:39 ID:i/Dpf9nq
344 :
nobodyさん :2010/04/30(金) 21:18:35 ID:KvqVTUts
どうやんだろ、1万件の名言があったら100件ごとにカーソル保存する別のテーブル用意して2回100までの乱数生成して飛ぶとか? こんなんしかおもいつかん
IDの古い方から100件抽出して一つ選び表示 表示したものを一度削除して、新しく挿入 でいいんじゃない
↑これはないw
348 :
nobodyさん :2010/04/30(金) 23:12:15 ID:KvqVTUts
同じ名言が結構出てくる所を見ると、登録数は1万も無いんじゃね? 1000件以下なら単に乱数で行けるし
削除しない前提ならincrementするIDからランダムに1件抽出できるが・・・
ああそうか登録するのも仮に削除するとしても自分だけだし単にID振りゃいいのか
ハイレベルIT戦士の集うスレですね!
なんか不毛だね
>>352 なんでこれBasic認証使ってるんだ。後数ヶ月で使えなくなるのに。
なんか必死だね。
もともと低レベル、さらに年のせいで凝り固まったオッサンの頭では想像すらできないのかもしれないが Basic認証の方が手軽に試せるという利点はあるかもな
357 :
nobodyさん :2010/05/04(火) 13:30:44 ID:AnOig7cu
だれかとおもったらもっこり系Geekか
おっさんの親父ギャグは切ないね
高卒なら仕方ないよね
2ch互換の掲示板を実現するプログラムってもうできてる? あと登録の際に携帯必須なのはなんでなの?w やっぱアホみたいに複数垢とったやつがいるのかな?
>>360 いままで無料鯖ではできなかったゲーム関連はいいのかね?
管理コンソールは英語のみなのかー
>>362 一日で使える無料資源(CPUや転送量)は上限が定められていて
限界に達するとその日は丸々何も出来なくなるわけだが
そこんとこ理解してそういう質問してるわけ?
人がいてよかったw
>>364 理解してます
まあアクション性の高いゲームじゃなく戦略ゲーム系の対戦なんで
StarCraft Live
iPhoneの2chブラウザのBB2Cって GAEを画像置き場として使ってると思うんですが、 この使い方は規約的にOKなんでしょうか?
369 :
nobodyさん :2010/05/10(月) 20:03:58 ID:eV2tPk+C
なんでだ
画像倉庫の方は自分だけじゃなくAPI公開して広く使えるようにして 2つ目の方のアプリはそれを利用するってスタンスならいいのか
yes
>>373 公開APIの使用者を審査制で決めるって事にしといて
実質使ってるの自分だけってことにすれば完璧じゃね?
376 :
nobodyさん :2010/05/11(火) 09:42:22 ID:yARKXi0Y
別
言い分を聞いてくれるような企業じゃないと思うけどな ヘタすりゃ、たとえちゃんとAPI公開していても 他GAEアプリ一カ所からしか利用されてないという実態のみで判断されかねんよ
そういや一つのAppIDに、複数の独自ドメインって割り当てられるのかな。 ググってみたところ出来るって書いてあったとこは何件か見つけたけど、 アカウントは携帯の関係で持ってないから確認出来なかった。
出来る
金払う気があるなら問題ないはず。 あらかじめ確認しておけば? 普通に返事来るぜ
何時になったらcometが使えるようになるんだろ
>>380 お、やっぱり出来るのか。情報サンクス。
ってことはこれで公開用ドメインと管理用ドメイン分けられるかな。
結局クラウド最強はどこなのさ、先生!
385 :
nobodyさん :2010/05/11(火) 15:36:06 ID:yARKXi0Y
正直なところクラウドとかいっても今までwebサーバーでやってたことをやるだけだよね 違うとすれば動的にパワーやストレージの割り当てをどうにかできるってだけでさ・・ そういればプライベートクラウドとか言葉あるけどあれは クラウドを実現するためのソフトウェアを貸してくれるの?
個人がクラウドやってもバランサ挟んだのと同じになりそうな予感…
Images Python APIで送受信できる1画像の上限サイズが1MBって少なくね? しかもこの上限サイズって課金割り当てで変更できないってなによ。。
GAEは糞でFA
>>385 不特定多数向けじゃないIP制限したりVPN構成にしたりするWebアプリじゃない?
昔からあるASPと何が違うのかわからんけどSaaSって読んだ方が売れそうだしなぁ。
クラウド vs webサーバについては、末端ユーザから見れば変わらないよ ね。開発する立場からすると、PaaS(GAE等) vs 従来型webアプリケーショ ンサーバでの PaaS は、開発言語やDBMS、セッションの応答時間等に制限 があるあるいはパラダイムが違う、salesforce なら部品が揃っていてシ ステムを簡単に作れる、GAE なら超大規模な利用に耐えるように作りやす い。システムを所有、運用する立場からすると、それなりに安定してるの にすごく安い (特にGAE)。 SaaS vs 従来型ASP は、よく分からん。 プライベートクラウドについては、現在あるソリューションは、自社専用の IaaS(EC2等)的なものを構築するものが多いんではないかね。 部門毎などにバラバラになっているハードウェアを一箇所に集中して、さ らにできれば OS、DBMS、ミドルウェア等を統一して標準イメージを作っ ておく。で、利用部門毎などに課金する。すると、全社的にはハードウェ アの無駄が減って、運用のコストを下げられて、ソフトウェアのライセン ス料金が下げられて、デプロイが迅速化されて、運用ノウハウが一本化さ れて、災害対策などもできて、可用性が上がって、データ漏洩の危険も減っ て、という。 よほど大規模にやらないかぎり、構築や運用のコストは、単純にパブリッ ククラウドの利用料金と比べると高くなるらしいけど。 いずれにしてもクラウドは、サーバやネットワーク、ストレージ等の仮想 化と、それらを連携して利用する技術が基盤にあって、プールしてある資 源を必要に応じてすぐに使えるようになっている点が従来の仕組みとは違 う。
前にネットサーフィンしてたら App Engineの画像置き場にはPicasaを使えって書いてあったんだが そんなこと可能なの?技術的・規約的に。 GData APIを使う話だったのかな?
392 :
nobodyさん :2010/05/12(水) 06:36:54 ID:K6/7Iei7
>>391 別にいいんじゃないの?
GAEのアプリが外部URLを含んだhtml出力したらだめってことになりそうだし
妄想なんで何も実現性を確かめてないけど Google SitesにApp Engineと通信するガジェット置いて 使う画像はPicasaから取ってきて、静的コンテンツはSitesに置いたら 滅茶苦茶コストダウンになる気がした。
394 :
nobodyさん :2010/05/12(水) 06:46:14 ID:K6/7Iei7
>>393 なんでもかんでもGAEから送り出す必要はないでしょ
一般的なブログでも画像は別サーバー管理とかのところも多いし
個人的に今作ろうと思ってる対戦ゲームだと通信部分だけGAE使って
GUIまわりはよその場所借りようかと思ってるし
やっぱりGAE自体が負担するのは最低限にして できるだけ他所から呼んで来ようって考えはあるよな 370ってこれで解決じゃね?
396 :
nobodyさん :2010/05/12(水) 07:09:35 ID:K6/7Iei7
どう考えてもGAE + Picasa最強だわ
399 :
nobodyさん :2010/05/12(水) 22:52:00 ID:aTi58OU9
GAEが不安定だという意見がwebで調べてるとあるのですが、 主にどんなことが起きるのでしょうか。 フェイルオーバー時間がかかるのはわかるけど、 そんなにダウンしてる時間が長いのでしょうか。
400 :
nobodyさん :2010/05/13(木) 00:52:52 ID:3eApX5G2
間違いがあったら指摘してあげるから その調べたwebサイトとやらを ここにリストアップし給へ
401 :
nobodyさん :2010/05/13(木) 01:15:58 ID:bVfg/4uw
ちょこっと使ってみたけど GAEは糞でFAだわw
402 :
nobodyさん :2010/05/13(木) 01:29:03 ID:e0UOYYIL
>400 主にtwitterや、401みたいなコメントから。
403 :
nobodyさん :2010/05/13(木) 06:20:30 ID:e/o0gP5D
しばらくアクセスがなかったらAppがダウンしてるから反応が 遅いとかそういうので糞とか言ってるのかな?
わざわざ向こうのスレにも書いてるし単なる煽り
なんか必死だね。
406 :
nobodyさん :2010/05/13(木) 22:40:33 ID:e0UOYYIL
43 デフォルトの名無しさん [] 2010/05/14(金) 00:06:48 ID: Be:
国交省のパソコン不具合2カ月、富士通を指名停止処分 2010年5月13日23時3分
http://www.asahi.com/national/update/0513/TKY201005130519.html 国土交通省は13日、昨年11月に導入した本省職員用のノート型パソコン計
約5千台で起動に時間がかかるなどの不具合が2カ月余り続き、業務に支障が
生じたとして、リース契約を結んでいた富士通(東京)を指名停止1カ月とした。
国交省によると4年に1度のパソコン更新で、同省は4年間のリース契約を
富士通と結んだ。しかし、11月末の導入当初から、メールの送受信ができな
かったり、長時間かかったりする障害が発生。メールの障害は早いうちに解消
されたものの、毎朝起動するのに10〜20分かかる例が相次いで報告された
ため、同省は帰宅時はパソコンを一時休止状態にし、業務への影響を抑えるよう
職員に周知して対応した。富士通側の原因調査に時間がかかり、最終的に不具合
をなくすには今年2月中旬までかかった。
初期設定のミスが原因とみられ、国交省側は「導入前に検証すべきで、障害
発生時の社内の点検態勢も不十分」と指摘。富士通側に違法行為はないものの、
指名停止について定めた内規の「発注者の信頼を損ねる不誠実な行為」にあたる
と判断したという。富士通側は「ご迷惑をおかけした。今後、信頼関係の回復に
努めたい」としている。
44 デフォルトの名無しさん [sage] 2010/05/14(金) 00:31:04 ID: Be:
これは富士通がかわいそう
408 :
nobodyさん :2010/05/14(金) 14:16:21 ID:Cx9j09/x
Javaのサンプルってないのかな? 画像アップローダーとか連続運用はしないにしても web関連初めてとしてはとりあえず動かしてみたいんだが・・
処理を途中で止めたい時ってsys.exit()よりreturnの方がいいですよね?
411 :
nobodyさん :2010/05/14(金) 20:10:21 ID:Rtej3Zmy
GAEでcpedialogを使う予定ですが、 先にApplication OverviewでAPPIDを登録してから、 そのAPPIDをapp.yamlに設定してからappcfg.py updateを行えばよいのでしょうか?
412 :
nobodyさん :2010/05/14(金) 22:58:22 ID:BXuS05nG
413 :
411 :2010/05/14(金) 23:37:55 ID:Rtej3Zmy
412さん ありがとうございます。おかげで管理ページが作成できました。
414 :
nobodyさん :2010/05/15(土) 08:01:28 ID:ZR0gp/fq
>>409 >>9 あたりの流れみてるとJavaぽいがというかわけんなよ
そんなに人いないのに・・・
415 :
nobodyさん :2010/05/15(土) 13:52:16 ID:FsEZijty
GAEの入門サイトをGAEで作るとか粋だな
GAE って何て読んでる? 「ガエ」?
418 :
nobodyさん :2010/05/15(土) 19:28:48 ID:FsEZijty
クラスをシリアライズしてどこかに保存ってのは あれか.netだとxmlシリアライズあるけどあんな感じで データ化してタグでもつけてどこかに保存してあるだけなんだろうな
>>365 SNSアプリや携帯アプリのバックエンドにもけっこう使われてるみたいだから、
あまりリアルタイムじゃなければ大丈夫だと思う。
アクセス多い仕様だと、トラフィック増えたときに無料の範囲内でできるかはわからんが
>>367-373 >>393-398 この板だと思うけど、appengineじゃないけど前にアプロダの検索エンジンアプリ作ってた人がいて
画像をPicasaにキャッシュしたけど、エロ画像が多すぎて半日でアカウントバンされたらしい
用途によっては注意した方がいいかと。
pikasaってエロ画像アップしたらいけなかったのか
アカウント消されると自分のgmailも見れなくなるの? それは致命的だな
422 :
nobodyさん :2010/05/17(月) 12:29:46 ID:yWSybKwr
spamフィルタ代わりにgmail使ってたらアカウント止められたでござるの巻
423 :
nobodyさん :2010/05/18(火) 19:13:08 ID:lIuEd19N
大型のアスキーアートの辞書ってあったっけ? webAPIを搭載してて検索できるようなタイプ
424 :
nobodyさん :2010/05/18(火) 21:53:01 ID:??? BE:18317298-2BP(1220)
なにをどうやってどううまくいかなかったのか どこまでうまくいってるのか それくらい書くのが質問者としての礼儀くらい果たせ
初心者的な質問で申し訳ないけど、windowsでsdkアップデートするときは 一度アンインストールしたほうがいいの?
427 :
nobodyさん :2010/05/20(木) 10:55:17 ID:VD2SkeMN
>>426 特にマニュアル読んだわけじゃないけど
今の所上書きインストールで問題は発生してない
正しい方法かは分からない
428 :
nobodyさん :2010/05/20(木) 17:38:39 ID:IZjX6yUz
429 :
426 :2010/05/20(木) 22:00:30 ID:???
>>430 これって企業の社内インフラ向けってことだよね?
同じアプリケーションを2つ作ったらアウト? 作っても公開しなければセーフ?
よよいのよい
urlfetchはローカルだと機能しないんでテストめんどいからurllib2を使ってるんですが 実は速度的に違いとかあるんでしょうか?
>>434 違いがなかったら車輪の再発明なんかわざわざ搭載しないでしょ。
マニュアルに載ってるよ。
新しいバルクアップロード何が変わったのよ。あの英語のドキュメント何言ってんだがサッパリなんだが。
437 :
nobodyさん :2010/05/30(日) 12:18:41 ID:u2Il9X09
438 :
nobodyさん :2010/05/31(月) 07:29:59 ID:NgpBei4z
440 :
nobodyさん :2010/05/31(月) 23:26:54 ID:fHwPcLyV
blobstore使えなくなってる? 昨日だか一昨日の更新から blobkeyがnullになるんだが…
>>442 サーセン、マイバグでした<(ゝ∀・)ゞメンゴメンゴ
>>439 >キャッシュ可能なデータの総数が1MBってことですか?
総数じゃなくて、キャッシュ可能なデータの最大サイズ。
個数や合計サイズには特に制限はないんじゃないかなあ。
一回当たりのAPI通信サイズ制限でしょ、必然的に1個(最小単位)の最大サイズ制限にもなるけど ストアしたデータの量に関しては1個たりとも保障されないmemcacheの特性そのものが制限
>>445 >ストアしたデータの量に関しては1個たりとも保障されないmemcacheの特性そのものが制限
なるほど。
# 最初、「保障されないmemcache」と読み違えてしまった。
# 「保障されない*という*memcacheの特性」だね。
お?まじで!?俺もずっと1MBのメモリにいろんなキャッシュデータ詰め込む感じだと思ってた。
keyや*_multiはなんだと思ってたんだよw
クエリストリングに日本語というか URLエンコードされたユニコード文字渡しても Requestオブジェクトから受け取れないんだけど俺だけ? ASCIIなら問題無い 正規表現使ったルーティング時には Request.get()できちんと受け取れてる WebObのドキュメント見てもそれっぽいのは無いし Requestオブジェクトやルーティング周りに 手入れするのは嫌だなあ
450 :
449 :2010/06/03(木) 08:57:51 ID:???
ごめん、訂正 > 正規表現使ったルーティング時には > Request.get()できちんと受け取れてる Request.get()じゃなくて getメソッドの引数だった
おまえだけ
>>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エンコードされた文字列受け取ること
想定してないんじゃないかって思ったんだけど
俺だけなのか…
SJISでエンコードされてるようですがこれでいいんですか?
馬鹿は質問の仕方見ただけで馬鹿だと分かるな
なんか2chでVistaが叩かれてたのに便乗してPCの不具合を全部Vistaのせいにする初心者を思い出した
Vistaは確かに糞だし GAEも糞だ
>>452 GAE関係無いよ
文字コード調べような
>URLエンコードされたユニコード文字渡しても >'GAEで開発' → GAE%82%C5%8AJ%94%ADは ワロタ
>>452-461 馬鹿を馬鹿って指さしてただ笑うのは2chらしいけど、
ずらずらレスするより、一行でズバッと間違い指摘してやれよw
465 :
nobodyさん :2010/06/06(日) 21:20:19 ID:Glu5WaTW
keyの頭文字に数字使っちゃいけないってどこかに書いてなかったっけ? 普通につかえるんだけど
いつだったかのアップデートで使えるようになったんじゃなかったかな
そうだったのか 無駄に接頭語ついててきったねえw
数字使えてもソート順は文字列と同じだよね?
469 :
nobodyさん :2010/06/08(火) 03:32:53 ID:6Ox7L+7U
key_nameに日本語使えるんだな 知らなかった
トランザクション中で<class 'google.appengine.runtime.DeadlineExceededError'>がでると数分くらい連続してで続けるんだけど 組み方が悪いのかな
471 :
nobodyさん :2010/06/08(火) 17:47:45 ID:6Ox7L+7U
いかなんじゃね
>>470 俺もmemcashe使ってもでるわ 重い
もうどうしようもなのかな....
>>470 うちでも最近よく出てる。Datastoreが重いらしいからそのせいでは。
ただあまり連続してなくて、散発的な感じ。
もう既に公開しちゃってユーザいるから Googleの罠でも金払えば軽くなるならして欲しい
すぐに脱出した俺は勝ち組
477 :
nobodyさん :2010/06/09(水) 10:55:13 ID:suT+/NkO
Blob Viewerでblobデータ選択して削除しようとすると Server Error A server error has occurred. と3日前ぐらい表示されます。みなさんも同じですか?
478 :
nobodyさん :2010/06/10(木) 14:27:23 ID:498abjeu
え?Blobデータ消せないの俺だけ?
Blob Viewerって課金すると使えるようになるやつ? 使ってる人少ないのかもしれない
480 :
nobodyさん :2010/06/10(木) 20:39:16 ID:498abjeu
>>479 そうそう課金すると使える奴。使ってる人少ないのかな。
海外コミュ見てくるか。。
481 :
nobodyさん :2010/06/10(木) 22:22:45 ID:498abjeu
こんなん来たが・・・失敗時刻の情報も無しにただエンティティリスト渡されてどうやってマージしろと?
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
SQLでは order by age, height のように複数のカラムを指定してソートできますが appengine でもできますか。 Webで探しても、複数のプロパティを指定してソートした例が見つからなかったので もしかしてできないのかと心配しています。
485 :
nobodyさん :2010/06/11(金) 22:51:36 ID:OxcIBMws
巨神兵状態だな・・・ 腐ってやがる
>>483 ドキュメントに複数プロパティでの並べ替えの例がある。
色々制限があるので、詳しくはドキュメントを参照。
488 :
nobodyさん :2010/06/13(日) 08:41:02 ID:5ShZLTyC
ダッシュボードがおかしくなってるのは俺だけ?
490 :
nobodyさん :2010/06/27(日) 19:44:44 ID:LWdgfVKR
なんでもそうだけど、甘く見ると痛い目みるよね
おまえら元気?
元気だけど話題はとくにないな
話題はあるけど話せないネタばかり。
元気に色々作ってるよ Bigtableの不安定さは困るけど Googleのいつもの過渡期の状況だと思うし 最悪データの不整合が起きてもダメージの少ない 断片データばっかりのサービスだから気にしてない 本業が忙しすぎて全然進まないのが悩み
つかこれさ、もの凄く作業効率が悪くね? ローカルとリモートじゃかなり動作が違ってくるし。 あと、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ってこんな糞な会社だったっけ?
ファイル数増えてるならZIPにするべき
pgrw
そこまでローカルとリモートが挙動替わるか? 単体テストしてりゃそこまで気にならんと思うレベル ちなみにうちはDeployには5分以上かかりやがるw
フェッチ処理とかクロンとかいろいろ変わるな データストアの内容も違うし、モデルもとシンクされん 何か入れないと反映されんからな 意味の成さない糞アプリなら気にならんレベルかもしれんが、 それ以上のことをやろうとすると挙動がかなり変わってくる GAEを使った人気アプリがないのはその辺の理由が大いに絡んできているんだろう
俺の中で一番キツいのはテストがし難いってことかな
データストアのNULLの処理の挙動に互換性がないのが一番アホだと思う あとインデックスを後から追加とか削除とかしたときも本番で動作変わるし
ワロタw 結構いるよね、ほのめかしはするけど実は答え知らない自称上級者
スレ検索: 上級者 マッチ0件
WPF と GAE にいったいどんな共通点が・・・
誤爆だろw 俺もあっち見てこっち見てたらデジャブったわw
やっぱりみんな同じ意見なんだね。ちょっと安心。 開発ストレス貯まりまくりでワロタよw いろんな部分で非効率的だよね。 俺はGAE環境での開発が結構進んでたんだけど、 今後の事を考えて、早目にレンタルサーバーに 以降することにしたよ。 アマゾンのクラウドにするかslicehostにするか迷ってるとこ。
タダほどこわいものはない を地で逝ってる
511 :
nobodyさん :2010/07/12(月) 09:07:39 ID:kdNT9nFj
課金しまくってるのにクソだわ 俺もSlicehostあたりに移行しようかなぁ
>>511 SlicehostはGoogle App Engineの代替にはならないだろ。
>>512 んなこと言う必要ないぐらい明白だと思うが。
できることで言えば、
GAE ⊂ Django + MySql
だし、そもそもGAEのデータモデリングはDjangoのそれに修正を加えたものだし、
そこまで移行も時間かからんだろ。
>>513 >そもそもGAEのデータモデリングはDjangoのそれに修正を加えたものだし
この発想はなかったわ(w
>>514 それは "発想" と言うより、Googleが公言している「事実」なんだけどな。
pgr w
GAEのJRubyでRailsが動きました(キリ
>>517 どんな感じですか。想像するに遅くて使いものにはならないだろうと思うけど、
実際に使った人の感想が聞きたい。
プロジェクトが遅れに遅れてクライアントから出入り禁止にされます。
mixiやRTMのように、個人別に表示内容を変えるサービスを構築中です。 [ユーザのメルアド、投稿内容、時間]というエンティティをつくってbigtableに書き込んでいます。 ログインしたメルアドと上記の値を比較して、一致したものを取り出して表示、としていますが、 これってセキュリティ上まずい気もするし、実際動かしてみても重たい…。 こういうことをしたい時はどのような方法を使えばいいのでしょうか?
>>521 google.appengine.api.users.Userを使うべし
メアドなりIDなりをキーにするしかないんじゃないの 重いのは他に原因があるはず
>>522 >>524 DataStoreの制限により1回の問い合わせで最大1000件しか取得できないってのが厄介です。。。
こういう時には一般的にどのような手法を用いるのでしょうか?
>>525 一度に1000件も必要?
もしかしてforとifで1件ずつメールアドレスが一致するか判断してたりする?
ユーザーの識別だけなら、get_current_user()で取得したユーザーオブジェクトの参照をそのままプロパティに入れられるし、
GQLを使うことで、そのユーザーを参照しているエンティティだけの集合を取得できる。
IndexとKeyも解からんやつがGAEやるな アクセスログみたく全て記録しているとかアホな設計なんだろ・・・
>>527 もあまり理解できてなさそうな臭いがするのはなんでだろう…
>>525 524の言うとおりメルアドをキーにして
キーによる取得を行えば1件だけ取り出せるはずだけど
クエリを使う必要自体が無い
>>521 が何をしたいのかよくわからないんだけど、
一人のユーザーに対してエンティティが1つしか存在し得ないのか、
一人のユーザーに対して複数のデータがあるのかで、
最適解が変わってくるよ。
日本語の全文検索できないってほんと? 抜け道ないの?ここまで実装したのに・・・。
533 :
nobodyさん :2010/07/21(水) 02:24:32 ID:SCc+40Nz
いや同一ユーザが1秒以内に投稿した場合は駄目ですね・・ それにしても乱数値をハッシュする文字列に加えればいいだけのような
django1.1で開発しようと思ってるんだけど、settings.csやら何やら必要最低限になってるプロジェクトの雛形ってどこかに無いかしら?
血迷って.csにしてしまった…
537 :
nobodyさん :2010/07/23(金) 08:16:55 ID:3kgiklkk
いつだったか、1000件の制限が撤廃されたという記事を見た記憶があるのですが ドキュメントにはまだ1000件制限が書いてますね あれは夢だったのでしょうか?
>>532 ngramで自前で検索している人は見かけたな。どの程度使い物になるかわからんけど
しかし、SQLじゃないけど、KVSはKVSで共通のインターフェイスで
動けば既存のライブラリとかつかえいやすいのにねえ・・・
539 :
nobodyさん :2010/07/23(金) 22:49:26 ID:o0x58EQA
相変わらず<class 'google.appengine.runtime.DeadlineExceededError'>が起きるなぁ うちだけ?
普段軽いのがタイムアウトするって事?
541 :
nobodyさん :2010/07/24(土) 01:34:29 ID:wdEoiH3G
うん トランザクションで起きる リトライ回数2なのに
>>537 >offset must be less than 1,000. (limit does not have a maximum.)
fetch()のlimitに上限ないとはっきり書いてあるけど?
count()は相変わらず1000件が上限。
日本語のドキュメントは古いみたいですね・・
古いのは仕方ないとして 古いということを分かりやすくして欲しい
blobstoreとかまったく載ってないもんな
546 :
nobodyさん :2010/07/29(木) 13:37:51 ID:Gv9aTwPG
mailserveも載ってないな
googleは翻訳者を雇ったほうがいいな あと、ヘルプというか仕様のページがfirefoxで印刷しようとすると上手くいかないのは うちだけなのだろうか
>>547 うちも
Googleのいつもからして
この手のドキュメントに翻訳者雇って
ってのは無い気がする
素直に英文読むべきなんだろね
翻訳が古い場合はその旨表記するようにしてほしい。 今のままでは古い情報を信じる人が多数。 GAEのドキュメントってどっかでバージョン管理されてないのかな。 いやされてるだろうけど、リポジトリを公開してほしい。翻訳も含めて。
翻訳だけじゃなくてダウンロードのリンクも古い罠
訳の品質もイマイチだよね。 プログラミング系の翻訳したことがない人がやったのではないかと思う。 >The datastore reserves all property names that begin and end with two underscores (__*__). の訳が >データストアは 2 つのアンダースコアで始まり、終わる(__*__)すべてのプロパティ名を保存します。 で、最初は意味が分からなかった。 reserveをことごとく保存って訳してるから、原文のsaveとreserveのどっちのことなのか混乱する。
俺いつも英語でドキュメント読んでるよ
553 :
nobodyさん :2010/07/31(土) 14:19:53 ID:rYzrW/xe
key_nameの型や性質を明示的に定義することはできないのでしょうか? たとえばユーザ名をkey_nameにしたい時、 userというプロパティを作ってそれをkeyとして使う、というような書き方ができれば、 後から見た時に分かりやすいと思うのですが、 model定義の中にkey_nameの形式に関する情報がないので、 後から見た時に、どんな情報をkey_nameとして使っていたのか分からなくなりそうです。
554 :
nobodyさん :2010/07/31(土) 14:29:39 ID:lZZO3IGo
# key = username って書くと明示的に宣言できるらしいぞ
そういえば、日本語ドキュメントではkey_nameは数字から始めてはいけないってあるけど 英語版ではその記述が無くなってるね。
>>554 RDBMSみたいにスキーマで制約を課せたらいいのですが
それしかないですね・・
あ、modelにそれ用のメソッド実装したりしたらいいのか・・
>>555 ホント勘弁してほしいよな
わざわざ"a"+num とかやってたのに
Googleなのになんで?って思うよな GAEって結構戦略的なプロダクトじゃないのかと
全然
GAEは夢
GAEは水泡
GAEは青雲
564 :
nobodyさん :2010/08/05(木) 22:55:51 ID:vDU1rk1G
かなり昔にgaeにデプロイしたアプリが 何なのか分からない。 上げたソースって見れなかったっけ?
おとせないよねw
566 :
nobodyさん :2010/08/07(土) 14:15:48 ID:Eg7K0i+u
開発環境では問題ないけど本番だとエラーがでます こういう厄介なエラーのデバッグどうやりますか? 言語はpythonです
ソース保存時の文字コード間違えてるとか # -*- coding: hogehoge -*- 書くの忘れてるとか
GAEならBigTableに入ってるデータのインデックスを持ってるとき あとからカラム追加してそこがNULL値になってると 開発と本番とでエラー動作が変わったりするな
>>570 まず、そのサイト見るのやめた方がいいと思う。
BASIC認証使ったコードを6月28日に公開する時点で問題外。
>>571 うーん…そうですか しかし、検索ワードを加工して発言するbotを
作りたいので雛形としてはかなり使いやすいのです。
とりあえずこれをOauthに直す方向で行ってみたいと思います。
>>572 なるほど、元々Oauthが使えるんですね。
やってみます。
ところで、上のコードでusertimelineの取得にだけtwitter.Apiを
使ってあるのは何故なんでしょうか。ここの書き換え方がよく分からないのですが、
当てずっぽうで
status = api.GetUserTimeline()
↓
status = AppEngineTwitter.user_timeline()
もしくは
status = AppEngineTwitter.Get('
http://twitter.com/statuses/user_timeline ')
あたりをやってみたんですが、違ったようです。どうやって書けばよいか、
また、後学のためにソースのどのあたりに注目すればよいか教えて頂けると幸いです。
よろしくお願いします。
Google appengine の開発用ローカルサーバを IronPythonで動かした人います?
575 :
nobodyさん :2010/08/14(土) 20:08:45 ID:gkT0wk0x
twitterのタイムラインをfetchしたら1MB制限で引っかかりました。 1MBに収まるようにツイートを指定するにはどんな計算をしたらいいですか? 要素が複雑なので難しいです
ありがとうございました
何が?
なんたらguruの人かわいそう
gu-guruの人?
ライフスペースのグルじゃね?
お腹がguruguru
かわいそう過ぎる。。。
ありがとうございました
どう鼬増して
不細工過ぎてかわいそう過ぎる...
何故スレ違いのレスが増えたのだぜ?
588 :
nobodyさん :2010/08/22(日) 00:58:33 ID:6DumZjKa
Channel APIの近況を英語詳しい人教えてくれ
Slim3がRails 3相当のフレームワークになれば問題ないよね
Total Stored Dataを初期化したいのですが、何か方法ありますか?
Oilで結構逝けてる
オイル懐かしす 単独で使える便利クラスとか揃ってんの?
594 :
nobodyさん :2010/09/05(日) 09:58:15 ID:asSQCvs+
age
596 :
nobodyさん :2010/09/13(月) 04:36:35 ID:rjSsaPIO
GAE以外でも、googleのアカウントでログインして権限の管理をしたいのですが、どうやればいいですか?
イミフ
598 :
nobodyさん :2010/09/13(月) 04:47:16 ID:rjSsaPIO
たとえば、サイトを自分で用意して、 Googleアカウントでのログインを要求し、 認証されれば、 そのサイトを編集できるようにしたいのです。
フィッシングですねわかります
OpenIDじゃね
釣れた釣れた
しかしこのスレにはたまにあっちのスレとセルフで同期する伝統があるからなぁ
>>606 誰かがコピーしただけじゃん
そんな意味ないマルチするかよw
pythonスレ周辺には人の書き込みを他のスレにコピーする妖怪コピペンがいる 俺がpythonくだスレでした質問もコピーにされたし
糖尿病スレにも居るな 他の人が書いた質問をコピヘしまくる基地外が
GAEって具体的に何が出来るんですか? 3行でどなたか説明してください
webアプリっていうのはレンタルサーバにCGIとして動かすのとは違うのですか?
GAEはCGIじゃなくてWSGI
使う側としては一緒 作る側としてはだいぶ違う
CGIよりも作るのは楽
それは微妙じゃないか むしろ制約が多くてコーディング自体は面倒くさい
それはWSGIの問題ではなくて GAEの問題だろ
WSGIの方がCGIよりも遥かに高速。
ここはGAEのスレじゃないのか?
GAE/PyがWSGIベースだからスレ違いではないと思うけどね。 ただここってGAE/Jのスレじゃなかったっけ
ガエピーのスレでしょ ガエジェイは向こうじゃん
ややこしいのう
625 :
nobodyさん :2010/09/19(日) 23:32:02 ID:ESNx8K3e
デバッガ使って動的解析したいと思い CentOS上でGAEのテストサーバ動かしてWinpdbでアタッチしてみてるんだけど pickle.pyのdumps関数内の Pickler(file, protocol).dump(obj) でブロックされたままになる。 でもHTTPのリクエストは受け付けていて ふつーにレスポンスは返す状態。 一体どうなってるのか理解できてない。 どなたかデバッガ使ってる人いますか?
626 :
625 :2010/09/19(日) 23:58:31 ID:???
Kay frameworkです。
627 :
625 :2010/09/20(月) 00:25:02 ID:???
ここはJava専用だっけ
ガエピーのスレだと言ったでしょう!
>>610 お前、糖尿病スレに出入りしてるのか('A`)
糖尿病総合スレは荒らしが多いから余り見てないけどね 糖質制限食のスレは巡回してる
GDD2010JPいく?
お呼ばれされているけれど金欠のため行かない
呼ばれてないのに行ったらどうなるのっと
>>635 学生の身分だから明日も授業があるというのも理由なんだ
GDD1日行こうと思って、スケジューラーにもいれといたのに、 3つもうちあわせ入れられた。行けないかな。
なんとか2時間ほど空きを見つけて行ってきたが、2時間で充分だった。
>>638 決裁権者なので、そうもいかなかったのだ。
>>639 決裁権者なら打ち合わせを動かせばいいじゃないか
これを使ってMMOレベルのゲームサーバって作れる? 利用者の数に応じて帯域を確保できるなら採算とれなくもなさそうな。
無理
そもそもMMOがどんな仕組みか少しは理解してるのかね 理解してるのならこれを使おうとは思わないだろうし 無理やり実装しても請求される額考えたら採算合うとは思えないけどな
memchachedのインクリメントって使う時ある?というかどういう時使うの? 他の操作してる時に消えてるかもしれないmemchachedのデータでインクリメントしても・・・ って気がするんだけど。
その例increase_shards関数putのみのトランザクションだけど getからトランザクション内でやんなきゃだめじゃね?
言い方が悪かったかも たしかに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)
その例だと config = GeneralCounterShardConfig.get_or_insert(name, name=name) もトランザクション内にいれないとダメっぽいね まあシャード数の変更でコリジョンするなんて管理者が複数いてよっぽどタイミングが悪いかぎり 起こらないだろうからほとんどの場合問題ないけど
getのみputのみdeleteのみのトランザクションってどうなんの? 絶対成功するん?
ああ、まったくそんなことなかったや、成功するのはgetだけか
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に生の文字列が入らなかった気するんですが。。
>>653 >POSTされたデータのURLエンコード処理って今までは自分で行う必要があった気がするんですが
えーそんなことないと思うけど。
いくらなんでもそんなださい仕様だったら、だれもGAE使ってないと思う。
もし気になるなら古いSDKダウンロードして試してみたらどうでしょう。
元々誰も使っていなかったというオチ
GETのQueryStringと勘違いしてるとかじゃなくて?
657 :
653 :2010/10/19(火) 06:07:41 ID:???
すみません。。自分の勘違いでした。。。。
画像だけ別サイトに保管しても、利用規約上問題あるでしょうか? 画像はさすがにここには置けないよね
>>658 問題あるわけないじゃん
でもなんでここに置けないの?
>>660 転送量で金がかかるから
画像系のブログやってるけど、アクセス4000ぐらいでも
転送量が1日10G超えたこともある
iPhoneの2chクライアントアプリは確か画像のキャッシュにAppEngineつかってたよな
たまによく極稀に2chに張られるのを見かける
あれ、転送量大丈夫なのかな
>>661 ついでにPicasaも
著作権的に怪しいものは、Picasaとかには置けないよ アクセス増えると中身をチェックされて、 最悪の場合、アカウントごと消される
>>663 それ組み込みのうpろだでiPhone板ではデフォ
たまーに503になるけど、流れるのも早いしほとんどスクリーンキャプチャだから
意外とバランス取れてるのかもしれない
beebee2seeとかいうやつか アレも結構、Loactionで飛ばしてて流浪の民っぽいのだが
667 :
nobodyさん :2010/11/01(月) 06:38:30 ID:eyzOe3gX
┌─┐ │●│ └─┤ _ ∩ ( ゚∀゚)彡 ┌─┬⊂彡 │●│ おっぱい!おっぱい! └─┘ おっぱい!おっぱい!
db.StringPropertyでユニーク指定はどうやるのでしょうか? ユニークの項目で見て、違いがあれば更新し、なければ追加するという処理なのですが、毎回SELECTして判定しないといけませんか?
>>668 >毎回SELECTして判定しないといけませんか?
うん。
普通だったらそういうユニークなキーは
StringPropertyではなくkey_nameに指定すると思う。
それだったら、エンティティの存在チェックは、
get_by_key_nameするだけだから早いよ。
pythonで開発をしていますが、あるホームページの要素を記録する必要があって調べたところ 1ページに200要素あってそれが8ページあり、それぞれ毎日更新されています。 ただし、8ページの要素名(フィールド)は互いにかなり重複しています。 このような場合は基底クラスを宣言してその派生クラスをdbクラスの多重継承とすべきでしょうか? 一気に全ページ対応の巨大なクラスを宣言すべきでしょうか? 検索クエリは全ページの横断クエリもありえるので細かく分ける必要はない気がします・・・・ 開発経験が少ないので勘どころがわかりません よろしかったらアドバイスお願いします
一気に全ページ対応の巨大なクラスを宣言すべき
ありがとう!
高卒でもグーグルに入れるんだね
>>666 本当だ。外部のサーバーに飛ばしてるんだな。
Janeで見たらリダイレクトされていてもそのまま見られるから全然気付かなかったわ。
urllib2でRSSを定期的に取得して記録しているのですが、 ブラウザでRSSを開くと前と更新されているのに GAEのlogでは過去の内容のままで記録されています。 一応UserAgentやリファラーをつけて見ましたが変わりませんでした。 原因としてどの様なことが考えられますか?
>>676 とりあえずURLにダミーのランダムパラメータつけといて
原因は後で考える。
cookie
キャッシュ
680 :
質問 :2010/12/12(日) 17:47:20 ID:89yAKgNb
GAEではURLのパスに日本語(utf-8)が入ったらダメなんですか?
もし可能なら日本語を入れるにはどうすればいいですか?
Google App Engine Lancherでgaewiki(
http://code.google.com/p/gaewiki/ )のサーバー起動して、
http://localhost:8088/日本語 としてFirefoxでアクセスすると↓のエラーメッセージが出ます
Traceback (most recent call last):
File "C:\Program Files (x86)\Google\google_appengine\google\appengine\tools\dev_appserver.py", line 3245, in _HandleRequest
self._Dispatch(dispatcher, self.rfile, outfile, env_dict)
File "C:\Program Files (x86)\Google\google_appengine\google\appengine\tools\dev_appserver.py", line 3186, in _Dispatch
base_env_dict=env_dict)
File "C:\Program Files (x86)\Google\google_appengine\google\appengine\tools\dev_appserver.py", line 531, in Dispatch
base_env_dict=base_env_dict)
File "C:\Program Files (x86)\Google\google_appengine\google\appengine\tools\dev_appserver.py", line 2410, in Dispatch
self._module_dict)
File "C:\Program Files (x86)\Google\google_appengine\google\appengine\tools\dev_appserver.py", line 2299, in ExecuteCGI
os.environ.update(env)
File "D:\app\dev\Python25\lib\os.py", line 462, in update
self[k] = dict[k]
File "D:\app\dev\Python25\lib\os.py", line 430, in __setitem__
putenv(key, item)
OSError: [Errno 0] Error
>>680 gaewikiを動かして日本語utf8なパスを試したところ、linux+python2.5の環境では問題なかったです。
日本語URLはbase64でエンコードされているので特に問題ないとは思うけど、
Windows+python or GAEの問題なのかなぁ。。
682 :
680 :2010/12/13(月) 00:31:25 ID:2tCEPe3y
>>681 試していただいてありがとうございます。
質問した後に試してみたことがあります。
以下のようにアクセスするとログはこのように表示されます。
http://localhost:8088/日本語 ERROR 2010-12-12 15:25:01,736 dev_appserver.py:3285] Exception encountered handling request
Traceback (most recent call last):
File "C:\Program Files (x86)\Google\google_appengine\google\appengine\tools\dev_appserver.py", line 3245, in _HandleRequest
self._Dispatch(dispatcher, self.rfile, outfile, env_dict)
File "C:\Program Files (x86)\Google\google_appengine\google\appengine\tools\dev_appserver.py", line 3186, in _Dispatch
base_env_dict=env_dict)
File "C:\Program Files (x86)\Google\google_appengine\google\appengine\tools\dev_appserver.py", line 531, in Dispatch
base_env_dict=base_env_dict)
File "C:\Program Files (x86)\Google\google_appengine\google\appengine\tools\dev_appserver.py", line 2410, in Dispatch
self._module_dict)
File "C:\Program Files (x86)\Google\google_appengine\google\appengine\tools\dev_appserver.py", line 2299, in ExecuteCGI
os.environ.update(env)
File "D:\app\dev\Python25\lib\os.py", line 462, in update
self[k] = dict[k]
File "D:\app\dev\Python25\lib\os.py", line 430, in __setitem__
putenv(key, item)
OSError: [Errno 0] Error
INFO 2010-12-12 15:25:01,762 dev_appserver.py:3317] "GET /%E6%97%A5%E6%9C%AC%E8%AA%9E HTTP/1.1" 500 -
一方で以下のようにアクセスすると200を返して正常に処理されます。
http://localhost:8088/日本 INFO 2010-12-12 15:25:08,234 dev_appserver.py:3317] "GET /%E6%97%A5%E6%9C%AC HTTP/1.1" 200 -
この違いは何なのでしょうか・・・
683 :
680 :2010/12/13(月) 01:49:58 ID:2tCEPe3y
>>681 とりあえずUbuntu Linuxをインストールして試してみたら上記の問題は発生しませんでした。
GAE上にアップロードして実行しても問題は発生しませんでした。
理由は分かりませんがWindows環境では問題が出るようですね・・・
静的ファイルは場所があるなら、全て外部に置いたほうがいいね 転送や保存に金がかかるという理由以外にも、アップロードとかのしやすさを考えるとね
>>680 WindowsだとPython2.5.5以外では問題が多発したような。
もし2.6や2.7を使ってたら、2.5をインストールしなおしたほうがいい。
ちがってたらごめんね。
純粋にウェブ鯖として遣うのは従来のレン鯖のほうが都合いいのか。
687 :
680 :2010/12/15(水) 16:27:50 ID:cZWB6GF9
>>685 公式サイトでは2.5.5のwindows用バイナリは配布していないのですね。
ActivePython-2.5.5.7-win32-x86.msiをインストールして使ってみましたが、
やはり日本語URLの問題は発生します。
GAE鯖だと問題なくてWindowsローカルで問題起こってるなら Pythonの問題じゃなくてWindows(mbcsがSJIS)の問題だと思わない?
日本人辞めたくなってくる
WindowsのPythonの問題かもしれないしなぁ。。
>putenv(key, item) GAE関係なしにPython2.5(Windows)の環境でutf-8で dictのkeyに'日本語'と'日本'で問題ないか試してみた?
>>680 その問題、自分が開発してるときにもあったけど、
本サーバにデプロイしたら、問題なく動いたので
気にしないでやってた。
>>691 のやつ試したら、
>>> os.putenv("hoge", u"日本".encode("utf-8"))
>>> os.putenv("hoge", u"日本語".encode("utf-8"))
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
OSError: [Errno 42] Illegal byte sequence
となるので、utf-8でエンコードしたときの末尾がよろしくない文字列を
putenvしようとするとエラーが出るのかな。
>>> import os >>> os.putenv('hoge', u'日本語'.encode('utf-8')) Traceback (most recent call last): File "<stdin>", line 1, in <module> OSError: [Errno 2] No such file or directory >>> os.putenv('hoge', u'日本'.encode('utf-8')) >>> os.putenv('hoge', u'日本語'.encode('utf-8')) Traceback (most recent call last): File "<stdin>", line 1, in <module> OSError: [Errno 0] Error >>> os.putenv('hoge', u'日本'.encode('utf-8')) >>> os.putenv('hoge', u'日本語'.encode('utf-8')) Traceback (most recent call last): File "<stdin>", line 1, in <module> OSError: [Errno 0] Error なんだこりゃ
pyなんて国際化されてない言語遣うから(ry
煽りは要らんよ 悪いのはpyじゃなくてWinだし
The environment module is no longer supported; putenv() is now a function in posixmodule (also under NT).
狂っているでしょ。 WとAの2つのAPIがあって、Aでは未だにCP932が現役でCP65001が使えないんだから
すみません。GAE+pythonでアプリ作成することになったのですが、ググるためのロードマップ的なアドバイスをお願います。 やりたいことは、datastorのプロパティとDjangoを介したform要素を1対1で対応させて、挿入、編集処理を行いたいのです。 プロパティの数もかなり多いので、ループを多用した処理でコードを短くしたい。 <select>タグで選択させるエンティティもクラス定義の中にうまく取り込み定義したい。 いっそ、エンティティごとに表示させるformのタイプやバリデーションも定義したい。 こんなふうに考えてます。 なにか参考になるキーワードやサンプルページなどありましたら、教えてください。 具体的にコードを教えていただけるとさらにありがたいと思います。 GAEpythonアプリは簡単なものしか経験はありません。何卒よろしくお願いします。
わかる人だけ回答願います。
704 :
nobodyさん :2010/12/23(木) 15:01:55 ID:upuRkgtv
ただいまプロジェクトをセットアップ中でまだテストサーバーをいじるところまでは言ってないのですが app.yaml の書き方についてご教示ください。 - url: / static_dir: static_dir/ - url: /article script: article.py このような設定をした場合で物理アドレスがstatic_dir/artcle/imgの中にあるイメージファイルは article.html(article.pyが生成)の中でimg/と記述されているイメージタグからアクセスできるでしょうか? テンプレートの中にあるarticle.htmlのイメージタグのsrcアドレスを単純な相対パスにしておきたいのですが。 この方法がダメなら書き直すしかないですね。 大量のhtmlを受け取って、そのうちの一部だけを動的に書き換えて欲しいという要求なので、なるべく元の html内のimgタグなどはそのままにしておきたいのです。 よろしくお願いします。
順番逆に汁 - url: /img static_dir: static_dir/article/img - url: /article script: article.py - url: / static_dir: static_dir/
706 :
nobodyさん :2010/12/23(木) 18:38:00 ID:upuRkgtv
あざーーーす!!
00
708 :
704 :2010/12/24(金) 21:25:00 ID:N5vcjC0l
再びお手数かけますが、教えていただけませんか?
>>705 で教えて頂いた設定でおおかたうまくいきましたが
static_dir直下のファイルへのアクセスだけ404です。
- url: /
static_dir: static_dir/
- url: /.*
script: main.py
このように追加しましたが、うまくいきません。「.」や「*」などいろいろ追加してみましたがうまくいきません。
ディレクトリにファイルがない場合はmain.pyに拾わせてindex.htmlに行かせたいのですが、それは成功しています。
ただし、すごく遅いのでなにか循環しているかも知れません。
index.html内部にstatic_dir/直下のファイルへのiframe参照があるので、それがindex.htmlに呼ばれているような・・・
お手数をおかけしますが、お知恵をおかし下さい。
main.py のソース晒せ
710 :
704 :2010/12/25(土) 01:39:24 ID:cnkwEauI
from application.login import Login, Logout from application.index import Index from application.registform import RegistForm from application.article import Article from application.regist import Regist, Confirm, Resign from application.proc import Proc from google.appengine.ext import webapp from google.appengine.ext.webapp.util import run_wsgi_app def main(): application = webapp.WSGIApplication([('/', Index), ('/logout', Logout), ('/registform', RegistForm), ('/confirm', Confirm), ('/resign', Resign), ('/proc', Proc), ('/article', Article)], debug=True) run_wsgi_app(application) if __name__ == '__main__': main() こんなかんじです まだ読み込んだだけで使ってないクラスとかあります
711 :
704 :2010/12/25(土) 15:26:44 ID:4xZSyuIY
自己解決したので、報告しておきます。 - url: (.*)/ script: main.py - url: /(.*) static_files: static_dir/\1 upload: static_dir/(.*) で解決しました。でもなんかちょっともっさりした動作です。 main.pyに含まれるiframeがmain.pyを呼んでないか心配です。 ほかに改善すべきところがありましたら、アドバイスいただけると幸いです。
712 :
704 :2010/12/25(土) 16:47:50 ID:4xZSyuIY
自分の頭を整理しないで混乱したまま質問して まともな回答が返って来ると考えてるとは御目出度い
- url: /index.html script: main.py も追加したら良いじゃない 飛ばす先はstatic_dir/index.htmlなんだろ
715 :
704 :2010/12/26(日) 10:50:31 ID:Kj3wLXeW
>>713 申し訳ありませんでした。
半端な知識で理屈で考えるまえに組み合わせを総当りで試してしまいました。
>>714 ありがとうございました。
その一文を追加してあとルートディレクトリへのアクセスをmain.pyに向けたら一歩前進しました。
なんとかこの先もやっていけそうな感じになってきましたが、みなさんこんな場合はどうされてますか?
webプロダクションから完成済みページの一部だけを動的に変化するようにして欲しいと言われた。
webプロダクションの外注であるデザイン会社からhtmlで構成されたディレクトリがまるごと納品される。
ルートから各ページごとにディレクトリが切ってあり、それぞのディレクトリにindex.htmlがあり、内部相対リンクは
foo/index.htmlだったりfoo/だったり、昔のサーバーのクセに頼り切った構成。
GAEpythonの流儀に従い、動的ページとstaticページとtemplatesが分離していると、一見プログラマとデザイナは
仕事をわけて作業できそうですが、それは両方にSDKがインストールされていることが前提になります。
webプロダクションが勝手に使っているデザイン屋に同じ環境で作業することを強制することはなかなかできず。
そんな相手先に環境構築に行くのも物理的に無理。デザイン会社は変わるかも知れない。
結果、デザイン変更があった場合に備えて物理ディレクトリ上に相対アドレスでチェックして作業している環境を
まるごとコピーしてそれでも動くように細かく設定をして対処しようとしました。
その結果、完全ではないですが、なんとか体制はととのいましたが、一部htmlの相対アドレスを手直しせざるをえませんでした。
というわけで、環境を調整するだけで2日かかり、コードはまだ書けません。
みなさんのおかげで助かりました。ありがとうございました。
>>715 君はGAE云々以前の問題だと思う
ホームページのひとつでも自分で作って運営してスキルを積んだ方が良い
717 :
nobodyさん :2010/12/27(月) 03:21:04 ID:gZZU6IfS
情報を小出しにして人を振り回す事によりその人を不快にさせる方法を実践で教えてくれてありがとう。
718 :
704 :2010/12/27(月) 18:04:56 ID:mqmK5arb
719 :
704 :2010/12/27(月) 18:10:00 ID:mqmK5arb
あ、本文が抜けてた。
wwwなしの運用ってできましたっけ?
>>716 どもすみません。
サイトはいくつか運営してるんですが、正規表現とか苦手で
>>717 結果として迷惑かけただけでしたね。
最初にレスくれた方のおかげでだいたい解決してたんですが
チラ裏みたいなことになって申し訳ないです。
721 :
704 :2010/12/27(月) 20:21:21 ID:GK7Rnap9
できますか! できる場合もあるんですね
うそん?nakid domainてGAE businessで出来るって聞いてたんだけど。wwwつきのにリダイレクトされるとかでなくて?
723 :
704 :2010/12/27(月) 20:33:11 ID:GK7Rnap9
わたしはとりあえずリダイレクトさせてます
できなくなったと聞いたけど
初期は出来た。 今は無理
726 :
nobodyさん :2010/12/27(月) 23:21:36 ID:GK7Rnap9
なるほど・・・ ところでbulkloader.yamlってとんでもないところにできるんですね
pythonSDKをアップグレードしたらモジュールがなんちゃらってエラーが出た アンインストールして古い方入れたら治ったけど、びびった
foo=self.request.get('foo') POSTデータをループで取り出す方法ある?
あ、ごめんわかった for key in self.request.arguments(): self.response.out.write(key + "=" + self.request.get(key) + " ")
池沼三連発
Channel API面白そうだけど、海外ではCPU時間がかかりすぎることが問題になってるね なんでも、Channelに接続するときにCPU時間が3秒ぐらい、多いときだと10秒ぐらいかかるらしい マルチキャストもブロードキャストもできないし
同じIDから作ったトークン渡せばできるっぽいよ
file = open('example.json') a = simplejson.load(file) No JSON object could be decoded
どんなファイル食わしてもあかんねん
735 :
【大吉】 :2011/01/01(土) 00:11:58 ID:???
JSONって結構縛りあるよ ちょっとでも外れてるとあうと
サンプルコードの3行くらいのJSONもアウトでした static_dirにファイル置いてエラーってのは結構見つかったし エンコードもcodecs.openしても関係ないascii文字だけでもダメ
だめだ再現性が環境依存らしくてトラックイシュー扱いみたい jqueryにやらせようかな
"と'の違いでもアウトだし そもそもpythonのdictと違って ""で囲ってないと死ぬ
これでもダメなんよ { [ { "title": "New", "action":"CreateDoc" }, { "title": "Open", "action": "OpenDoc" }, { "title": "Close", "action": "CloseDoc" } ] }
一番外側の配列に対して要素名ないじゃん
{ "hoge_array": [ { "title": "New", "action":"CreateDoc" }, { "title": "Open", "action": "OpenDoc" }, { "title": "Close", "action": "CloseDoc" } ] }
できました あいがとう
できないよ。 外側の配列に名前つけて試して、さらに削ってためしたけどだめです。 たぶん、みなさんの環境ではできちゃってるのかな。
pythonのJSONモジュールって複数あるからなぁ
GAEのurlfetchでログインした外部のサービスから得た認証クッキーを ユーザーに送ることでユーザー側のjavascriptから直接外部サービスに アクセスすることってできますか?
あ、認証情報をセッションに頼らずにhiddenとかに入れて独自に認証すりゃできますよね でもなんかセキュアじゃないような・・・ ご意見をお願いします。
oauthってのが理想に近いのでしょうか?
Use the appcfg download_app command to download your application's code. If you do not want any admin to be able to download code, you can permanently prohibit code downloads. New! ソースダウンロードできるの?
また糞本が増えただけだな そもそもオンライン情報だけで充分だし バージョン上がったら使えなくなる本なんて金がもったいなくて買えんわ
もったいないって、、 社会人の朝食代レベルの金額なんだから別にそこまでないだろ… 俺はささっと買うわ
755 :
nobodyさん :2011/01/09(日) 13:28:08 ID:b7LWieM1
おまえ豪華な朝食だな
しかし、本の内容は糞っぽいよ 目次を見る限り
確かに…。基本的な部分だけか まぁ買った人はレビューよろしこ
application = webapp.WSGIApplication([('/([a-zA-Z0-9]+)/(a-zA-Z0-9)', Main)], debug=True) run_wsgi_app(application) こんな感じにマッピングしたときに、Mainに正規表現で拾った値を渡すにはどうしたらいいでしょうか?
class Main(webapp.RequestHandler): def get(self, match1, match2):
application = webapp.WSGIApplication([('/(?P<hoge>[a-zA-Z0-9]+)/(?P<fuga>a-zA-Z0-9)', Main)], debug=True) run_wsgi_app(application) class Main(webapp.RequestHandler): def get(self, **kw): kw['hoge'] kw['fuga']
ifの分岐でself.response.out.writeしたあと、それ以降の処理はやりたくないとき、 何を使えばいいのでしょうか? exit()だと出力されずに終わってしまいます
763 自己解決しました。
>>764 2ちゃんでは、質問したことを自己解決した場合は
その方法を書くのが礼儀
>>765 return これでした。
基本ですが忘れてました
無料の場合、cronの数は制限されていますか? 3つ目がfailedになってて、logにもエラーが記録されてないので原因が特定できず困ってます。
まずは2つめと3つめを入れ替えてみよう
2011-01-15 04:43:54 Running command: "[u'D:\\Python\\pythonw.exe', '-u', 'D:\\Program Files\\Google\\
google_appengine\\appcfg.py', '--no_cookies', u'
[email protected] ', '--passin', 'update', 'G:\\app']"
2011-01-15 04:43:54 (Process exited with code -1073741515)
You can close this window now.
このようなエラーがでてアップロードできないのですが
どういったことが考えられますか?
GAE側に障害発生中とか
>>770 ありがとうこざいます
明日またやってみます > <
administratorから出してるか
出しています
datastoreのエンティティが更新された履歴って残せますか?
ログに書き出すか datastore にログ用 entity 作って自分で記録汁 だけど dashboard から更新したらやっぱり記録されない
了解 bigtableってプロパティレベルで履歴が残るって解説読んだことがあった気がしたけど datastoreではできないんですね ありがとうございました
オライリーの本キタ━━━━(゚∀゚)━━━━!!
780 :
nobodyさん :2011/01/23(日) 21:22:35 ID:/P06sEKg
>>780 何ページに書いてある?
俺の予想は海外のオライリーサイトだと思うよ
pytz使ってる人いませんか? GAE用に最適化されてるgae-pytzを使おうと思ったんですが pytz本体のバージョンがpytz 2010oなのにgae-pytzが2010hで更新止まってるんですが 何か問題あったんでしょうか?
>>778 おらおらおらおらオラオラオラオラオラオラオラオラオラオラオライリー
>>780 そのページ → 原著のページ → 著者のページ
に行けばサンプルコードがあるよ。
slim3使ってるんですが、同時にデータ書き込みがあった場合ってどうなるんでしょうか? エンティティのロックってのがいまいち理解できない・・。
重複スレができたので、こっちはpython、あっちがjavaということになってる
{% for %}にジェネレータ渡しちゃいけないんだな 気付けば当たり前だけど嵌ったので書いとく ==*.py== xs=(1,2,3,4,5) template_values = { 'xs1': ( x*x for x in xs ), 'xs2': ( x*x for x in xs ), } ==テンプレ1== {% for x in xs1 %} {{x}}, {% endfor %} {% for x in xs1 %} {{x}}, {% endfor %} ==テンプレ2== {% for x in xs1 %} {{x}}, {% endfor %} {% for x in xs2 %} {{x}}, {% endfor %} テンプレ1 => 1,4,9,16,25, テンプレ2 => 1,4,9,16,25,1,4,9,16,25
792 :
sage :2011/02/06(日) 09:32:44 ID:CTIgjDfj
>>680 同じ症状で色々と試したら、解決しました。
File "D:\app\dev\Python25\lib\os.py", line 430, in __setitem__
putenv(key, item)
このラインを
#putenv(key, item)
のようにコメントアウトしたらおkでした。
次のラインに
self.data[key.upper()] = item
がありますし、__getitem__は、
self.data[key.upper()]
を返しますので、問題ありません。
何処にあるかわかりませんが、putenvにバグがあると思います。というか、むしろ必要性を感じません。
他にPythonの開発してたら、その時は元に戻したほうがいいかもしれません。
ちなみに、os.py:410に、
# Fake unsetenv() for Windows
# not sure about os2 here but
# I'm guessing they are the same.
などというコメントがありますから、いい加減さが目だちます…orz
誰かの参考になれば幸いです。
うわ、上げてしまった… スマソ…orz
>>795 GAEサーバー再起動しました?
あと、コールスタックは
>>680 と同じですか?
コメントアウトしたなら、OSErrorのコールスタックも変わってくるはずです。
>>796 GAEサーバー再起動したら正常に動作いたしました。
知識不足のせいでお手数をおかけしました。
日本語URLを扱っていてたまたま最後は半角で終わるため
直接は問題は出ていませんでしたが、これですっきりしました。
ありがとうございました。
GAEでPHPを使う方法がわかりません モジュールとしてスクリプトを書いていいんですか? それともCGIのように1行目に実行ファイルへのパスを書くんですか?
>>798 AmazonEC2なら簡単に使えますよ
EC2って有料でしょ?有料はいりませんよ?
つまんないから帰ってくれないか
質問に対して人をおちょっくって来たほうが悪い
pythonでHPって持てるの?ここ
著しくレベル低いなw
GAEは糞 何度でも言うよ GAEは糞
どのへんが?
809 :
nobodyさん :2011/02/07(月) 17:39:36 ID:qvm2E2Ff
アカウント取得しまくったらBANされたりするかな?
それは使い方に問題があるだろw
811 :
nobodyさん :2011/02/10(木) 04:11:24 ID:J9bT3WK+
混雑してくるとやたら重くなるんだけど、そういうもんなの?自動でスケーリングしてくれるんじゃないの?
GAEの癖を理解してコードを書かないと性能を発揮できない。 特に書き込み。
813 :
nobodyさん :2011/02/10(木) 11:34:23 ID:UzZbws4D
blobstore で保存された画像のURLって静的に保証されたものなんですかね? datastoreにblobkeyだけ保存して、毎回取り出すために blob_info = blobstore.BlobInfo.get(blob_key) self.send_blob(blob_info) しないといけないんですね? そのリクエストを受け付けるURLにblob_keyを混ぜるとしたら、〜.jpgみたいなURL作るためには /blob_key/temp.jpg みたいなURL書き換えでキーを渡さないといけないんでしょうか? 例えば外部からbolbstore上の画像をダイレクトで参照できるURLってないのかな? なんか勘違いしてるんですかね?
>>813 です
get_serving_url
これ使えばいいみたいですね。調べてみます。
キーで使われる文字ってBase64で使われる文字だけだと思ってたんだけど さっきみたら-(マイナス)が使われてたんだけど。
それがどうかしましたか(棒)
最近slim3を導入しました。今までトップページを/main.jspにしていたのですが/に変えたいです。 /main.jspへのアクセスを/に転送したいのですがどうしたらよいでしょうか? AppRouterに設定(isStaticもちゃんとオーバーライド)しても、web.xmlに設定しても403になってしまいます。
逝ってらっしゃいませご主人さま
class data(db.model) a=db.IntegerProperty() b=db.IntegerProperty() datas = db.GqlQuery (query_str) for data in datas: data["ab"]=data.a+data.b 'data' object does not support item assignment db.modelオブジェクトに読み出しあとで列を追加すようとするとエラーが出ます。 Djangoに渡す前にどうしても列を加工したり追加したい場合、どうしたらいいでしょうか? dictにコピー?
class data(db.model) a=db.IntegerProperty() b=db.IntegerProperty() ab=db.IntegerProperty() datas = db.GqlQuery (query_str) for data in datas: data.ab=data.a+data.b
なるほど!
webapp.Templateを使うときはDjangoバージョンの警告を出さないでほしいな とりあえずJinja2に移行中
>>825 2.6スキップかよ
debianがちょっと前が2.5で今が2.6で両方ダメでメンドクセー
>>825 こんなのあったんだ。さんくす。
そのいちばん上に、
* SSL access on non-appspot.com domains
とあるんだけど、これって可能なの?SSLってドメインごとにグローバルIPがひとつ必要なんじゃないっけ?
あと2番目が
* Full-text Search over Datastore
なんだけど、いつになったら実装してくれるのだろうか。
>SSLってドメインごとにグローバルIPがひとつ必要なんじゃないっけ? それは鯖がApacheの場合の話じゃなくて?
apacheでも大丈夫だよ。 ブラウザも最近のはたいてい対応しているが、 win xpのIEは7でも駄目なので、そこがネック。
jsonengineっていうのどうなのか試そうと思ったがデプロイできない・・・
GQLでORDER BY foo ASCするとfoo=Noneが先頭にきちゃってうざいんだけど・・・ 他のDBでもこういう仕様だっけ? 後ろに来てもらうことってできまするか?
むり
834 :
nobodyさん :2011/02/13(日) 18:49:14 ID:mo0rSdkS
なんでGAE使うひとってみんな他のDBと比べたがるんだろう 「あっちでは出来たのに」ってのが多すぎるわ
まぁGQLって名乗っちゃってるしね Goくらい、何かを連想させない命名にしておけば
>>832 foo > NULLとか出来なかった?(または"foo > :1", None)
google optimized language = go-lang
>>836 できませんでした。うーむ。なれるしか無いか。
そもそもデータ中にNoneがあったら 開発用と本番用で挙動が変わったり インデックスが壊れたり色々困るだろうに
数値データなんか生のデータに0があるときはNoneも使わないと計算できなくない?
dbプログラマんだから、いままでのdbと同様に使える事を期待するのが普通でしょ。 gqlのほうがデータベースと逝ってるわりにデータベースっぽい扱いさせてくれないほうが不親切。
843 :
nobodyさん :2011/02/20(日) 09:11:47.23 ID:mUqklcdg
DBとRDBは区別つけておこう。
<select> {% for e in list %} <option value={{ e }}>{{ e }}</option> {% endfor %} </select> こんなことやりたいのですが、db.StringPropertyのchoices=set()で設定されている 規定値のリストを取得する方法を教えてください。
self.choicesにそのまま入っているっぽいが
>>845 あー
setオブジェクトで入ってました。
要素取り出す方法がわかりません・・・
普通にやればいいよ >>> a = set([1, 2, 3]) >>> for i in a: print i 1 2 3 >>> ソートしたいならsortedで
普通にループで取り出せそうです。 ありがとうございました。
Python2.5で Djangoを使ってフォームをつくろうとしているのですが、 Traceback (most recent call last): File "C:\Program Files\Google\google_appengine\google\appengine\ext\webapp\__init__.py", line 515, in __call__ handler.get(*groups) File "C:\Users\wish\project\room\main.py", line 44, in get html = template.render(fpath,params) (中略) File "C:\Program Files\Google\google_appengine\lib\django_0_96\django\template\loader.py", line 72, in find_template_source raise TemplateDoesNotExist, name TemplateDoesNotExist: layout.html このようなエラーになってしまい、動きません。 app.yamlは handlers: - url: /css static_dir: css - url: .* script: main.py と設定してあります。 また、app.yamlとmain.pyのディレクトリの下にそれぞれ viwesとcssというフォルダを置き、cssにcssファイルを、 viewsにhtmlをおいています。
>>849 TemplateDoesNotExist: layout.html
>>850 layout.htmlはviwesフォルダに入っています。
試しにcssフォルダや、app.yamlと同じディレクトリに置いてみても変わりませんでした。
fpathにちゃんとパスが入っているかどうかぐらい自分で確認してもいいんじゃない?
ちゃんとパス通してる?
Traceback (most recent call last): File "C:\Program Files\Google\google_appengine\google\appengine\tools\dev_appserver.py", line 3245, in _HandleRequest self._Dispatch(dispatcher, self.rfile, outfile, env_dict) 中略 File "C:\Program Files\Google\google_appengine\lib\django_0_96\django\newforms\util.py", line 15, in smart_unicode s = unicode(s, settings.DEFAULT_CHARSET) UnicodeDecodeError: 'utf8' codec can't decode byte 0x89 in position 0: invalid start byte Python2.5です。windows7 GAEを使ってローカルサーバでテストしているのですが、このエラーでつまづいてしまいました。 Djangoを使って入力フォームの作成をしています。
856 :
nobodyさん :2011/02/28(月) 01:11:08.16 ID:VazHfe0j
UserAgentで振り分けしたいのですが、.htaccessのように一括で振り分ける方法はありませんか? def get(self): if ua == keitai: ~ケータイ用のページへジャンプ~ という処理をすべてのクラスに記述するしかないのでしょうか?
それしかないと思う まあPythonのデコレータ使えば綺麗に書けるはず
Javaサーブレットのフィルターにあたるものはないの?
Djangoを使ってフォームを作ったのですが 複数のフォームに入力されたデータをある一定のアルゴリズムで変換し (たとえば、1と入力したら50,4と入力したら200など) それを表示したいのですが、この場合どうすればいいんでしょうか? 現在は、AddHandlerで def post(self): form = AddForm(data=self.request.POST) if form.is_valid(): data = form.save() data.put() self.redirect("/") else: self.layout["content"] = self.view_dir + "add.html" params = {"layout":self.layout,"form":form} fpath = os.path.join(os.path.dirname(__file__),"layouts",self.layout_file) html = template.render(fpath,paramas) self.response.out.write(html) このように、入力された値は保存してそのままindexで表示されるようになっています。
アップロードエラーの件は自己解決しました。 --num_threads= でスレッド数を制限したらいけました。 あとはkey nameで保存させることです。よろしくお願いします。
bulkloader.yaml --------------- property_map: - property: __key__ external_name: key export_transform: transform.key_id_or_name_as_string ならcsvのcolumn_name=keyのフィールドがkey_nameになる
>>825 前は3.xのサポートだった気がする。。
>>864 です。
やっぱりエラーが出ます。
Error parsing yaml file:
Invalid object:
Neither external_name nor import_template nor export specifiled for propaty __key__
こんな風に名前の定義も入れてみたんですが、ダメです。
- kind: Station
connector: csv
connector_options:
encoding: euc-jp
skip_import_header_row : True
column_list: [rr_cd, line_cd, station_cd,
line_sort, station_sort, station_g_cd, r_type,
rr_name, line_name, station_name,pref_cd,
lon, lat,f_flag]
property_map:
- property: __key__
- import_template: "%(line_name)s%(station_name)s"
ここを参考にしてます。
http://endoyuta.blogspot.com/2011/02/gaebulk-loadercsv.html csvを改造してKEYを先に作ったほうがラクかなあ。
お知恵をおかし下さい。
追記
こんどは郵便番号データを郵便番号をキーに登録しようとしてやはり同じエラーが出ました。
- kind: ziplist
connector: csv
connector_options:
encoding: utf-8
column_list: [cityno, oldzip, zipcode, pref, citykana, city, townkana,
town, two_code, banchi, chome, two_town]
property_map:
- property: __key__
external_name: zipcode
export_transform: transform.key_id_or_name_as_string
http://www.post.japanpost.jp/zipcode/download.html
>>866 columns: from_headerを明記する
- import_template: "%(line_name)s%(station_name)s"
マイナス記号がいつの間にかくっついてた
コピペでいろいろ試しているうちに余計に現象が複雑化してました。
無事、二つのカラムからKeyを生成できました。
>>867 これからやってみます。
まずはご報告まで。
>>867 export_transform: transform.key_id_or_name_as_string
これ削除したらkey_nameでのインポートはできるようになりました。
エクスポートの時に困りますね。
アプリ登録する時に2種類から選択できるようになったって話を聞いたんですが、 それについてどこかに詳しく説明してるページないでしょうか?
もしかしてこれでようやくGAEもミッションクリティカルな用途に使えたりもするのかな?
今日調子にのって100万行単位のcsvをアップロードしてたら、クォータ使いきってエラーになりました。 マスターデータは一回アップロードすればそれ以上必要ないんですが、緊急メンテナンスが発生したとき out of quota出たら泣けますね。 ダッシュボードは使えるみたいだから、管理者ページだけでも動くようにしておいて欲しいなあ・・・
大人しく課金しろよ
緊急メンテの時だけのためにそんなにCPU時間買えないっすよー
>>871 ありがとうございます!これのことです!。昔作ったアプリは変更できないんですね。。
それにしてもいつの間にか日本語ブログ出来てたのかぁ。
gqlで最新のエンティティだけを取得する場合はどうすればいいでしょうか? datas = db.GqlQuery("SELECT * FROM Data offset -1") と書いてみましたが、-1では指定できませんでした。
SQL自体が初心者でしょ 使わなくてもアプリ組めるよ
>>877 タイムスタンプ記録してORDER BY timestamp DESC LIMIT 1
別のテーブルでIDを管理してIDで検索
ID検索がたぶん高速
>>877 管理コンソールのDatastore ViewerでGQL直接実行できるからいろいろ試せ
bulkloaderでcsvのアップロードやり続けてここ汚してる者です。 複数エンティティからKey_name作って登録する方法だと、たぶんbulkloaderのCPU使用時間は おまかせkeyで登録するより5倍かかる(当然登録件数によるけど10万件単位)ようです。 10万行処理するのに無料Quotaの10%使ったって参考にしたブログにあったけど 今日は10万行で50%使いました。100万単位だともっとかかるようになるでしょね。 データのメンテナンスするときは更新・削除がラクだろうけど、これは果たしてどうだったのか・・・ チラ裏でした。 さて、そろそろQuotaリセットされる時間です。作業にもどります。
>>879 別のテーブルでIDを管理、というのはどうすればいいんでしょうか?
>>881 Quotaって言ってもいろいろあるぞ。具体的にどれだ?
>>882 テーブルって言葉が混乱を招いたようですが
別にモデルを作ってそのエンティティに保存しておくだけです。
key_nameを決めてその名前でひとつだけエンティティを保存しておけば
key_nameから簡単にエンティティにアクセスできます。
>>884 なるほど
現在、Model Aで定義したものをフォームから受け取り、
そのフォームから受け取ったデータを
data = form.save()
data.put()
で保存しているのですが、
具体的にこれを別のモデルを作りそのエンティティに保存しておく、というのは
どうすればいいんでしょうか?
class B(db.Model):
ID = db.IntegerProperty()
があるとして、Aのdataを保存したあと
key_name = "thisisAslastupdate"
b=B.get_or_insert(key_name)
b.ID=data.key()id() #dataのIDを保存
b.put()
Aのdataを呼び出すとき
key_name = "thisisAslastupdate" #常に同じkey_nameをつかう
b=B.get_or_insert(key_name)
data = A.get_by_id(b.ID)
もちろんトランザクションで処理した方がいいです。
適当にみつけた参考ページ
http://kan.txt-nifty.com/softdev/google_apps_engine/index.html
障害発生中
'utf-8'のencodingエラーが
>>887 key_name = "thisisAslastupdate"
b=B.get_or_insert(key_name)
b.ID=data.key()id() #dataのIDを保存
b.put()
これはどこに記述すればいいんでしょうか?
Class Aでdata.put()をした直後でしょうか?
>>889 こっちではimportエラーが出てます
<type 'exceptions.ImportError'>: cannot import name template
>>887 b.ID=data.key()id()
ここは、
b.ID=data.key().id()でよろしいでしょうか?
スペースをなくし、.をいれています。
>>890 そうです。でもコピペしただけでは動かない可能性もありますよ。
ここから先はリファレンスを読んで全体の理解を深めることをおすすめします。
やっと正常に動き出したけど、今日デプロイしてないアプリまで全部死んでたんでびっくりした。
>>894 いえ、本当に助かりました。ありがとうございます。
一度動くとリファレンス読んでも急に理解しやすくなったような気がします。
しっかり読んで、またオライリーのGAEも買ってみようと思います。
うまく動いたのですが、
<__main__.TotalData object at 0x078046F0>
と、unicodeがそのまま表示されてしまった?のですが
これはどうすればそのまま表示できるのでしょうか?
エラーの出てるインスタンスがなかなか落ちてくれない…
松尾です。 日本時間 3/8 9:00PM 現在 Python Runtime で障害が発生しています。 現象としてはあるはずのモジュールに関して ImportError が発生しています。 現在復旧作業中です。アップデートがあればこのスレッドでお知らせします。 松尾さんご苦労様です。早く直してね。
さんくすー
datastoreである要素の行がnoneのものだけ集めることってできましたっけ?
JavaとPython未経験でGAEを使いたいのですがどちらの方が習得早いでしょうか? Javaの方ができることは多そうですがPythonの方が新しい言語なのでまとまっていて取っ付きやすいのではないかと踏んでいます。 目標は認証付きでテキスト、画像、バイナリのアップロード、ダウンロード。 特定の呼び出し(?)に対して任意のXMLを返すといったところまでです。 アドバイスよろしくお願いします。 書籍は「新人プログラマのための」を買おうと思っていますが他にもおすすめがあればお願いします。
教えてあげるから、なんかちょーだい
python
どっちの言語も未経験でよくGAE使う気になったもんだ
907 :
nobodyさん :2011/03/09(水) 23:25:55.44 ID:7V71uazC
908 :
nobodyさん :2011/03/10(木) 04:06:53.38 ID:79yNqmJl
>>898 えっ!やっぱり ずっと悩んでたのに。。。
ぼっちで開発してるんだけどわからないことが結構ある みんな会社単位とかで使ってるのか?
ぼっちで開発してるんだけど死にたくなることが結構ある みんな会社単位とかで使ってるのか?
教えてあげるから、なんかちょーだい
いらな〜い
一人で使ってます。 わからないことはそのつどググって英語サイトとかまで見てます。
914 :
nobodyさん :2011/03/10(木) 15:55:06.40 ID:/uspR3SG
jruby on rails 2.3.10 で NoMethodError (undefined method `getString' for #<Str1:0x9e40d2>) のエラーがでるんですが、Str1クラスのnewはできるみたいなんですが メソッドgetStringを呼べません。ソースは // Str1.java package com.aaa; class Str1 { protected String str; public Str1(String str) { this.str = str; } public String getString() { return str; } } #aaa_controller.rbの一部 require 'java' import 'com.aaa.Str1' class AaaController < ApplicationController def aaa sss = Str1.new("asasas") p sss.getString render :text => "" end end
1つのリクエストにlogging.debug()で10個ぐらいログ出力してるんですが 何気にlogging.debug()使っていい適正回数とかあるんでしょうか? 10回以上使うと重くなるよ的なことってあるんでしょうか?
処理に時間がかかりすぎるクソコードだから修正しろって意味
そんなクソコードって言うほど厳しい言い方かな? 課金覚悟くらいの感じだと思う。 現実的にCPUコスト食うのはしゃーない
Error: Server Error The server encountered an error and could not complete your request. If the problem persists, please report your problem and mention this error message and the query that caused it. このエラーから進めなくなってるんですが 対処法ありませんか?
922 :
917 :2011/03/13(日) 21:27:28.09 ID:???
すみません peydevのコンソール出力にprintするにはどうしたらいいですか?
>>923 import logging
logging.debug(str)
>>921 ログは自己解決しました。
しかし問題は
>>887 で指摘されたところにありました。
ローカルでは動くのですが、アップするとエラーになってしまいます。代替案を考えなければならないんでしょうか
馬鹿には無理
>>927 エラーってのは具体的になんだ?
技術者なら質問の仕方ぐらい覚えなさい
「ダッシュボードのログの時間が1時間ズレてる」と思ったらサマータイムだった
>>929 BadArgumentError: Expected an instance or iterable of (<type 'int'>, <type 'long'>); received None (a NoneType).
というエラーでつまづいてしまいます。
>key_name = "thisisAslastupdate" #常に同じkey_nameをつかう
>b=B.get_or_insert(key_name)
>data = A.get_by_id(b.ID)
おそらくここでエラーが出ているようです
class MYdata(db.Model): dataA = db.StringProperty() dataB = db.StringProperty() というモデルがあって key_name = dataA + dataB とルールを内包させたい場合 put() をオーバーライドしようとして詰まってます。 get_or_inserを外から呼び出せばいいことですが 中で処理するのは無理でしょうか? よい方法はありませんか?
自前のget_or_insertを用意するとか。こんな感じで(テストしてない) class MYdata(db.Model): dataA = db.StringProperty(required=True) dataB = db.StringProperty(required=True) @classmethod def my_get_or_insert(cls, _a, _b): return cls.get_or_insert(key_name=_a + _b, dataA=_a, dataB=_b)
>>934 あー!
やってみます!ありがとうございました。
質問なんですがGAEでアプリ作らずに画像置き場として使ってもOKなんでしょうか? 他のサイトのHTMLの<img src="xxx">的な使い方です。
938 :
nobodyさん :2011/03/23(水) 17:30:18.57 ID:MNcbKRzA
939 :
nobodyさん :2011/03/23(水) 17:31:53.80 ID:MNcbKRzA
>>937 # 認証の要求
self.response.set_status(401)
self.response.headers['WWW-Authenticate'] = 'Basic realm="BasicTest"'
これを毎回出すといい
>>939 レスありがとうございます。
認証要求を毎回出すような位置に移動してみたところ、認証が成功した時にもまた認証を促すようになってしまいました。
リロードのタイミングではなくて、認証直後に再度ログインダイアログが表示される状態です。
これは再度 get が呼ばれて認証の要求が発生しているという理解で良いのでしょうか。
この場合、認証直後の時のみダイアログを表示しないようにすることはできるのでしょうか?
それとも認証時は別のページに飛ばしてやるのが良いのでしょうか?
941 :
936 :2011/03/24(木) 12:04:56.84 ID:???
>>938 遅くなりましたがありがとうございます。
>>940 一回出したら次は出ないようにすれば良いのでは?
UTF8でURLエンコードされた文字を受け取るときに ずっと今まで value = urllib.unquote(self.request.get('key')) とやってたんですが、もしかしてurllib.unquote()は必要なく、 value = self.request.get('key') だけでOKでしょうか?
試してみろよ
試したら問題なかったなんですが、そうなるとurllib.unquote()はどういうときに使うのかなって
値がスクリプトに渡される前にunquote処理がされているはず。 URLなどのパラメータを自前で処理しなきゃならない、Webアプリのミドルウェアやフレームワークレベルで使われている。
なるほど〜。フレームワーク側でやってくれてるんですね。ありがとうございます。
>>942 グローバル変数を使って思い通りの挙動が出来ました!
今はローカルからしかアクセスしていないのですが、
複数の接続先から呼び出された時にグローバル変数が共通して使用されるものだとしたらグローバル変数による条件処理は使えないという懸念もありますが、そのへんはまた試してみたいと思います。
>>948 複数端末からアクセスしてみたところグローバル変数の値は共有されてました。失礼しました。
ブラウザのリロード時だけ再認証させるというのは難しいのでしょうか…
そろそろWeb初心者スレ行けよ GAE関係無い
global変数 session変数 local変数 があるんだっけ? まあスレちだけど うまくいったら 結果とソース晒すのが礼儀だよ
GAE初心者です。PYTHONも初心者ですが、GAE&PYTHONに興味がありまして、 調べているうちに一つ疑問がありました。すいませんが、どなたかご教授 していただけませんでしょうか。 ネットで見ていますと、GAEのデータベースでは、数十万件のKINDまたは、 エンティティグループ(トランザクションのグループのようなもの?)を作成 してトランザクションが衝突することを避けた方が良いと書かれていました。 一方で、GAEの割り当てでは、インデックス数が200に設定されていました。 これは、検索(filter)を行わずにただ単純にfetchしてしまえば、インデッ クスは生成されないということでしょうか? その場合、さらに、get_by_key_nameなどを実行したり、__key__に対する filterではインデックスが生成されないと考えてよろしかったのでしょうか? といいますのも、keyの値は一意で有る必要があると思うのですが、そのkey に対してインデックスが張られないとなると、どのようにして一意判定をし ているのかよく分かりませんでした。 それとも、KIND+key全体で一つのインデックスを張っていると理解すれば、 よろしかったでしょうか。 GAEのインデックスが張られるのはいつなのかいまいちよく分からなかった ため、質問させていただきました。 【XXをすると、インデックスが生成される】、というのが有りましたら、 是非お教え下さい。 以上、少々長文になってしまいましたが、よろしくお願い致します。
ローカルでテストしてみて index.yaml の内容見ればわかる
1.4.3で追加されたFiles APIとは何ぞや?
Files API: The new Files API in Python and Java allow you to pragmatically read and write data using Blobstore. This API can be used to generate reports, export data, or do anything that your heart desires that requires large, binary objects. だって
>>956 つまり管理系のAPIってことなのだろうか
file.open('hoge.txt, 'r').read()
的な動作とはかとは全く関係ないってことね
GoogleAppEngineLauncherでPythonファイルをアップロードする際の内部っていうオプションは何でしょうか? Version 1.4.3を使用しています。
Windows版には見あたらないけど スクリーンショットを貼れ
画像やZIPデータをダウンロードさせるのって、一度Blobとしてアップロードして格納した後にgetに対してそれを返してやるって方法でいいのでしょうか? アプリのファイルと一緒にアップロードしておいて、self.response とかにURLを渡してダウンロードさせてやるようなことはできないのでしょうか? 変な質問かも知れませんがご教示よろしくお願いします。ググれワードでもいいです。
redirect
>>961 そのファイルはどこに置いてあるんだい?
>>963 /helloworld
/helloworld/app.yaml
/helloworld/index.html
/helloworld/main.py
/helloworld/myfile.jpg
のような感じです。これだと自動で一緒にアップロードしてくれますよね?
redirectも調べてみます。
>>962 静的ハンドラと redirect を使っていけたようです!
他のファイルやパスでも試してみたいと思います。ありがとうございます。
sslにするとダメになったりするバグ治ってるのかな
>>966 確かめてみたところ secure: always にしてもちゃんとダウンロードできました。
リダイレクトで該当のZIPをダウンロードさせることができたのですが、URL直打ちでもファイルをダウンロードできてしまいました。
URL直打ちからはアクセスできなく、別のページ経由からのアクセスでしかダウンロードできないようにするにはどうしたら良いでしょうか?
この場合もデータストアを使わずredirectで実現可能でしょうか?
今、app.yamlの設定は
handlers:
- url: /static
static_dir: static
で、staticフォルダの中がダウンロードできる状態です。
馬鹿には無理
ヒントだけでもいただければと。ググれワードだけでも。
blobstore
まぁ、htaccessのリファラでやってたようなことをやるには別のサービス使った方が労働 コスト的に安上がりだよなぁ
アプリは動いているがコンソールが落ちた
>>970 遅くなりました、ありがとうございます。調べてみます。
ダッシュボードのチャートにInstancesとMemory Usageが増えてる
\∧_ヘ / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
,,、,、,,, / \〇ノゝ∩ < 1000取り合戦、いくぞモナァ!! ,,、,、,,,
/三√ ゚Д゚) / \____________ ,,、,、,,,
/三/| ゚U゚|\ ,,、,、,,, ,,、,、,,,
,,、,、,,, U (:::::::::::) ,,、,、,,, \オーーーーーーーッ!!/
//三/|三|\ ∧_∧∧_∧ ∧_∧∧_∧∧_∧∧_∧
∪ ∪ ( ) ( ) ( ) )
,,、,、,,, ,,、,、,,, ∧_∧∧_∧∧_∧ ∧_∧∧_∧∧_∧∧_∧
,,、,、,,, ( ) ( ) ( ) ( )
※レス数が980を越えたスレは、980突破後最新のレスから24時間以内に
レスが付かなかった場合強制的にdat落ちします。
1000まで埋め立てたい場合は980突破後速やかに1000まで埋め立てましょう。
また、埋め立てたくない場合は980突破後、24時間放置しましょう。
1000取り合戦間近スレを報告するスレ
http://kamome.2ch.net/test/read.cgi/mog2/1301989517/l50 より、1000取り合戦のお知らせでした
次スレはスレタイに「python」って入れて欲しいものだ
Google App Engine for Python 4アプ目 でおk? 半角スペースはどうすんべ
それで良いと思います
981 :
nobodyさん :2011/04/12(火) 18:12:12.53 ID:lXmF6dcw
┌─┐ │●│ └─┤ _ ∩ ( ゚∀゚)彡 ┌─┬⊂彡 │●│ おっぱい!おっぱい! └─┘ おっぱい!おっぱい!
埋めタイム?
GAEってレンサバ+DB+APIって感じ?
┌─┐ │●│ └─┤ _ ∩ ( ゚∀゚)彡 ┌─┬⊂彡 │●│ おっぱい!おっぱい! └─┘ おっぱい!おっぱい!
>>983 KV + Auth + SSL + quota
保守
987 :
nobodyさん :2011/04/13(水) 21:33:31.21 ID:zzeBZffZ
梅干湯
埋めるの?
980超えたので埋めなくても落ちる
落とすのか埋めるのかって意味で
オライリーの本結局どなの? 初心者向け
落とさなくても埋まる
pep8とgoogle流コーディングスタイル どっち使ってる?
オライリーのやつ電子ブックで出ないかなー
996 :
nobodyさん :2011/04/15(金) 13:05:34.23 ID:yn0ntc/B
ume
ume
ume
ume
ume
1001 :
1001 :
Over 1000 Thread このスレッドは1000を超えました。 もう書けないので、新しいスレッドを立ててくださいです。。。