1 名前:nobodyさん mailto:sage [2011/04/12(火) 17:54:29.62 ID:???] Google App Engine code.google.com/appengine/ ■過去スレ Google App Engine pc11.2ch.net/test/read.cgi/php/1207754942/ Google App Engine 2アプ目 pc11.2ch.net/test/read.cgi/php/1243654802/ Google AppEngine 3アプ目 hibari.2ch.net/test/read.cgi/php/1267057923/ ■リンク集 はてなブックマーク b.hatena.ne.jp/t/gae b.hatena.ne.jp/t/Google%20App%20Engine Delicious delicious.com/popular/gae delicious.com/popular/googleappengine ■参考サイト App Engine ギャラリー appgallery.appspot.com/ ドキュメント code.google.com/appengine/docs/python/overview.html
77 名前:nobodyさん mailto:sage [2011/04/30(土) 18:13:36.18 ID:???] あれー、static_dirとして指定したパスにあるファイルをgetメソッドで取ろうとしたら、 Last-Modifiedヘッダがついてないんだけど、そんなもの? このヘッダがないから、毎回ダウンロードするはめになって、通信量がもったいないんだけど。
78 名前:nobodyさん mailto:sage [2011/04/30(土) 18:22:22.85 ID:???] >>77 これは昔からの仕様みたいだな。 ttp://code.google.com/p/googleappengine/issues/detail?id=368 ここを見る限り、2008年5月にissueが登録されて、2011年4月には「SDK1.4.3でも直ってないぞ」と言われてる。 うわ、GAEいけてねーな。タイムスタンプ考慮してくれないんだったら、static_dirの価値はあんまりないな。
79 名前:nobodyさん mailto:sage [2011/04/30(土) 19:10:21.71 ID:???] ETagは吐いてるっぽい
80 名前:nobodyさん mailto:sage [2011/05/01(日) 04:26:14.86 ID:???] Eclipse/pyでデプロイしてたら静的コンテンツ置いてるディレクトリに対して warning: Not importing directory '\workspace\app_name\src\stat': missing __init__.py なんて出たんだけど、__init__.pyってどんなディレクトリにも置かないといけないものなの?
81 名前:nobodyさん mailto:sage [2011/05/01(日) 06:07:13.84 ID:???] >>80 >warning: Not importing directory '¥workspace¥app_name¥src¥stat': missing __init__.py workspace¥app_name¥src が、Pythonの検索パス sys.path に含まれてて、 かつどっかで import stat とかやってるんだろ。 静的コンテンツを置くフォルダ名を変えてみるか、import statしている箇所を探してなんとかするか。
82 名前:nobodyさん mailto:sage [2011/05/01(日) 13:06:04.95 ID:???] 教えてください。 q = db.GqlQuery( "SELECT * FROM UserAgent Where Carrier='DoCoMo'" ) if q.count() >= 1 これ以外にデータがあるかどうかの判定はできませんか? この方法だとデータを一回ループするのに等しいと書いてあったので if q: これだとオブジェクトは帰ってきてるらしいのでいつでもTrueです。
83 名前:nobodyさん mailto:sage [2011/05/01(日) 13:16:38.10 ID:???] >>82 code.google.com/intl/ja/appengine/docs/python/datastore/gqlqueryclass.html if q.get():
84 名前:nobodyさん mailto:sage [2011/05/01(日) 13:37:20.94 ID:???] >>82 limitをつければいいんじゃないかな。 あとGoogle的には,キャリアごとにデータが存在するかどうかを表したモデルを用意するのが定石じゃないかな。 class CarrierName(Model): name = Property('String') だけのモデルを用意して、UserAgentエンティティを保存する時にCarrierNameも更新する。
85 名前:nobodyさん mailto:sage [2011/05/01(日) 14:06:24.02 ID:???] >>83 あ、なるほど、limi 1 って一個取得したらループ抜けてくれるんですね。なるほど! >>84 ありがとうございます。参考になりました。
86 名前:nobodyさん mailto:sage [2011/05/02(月) 12:30:00.47 ID:???] アプリケーションのルートディレクトリって、どうやって取得するんだっけ? 今は os.path.dirname(__file__) とかしてるんだけど、これだとファイルの位置を 変えるとうごかなくなるから、もっとうまい方法を知りたい。
87 名前:nobodyさん mailto:sage [2011/05/02(月) 15:06:04.49 ID:???] >>81 >静的コンテンツを置くフォルダ名を変えてみるか で対応した。解決したら原因別にどうでもいいや。
88 名前:nobodyさん mailto:sage [2011/05/02(月) 16:27:49.14 ID:???] 疑問をどうでもいいやで放置していく習慣をもったエンジニアは伸びないね。経験上。
89 名前:nobodyさん mailto:sage [2011/05/02(月) 16:44:35.67 ID:???] Pythonを流行らせたかったGoogleさんは出来ればPythonのバージョンの選択肢も増やして欲しかった
90 名前:nobodyさん mailto:sage [2011/05/02(月) 16:56:46.37 ID:???] >>89 増やさなくてもいいけど、最初から2.5じゃなくて2.6にしてほしかった。 AppEngine公開当時ですでに2.6はリリースされてたんだし。
91 名前:nobodyさん mailto:sage [2011/05/02(月) 17:43:03.27 ID:???] 2.xと3.xの選択肢を作ってもらいたい ていうかRubyもPHPも正式に対応してファイルの書き込みも出来るようにしてくれよ azureに負けちゃうよ
92 名前:nobodyさん mailto:sage [2011/05/02(月) 19:52:47.24 ID:???] >>91 azureの利点を詳しく
93 名前:nobodyさん mailto:sage [2011/05/02(月) 20:08:40.35 ID:???] wordpressが動くこと
94 名前:nobodyさん mailto:sage [2011/05/02(月) 20:28:19.55 ID:???] >>93 それはたしかに大きい! でもwordpressならazureじゃないほうがよくね?
95 名前:nobodyさん mailto:sage [2011/05/02(月) 21:47:45.46 ID:???] GAEは無料なのが良いんじゃないの?
96 名前:nobodyさん mailto:sage [2011/05/02(月) 22:43:34.20 ID:???] Visual studioで開発できるのはうらやましい
97 名前:nobodyさん mailto:sage [2011/05/02(月) 22:44:54.48 ID:???] PyDevがあるでしょ
98 名前:nobodyさん mailto:sage [2011/05/03(火) 00:00:12.50 ID:???] いやらしいようないやらしくない響き
99 名前:nobodyさん mailto:sage [2011/05/03(火) 00:08:33.35 ID:???] パイデブ
100 名前:nobodyさん mailto:sage [2011/05/03(火) 00:13:13.92 ID:???] PyPyやpypanはどうなる。とうてい声に出して言いたいとは思わない
101 名前:nobodyさん mailto:sage [2011/05/03(火) 01:46:09.39 ID:???] >98 PyPI!PyPI!!
102 名前:nobodyさん mailto:sage [2011/05/03(火) 01:52:51.88 ID:???] Deployすると動かない。 全く表示されないから手がかりがつかめないや
103 名前:nobodyさん mailto:sage [2011/05/03(火) 05:56:38.40 ID:???] >>102 logging入れまくれ
104 名前:nobodyさん mailto:sage [2011/05/03(火) 11:59:09.47 ID:???] >>102 appengine.google.com/ にログインしてアプリケーションを選ぶと 管理画面になるから、そこからエラーのログを見てみたら?
105 名前:nobodyさん mailto:sage [2011/05/03(火) 13:12:41.73 ID:???] key_name に指定出来る文字列の最大長っていくつですか?
106 名前:nobodyさん mailto:sage [2011/05/03(火) 15:13:27.31 ID:???] こんなサービスが無料だなんて、 広告付けるタイプの無料レンタルサービスは潰れちゃうんじゃないの。
107 名前:nobodyさん mailto:sage [2011/05/03(火) 15:59:58.77 ID:???] それGAE使ってから言ってる?
108 名前:nobodyさん mailto:sage [2011/05/03(火) 16:38:50.39 ID:???] mysqlかpostgresqlが使いたい azureでは使えるのに
109 名前:nobodyさん mailto:sage [2011/05/03(火) 16:39:33.74 ID:???] >>106-107 GAEのサービスが始まってから何年も経ちますが 広告付けるタイプの無料レンタルサービスは潰れましたか?
110 名前:nobodyさん mailto:sage [2011/05/03(火) 23:02:37.60 ID:???] >103 >104 文字コードの宣言の位置が変な所にあった。 すみません。
111 名前:nobodyさん mailto:sage [2011/05/04(水) 00:33:44.50 ID:???] >>110 あやまるのはいいから、それをどうやってみつけたかを報告するのだ
112 名前:nobodyさん mailto:sage [2011/05/04(水) 01:19:05.93 ID:???] >111 #!-*- coding:utf-8 -*- を一番上にちゃんと持って来てなかったのが原因でした。
113 名前:nobodyさん mailto:sage [2011/05/04(水) 01:30:24.09 ID:???] >>112 いやだからどうやってみつけたかをきいているんだがつうじてないようだ
114 名前:nobodyさん mailto:sage [2011/05/04(水) 02:04:13.16 ID:???] 他のコード見比べたりとかじゃだめ?
115 名前:nobodyさん mailto:sage [2011/05/04(水) 09:40:51.27 ID:???] Prerelease SDK 1.5.0 available for download - Google App Engine | Google Groups groups.google.com/group/google-appengine/msg/ac6accdf8e5096f4
116 名前:nobodyさん mailto:sage [2011/05/04(水) 10:16:35.76 ID:???] >>115 そこにでてくる Federated Users ってなに? あと Metadata queries も何のことかわからない。教えて。
117 名前:nobodyさん mailto:sage [2011/05/04(水) 10:31:45.70 ID:???] eclipseが重いからテキストエディタだけで作業したいんだけど プロジェクト作成する時とアップロードする時だけeclipse起動するのが面倒くさい 全てテキストエディタで完結できればな
118 名前:nobodyさん mailto:sage [2011/05/04(水) 11:01:58.38 ID:???] >>117 アップロードはappcfg.pyでやれよ
119 名前:nobodyさん mailto:sage [2011/05/04(水) 11:30:51.38 ID:???] なんでpythonなのにeclipse使ってるの?
120 名前:nobodyさん mailto:sage [2011/05/04(水) 13:05:25.85 ID:???] だめ?
121 名前:nobodyさん mailto:sage [2011/05/04(水) 13:09:53.49 ID:???] 逝ってよし
122 名前:nobodyさん mailto:sage [2011/05/04(水) 13:59:53.86 ID:???] ダメじゃないけど、 >>117 が今までeclipseを使ってた理由がわからないな
123 名前:nobodyさん mailto:sage [2011/05/04(水) 14:42:00.45 ID:???] メジャーなのはCotEditorとか?
124 名前:nobodyさん mailto:sage [2011/05/05(木) 14:08:23.22 ID:???] GQLのクエリの長さってどれくらいが限度か情報ありませんか? 親の検索条件に子条件を無限数設定できるようにしたのですが、どこらへんで止まるでしょうか? ご存じの方教えてください
125 名前:nobodyさん mailto:sage [2011/05/05(木) 15:15:31.56 ID:???] django nonrel使ってる人居ます?
126 名前:nobodyさん mailto:sage [2011/05/05(木) 16:24:51.30 ID:???] >>124 クエリの長さっていうのが、単にGQL文字列の長さのことをいっているのであれば、制限はないと思う。 ただし、 ttp://code.google.com/intl/ja/appengine/docs/python/datastore/queriesandindexes.html によると > != および IN 演算子を含む単一のクエリのサブクエリは 30 個に制限されます。 とあるから、指定可能な検索条件は最大で30個 (!=やINを含むとそれ以下)なんじゃなかろうか。
127 名前:nobodyさん mailto:sage [2011/05/05(木) 16:27:07.06 ID:???] class Foo(db.Model): x = db.StringProperty() y = db.StringProperty() とあったとき、 Foo.all().filter('x =', 10) のような指定はできますが Foo.all().filter('x = y') のような指定はできないでしょうか。
128 名前:nobodyさん mailto:sage [2011/05/05(木) 16:31:58.83 ID:???] >>126 ありがとうございます。 その制限は把握していたのですが、ANDをいくつくっつけられるかっていのは制限がなく 検索時間とかで制限受けるのでしょうかね? 検索条件が可変長なので作ったら結果がわかるのでまたお知らせします。
129 名前:nobodyさん mailto:sage [2011/05/05(木) 16:45:40.54 ID:???] >>127 自前でフラグを用意するしか方法はないんじゃない? 既存のデータにフラグを追加するのはMapper API使えば簡単にできるよ
130 名前:nobodyさん mailto:sage [2011/05/05(木) 20:55:09.96 ID:???] モデルオブジェクトのsetterでフックをしかけることはできますか。 class Foo(db.Model): val = db.StringProperty(validator=func) のように、バリデーション用関数を指定できますが、これはあくまで値が 正しいかどうかを検証するためのものでしかありません。 そうではなく、たとえば obj.val = "FooBar" print obj.val #=> 'foobar' のように、値を自動的に変更するようなことがしたいです。
131 名前:nobodyさん mailto:sage [2011/05/05(木) 22:01:45.16 ID:???] propertyでやれば? www.python.jp/doc/release/library/functions.html#property
132 名前:nobodyさん mailto:sage [2011/05/06(金) 11:07:06.12 ID:???] gae+twitterで面白いサイトって作れるの?
133 名前:nobodyさん mailto:sage [2011/05/07(土) 01:17:38.91 ID:???] >>132 TwitBOTをRSS的使い方するくらいしか思いつかんなぁ ユーザ生成コンテンツを利用する前提ならもっとあるだろうな
134 名前:nobodyさん mailto:sage [2011/05/07(土) 01:27:14.80 ID:???] botのcronのためだけにgaeを使う方法を解説してるページが多い。
135 名前:nobodyさん mailto:sage [2011/05/07(土) 10:34:47.57 ID:???] >>131 モデルオブジェクトではすでにプロパティが使われているので、それに重ねてプロパティを設定する方法はありますか。 自分で調べた限りではありませんでした。 class Foo(db.Model): val = db.StringProperty() # ← これがすでにプロパティになっている
136 名前:nobodyさん mailto:sage [2011/05/07(土) 12:09:39.13 ID:???] ドキュメントルートの外にファイルを置くというのは WEB-INF以外の場所にファイルを置くという認識で大丈夫ですか?
137 名前:nobodyさん mailto:sage [2011/05/07(土) 12:32:11.10 ID:???] こっちはPythonスレですよ
138 名前:nobodyさん mailto:sage [2011/05/07(土) 21:35:02.90 ID:???] pythonで作った場合はWE-INFってないの?
139 名前:nobodyさん mailto:sage [2011/05/08(日) 00:34:33.50 ID:???] >>132 twitlogがGAE使ってたはず
140 名前:nobodyさん mailto:sage [2011/05/10(火) 00:49:00.23 ID:???] ゴミみたいなBOTはノイズ
141 名前:nobodyさん mailto:sage [2011/05/10(火) 15:43:44.63 ID:???] GQLの結果セットのマージの仕方を教えてください gqlobjA = modelA.gql("WHERE a = 'A'") gqlobjB = modelA.gql("WHERE b = 'B'") こうやって取得したGQLオブジェクトをマージしたいです OR連結と同じ結果が取得したいので重複値を取り除きながら結合するにはどうしたらいいでしょうか?
142 名前:nobodyさん mailto:sage [2011/05/10(火) 22:14:35.10 ID:???] >>141 よくわかんないけどPythonのset()を使って和集合をとるというのはどうだろうか。 set(list1) | set(list2) でlist1とlist2のどちらかに含まれる要素をもつ、新しいsetができる。
143 名前:nobodyさん mailto:sage [2011/05/10(火) 22:21:11.58 ID:???] 同じエンティティが同じオブジェクトとは限らないだろうから key()で比較するしかなさそう
144 名前:nobodyさん mailto:sage [2011/05/11(水) 00:37:08.23 ID:???] >>142 なるほど、これでいけるかも知れないですね・・・コードは簡略になります。 >>143 for b in dataset:a for t in datasetb: if t.key() == b.key(): break else: datasetb.append(b) こういう感じですかね? ORがないのでこういう処理は結構あるとおもうのですが簡単に見つかりませんね。 ありがとうございました。 両方テストしてみます。
145 名前:nobodyさん mailto:sage [2011/05/11(水) 05:49:24.45 ID:???] >>144 のコードは効率が悪いからsetを使うべき for t in datasetb: if t.key() == b.key(): break というのはdatasetbの長さぶんだけ繰り返しを行うので時間がかかるが setを使えばこの部分が一瞬で終わる。
146 名前:nobodyさん mailto:sage [2011/05/11(水) 09:24:14.06 ID:???] >>145 setでやってみます
147 名前:nobodyさん mailto:sage [2011/05/11(水) 21:12:58.30 ID:???] support Go language!
148 名前:nobodyさん mailto:sage [2011/05/13(金) 06:27:45.92 ID:???] 751 名前:nobodyさん[sage] 投稿日:2011/05/12(木) 02:45:16.19 ID:??? googleappengine.blogspot.com/2011/05/year-ahead-for-google-app-engine.html www.google.com/enterprise/appengine/appengine_pricing.html 課金モデルが変更されるのか CPU時間からインスタンス時間へ変更 無料枠(per day)は下記の通りに変更される (旧)6.50 CPU時間 (新)24 インスタンス時間 Always On($0.30/day)から Reserved Frontend Instances($0.05 / hour)プランに変更 (旧)月当たり9ドル($0.30/day * 30 day = $9) (新)月当たり36ドル($0.05/ hour * 24 hour * 30 day = $36) ? ※Always Onは3インスタンス常時起動で、新プランが1インスタンス常時起動の価格だとすれば、Always On相当にするにはこの3倍、約108ドル必要?) よく内容を精査していないから分からないが、改悪っぽいのかな? 公式ブログに寄せられたコメントは「残念だ、がっかりした、嫌だ、反対だ」だらけ(笑 752 名前:nobodyさん[sage] 投稿日:2011/05/12(木) 05:47:12.83 ID:??? 外人さんの悲痛な叫び I have a dev app that uses currently about 40cpu hours a day, has ~16 active instances on average and serves ~7.5 requests/second. Right now I am paying ~120$ a month. (俺は現在、1日当たりおよそ40CPU時間、平均16のアクティブなインスタンス、7.5リクエスト/秒 くらいのアプリケーションを運用していて、ひと月あたり120ドル払ってる。) With the new pricing model I would have to pay for the instances alone ~921.6$ a month. For api usage about 200$ and the base fee of 9$ thats summerized 1130.6$ or in other words a price change of 942%. Thats immoral and illegal for a good reason in most european countries. (新しい課金モデルで計算しなおすと、インスタンスだけで月921.6ドルも払わなきゃいけなくなる。 API使用料は約200ドルで、基本使用料が9ドルだから、総額1130.6ドル、別の言葉で言い表すと942%の増額だ。 これは多くのヨーロッパの国々で、不道徳かつ違法となる十分な理由になるぜ。)
149 名前:nobodyさん mailto:sage [2011/05/14(土) 14:31:21.23 ID:???] from google.appengine.ext import db obj = db.get(db.key('aaa')) とすると AttributeError: 'module' object has no attribute 'key' となります。 import のやり方が悪いのでしょうか? obj = db.get('aaa') でも動くのですが公式に乗ってるやり方でエラーがでるので気持ち悪いです。
150 名前:nobodyさん mailto:sage [2011/05/14(土) 14:32:50.03 ID:???] 値上が違法? Oracleとか末代まで恨まれるだろうな
151 名前:nobodyさん mailto:sage [2011/05/14(土) 14:41:16.33 ID:???] >>149 db.keyじゃなくてdb.Key
152 名前:nobodyさん mailto:sage [2011/05/14(土) 14:52:54.27 ID:???] ああああああ orz ありがとうございました
153 名前:nobodyさん mailto:sage [2011/05/16(月) 21:56:03.50 ID:???] つまらない一発ネタのWEBサービスいくつか作って遊んでたけど、結局googleの手の上で あそばされていただけと思ったら急にむなしくなった。
154 名前:nobodyさん mailto:sage [2011/05/17(火) 07:52:40.52 ID:???] ここまでPythonやる気にさせといてハシゴ外された…
155 名前:nobodyさん mailto:sage [2011/05/17(火) 11:30:54.99 ID:???] <input type="checkbox" name="prefselect" value="東京" selected/> <input type="checkbox" name="prefselect" value="埼玉"/> <input type="checkbox" name="prefselect" value="千葉" selected/> self.request.getを使って東京都千葉を取得する方法はありますか? request.POST.getlist("prefselect") これだと思ってたらリファレンスにありません
156 名前:nobodyさん mailto:sage [2011/05/17(火) 11:49:48.75 ID:???] 試してないけどrequest.POST.getall("prefselect")かな? pythonpaste.org/webob/reference.html#query-post-variables
157 名前:nobodyさん mailto:sage [2011/05/17(火) 12:35:17.64 ID:???] >>156 あれ・・・WebObさんの中にいらっしゃいましたか・・・ grepかけただけで諦めちゃいけませんね ありがとうございました
158 名前:nobodyさん mailto:sage [2011/05/17(火) 21:29:10.55 ID:???] >>154 Goやろうぜ!
159 名前:nobodyさん [2011/05/17(火) 23:26:04.26 ID:7/0cbQ2l] PythonとJavaとどっちでやるのがいいん? PythonでもEclipseでローカルサーバのテストからデプロイまで支援があるの?
160 名前:nobodyさん mailto:sage [2011/05/17(火) 23:30:39.94 ID:???] 残念ながらPythonは…
161 名前:nobodyさん mailto:sage [2011/05/17(火) 23:44:57.93 ID:???] 値上げかあ。 1インスタンスだけなら24時間上げっぱなしでも無料ということだよね。 そんなにアクセスのあるサイトじゃなければ、1インスタンスでもけっこういけるんじゃないかと思うけど、どう? インスタンス数って自分で制限できるのかな。
162 名前:nobodyさん mailto:sage [2011/05/18(水) 01:23:41.89 ID:???] Python Java Goそれぞれのメリットデメリットを教えてください
163 名前:nobodyさん mailto:sage [2011/05/18(水) 08:22:02.53 ID:???] 課金だと基本料金で月9ドルかかるのか 激安鯖なら年間料金だぞ
164 名前:nobodyさん mailto:sage [2011/05/19(木) 07:18:02.59 ID:???] twitter.com/higayasuo/statuses/70732476959559680 higayasuo (higayasuo) Python 2.7 on appengineでconcurrent requestsをサポートするらしい。 その作業が終わるまではpythonのインスタンスあたりのコストはJavaの半分になるようだ #gaeja
165 名前:nobodyさん mailto:sage [2011/05/19(木) 09:54:52.72 ID:???] Javaだとマルチスレッド化でインスタンス数をかなり減らせるらしいね pythonはゴミ決定
166 名前:nobodyさん mailto:sage [2011/05/19(木) 10:12:01.82 ID:???] ん?気づかないうちにマルチスレッド使えるようになったん?
167 名前:nobodyさん mailto:sage [2011/05/19(木) 23:51:07.62 ID:???] どんなものかと思って初めてアプリ上げてみた。意外に簡単にできるんだな。 でもアイデアがない。
168 名前:nobodyさん mailto:sage [2011/05/21(土) 02:50:17.57 ID:???] なんか面白いネタない?
169 名前:nobodyさん mailto:sage [2011/05/21(土) 03:04:32.71 ID:???] ない。
170 名前:nobodyさん mailto:sage [2011/05/21(土) 10:31:33.90 ID:???] GQLから得たクエリオブジェクトから目的の列だけ選んだ辞書配列を作りたいです。 tbl = [fieldA,fieldB for fieldA,fieldB in modelA]
171 名前:nobodyさん mailto:sage [2011/05/21(土) 10:38:21.26 ID:???] tbl = [prop for prop in modelA if prop.fieldA == 'hoge']
172 名前:nobodyさん mailto:sage [2011/05/23(月) 07:54:57.53 ID:???] 誰か新しい料金体系について日本語でまとめてください
173 名前:nobodyさん mailto:sage [2011/05/23(月) 12:37:14.51 ID:???] 「タダより高い物はない」
174 名前:nobodyさん mailto:sage [2011/05/24(火) 11:17:50.30 ID:???] appcfg.py update の 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. これって、なんで何度もチェックしてるの?
175 名前:nobodyさん mailto:sage [2011/05/24(火) 17:32:12.20 ID:???] >>172 今までの約10倍の値上げ 有料プランは、月々9ドル必ずかかる 無料プランは使い物にならない 結論 GAE終了
176 名前:nobodyさん mailto:sage [2011/05/24(火) 22:05:44.86 ID:???] 確かにいまさらで考えてみると、今までの条件は美味しすぎたな 一応うたい文句的には完全に無料で月間約500万ページ ビューに対応できるってんだろ 結局得したのはアーリーアダプターである程度稼げた奴か
177 名前:nobodyさん mailto:sage [2011/05/24(火) 23:02:00.02 ID:???] 無料で提供される玩具としては最高だったけどな 他の会社が追随しないところを見ると、やっぱり利益度外視だったのだろう