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

Google App Engine 2アプ目

■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん2009/05/30(土) 12:40:02ID:tuYY7oEn

Google App Engine
http://code.google.com/appengine/

■過去スレ
Google App Engine
http://pc11.2ch.net/test/read.cgi/php/1207754942/

■参考サイト
App Engine ギャラリー
http://appgallery.appspot.com/
ドキュメント
http://code.google.com/appengine/docs/python/overview.html
0624nobodyさん2009/12/04(金) 19:03:47ID:???
>>623
俺も知りたい
自作したがしょぼすぎるんだ
0625nobodyさん2009/12/04(金) 19:08:22ID:???
疑似ファイルシステムつくるか
0626nobodyさん2009/12/04(金) 19:21:43ID:???
wikiなんざ@wikiでも借りたらいいんじゃないかと思うんだが
0627nobodyさん2009/12/04(金) 19:21:43ID:???
擬似RDBでも許す
0628nobodyさん2009/12/04(金) 20:20:21ID:???
>>626
1日100万PVのアクセスがあっても対応できるGAEで、まとめwikiを作りたいんです><

>>625
勉強するんで、作り方教えてください><
・PukiwikiをGAE用に改造する
・Quercus(PHP in Java)で動かす
この改造路線でよろしいでしょうか?
(JavaとPHPは使えます。Pythonはこれから勉強する予定)

ちなみに、改造したコードはどこにおけばいいですか?
よく分からんけど、Google CodeとかGitHubという場所にアップロードすればいいんですかね?
ttp://ja.wikipedia.org/wiki/OSS%E3%83%9B%E3%82%B9%E3%83%86%E3%82%A3%E3%83%B3%E3%82%B0%E3%82%B5%E3%83%BC%E3%83%93%E3%82%B9%E3%81%AE%E6%AF%94%E8%BC%83
0629nobodyさん2009/12/04(金) 20:26:55ID:???
>>628
今ならGitHubだな。
0630nobodyさん2009/12/04(金) 20:29:05ID:???
pythonで有名なwikiってmoinmoinって名前だったっけか
探せばGAEで動くように移植した人とかいるかもね
0631nobodyさん2009/12/04(金) 20:43:43ID:???
>>629 >>630 ありがとうございます。
MionMoinを調べてみます!

<擬似ファイルシステム>
BigTabelに、[AlterFile]というテーブルを用意する。
カラムは、(1) [FileName](=ファイル名を保存する)と、(2) [FileData](=ファイルの中身)がある。
従来のファイル操作関連の関数を、BigTableに書き込む関数でラップするかんじですかね?
0632nobodyさん2009/12/04(金) 22:50:02ID:???
FileSize
FileCTime
FileATime
FileMTime
はあった方が良いだろう
0633nobodyさん2009/12/04(金) 22:51:03ID:???
FileAtribute
FileOwner
なんかもいるんじゃないかな
0634nobodyさん2009/12/05(土) 01:16:34ID:???
ラップしたらそのファイル操作関数は制限されずに呼び出せるの?
0635nobodyさん2009/12/05(土) 03:10:19ID:???
そりゃまぁそういう風に作ればそうなるだろう
0636nobodyさん2009/12/05(土) 08:06:48ID:???
>>628
Pukiwikiは全ファイルなめるような操作あったような気がするから、
記事が1000件超えたらまずそうな気がするw

あと、何するにしても日本語検索を自前で実装しないといけないから注意。
サイトマップ作ってgoogleにindexさせて放り投げてもいいけど
0637nobodyさん2009/12/05(土) 08:10:58ID:???
>>630
feature requestsはでてるみたいね。

FeatureRequests/GoogleAppEngineCompatibility - MoinMoin
http://moinmo.in/FeatureRequests/GoogleAppEngineCompatibility
0638nobodyさん2009/12/06(日) 21:30:52ID:???
Cしか書けない低レベルプログラマだけど

ここ一週間GAE+PYTHONの勉強をがんばって
2chライクの掲示板とか作ってみたけど
なんか疲れた。
もうちっと面白いアイデアがないもんかねえ
0639nobodyさん2009/12/06(日) 21:43:18ID:???
結構何作ったらいいのかとか思い付かないよね。
0640nobodyさん2009/12/06(日) 22:59:48ID:???
Twitterのbotとかも作るのは簡単そうだけど
肝心のしゃべらせる内容が思いつかないw
0641nobodyさん2009/12/06(日) 23:17:48ID:???
勉強会の資料みたけどトランザクションきっちり必要な用途には向かないみたいね。ブログとかは向くだろうな。

適材適所。

0642nobodyさん2009/12/07(月) 01:51:30ID:???
昨日見つけたんだけどこれはどうなんだろう↓
http://eiichirouchiumi.blogspot.com/2009/11/google-app-engine.html

Acid HouseというGAE/Jのフレームワークで、エンティティグループをまたいでの
トランザクション処理ができるらしい
これが使えるとかなり助かるし、結構画期的だと思うんだけど
0643nobodyさん2009/12/07(月) 11:44:19ID:???
Google App Engine Datastore のアトミック・トランザクションで更新できるのは、1エンティティ・グループだけですよね?ご存知の通り、Google App Engine Datastore では、このような「複数エンティティ・グループをアトミックに更新する」方法がありません。
実は、Low-level API なんかをうまく使って対応する方法が色々とあるんですが、Acid House を使うと、このオペレーションを1トランザクションで行うことができるので、すごく楽です。


だってさ。

LowLevelAPIで何とかなるなら標準でなぜサポートされていないんだろ。
0644nobodyさん2009/12/07(月) 12:27:45ID:???
>>640
なるべくボットっぽくないボットを作って、followerを一杯釣るのにいきがいを感じるのはどうだろうか。

はてぶのホッテントリ(http://b.hatena.ne.jp/hotentry)のURLに対して、
適当にこれまたはてぶのコメントからスターがたくさんついたコメを引っ張ってきて、ちょっと改変してつぶやくとかどうだろうか?

また、なるべくボット臭を消すために、たまにはてブ以外のこともつぶやく。

http://buzztter.com/ja 話題をから拾ってきて適当に発言。〜〜わろた、〜〜てなんだこれ?等
http://twitter.com/now_ から拾ってきて、〜〜なうと発言
http://twitter.com/bombtterhttp://twitter.com/bombtter_long から拾ってきて〜〜爆発しろ!

APIや情報ソースとして使えそうなサービスと連携して時事をつぶやけばいいと思う
0645nobodyさん2009/12/07(月) 12:29:03ID:???
>>644
はてぶホッテントリのURLミスった
http://b.hatena.ne.jp/hotentry
0646nobodyさん2009/12/07(月) 14:29:21ID:???
>>644
なんとなく寂しいな
0647nobodyさん2009/12/07(月) 16:26:13ID:???
lowlevelAPIってどうやったら使えるの
0648nobodyさん2009/12/07(月) 18:25:42ID:???
Javadoc見て感覚で書く
0649nobodyさん2009/12/07(月) 20:03:03ID:???
えっ
パイソンじゃ無理なの?
0650nobodyさん2009/12/07(月) 22:09:43ID:???
>>642だけどソースを見たらどうも駄目っぽい
コミットの途中でクラッシュした時のことが考えられてないし、整合性の問題がある
箇所がいくつもあったり、競合が発生した場合のひどいパフォーマンスとか
とにかく問題が多すぎて、たぶん使ったら大変なことになる
0651nobodyさん2009/12/08(火) 03:17:44ID:???
>>650
>のような「複数エンティティ・グループをアトミックに更新する」方法がありません。
>実は、Low-level API なんかをうまく使って対応する方法が色々とある

「ローレベルAPIならアトミックにできる」とも読めてしまうけど、そういうわけではないってこと?
0652nobodyさん2009/12/08(火) 10:24:42ID:???
例えば銀行口座間の送金をトランザクションを利用した実装にするには残高entityをすべて1つのentitygroupにまとめておく必要があるわけですよね。
するとロック範囲も全体なので並列処理できない。スケールしない。

すると出てくる手法はなにがあるのでしょうか。

分散トランザクションとか2フェーズコミットとか?
ジャーナリングファイルシステムみたいにまず入出金イベントentityを作ってあとから各口座に反映させる?

ちなみに銀行アプリのentitygroupは口座ごとに分けて残高entityをrootにして入出金ログentityを子にするので考えています。


0653nobodyさん2009/12/08(火) 11:13:10ID:???
>>652
BASEトランザクション
・Basically Available
・Soft-State
・Eventual Consistency

ACIDとは、別の概念が、クラウドでは出てきている。
0654nobodyさん2009/12/08(火) 12:49:57ID:???
>>651
そもそもAcid HouseではLow Level APIは使ってない
内部でJDOのPersistenceManagerを複数生成して、それぞれ別のトランザクションを
開始しているんだけど、どうもデータストアが提供するこの機能のことを指して
Low Level APIと言っている気がする

本来のLow Level APIはJDOに比べて速度が速くて自由度が若干高いというだけで
機能自体は変わらないはず
0655nobodyさん2009/12/08(火) 12:51:42ID:???
>>652
Song of Cloudでもその話題を扱ってますね
送金のトランザクション処理パターン
http://songofcloud.gluegent.com/2009/11/blog-post_18.html
分散トランザクション処理の最適化
http://songofcloud.gluegent.com/2009/11/blog-post_24.html
0656nobodyさん2009/12/08(火) 13:40:38ID:???
>>654
>速度が速くて自由度が若干高いというだけで機能自体は変わらない

なるほど、ありがとう
0657nobodyさん2009/12/08(火) 23:18:02ID:???
なんか難しい話になってるな
銀行システムでも造るのか
0658nobodyさん2009/12/09(水) 00:51:34ID:???
>>655
すげーわかりやすかった。さんきゅ。
0659nobodyさん2009/12/09(水) 00:54:51ID:???
>>653
>>655
ありがとうございます。やろうと思えばできるのですね>トランザクション
datastoreはindexが更新されるのに若干タイムラグがあるので
そもそもEventual Consistencyではありますよね。

>>657
課金とかポイントの使用とか
0660nobodyさん2009/12/09(水) 08:54:10ID:???
webアプリすら不慣れであれなんだが、トランザクションてようするにちゃんと2つ以上のDB書き込みを同時に最後まで行うってことを指すのか?
例えば銀行だとAからBに振込んだときに、
A銀行で金減らす、B銀行で金増やす処理をちゃんと途切れずに行うってことで良いのかな
0661nobodyさん2009/12/09(水) 09:31:44ID:???
ひとまとまりでおこなうってことじゃね?
途中でエラー起きた!とかなってもちゃんとその操作を行う前の状態に戻れるように
何したか記録してあるみたいな。
0662nobodyさん2009/12/09(水) 10:12:17ID:???
>>661
それは、ロールバック(UNDO)・セグメントという更新前のジャーナルの概念。
それだけでなく、REDO・ログという更新後のジャーナルの概念と両輪になっている。
ロールバックに対して、ロールフォワードという機能。

ACID特性を、実現するために、UNDO/REDO両方を備えるのが通常。
たくさん更新してコミットしない間は、UNDOセグメントが多く使われちゃう。
0663nobodyさん2009/12/09(水) 15:44:37ID:???
処理の成否に関らず矛盾しちゃダメよってことじゃない?

ところでトランザクションでサポートされてたとしても
通帳的なデータは作ったほうがいいんじゃまいか
0664nobodyさん2009/12/09(水) 16:12:32ID:???
>>660
金曜日の午後3時以降に振り込むと
月曜の午前8時までは
A銀行で金が減って
B銀行にはまだ金が増えない状態になりますが
よろしかったでしょうか?
0665nobodyさん2009/12/09(水) 21:32:15ID:???
>>664
A銀行の予約の勘定に入るよ。
ちゃんと永続性のあるところに落ち着いている。
0666nobodyさん2009/12/09(水) 21:48:58ID:???
>>660
>にちゃんと2つ以上のDB書き込み
板用とスレッド用のDB2つ使った2chのログ鳥アプリ作ってる最中だったからびびった
0667nobodyさん2009/12/09(水) 23:32:49ID:???
1台のmysqlですむならrails、それ意外はGAE。
0668nobodyさん2009/12/10(木) 06:42:01ID:???
ざっくりしすぎだろw
0669nobodyさん2009/12/10(木) 06:53:38ID:???
>>664-665
横から質問なんだが
土日が月末で利息の勘定月だった場合
A銀行の預金の利息は減った金額に対して計算されるのか
それとも減る前の金額に対して計算されるのかどっち?
0670nobodyさん2009/12/10(木) 08:33:36ID:???
普通預金勘定に無いんだから、前者。
06716602009/12/10(木) 22:13:38ID:???
このスレレベル低すぎワロタ
なんか安心したわw

頑張ってGAEで何か作ろう
0672nobodyさん2009/12/10(木) 22:18:13ID:???
レベルの低い質問をしておいてその態度はいかがなものか
0673nobodyさん2009/12/10(木) 23:44:59ID:???
技術だけで勝負するよりも、企業会計原則とか簿記の
からめ手も使って勝負しないと、きついぞ。
変な仕様で作りこんでも、運用できなくて没。
0674nobodyさん2009/12/10(木) 23:48:34ID:???
がんばらなきゃ作れないのも
レベルが低いからなんだけどね
0675nobodyさん2009/12/10(木) 23:59:15ID:???
>>673
最近どんどんそんな感じになってるよね。
技術の敷居が下がってきてる気がする。
業務知識とかアイデアと器用さがあれば充分みたいな。
0676nobodyさん2009/12/11(金) 01:04:36ID:???
>>675
高級言語PGの方向性ってそういうもんでしょ。
0677nobodyさん2009/12/11(金) 02:13:49ID:???
そだね、昔は技術だけで食えたから細かい技術が生き甲斐みたいな感じだった。
幸せだった。
0678nobodyさん2009/12/11(金) 08:08:14ID:???
一概には言えないけど、技術のハードルが下がるのはいいことだと思う。
いろんな人が触れることでいろんなものが生まれる。
0679nobodyさん2009/12/11(金) 08:49:26ID:???
方向性的には
「アレやっといて」でコンピュータがなんでもしてくれる理想の世界
に向いているわけだから正しい進化だよね。
0680nobodyさん2009/12/11(金) 09:09:58ID:???
でなかったら車なんか運転できないもんな
0681nobodyさん2009/12/11(金) 12:14:25ID:???
でも低級(言葉合ってる?)言語メンテ出来る人材も育てないと将来困りそう。
0682nobodyさん2009/12/11(金) 13:22:25ID:???
そういう人は大学で純正培養されてしかるべき企業に就職してしかるべき物作ってるしなぁ。
いっちまえばGAEとかもそういうもんだしね。
0683nobodyさん2009/12/11(金) 14:22:50ID:???
>>682
なら問題なしか・・・。
0684nobodyさん2009/12/11(金) 15:29:26ID:???
>>682
Googleも、金も人も出すといって
Apache Software Foundationに、支配下の人を出向させて
動くものができたら、持ち帰らして、製品に仕上げるみたいな感じかな。

BigTableも、Apacheの実装が先で、クラウドで動くシロモノに仕上げたのはGoogle。
いろんな業者のJavaAPサーバも、Apache(Web)やTomcat(AP)のエンジン使って
付加価値つけて、サポート料とるビジネスモデルだしね。

LinuxやEclipseも、Apache Software Foundationに似たしくみをもっている。
0685nobodyさん2009/12/11(金) 16:02:29ID:???
だから企業でほぼOSS参加のみなのに給料貰える人がいるわけか
0686nobodyさん2009/12/11(金) 20:32:45ID:???
GoogleのBigTableより先にあったApacheの実装ってなに?
Hbase?
0687nobodyさん2009/12/11(金) 23:41:12ID:???
JNDIでスケールアウトできるDerbyやXindiceとN-gramで行き詰って死の谷に行って。。。
MapReduce・BigTableみたいな考えが出てきたんじゃないかな?
IBMが、XML-DBにリソース突っ込んだ後、今はHbaseに肩入れしている。

Hbaseを発表される前に、Googleは自分の実装完成させちゃった。
06886872009/12/11(金) 23:55:28ID:???
IBMやOracleが欲っていたものは、並列検索であって、
クラウドではなかったんだと思うのだ。
0689nobodyさん2009/12/12(土) 00:24:40ID:???
トランジャクソンなんて
失敗したときとかバグったときに
銀行が損しない方向に倒しておけば良いんだよ
0690nobodyさん2009/12/12(土) 00:27:06ID:???
聞いたかい、マイケル!こいつは傑作だよ!HAHAHAHAHA
06916602009/12/12(土) 12:44:15ID:???
トランジャクソン・ムーンウォーカー
0692nobodyさん2009/12/12(土) 20:55:46ID:???
マイコーは機械になりたがっていたからな
今頃どこかのサーバに憑依しているのだろう
0693nobodyさん2009/12/20(日) 00:18:42ID:???
1.3.0でJRubyかPythonより速くなったて本当?

Twitter / SASAKI TAKERU: @ashigeru 約5倍でした。http://bi ...
http://twitter.com/urekat/status/6755177508

GAE/JRubyが速くなった? - urekatのスカンク日記3
http://d.hatena.ne.jp/urekat/20091216/1260942825

GAE/JRubyのCPUコストは10000pv/$0.12 - urekatのスカンク日記3
http://d.hatena.ne.jp/urekat/20091212/1260583942
0694nobodyさん2009/12/20(日) 01:42:38ID:SZMMX2fQ
JRubyでそうなんだから
Javaの方が糞速いってことか
パイソンって一体・・・
0695nobodyさん2009/12/20(日) 01:53:32ID:???
JavaがLLより遅かったら存在価値なくなるだろ
0696nobodyさん2009/12/20(日) 09:39:24ID:???
それもそうだが LL on Java の方がネイティブ LL より速いってのはちょっとね。
Jython の方がネイティブ Python より速かったら笑えるな。
0697nobodyさん2009/12/20(日) 10:14:13ID:???
>>694
>>693の一番下、1.3.0の前の記事だけどそれにしてもJava速過ぎるw
JRubyがPythonに追いついたけど、それ以前にJavaが数倍速くてワロタ
0698nobodyさん2009/12/20(日) 10:44:55ID:???
Jythonもネイティブに近い気がするな。。
Unladen Swallowがうまくいった場合に今後どれくらい速くなるかは気になる。
0699nobodyさん2009/12/20(日) 11:13:29ID:???
Jythonの方がネイティブより速いってことはありえないだろ。
もしそうなら何かがおかしい。
0700nobodyさん2009/12/20(日) 15:22:24ID:???
こんなん作ってみた
ttp://www.degifo.com/

作った感想
•作りたい物が決まってて機能的にGAEで実現できるならインフラ考えずに開発に集中出来るので楽
•バージョンアップのタイミングで平気で動かなくなるので遊びでしか使えない
•自分でExpireの設定とかしないと画像とか多いと大したPV無いのにあっと言う間に下り転送量が無料の範囲超える
•GAEの画像操作のサービス、圧縮率を操作できない。画像の縦横サイズを小さくしても無駄に容量がデカい。
0701nobodyさん2009/12/20(日) 15:23:46ID:???
このスレ頭の方で暗黙の了解で話題はPythonに限るみたいな雰囲気出してたのに、すっかりJavaですか。
Python人気ねーなぁ。
0702nobodyさん2009/12/20(日) 15:40:22ID:???
ぐぐって出てくる記事もjavaが多くなったな
0703nobodyさん2009/12/20(日) 16:52:35ID:???
>>700
せっかくさらしてくれたので質問!

・下り転送量うんぬんということは、画像はDataStoreにつっこんでだってことですか?
・> バージョンアップのタイミングで平気で動かなくなるので遊びでしか使えない
マジスカ!?1.3にうpされたときの話?
・開発言語やフレームワークを教えてください!Java or Python, Django or Slime3 etc...
0704nobodyさん2009/12/20(日) 16:53:26ID:???
>>703
でてるappengineの書籍も軒並みJavaみたいだし・・・
0705nobodyさん2009/12/20(日) 17:19:44ID:???
>>699
javaは実行中にも最適化されるんだよ
激しく繰り返される処理は最終的にネイティブになるとか聞いたことがある
うそかもしれんが
0706nobodyさん2009/12/20(日) 17:29:33ID:???
>>705
それただのHotSpot
0707nobodyさん2009/12/20(日) 17:52:31ID:???
すまん、jythonの勉強からやり直してくる
0708nobodyさん2009/12/20(日) 18:33:01ID:???
>>703
画像はDataStore。
静的ファイルじゃないから、GAEがよきに計らってくれず自分でリクエストヘッダ見て304返してる。

1.3の前にもしれっとメール受信の仕様が変わってた。

JavaとGWTで作ってる。
0709nobodyさん2009/12/21(月) 01:06:07ID:???
未だに動かなくなるのか
ダウンタイムの履歴が見られるとこないの?
0710nobodyさん2009/12/21(月) 15:16:35ID:???
>>700
>>バージョンアップのタイミングで平気で動かなくなるので遊びでしか使えない

自分で開発環境をバージョンアップさせて、それをアップしたら一部動かなくなったってことだろ?
それって GAE 関係なくね?
0711nobodyさん2009/12/21(月) 17:53:59ID:???
>>708
>画像はDataStore。
>静的ファイルじゃないから、GAEがよきに計らってくれず自分でリクエストヘッダ見て304返してる。

たしかに、これくらいはGAE側で用意してくれてもいい機能だよな。
アップロードしたファイルをファイルシステムに保存できないんだから。
0712nobodyさん2009/12/22(火) 00:28:54ID:???
内部仕様を勝手に変えられて動かなくなるってことだろう
0713nobodyさん2009/12/22(火) 03:23:38ID:???
動かなくなったって、何か特殊なことやってるのかな。
1年以上前に書いてほとんどいじってないのを、今も普通に使ってるが。
0714nobodyさん2009/12/22(火) 07:52:51ID:???
うーん確かに
どの辺が勝手に変えられるのか書いてもらえるとありがたい
0715nobodyさん2009/12/22(火) 08:11:51ID:???
sdkのバージョンアップで
デフォルト値が変わったってのは見たことあるお
0716nobodyさん2009/12/22(火) 10:46:01ID:???
>>708
ありがとう
実際にサービス動かしている人いると参考になります
0717nobodyさん2009/12/22(火) 10:51:38ID:???
画像のストレージとしてPicasa使う方法見つけてきた。
GAEとPicasaでfaviconをPNGに変換して保存するAPIを作成する - Pyro Memo
http://d.hatena.ne.jp/piro_suke/20091204/1259860192


こんな感じではてなフォトライフ(180円/月で3GB/月までOK)使うとかw
いろいろ応用できそうなもんだが

Picasaの値段はこちらにあった
機能 : 容量のアップグレード - Picasa ヘルプ
http://picasa.google.com/support/bin/answer.py?hl=jp&answer=39567


え?amazon S3?安いん?
0718nobodyさん2009/12/22(火) 17:41:30ID:???
はてななんか使う奴の気が知れねえ
0719nobodyさん2009/12/22(火) 19:45:59ID:???
サーセン
0720nobodyさん2009/12/23(水) 06:18:27ID:???
movatwitterとかで投稿できる写ツがはてなフォトライフ利用してる。
あれwebサービスから利用してよかったのかw
0721nobodyさん2009/12/23(水) 08:59:50ID:???
Google App Engine実践リファレンス
http://gihyo.jp/book/2010/978-4-7741-4127-5
0722nobodyさん2009/12/23(水) 13:55:05ID:???
これは容量無制限

http://jp.zooomr.com/

どうじゃんご?
0723nobodyさん2009/12/23(水) 15:23:16ID:???
質問です。

GAE JavaのDevAppServerって、もしかして外から繋げられないって仕様ありますか?
coLinuxに入れてみたんですが、ホストマシン(Windows)からどうしても繋げなくて困ってます。

Railsなどは同じポートで動かしてつなげたことがあるので、coLinux側の問題ではないと判断しています。
また、内側からはw3mでページが見られることを確認しています。
■ このスレッドは過去ログ倉庫に格納されています