Google App Engine for java
■ このスレッドは過去ログ倉庫に格納されています
>>170
Javaの範囲だとどういうインプリがいいのかな、と。
自分の場合、ネットから持ってきたんですが
こんなコードです。
public static String htmlspecialchars ( String str )
{
String ret_val = new String(str);
String[] escape = {"&", "<", ">", "\"", "\'", "\n", "\t"};
String[] replace = {"&", "<", ">", """, "'", "<br>", " "};
for ( int i=0; i < escape.length; i++ )
{
ret_val = ret_val.replace(escape[i], replace[i]);
}
return ret_val;
} >171
最速求めるんだったら、あらかじめ置換しとけば?
置換するのに時間食うんだったらCron使えば?
て言い出したらきりないよ
性能、環境、実装の制限等が分からん限り、何が最速のコードになるかわからんよ
真面目にシリアライズするのが面倒でObjectOutputStreamとZipOutputStreamでser.zipとして
BLOBに保存してるが、得に不満はなかった。 >>171
Stringをbyte[]にして低レベルな操作するのが早い。
特に\n => <br/>みたいに文字数が長くなる場合に
バッファの確保を1回で終わらせるのが良い。 GAEのEC2に対する利点って窓口が開き続けていて、アクセス頻度が低ければ無料という点にあると思う。
Low Level APIは実は罠で、最初からJPAあたりで移植性を重視すれば未だにスモールスタートの雄なんじゃないかと。
つまり最初はGAEとIaaSで動くように開発して、ビジネスになったらEC2なりで好きに継続開発すればいい。 遊びでやってる程度だが、制約なんて基本的にはJOINが出来ないのと不等号条件が同時に複数の列で使えないくらいだろ いやいや() ですって
お前が使いこなせないだけだろ 最近デプロイがやたら遅いし固まるんですけど何か対策ありますか?
20分間隔のキューを10本走らせてますが…それにぶつかると重くなるんでしょうか
使ってないバックエンドはデプロイしないようにしてます DIってシステムプロパティに書けば良かったんだなって最近気付いた >>173
これ作った人すごいね。
このコードじゃなくてslim3全体ね。
何者なんだろう。 たまには『寄生・不正・捏造・自作自演・買収・なりすまし・脅し』なしで、
正々堂々と勝負してきて下さい韓国人のみなさん。
>【国際】スイーツの世界大会で韓国が日本に対して妨害行為 「我々は日本だけには負けたくないんだよ」
>韓国人が世界中の図書館行って地図の「日本海」の上に「東海」シールを貼ってる件
>海外で悪いことする時は日本人のフリをする。韓国人
>外国人「日本の動画にはいつも韓国人の汚いコメントがある」
>【K-POP】たった80人で「欧州でも大人気」?…K-POPのブーム捏造
>【韓流】東方神起、オリコンチャートの真実?〜「買いつなぎ?順位操作疑惑」
>"金大中のノーベル平和賞受賞は工作、北朝鮮に5億ドルを不法送金" 暴露した元情報員、米国に亡命
>【サムスン】「市場開拓のため、日本人になりすましカタログだけで奥地へ」
>【韓国】日本の技術を盗み世界一になった現代重工業・・自力で盗んだのだから中国とは根本的に違う
>【また偽装】ヒュンダイを日本企業だと思わせる為に米国で相撲力士の写真を使い広告キャンペーン開始
>【韓国イチゴ】日本から盗んだ品種同士を掛け合わせて「国産品種」詭弁でロイヤリティ支払いから逃げる韓国
>【韓国/サッカー】 韓国vsイタリア戦でわいろを受け取った疑惑のモレノ氏、ヘロイン大量所持で逮捕
>【韓国】キム・ヨナのIOC推挙騒動、呼び掛け人の自称オーストリア人トーマス氏は韓国人と判明
>【韓国】韓国女性登山家の14座制覇にねつ造疑惑、再び論争ぼっ発 こんなものをこんなところに貼らないといけないほど日本は追い詰められてるのか? >>188
追い詰められているというか、完全に出遅れている。
スタートラインのはるか後方で走者の実況TV見てるような感じ。 Slim3の本また出たんだね
執筆開始は値上げ前かもしれないけど
残念だったね Amazon web services や Google app engine 凄いですね
ホスティングとかやってる業者全滅しちゃうんじゃないでしょうか
GAEは超絶値上げでオワコン
GAEにはまった人って
Googleが安く提供できる特別な技術を持っているとか
慈善事業をやっているとでも勘違いしたんだろうな 慈善事業とは思ってなかったけど、何かGoogleの独自技術で安くできてるんだとは正直思ってた >>196
広告入れられないからな。
まあこれは他社でも同じ事だが。 >197
その割には全文検索とか出来なくて
なんか変だとは思ってた >>201
googleが広告入れるかわりに
無料で使えるってこと
よくある無料鯖みたいなもん GAEが出たころは
Googleの技術すげーみたいな風潮があったからな ド素人な質問ですいません。
現在、GAEで開発を始めたところなのですが、jspファイルで
c:out value = "${hoge}"
と記述している部分でエクリプスで下記のエラーがでています。
"c:out" (org.apache.taglibs.standard.tag.rt.core.OutTag) のタグ・ハンドラー・クラスが Java ビルド・パスで見つかりませんでした
WEB-INF/libにはjstl.jarとstandard.jarも配置しています。
以下もjspファイルに記述していて、エラーはでていません。
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
実行しても${hoge}には期待したデータが表示されず、${hoge}とそのまま出ている状況です。
何かお心当たりあればお教え願えないでしょうか?
>>195
なにが情弱なのか教えていただきたいですね
これからのアプリケーションはクラウド化、スケーラブル化が必要
信頼性の高いデータストア機構が必須
High Replication Datastore に類する機能が他のクラウドサービスに
なければ、工夫して実装するしかありませんがおそらく google に勝る
ものは作れないでしょう。
機能の充実度、信頼性を考えたら、他のクラウドサービスを比較するとむしろ割安。
faccbookや2ch級のサービスでもおっぱじめるつもりなら割安と言えるかもな 高いスケーラビリティを必要とするサービスがどれほどあるのか 出た当時はWebが根本から変わると息巻いてましたよ、ええ・・・ webページ関係ないところで利用できるから広告収入がな。
意味のない計算やらして喜んでいる奴いるし。 googleのエンジニアと同じプラットフォームが使えるだけでワクワクするだろ >googleのエンジニアと同じプラットフォーム
知らないなら黙ってれば良いのに
GAE/Jでローカルで簡単なアカウント登録/認証したいんですけど、
何か良いサンプルありませんか?
ttp://www1.axfc.net/uploader/H/so/157974
このプロジェクトで
ant compile
ant runserverして
http://localhost:8080/guestbook
をブラウズすると正しく表示されるのですが,
"C:\Program Files\appengine-java-sdk-1.6.4.1\bin\appcfg.cmd" update
"C:\users\tarou\desktop\projectfolder\war"
としてもうまくいきません.
アプリ名は正しくて,正しくアップロードされたと表示されはしますが
Error: Server Errorと出てきます.
どうすればいいでしょうか? http://www1.axfc.net/uploader/H/so/157974
このファイルを
ant compile
ant runserver
すると正しく動作します.
ですが
"C:\Program Files\appengine-java-sdk-1.6.4.1\bin\appcfg.cmd" update
"C:\Users\tarou\Desktop\projectname\war"
としてもブラウザから
http://projectname.appspot.com/guestbook
へアクセスしても
Error:Server Error
と出ます.どうすればいいでしょうか? ttps://developers.google.com/appengine/docs/java/gettingstarted/usingjsps?hl=ja
ここの通りの
war/にguestbook.jsp作って
welcome-fileとすると,
ローカル鯖ではきちんと動くのですが
アップロードしようとするとweb.xmlがおかしいとかいうような
エラーがでます
なぜなのでしょうか? なんかblobstoreのcreateUploadUrlに指定した
urlのサーブレットが実行されない(アップロードすると何も書かれてないページへ飛ぶ)
んですがなんなんでしょう? ブラウザでソースをみたら
<form action="http://hogehoge.appspot.com/_ah/upload/AMmfu6Y4tYtT-1WgTji4NLvojjYQBBI83uGt996ze
NCSgK_WN9RFEwo2RC-m3oOT8a4aZn5UHN2Gd3hE3aaxrHVGB03Be2HdVM6mHYO-UiM0_-NC9gIjsxjxNj0g3qbX
IZqnN7i_RPE6/ALBNUaYAAAAAT77rIlcid9WNcZV1y715clxzQZI1Unng/" method="post" enctype="multipart/form-data">
<input id="imagedata" type="file" name="file" class="txt"/>
<input id="imagedata2" type="file" name="file2" class="txt"/>
<input name="submit" type="submit" class="btn" value="写真添付" />
<input type="button" class="btn" value="写真なし" onClick="location.href='regist.jsp"/>
<input class="btn" value="取消" onClick="location.href='index.jsp'">
</form>
みたくなっています.写真添付ボタンを押したら,fileとfile2のとこのファイルは
アップロードされているのですが
"http://hogehoge.appspot.com/_ah/upload/ry
のurlにとどまったままでサーブレットへおくられてないっぽいです。。。 DateクラスをJDOで保存するにはどうすればいいのだ。。。 >>233
createUploadUrlで指定したサーブレットから表示したいjspとかにリダイレクトしてないからじゃない? >>236
普通に保存できないか?去年ウィキを作ったんだが、嵌った記憶ないな
import java.util.Date;
import javax.jdo.annotations.PersistenceCapable;
import javax.jdo.annotations.Persistent;
@PersistenceCapable
public class Foo
{
public Date date()
{
return date;
}
public Foo()
{
this.date = new Date();
}
@Persistent
private Date date;
}
final PersistenceManager pm = PMF.get().getPersistenceManager();
pm.makePersistent(new Foo());
pm.flush();
↓エンティティ
http://bazaar.launchpad.net/~ryoji-kodakari/gt/trunk/view/head:/src/com/tidspr/tsr/entity/Tidder.java
↓PMF
http://bazaar.launchpad.net/~ryoji-kodakari/gt/trunk/view/head:/src/com/tidspr/tsr/pmf/PMF.java うおー。なんかどうもです。
というか登録はされてるのにGAEのマイページ(?)の
datastore viewerとかでそのプロパティだけ出てきてないみたいです。
まあ登録はされていたみたいなので問題なかったですが >>239
自分のDateプロパティもdatastore viewerで出てるから、
やっぱりそのDateの値は保存されてないと思うのですが。
@Persistentあたりじゃないすかね。↓参考
http://tsrtesttest.appspot.com/wiki/2ch_gae_date Google App For JavaでMySQL使っている人いる? 月100万PVくらいのサイトでアクセスしてるけど、段々使いづらくなってる
スケーラビリティが良いから放置には良いけど、
日々改良していくとなると、制限がネックになるね さっさとjava.awt.*使えるようにしてくれよ…
自前のcaptcha実装できねーじゃん。
http://www.google.com/recaptcha
recaptchaだとユーザビリティが悪すぎなんだよ。
かといってcaptcha認証なしだとBOTにやられちゃうし、仕方なくrecatpcha使ってるが「読みにくい」「複雑だ」とクレームでまくり。
こんだけ対応が望まれてるのに何してんだGoogle。
http://code.google.com/p/googleappengine/issues/detail?id=1423 ORM が危険なアンチパターンだっていうのはどれだけ言っても言い過ぎることはない
http://tech.a-listers.jp/2011/06/16/orm_is_an_antipattern/
このツイートに対して各方面(ActiveRecord, Doctrine, Hibernate)から多くの
(激しい)返信が寄せられて書かれたのが問題のエントリです。
まずはアンチパターンとは何かの定義として下記の2つを挙げています。
当初は有益だが、長期的にみると良い結果以上の悪い結果を招く。
確証があり繰り返されている別の解決方法がある。
当初は良さそうに見えたORMがいざ使ってみると問題が明らかになり、
しかもその時には切り替えるわけにもいかなくなるというのが彼の主張です。
彼による皮肉がたっぷりの論説の最後に付いていたまとめリストは下記のとおり。
ORMはSQLベースのモデルよりも最初のうちはシンプルで理解しやすく、手早く書く事ができる。
効率はどんなプロジェクトでも最初の頃は十分。
不幸にもそれらのアドバンテージはプロジェクトが大きく複雑になると消失し、抽象化は破綻し、
開発者はSQLを使わなければならなくなる。
ORMの抽象化はほぼ100%のプロジェクトで破綻する。
オブジェクトはリレーショナルなクエリの結果を表現するのには不適切。
不適切にクエリをオブジェクトにマッピングすることによって、ORMを廃止しない限り
簡単には修正できない非効率性がアプリケーションのあちこちにばらまかれる
リレーションを保存する代わりにORMを全てに適用する場合、設計をよく考える必要がある。
データが元々オブジェクトならば、NoSQLにオブジェクトを記録する方がリレーショナルデータベースよりも早い。
データが元々リレーショナルならリレーショナルデータベースに対するオーバーヘッドになるだけ。
リレーショナルなクエリはモデルレイヤーに隠蔽する。ただしAPIの設計は汎用化の誘惑に打ち勝って
アプリケーションに必要なデータを返すようにする。
オブジェクト指向設計はリレーショナルなデータを効率的に表現できない。
これはORMが解決できないオブジェクト指向デザインの根本的な制限だ。
ORMを使った事がある人にとっては心当たりがありまくりな主張ではないでしょうか。
意外と長文なんですが原文を読んでもらう方がORMが良さそうにみえて問題が起こり、
そしてその解決方法などのより正確な主張がわかります。
また元の記事には現時点で47のコメントが付いており盛り上がっています。
さて、みなさんはORMを次のプロジェクトでも使いますか?
via:http://seldo.com/weblog/2011/06/15/orm_is_an_antipattern joinも≠フィルターも使えないDatastoreのクエリが複雑化することはない。
そのコピペ貼るスレ間違ってるぞ おまえらにも来たぞ
http://2ch.net/maru_notice.txt
2ch.net 過去ログを再掲載するいわゆる「過去ログリーダー」サイトの運営をされている方へ
N.T. Technology, Inc. (以下当社)が提供している2ちゃんねる過去ログ観覧サービス、通称「●」(マル)の不正利用につきましてユーザー様より報告を受けており、調査を行っております。
調査終了後、2ちゃんねる、または当社に不利益に当たると判断するウェブサイトは米国著作権法 (U.S. Code, Title 17)及びDigital Millennium Copyright Act (DMCA)に則り順次削除依頼をホスティングされているISPに送信いたします。
なお、運営者様よりの質問は下記メールより受け付けております。
Twitter、新ガイドライン発表 2012年08月17日 22時21分
http://ascii.jp/elem/000/000/718/718721/
Twitterは16日、Twitter APIのバージョンを現行の1.0から1.1へと数週間以内に
バージョンアップすること、またAPIを利用する開発者向けガイドラインの改訂を
発表した。
今回のバージョンアップで大きく変わるのはAPIのリクエスト回数。現在はどんな
リクエストでも1時間につき350回だったが、1.1からは1時間あたり60回と大幅に減る。
これはbotやスパムなどによって、Twitterのリソースが圧迫されるのを防ぐためのようだ。
ツイートの表示や検索、プロフィール表示など、頻繁にアクセスされるものについては、
1時間あたり720回と増やすとのこと。
これまでLinkedInやInstagramなど、Twitterを利用したサービスやアプリに厳しい姿勢を
見せてきたが、今回のバージョンアップは開発者にとって非常に苦しい状況になりそうだ。
また、ガイドラインについては「Display Guidelines」と表記されていたものが、
「Display Requirements」と変更になった。簡単に言うと、マナーからルールになった
ようなもので、Display Requirementsに従わないとAPIが利用できなくなる。
スマホなどにTwitterアプリをプレインストールするときにはTwitter社の許諾が必要になり、
許諾のないアプリについてはTwitter APIにアクセスできなくするなどの処置がとられるという。
ほかには、クライアントアプリのユーザー数の上限を10万人にする、10万人を越える場合は
Twitter社の許可が必要になるなどの変更があり、開発者はもちろん、ユーザーにも影響は少なくなさそうだ。 slim3はコミッタがメンテにかけるコストも非常にスリムになっておすすめのフレームワークだな。 というかjavaでslim3以外にまともなのあったっけ slim3がいつの間にかバージョンアップしてたのに、なんで誰も教えてくれないんだ 多数の人に無償提供するためにはスピンアップ/ダウンの仕組みが必要なのは
分かるんだが、あのモッサリ具合が開発者を突き放す結果になってるな
Google先生ご自身、500msec以内にレスポンスを返さないと顧客が減ることを
良く知ってらっしゃるじゃないですか…
一般ユーザだけでなく開発者も同じですよ
平均1〜2秒、スピンアップ時は5〜10秒なんてちょっと無理
無償ユーザでもAlwaysOnを体感できる時間をランダムに割り振って
「これは使えそう」と思わせなきゃ人増えないよ ■ このスレッドは過去ログ倉庫に格納されています