SlideShare una empresa de Scribd logo
1 de 26
Descargar para leer sin conexión
AppEngine これどうする?




                 中垣健志
           @nakaken0629
      2011/9/10 東海 GTUG
自己紹介

名前: 中垣健志
所属: 東海 GTUG 、 Python 東海
    FLOSS 桜山、 web2py-Japan
理想: OSS やクラウドで華麗なお仕事
現実: 商用や C/S で地味なお仕事
著書紹介
.NET もやってます
このセミナーの目標

本を書く中で得た知見の共有
結局わからなかった謎を、みんなで解決
解決できない時は、エスカレーション?
書籍のページ→
                         p17
 SMS での認証について

アプリを公開するには、 Google アカウ
ントを携帯で認証する必要がある
同じ携帯で、複数の Google アカウント
を認証できるの?
 番号と携帯アドレスの二つまでいける?
 一度使った番号と携帯アドレスは、別の認証
 をしようと思っても返事がない
p31
 開発サーバが停止しない

以下の手順では、修正が反映されない!
 Eclipse 上で開発サーバ起動して実行
 開発サーバを停止してプログラム修正
 開発サーバ再起動して実行
ブラウザ落とせば OK?
Eclipse 落とせば OK?
p52
   JSTL の URI に注意

動作する URI (JSTL1.1)
http://java.sun.com/jsp/jstl/core

動作しない URI (JSTL1.0)
http://java.sun.com/jstl/core

ネット上の JSTL サンプルは 1.0 も多い
ので、コピペる時に気をつけよう
コラム1「書籍のコラム」

本の中にあるコラムは、レイアウト上の
空きスペースを埋めるために、編集の人
に「ここにコラムを入れられませんか
ねぇ?」といわれて作られる、かすみ草
のような存在です。
p76
  XMPP はサブセット

RFC3920 、 RFC3921
 ステータス管理 , 顔写真の表示 , 一斉配信
 →できない
管理者向け情報送信に特化?
最近は API が増えている
p126
  タスクキューの設定値

タスクは「バケットトークン方式」で処
理される
 rate... タスクの実行間隔
 bucket-size... 同時実行タスク最大数
                  →間違い?
bucket-size は限りなく大きくしていい
のか?
最新のタスクは、設定項目が増えている
p112
 データストアの使用量

データサイズに比べ使用量が多いのでは
という意見がちらほら
 ぐぐるちゃんの場合 130M で 52%
 あれ、無料分は 1GBytes じゃなかったけ?
コラム2「えりと早雲」




この二人は、執筆の本当に初期に、結城さ
んの「数学ガール」の二番煎じを狙ったの
ですが、編集の人に速攻で止められた名残
です w
p126
開発サーバの DB 初期化

テストで投入したデータを削除したい
 自動で ... 起動オプションに、
 – clear_datastore を指定する
 手動で .../war/WEB-INF/appengine-
 generated/local_db.bin を削除する
どちらもおすすめ
 私は後者を使用していた
p203
   スマートフォン開発

デフォルトでは開発サーバは、ローカル
マシンからしか接続できない
 Android や iPhone 用のサイトのテストが
 実機じゃできない?
開発サーバ起動時に以下の引数追加
 --address=0.0.0.0
p295
        twitter4j

校了直前に SDK が 1.4.3 にバージョン
アップしたら、 twitter4j が動作せず!
 twitter でつぶやいたら、 twitter4j 作者の
 @yusukey さんが反応してくれました。
最新 twitter4j は最新 App Engine 対応
コラム3「どっちが前だ?」
p174
 データストアの遅延読込                    p457



親エンティティに対する子エンティティ
は、遅延読み込みされる
 parent.getChilds();
 defaultFetchGroup=”true” で対応
クエリの結果は、遅延読み込みされる
 query.execute();
 detachCopyAll メソッドで対応
JSP では生エンティティを使わない?
p328
    バージョンの変更

Eclipse では作成時にプロジェクトで使
用する SDK のバージョンを指定する
が、これは後で変更可能
 一度 AppEngine の設定を OFF にする
 /WEB-INF/lib 内の jar を削除 ← 多分重要
 新しい AppEngine SDK を指定する
 JDO ファイルの上書き保存 ← 重要
ごみは消すのがよい
p320
 エンティティ取得方法          p399



ランダムにエンティティを取得したい
 乱数フィールドを用意して対応
期間内でランキングを表示したい
 日付+ランクの複合フィールドで対応

制約は工夫次第で何とかなる
コラム 4 「絵師のこだわり」

        顔が” G.A.E”
        カメラがあれ

        書籍内の画像は、
        クリエイティブ・
        コモンズの表示
        3.0 ライセンス
p384
          OpenID

OpenID に関する情報の取得
 getEmail()
 getFederatedIdentity()
 getNickname()
 getUserId()
ほとんどの関数は null か人工キーを返す
OpenID を元に独自のユーザ管理が必要
p443
       チャネル

JavaScript の知識が必要
一斉配信はできない
接続ユーザーの管理は、アプリケーショ
ンで行う必要がある
IE でメッセージ受信できない ( ローカル )
 いまさら IE には対応しないだろうなぁ
これも、最新版では機能追加されている
Billing History

         楽勝で無料だった
         から気にしなかっ
         たけど、数値の単
         位って何?
書籍内でできなかった事

本当にスケールするのか?
 テストにはお金がかかりそう
落ちたときのオフライン対策
 HTML のキャッシュ設定
 HTML5 のローカルストレージ
パフォーマンス追求
 低レベル API や slim3 は追いかけられな
 かった
最後に

dotcloud や fluxflex といった、新しい
PaaS 環境が登場しています
でも、自動で完全なスケールを実現する
PaaS 環境は AppEngine だけだと思い
ます( CAP 理論)
オンリーワン PaaS で、これからも発展
してください!
突然のサービス停止はご勘弁を w

Más contenido relacionado

La actualidad más candente

JavaでWebサービスを作り続けるための戦略と戦術 JJUG-CCC-2018-Spring-g1
JavaでWebサービスを作り続けるための戦略と戦術 JJUG-CCC-2018-Spring-g1JavaでWebサービスを作り続けるための戦略と戦術 JJUG-CCC-2018-Spring-g1
JavaでWebサービスを作り続けるための戦略と戦術 JJUG-CCC-2018-Spring-g1Y Watanabe
 
デザイナーのためのはじめてPHP ~Codex、どう使いこなす?~
デザイナーのためのはじめてPHP ~Codex、どう使いこなす?~デザイナーのためのはじめてPHP ~Codex、どう使いこなす?~
デザイナーのためのはじめてPHP ~Codex、どう使いこなす?~takenao
 
PHP、おまえだったのか。 いつもHTTPメッセージを 運んでくれたのは。
PHP、おまえだったのか。 いつもHTTPメッセージを 運んでくれたのは。PHP、おまえだったのか。 いつもHTTPメッセージを 運んでくれたのは。
PHP、おまえだったのか。 いつもHTTPメッセージを 運んでくれたのは。sasezaki
 
Apilecture for 2014/02/22 at shannonlab
Apilecture for 2014/02/22 at shannonlabApilecture for 2014/02/22 at shannonlab
Apilecture for 2014/02/22 at shannonlabYutaka Kobayshi
 
Pycon2014 django performance
Pycon2014 django performancePycon2014 django performance
Pycon2014 django performancehirokiky
 
価値を届ける技術 #bpstudy 96
価値を届ける技術 #bpstudy 96価値を届ける技術 #bpstudy 96
価値を届ける技術 #bpstudy 96hirokiky
 
インフラ自動化とHashicorp tools
インフラ自動化とHashicorp toolsインフラ自動化とHashicorp tools
インフラ自動化とHashicorp toolsUchio Kondo
 
PHP で実行中のスクリプトの動作を下から覗き見る
PHP で実行中のスクリプトの動作を下から覗き見るPHP で実行中のスクリプトの動作を下から覗き見る
PHP で実行中のスクリプトの動作を下から覗き見るshinjiigarashi
 
なぜ、PHPのmbstring.func_overloadをdeprecatedにするのに5年かかったのか? - 慢心、環境の違い
なぜ、PHPのmbstring.func_overloadをdeprecatedにするのに5年かかったのか? - 慢心、環境の違い なぜ、PHPのmbstring.func_overloadをdeprecatedにするのに5年かかったのか? - 慢心、環境の違い
なぜ、PHPのmbstring.func_overloadをdeprecatedにするのに5年かかったのか? - 慢心、環境の違い sasezaki
 
リアルタイムなゲームの開発でコンテナを使ってみたら簡単便利で激安だったのでオススメしたい
リアルタイムなゲームの開発でコンテナを使ってみたら簡単便利で激安だったのでオススメしたいリアルタイムなゲームの開発でコンテナを使ってみたら簡単便利で激安だったのでオススメしたい
リアルタイムなゲームの開発でコンテナを使ってみたら簡単便利で激安だったのでオススメしたいYutoNishine
 
NativeAppに近付ける manifest.json
NativeAppに近付ける manifest.jsonNativeAppに近付ける manifest.json
NativeAppに近付ける manifest.jsonssuser7cbba6
 
安全なテーマ作成のためのPHPの知識
安全なテーマ作成のためのPHPの知識安全なテーマ作成のためのPHPの知識
安全なテーマ作成のためのPHPの知識Fumito Mizuno
 
Webデザイナーのためのphp wordpress
Webデザイナーのためのphp wordpressWebデザイナーのためのphp wordpress
Webデザイナーのためのphp wordpressgalluda
 
RubyもApache Arrowでデータ処理言語の仲間入り
RubyもApache Arrowでデータ処理言語の仲間入りRubyもApache Arrowでデータ処理言語の仲間入り
RubyもApache Arrowでデータ処理言語の仲間入りKouhei Sutou
 
Webエンジニアがスタートダッシュをキメるためのローカル開発環境の勘所
Webエンジニアがスタートダッシュをキメるためのローカル開発環境の勘所Webエンジニアがスタートダッシュをキメるためのローカル開発環境の勘所
Webエンジニアがスタートダッシュをキメるためのローカル開発環境の勘所Y Watanabe
 
FINAL FANTASY Record Keeperを支えたGolang
FINAL FANTASY Record Keeperを支えたGolangFINAL FANTASY Record Keeperを支えたGolang
FINAL FANTASY Record Keeperを支えたGolangYoshiki Shibukawa
 

La actualidad más candente (17)

JavaでWebサービスを作り続けるための戦略と戦術 JJUG-CCC-2018-Spring-g1
JavaでWebサービスを作り続けるための戦略と戦術 JJUG-CCC-2018-Spring-g1JavaでWebサービスを作り続けるための戦略と戦術 JJUG-CCC-2018-Spring-g1
JavaでWebサービスを作り続けるための戦略と戦術 JJUG-CCC-2018-Spring-g1
 
デザイナーのためのはじめてPHP ~Codex、どう使いこなす?~
デザイナーのためのはじめてPHP ~Codex、どう使いこなす?~デザイナーのためのはじめてPHP ~Codex、どう使いこなす?~
デザイナーのためのはじめてPHP ~Codex、どう使いこなす?~
 
PHP、おまえだったのか。 いつもHTTPメッセージを 運んでくれたのは。
PHP、おまえだったのか。 いつもHTTPメッセージを 運んでくれたのは。PHP、おまえだったのか。 いつもHTTPメッセージを 運んでくれたのは。
PHP、おまえだったのか。 いつもHTTPメッセージを 運んでくれたのは。
 
特盛!Heroku
特盛!Heroku特盛!Heroku
特盛!Heroku
 
Apilecture for 2014/02/22 at shannonlab
Apilecture for 2014/02/22 at shannonlabApilecture for 2014/02/22 at shannonlab
Apilecture for 2014/02/22 at shannonlab
 
Pycon2014 django performance
Pycon2014 django performancePycon2014 django performance
Pycon2014 django performance
 
価値を届ける技術 #bpstudy 96
価値を届ける技術 #bpstudy 96価値を届ける技術 #bpstudy 96
価値を届ける技術 #bpstudy 96
 
インフラ自動化とHashicorp tools
インフラ自動化とHashicorp toolsインフラ自動化とHashicorp tools
インフラ自動化とHashicorp tools
 
PHP で実行中のスクリプトの動作を下から覗き見る
PHP で実行中のスクリプトの動作を下から覗き見るPHP で実行中のスクリプトの動作を下から覗き見る
PHP で実行中のスクリプトの動作を下から覗き見る
 
なぜ、PHPのmbstring.func_overloadをdeprecatedにするのに5年かかったのか? - 慢心、環境の違い
なぜ、PHPのmbstring.func_overloadをdeprecatedにするのに5年かかったのか? - 慢心、環境の違い なぜ、PHPのmbstring.func_overloadをdeprecatedにするのに5年かかったのか? - 慢心、環境の違い
なぜ、PHPのmbstring.func_overloadをdeprecatedにするのに5年かかったのか? - 慢心、環境の違い
 
リアルタイムなゲームの開発でコンテナを使ってみたら簡単便利で激安だったのでオススメしたい
リアルタイムなゲームの開発でコンテナを使ってみたら簡単便利で激安だったのでオススメしたいリアルタイムなゲームの開発でコンテナを使ってみたら簡単便利で激安だったのでオススメしたい
リアルタイムなゲームの開発でコンテナを使ってみたら簡単便利で激安だったのでオススメしたい
 
NativeAppに近付ける manifest.json
NativeAppに近付ける manifest.jsonNativeAppに近付ける manifest.json
NativeAppに近付ける manifest.json
 
安全なテーマ作成のためのPHPの知識
安全なテーマ作成のためのPHPの知識安全なテーマ作成のためのPHPの知識
安全なテーマ作成のためのPHPの知識
 
Webデザイナーのためのphp wordpress
Webデザイナーのためのphp wordpressWebデザイナーのためのphp wordpress
Webデザイナーのためのphp wordpress
 
RubyもApache Arrowでデータ処理言語の仲間入り
RubyもApache Arrowでデータ処理言語の仲間入りRubyもApache Arrowでデータ処理言語の仲間入り
RubyもApache Arrowでデータ処理言語の仲間入り
 
Webエンジニアがスタートダッシュをキメるためのローカル開発環境の勘所
Webエンジニアがスタートダッシュをキメるためのローカル開発環境の勘所Webエンジニアがスタートダッシュをキメるためのローカル開発環境の勘所
Webエンジニアがスタートダッシュをキメるためのローカル開発環境の勘所
 
FINAL FANTASY Record Keeperを支えたGolang
FINAL FANTASY Record Keeperを支えたGolangFINAL FANTASY Record Keeperを支えたGolang
FINAL FANTASY Record Keeperを支えたGolang
 

Similar a 東海GTUG 20110910発表資料

初めてのプラグイン開発
初めてのプラグイン開発初めてのプラグイン開発
初めてのプラグイン開発ikikko
 
俺とCiとinfrastructure as code(未完)
俺とCiとinfrastructure as code(未完)俺とCiとinfrastructure as code(未完)
俺とCiとinfrastructure as code(未完)Masayuki KaToH
 
Inside mobage platform
Inside mobage platformInside mobage platform
Inside mobage platformToru Yamaguchi
 
UnrealEngineが5日間でasm.js化できたと聞いた俺たちは…
UnrealEngineが5日間でasm.js化できたと聞いた俺たちは…UnrealEngineが5日間でasm.js化できたと聞いた俺たちは…
UnrealEngineが5日間でasm.js化できたと聞いた俺たちは…Kei Nakazawa
 
Rubyの会社でPythonistaが3ヶ月生き延びた話
Rubyの会社でPythonistaが3ヶ月生き延びた話Rubyの会社でPythonistaが3ヶ月生き延びた話
Rubyの会社でPythonistaが3ヶ月生き延びた話Tokoroten Nakayama
 
Rubyの会社でPythonistaが三ヶ月生き延びた話
Rubyの会社でPythonistaが三ヶ月生き延びた話Rubyの会社でPythonistaが三ヶ月生き延びた話
Rubyの会社でPythonistaが三ヶ月生き延びた話Drecom Co., Ltd.
 
俺と LightSail 概要と使ってみた
俺と LightSail  概要と使ってみた俺と LightSail  概要と使ってみた
俺と LightSail 概要と使ってみたMasayuki KaToH
 
20120405 setsunaセミナー
20120405 setsunaセミナー20120405 setsunaセミナー
20120405 setsunaセミナーTakahiro Iwase
 
あなたの安心を高速に守る Container-based CI
あなたの安心を高速に守る Container-based CIあなたの安心を高速に守る Container-based CI
あなたの安心を高速に守る Container-based CIWataru MIYAGUNI
 
pgvectorを使ってChatGPTとPostgreSQLを連携してみよう!(PostgreSQL Conference Japan 2023 発表資料)
pgvectorを使ってChatGPTとPostgreSQLを連携してみよう!(PostgreSQL Conference Japan 2023 発表資料)pgvectorを使ってChatGPTとPostgreSQLを連携してみよう!(PostgreSQL Conference Japan 2023 発表資料)
pgvectorを使ってChatGPTとPostgreSQLを連携してみよう!(PostgreSQL Conference Japan 2023 発表資料)NTT DATA Technology & Innovation
 
Tizen web app について調べたよ
Tizen web app について調べたよTizen web app について調べたよ
Tizen web app について調べたよNaruto TAKAHASHI
 
Microsoft AI セミナー - Microsoft AI Platform
Microsoft AI セミナー - Microsoft AI PlatformMicrosoft AI セミナー - Microsoft AI Platform
Microsoft AI セミナー - Microsoft AI PlatformDaiyu Hatakeyama
 
Html5 でアプリを作るということ
Html5 でアプリを作るということHtml5 でアプリを作るということ
Html5 でアプリを作るということNaruto TAKAHASHI
 
GiNZAで始める日本語依存構造解析 〜CaboCha, UDPipe, Stanford NLPとの比較〜
GiNZAで始める日本語依存構造解析 〜CaboCha, UDPipe, Stanford NLPとの比較〜GiNZAで始める日本語依存構造解析 〜CaboCha, UDPipe, Stanford NLPとの比較〜
GiNZAで始める日本語依存構造解析 〜CaboCha, UDPipe, Stanford NLPとの比較〜Megagon Labs
 

Similar a 東海GTUG 20110910発表資料 (20)

初めてのプラグイン開発
初めてのプラグイン開発初めてのプラグイン開発
初めてのプラグイン開発
 
cochica
cochicacochica
cochica
 
俺とCiとinfrastructure as code(未完)
俺とCiとinfrastructure as code(未完)俺とCiとinfrastructure as code(未完)
俺とCiとinfrastructure as code(未完)
 
Rubykaigi2010
Rubykaigi2010Rubykaigi2010
Rubykaigi2010
 
Mongodb World 2014
Mongodb World 2014Mongodb World 2014
Mongodb World 2014
 
Inside mobage platform
Inside mobage platformInside mobage platform
Inside mobage platform
 
UnrealEngineが5日間でasm.js化できたと聞いた俺たちは…
UnrealEngineが5日間でasm.js化できたと聞いた俺たちは…UnrealEngineが5日間でasm.js化できたと聞いた俺たちは…
UnrealEngineが5日間でasm.js化できたと聞いた俺たちは…
 
Rubyの会社でPythonistaが3ヶ月生き延びた話
Rubyの会社でPythonistaが3ヶ月生き延びた話Rubyの会社でPythonistaが3ヶ月生き延びた話
Rubyの会社でPythonistaが3ヶ月生き延びた話
 
Rubyの会社でPythonistaが三ヶ月生き延びた話
Rubyの会社でPythonistaが三ヶ月生き延びた話Rubyの会社でPythonistaが三ヶ月生き延びた話
Rubyの会社でPythonistaが三ヶ月生き延びた話
 
俺と LightSail 概要と使ってみた
俺と LightSail  概要と使ってみた俺と LightSail  概要と使ってみた
俺と LightSail 概要と使ってみた
 
20120405 setsunaセミナー
20120405 setsunaセミナー20120405 setsunaセミナー
20120405 setsunaセミナー
 
あなたの安心を高速に守る Container-based CI
あなたの安心を高速に守る Container-based CIあなたの安心を高速に守る Container-based CI
あなたの安心を高速に守る Container-based CI
 
pgvectorを使ってChatGPTとPostgreSQLを連携してみよう!(PostgreSQL Conference Japan 2023 発表資料)
pgvectorを使ってChatGPTとPostgreSQLを連携してみよう!(PostgreSQL Conference Japan 2023 発表資料)pgvectorを使ってChatGPTとPostgreSQLを連携してみよう!(PostgreSQL Conference Japan 2023 発表資料)
pgvectorを使ってChatGPTとPostgreSQLを連携してみよう!(PostgreSQL Conference Japan 2023 発表資料)
 
Tizen web app について調べたよ
Tizen web app について調べたよTizen web app について調べたよ
Tizen web app について調べたよ
 
俺とGitHub
俺とGitHub俺とGitHub
俺とGitHub
 
Microsoft AI セミナー - Microsoft AI Platform
Microsoft AI セミナー - Microsoft AI PlatformMicrosoft AI セミナー - Microsoft AI Platform
Microsoft AI セミナー - Microsoft AI Platform
 
ゆるかわPhp
ゆるかわPhpゆるかわPhp
ゆるかわPhp
 
Html5 でアプリを作るということ
Html5 でアプリを作るということHtml5 でアプリを作るということ
Html5 でアプリを作るということ
 
Ingress on GKE/GCE
Ingress on GKE/GCEIngress on GKE/GCE
Ingress on GKE/GCE
 
GiNZAで始める日本語依存構造解析 〜CaboCha, UDPipe, Stanford NLPとの比較〜
GiNZAで始める日本語依存構造解析 〜CaboCha, UDPipe, Stanford NLPとの比較〜GiNZAで始める日本語依存構造解析 〜CaboCha, UDPipe, Stanford NLPとの比較〜
GiNZAで始める日本語依存構造解析 〜CaboCha, UDPipe, Stanford NLPとの比較〜
 

Más de Kenji NAKAGAKI

技術書執筆とリモート
技術書執筆とリモート技術書執筆とリモート
技術書執筆とリモートKenji NAKAGAKI
 
Pythonの開発環境を調べてみた
Pythonの開発環境を調べてみたPythonの開発環境を調べてみた
Pythonの開発環境を調べてみたKenji NAKAGAKI
 
Windowsにpythonをインストールしてみよう
WindowsにpythonをインストールしてみようWindowsにpythonをインストールしてみよう
WindowsにpythonをインストールしてみようKenji NAKAGAKI
 
全自動クイズ「ヒラメかナイト」
全自動クイズ「ヒラメかナイト」全自動クイズ「ヒラメかナイト」
全自動クイズ「ヒラメかナイト」Kenji NAKAGAKI
 

Más de Kenji NAKAGAKI (6)

技術書執筆とリモート
技術書執筆とリモート技術書執筆とリモート
技術書執筆とリモート
 
GAEの紹介
GAEの紹介GAEの紹介
GAEの紹介
 
Pythonの開発環境を調べてみた
Pythonの開発環境を調べてみたPythonの開発環境を調べてみた
Pythonの開発環境を調べてみた
 
Pythonについて
PythonについてPythonについて
Pythonについて
 
Windowsにpythonをインストールしてみよう
WindowsにpythonをインストールしてみようWindowsにpythonをインストールしてみよう
Windowsにpythonをインストールしてみよう
 
全自動クイズ「ヒラメかナイト」
全自動クイズ「ヒラメかナイト」全自動クイズ「ヒラメかナイト」
全自動クイズ「ヒラメかナイト」
 

東海GTUG 20110910発表資料