タグ

プログラミングとGAEに関するtakkecyのブックマーク (15)

  • 【Android開発】HttpClientとHttpGetでサーバーとjson通信する

    Androidとサーバーとのやり取りをプログラムしているときのメモ。 まずハマったのがHttpClientで通信しようとしても、「unknown host」とエラーとなる。初めはDNSとかAndroidエミュレータの名前解決に問題がありそうだと調べたけど違った。 Androidのマニフェストに <uses-permission android:name="android.permission.INTERNET" /> を記述しないと、プログラムからインターネットに接続できないらしい。 参考になったのが下記サイト。 初めてのAndroid -第7章 世界との接続- さらにサーバーのレスポンスの処理とかは下記サイトを参考に。 [android] androidでBingでJSONで GETでJSON文字列を取得するメソッドは次のような感じ。 /** * 指定URLからgetした文字列を取得する

  • 大量のエンティティを処理するデザインパターン - GeekFactory

    データストアにある大量のエンティティを処理したい場合、クエリ結果を複数のタスクに分散して処理する必要があります。クエリ結果のカーソルを次のタスクに引き継ぐパターンをテンプレート化してみました。 基的な流れはこんな感じ。 タスクが実行される。 件数制限付きのクエリを実行する。 abstract query() 結果リストを処理する。 abstract run(List) タスク実行経過時間が6秒以内*1の場合は2に戻る。 すべてのエンティティを処理済みの場合は終了する。 結果リストのカーソルをパラメータに保存し、次のタスクをenqueueする。 使い方はこんな感じ。 QueryTask をextendsする。 query() にクエリを書く。 protected S3QueryResultList<Hoge> query() throws Exception { return Datast

    大量のエンティティを処理するデザインパターン - GeekFactory
  • OpenID認証によるシングルサインオン - GeekFactory

    App Engine 1.3.4でOpenID認証に対応しました。調べてみると意外と普通にシングルサインオンできたので、使い方と仕組みを説明します。 まず、OpenID認証を要求するURLパターンをweb.xmlに書きます。 <security-constraint> <web-resource-collection> <web-resource-name>Authentication required url</web-resource-name> <url-pattern>/user/*</url-pattern> </web-resource-collection> <auth-constraint> <role-name>*</role-name> </auth-constraint> </security-constraint> 例えば http://xxx.appspot.co

    OpenID認証によるシングルサインオン - GeekFactory
    takkecy
    takkecy 2010/05/26
    OpenIDの対応
  • Slim3における拡張子付きURIのマッピング - nakawai’s diary

    CoolなURIでJSONを返すURLはどう表現するか 内部的には「/user/get?id=12345&type=json」となるようなURI(idが12345のユーザ情報のJSON形式)を、Cool URIではどのように表現するのが適切か悩んでいた。「/user/json/12345」や「/user/12345/json」はなんか違う気がするし。 そしたら「Webを支える技術 -HTTP、URI、HTML、そしてREST (WEB+DB PRESSプラスシリーズ)」にその答えが書いてあった。 例えば1つのリソースをHTMLとテキストとJSONで表現できる場合には、それぞれ「.html」「.txt」「.json」という拡張子を付けてここの表現を分けると良いでしょう。 「Webを支える技術」 p.062 先述の例で言えば、「/user/12345.json」となる。なるほど確かにこれはしっ

  • Google App Engineを使った帳票出力システム·don-gabacho MOONGIFT

    don-gabachoはGAE/Jによるオープンソース・ソフトウェア。基幹システムにおける最大の目的は帳票の出力にある。なのでシステムを開発する際には帳票へ出力する項目や他システムへ受け渡す項目から考えると分かりやすい(個人的な経験として)。 出力された帳票 しかし帳票を出力するシステムを考えるとなると話は違う。特にWebシステムは帳票出力が苦手だ。通常のHTMLやテキストファイルを出力するのに比べると異なるライブラリが必要になったりする。そこで試したいのがdon-gabachoだ。 don-gabachoは名前はユニークだが、その実態は有益な帳票出力システムとなっている。自分で帳票の設計が可能で、さらに項目を設定することで出力される値を任意に変更ができる。生成された帳票はExcelファイルとしてダウンロードができる。 入力画面 PDFではないが、Excelの方が細かな調整もできるので便利

    Google App Engineを使った帳票出力システム·don-gabacho MOONGIFT
  • データストアの単体テストを書く手順 for 1.3.3 - うなの日記

    GAEのSDKを1.3.3にバージョンアップしたら、データストアの単体テストがコンパイルエラーに! ドキュメントを見ると、どうやらテストケースの書き方が変わったらしい。(1.3.1 - 1.3.2はスルーしていたので、実はずっと前からかもですが) ということで、SDK1.3.0の頃に書いたテストケース作成手順を1.3.3での手順に更新しておきます。ユーティリティクラスが用意されて、以前より少ないコードで済むようになってますよ。 単体テストとは? 単体テストでは、 ローカルでGoogle App Engineのサーバーを起動することなしに、 データストアにアクセスするモジュールのテストを記述できます。 公式なドキュメントはこちら。日語のドキュメントはまだ更新されていない(2010-05-01 現在)ようなのでご注意。 概要 必要なモジュールをプロジェクトに追加 テストケース内でLocalS

    データストアの単体テストを書く手順 for 1.3.3 - うなの日記
  • GAE/J使うならこの設定をしておけ! - 手抜きぷろぐらまのメモ帳

    ※2010/4/23 sessionのクリアについてご指摘頂き、追記しました。Google App Engine for Java(GAE/J)にて、どんなアプリを使う場合でも (自分的に)ほぼ必須となる設定ファイルのまとめ。 ていうか、リファレンス読めばいーんだけどさ 1.sessionを有効にする & クリアの設定をする Javasession使わないケースなんてあるのか? appengine-web.xml に 下記を追加 <sessions-enabled>true</sessions-enabled> GAE/Jでsessionを使う場合、このままだとDatastoreにsession情報が残ったままなので定期的にクリアするcronを設定する web.xml に 下記を追加 <servlet> <servlet-name>_ah_sessioncleanup</servlet-

    GAE/J使うならこの設定をしておけ! - 手抜きぷろぐらまのメモ帳
  • Webプログラミング素人が利用者9万人のmixiアプリを作るまで - 毒蛇は急がない

    はじめに 最近、 文系ド素人がmixiアプリを開発〜リリースするまでのまとめ http://d.hatena.ne.jp/kazu0620/20100412/1271071223 というエントリーが話題になりましたね。自分もwebプログラミング素人でmixiアプリを作ってみたので、ちょっと便乗して、自分がmixiアプリを作るまでのプロセスをまとめてみました。 これからアプリを作る人の参考になれば幸いです。 kazu0620さんは、個人で作っていたみたいですが、自分は会社で作りました。会社といっても、自分含め従業員数3人の超零細企業でフリーランスの延長線上みたいなかたちでやっている会社ですが。 ちなみに会社のサイトはこちら。 作ったアプリ 「ふしぎな生き物 ふにゃもらけ」 http://mixi.jp/run_appli.pl?id=9443 リリース日:3/23 実質開発期間:8ヶ月 週間

    Webプログラミング素人が利用者9万人のmixiアプリを作るまで - 毒蛇は急がない
  • slim3-mavenを試してみたよ - marblejediary

    @shin1ogawaさんがmavenでslim3を使えるようにしてくれたようなので、ちょっとためしてみました。 http://twitter.com/shin1ogawa/status/11996294086 @bufferings maven2をインスコして、 http://goo.gl/oiv1 をチェックアウトして、そのフォルダで mvn eclipse:eclipse するのが一番近道だと思います。んで mvn test したり、eclipseからテストを実行したり。 ということで、試してみることにします。 svn checkout http://appengine-hackathon-ja.googlecode.com/svn/trunk/ahack3/slim3-maven cd slim3-maven/ mvn eclipse:eclipse とすると、なんやかんやがさくっ

    slim3-mavenを試してみたよ - marblejediary
  • 図解 インデックス爆発 - 後ろ回しゲロ

    Google App EngineのDatastoreにはインデックス爆発という現象があります。 こちらで公式に説明されているのですが、 http://code.google.com/intl/ja/appengine/docs/java/datastore/queriesandindexes.html#Big_Entities_and_Exploding_Indexes 自分にとってはすごく分かりにくく、理解するのにとても苦労しましたので、自分なりにメモを残しておきます。 まず2,3の前提を。 基的な事ですが用語が統一されてなくて惑わされましたw 複合インデックス=カスタムインデックス=コンポジットインデックス です。 またGoogle App Engine for Javaでは WEB-INF/appengine-generated/datastore-indexes-auto.xm

    図解 インデックス爆発 - 後ろ回しゲロ
  • appengine-cl - App Engline Code Lab - Google Project Hosting

    Code Archive Skip to content Google About Google Privacy Terms

  • Google App Engine入門:実践編

    今週に入って、Tiny Message に続く二つ目の Google App Engine ベースのサービスをリリースした。3日ぐらいで試験的に作った Tiny Message とは異なり、今回のものは、丸二ヶ月間寝る間も惜しんで作った力作である。 米国向けのサービスな上に招待制のSNSなので、ここではサービスそのものは公開しないが、いくつかこだわって作った部分があるので、それについて語ってみようかと思う。 1. 対象となるユーザーの絞り込み FacebookやTwitterのような巨人が存在している中で、それにまっこうから対抗するようなソシアル・ネットワーク・サービスを作ったところで無謀なだけである。そこで、逆に対象にするユーザー層を究極にまで絞り込んで、彼らのライススタイルに徹底的にマッチしたサービスを作ることにより差別化をはかる、という戦略を選択。対象は「LAに住む20〜30代の社交

    Google App Engine入門:実践編
  • Google App Engine/Javaでセッション情報を定期的に消す処理 - 2010-02-09 - きしだのはてな

    Google App Engineでは、セッション情報はデータストアに保存されます。 で、自動的には消えないので、うかうかするとこんなふうに100万件以上たまってしまいます。 容量もそれなりにって、350MB近くになっていました。GAEでは1GBを超えると課金されるので、この容量は痛い。 ということで、セッション情報を消す処理を書いてみました。あとは、これを手動で呼び出すもよし、CRONで定期的に呼び出すもよし。 あと、ここのlogメソッドのようなものは、どっか書いとくとログを自分のUIで好きに見れるようにできるので便利。これも定期的にまとめたり消したりする処理必要になりますが。 というか、データ全部消す処理って、どう書くのが一番いいんでしょう?なんかすげー時間かかってるんですけど。 ※ shin1ogawaさんに「makeSyncCallサーブレットを立てて、ローカルのプログラムからバ

    Google App Engine/Javaでセッション情報を定期的に消す処理 - 2010-02-09 - きしだのはてな
  • Google App Engineで長い処理をタスクキュー使って実行 - きしだのはてな

    Google App Engineだと、30秒制限があって長い処理が書きにくいのですが、タスクキューは処理中に例外が発生したり30秒制限にひっかかったりすると自動的に呼び直されるので、これを使って長い処理を実行することができます。 ということは知っていたんだけど、実際どうなのかと思って試してみた。 まずこんなサーブレット書きます。 ※GAE/JはServlet3.0に対応してないので、@WebServletアノテーションは擬似コードだと思ってください。 5秒に一回QueueTestに現在値を記録するという処理を行うループを20回繰り返します。5秒×20=100秒 >> 30秒なので、確実にタイムアウトします。 タスク開始時の値をQueueLogに記録しておきます。 @WebServlet(urlPatterns="/queue/testqueue") public class TestQu

    Google App Engineで長い処理をタスクキュー使って実行 - きしだのはてな
  • Google App Engine for Javaでのメール受信コード - 2009-10-24 - きしだのはてな

    Google App Engineで受信メールの処理ができるようになった。 具体的な手順はこちら。 http://code.google.com/intl/en/appengine/docs/java/mail/receiving.html 手順はこう。 まず、appengine-web.xmlに次の設定を追加 <inbound-services> <service>mail</service> </inbound-services> そうすると、string@appid.appspotmail.comにメールが来たら /_ah/mail/<address> というURLが呼び出されるようになる。 なので、次のようなサーブレットマッピングをweb.xmlに追加してサーブレットで処理をする。 <servlet> <servlet-name>mailhandler</servlet-name>

    Google App Engine for Javaでのメール受信コード - 2009-10-24 - きしだのはてな
  • 1