SlideShare uma empresa Scribd logo
1 de 30
appengine活用事例
(Slim3,Scenic3,PirkaEngine,
         TDD,etc
            sue445
@sue445 (すえよんよんご/末吉 剛)
• 避暑のため東京から参戦
   o ただし福岡出身なので寒いのは苦手w
• レッドフォックス株式会社所属
   o SIでwebアプリ中心に1人TDDやってます
• Google App Engine/Slim3クラスタ
   o appengineは1年半くらい触ってます
   o appengine ja nightには半分くらい参加
   o (一応)Slim3のコミット権限所持w
• TDD歴は1年くらい
   o 福岡、東京1.5に続き3回目の参加
   o 今回は(も)JavaのTA
 JavaやSlim3のことなら何でも聞いてください!
jubeat(ユビート)
beatmania, DDR, ポップンミュージックに代表されるいわ
ゆるKONAMIの音ゲー
jubeat plus

•   jubeatのiPad/iPhoneアプリ版
•   アプリ本体は無料
•   楽曲パックが4曲入り450円
•   現在まで30パック以上配信
(ユビートプラスプラス)


• http://jubeatplusplus.appspot.com/
• jubeat plusのスコア登録サイト
• iPhone Explorerで抽出したsqliteファイルをサイトにアップ
  ロードしてスコア登録(厳密にはCSVファイルを経由)
• 登録したスコアをwebに公開したり、平均スコアからの差分
  を見ることができます
jubeat++のアーキテクチャ

•   Google App Engine
•   Slim3 (+ ktrwjr)
•   Scenic3
•   PirkaEngine
•   Twitter4j
•   jQuery
•   Maven2
•   etc...
Google App Engine
http://code.google.com/intl/ja/appengine/


 • Googleが提供しているPaaS
   o Python/Java/Goがあるけど最終的にはAjaxにいきつくの
     でどの言語を使っても一緒
   o 無料で始められて無料で続けられるのがウリだった(過
     去形)。料金体系の変更(11/1〜)により無料枠では厳しい
     か
   o 他のPaaSやIaaSに比べて学習コストが多少高いのがネッ
     クか?
 • 提供されている機能の一部
   o UserService, Datastore(BigTable), Memcache, cron, Task
     Queue, URL Fetch, Mail, Channel, etc...
   o http://code.google.com/intl/en/appengine/docs/java/overvi
     ew.html
appengineのサーバ構成
静的コンテンツにアクセスがあった場合




• 静的コンテンツへのアクセスはFrontEnd
  Serverだけ見に行くので爆速
• Googleの過去の歴史からもFrontEnd Serverが
  落ちたことはほとんどないらしい
動的コンテンツにアクセスがあった場合




• App Serverは一定時間アクセスがないとインスタンスが落ちるため
  (spin off)、起動に時間がかかる(spin up)
• 素のServletだけでspin upは600msくらい
• 30秒ルールがあるためspin upは速ければ速い方がいい
• appengine自体が1秒で処理する用に最適化されていて、スケール
  アウトもされやすくなる
spin upと戦うために
• ライブラリへの依存は極力減らす
   o jarがたくさんあるとClassLoaderで読み込む時に時間が
     かかりボトルネックになる
   o WEB-INF/libにあるだけなら無害(JUnitとか)
   o commons系もできれば使わない方がいい
• JSPは使わない
   o Jasperの初期化だけで5000~6000msかかるため
• オンプレで使ってるようなFWは使わない
   o この手のFWは初期化に時間がかかるため
   o Springだと最低限の初期化だけで10000ms以上かかる
   o FWは初期化の速い物だけを使う
spin upと戦う方法
【結論】Ajaxを使う
• 画面はモックhtmlを返し動的コンテンツはjsで処理する
• htmlならFrontEnd Serverから返されるので速く,spin upに影
  響されない
• Server Sideはjsonを返すだけにすれば純粋なデータだけを
  返すのでspin upの時間もそんなにかからない(素のServletと
  同じくらい)
• appengineではThread生成はできないがAjaxから非同期で呼
  ぶことにより実質的にマルチスレッドで動かせる
参考資料:@higayasuo さんのブログ
• App Engineではどの言語を使えばいいのか
• AppEngine/Jのspin-upを劇的に改善する方法
Slim3
https://sites.google.com/site/slim3appengine/


 • メインコミッタはSeasar2の @higayasuo さん
 • appengineに特化したFWでappengineでJavaならこれがデ
   ファクトスタンダード
 • spin upに強い(1000ms前後)
 • Datastore周りだけでも使う価値あり
    o S2JDBCのような流れるコーディング
 • テストの時はDatastoreやMemcacheのデータが
   setUp/tearDownで初期化されるのが便利
Kotori Web JUnit Runner (ktrwjr)
http://code.google.com/p/ktrwjr/wiki/KotoriWebJUnitRunner


 • @bufferings さん作
 • appengineサーバ用のJUnitランナー
 • slim3にバンドルされている
 • 本番サーバやローカルサーバでテストケースを実行できる
 • 本番とローカルで挙動が違うのはよくあることなので本番
   サーバでテストケースを動かせるのは嬉しい
 • テストとはいえDatastoreのデータは共通なのでupdate系は
   要注意
    o 本番環境上では動かさないようにするか、ステージング
      用にアプリを1つ作るのが吉
Scenic3
http://sites.google.com/site/aboutscenic3/


• @shuji_w6eさん作
• Slim3のControllerを薄くラップしたライブラリ
• Controllerクラスを複数集めたPageクラスを扱うのでクラス
  が増えすぎない。Struts感覚で使える
  o jubeat++だとPageは全17クラス、Controllerに換算すると
     全部で37個
  o 同じクラスにあった方がリファクタリングはしやすい
1画面をSlim3で作るとこんな感じ
package net.sue445.jubeatplusplus.controller.home.user.update;

// 入力フォーム初期化
public class InputController extends Controller{
   public Navigation run(){
   }
}

// 確認ボタン
public class ConfirmController extends Controller{
   public Navigation run(){
   }
}

// 登録ボタン
public class ExecuteController extends Controller{
   public Navigation run(){
   }
}
Scenic3だとこんな感じ
package net.sue445.jubeatplusplus.page.home.user;

// ユーザ情報変更ページ
@Page("/home/user/update")
public class UpdatePage extends ScenicPage{
   // 入力フォーム初期化
   @ActionPath("input")
   public Navigation input(){
   }
   // 確認ボタン
   @ActionPath("confirm")
   public Navigation confirm(
        @RequestParam("userId") String userId,
        @RequestParam("userName") String userName){
   }
   // 登録ボタン
   @ActionPath("execute")
   public Navigation execute(
      @RequestParam("userId") String userId,
      @RequestParam("userName") String userName){
   }
}
PirkaEngine
http://docs.pirkaengine.org/

• @shuji_w6eさん作
• scenic3と連携することができるテンプレートエンジン
• 普通のHTMLファイルをテンプレートとして使える
   o モックとして作ったHTMLをそのままソースに組み込め
     る(JSPに組み込む手間が省ける)
• レスポンスをアプリ側で管理できるのもメリット
   o 画面生成が重いページはHTMLをMemcacheに入れておく
     ことで速くできる
   o 例) jubeat++のスコアページ
      キャッシュ非使用時: 7000ms
      キャッシュ使用時: 100ms前後
その他
• Twitter4j
   o Java用Twitterライブラリで、JavaでTwitterやるなら定番
   o appengine用のjarを使えばappengineの非同期APIを使う
     のでかなり速い
• Maven2
   o appengineやslim3は頻繁にアップデートされるためpom
     を編集するだけですぐにjarを差し替えることができるの
     は便利
   o アーキタイプもあるのでプロジェクト作成も楽々
参考文献(スターターキット)

プログラミングGoogle App Engine

• 2009年11月出版ということで若
  干情報は古いが、appengineに
  ついて広く深く網羅していて詳
  しい
• JavaとPythonについてほぼ半々
  記載されているのでPythonな人
  にもおすすめ
参考文献(スターターキット)

オープンソース徹底活用 Slim3 on
Google App Engine for Java

• Slim3といいつつもDatastoreの
  インデックスの説明が中心なの
  でどの言語であっても有用
• Datastoreはインデックスの構
  造が一番のキモなのでこれを読
  めばだいたい理解できる
参考文献(実践編)
オープンソース徹底活用 Slim3に
よるWebアプリケーション開発

• FWとしてSlim3を使う実用的な
  1冊
• Slim3+GWTを用いた実際のア
  プリ開発を元にしているので
  Entity設計が参考になる
• Slim3でのテスト手法について
  あまり言及されてなかったのが
  難点(´・ω・`)
参考文献(実践編)
作ればわかる!Google App Engine
for Javaプログラミング

• Mashup系中心で
  TwitterAPI, Google Maps, OpenID
  など周辺技術との連携が豊富なの
  でサンプルが非常に実用的
• appengineの機能に関しても一通
  り網羅している
• ServletやJSPの基礎から書いてあ
  るので新卒研修にも最適w
分からないことがあったら

Twitterで #gaeja や #slim3 をつけて質問すれば誰か教えてく
れるハズ
おまけ(S3 Tiger)

• S3 Tiger
  o Slim3用のテスティングユーティリティを作りました
  o https://github.com/sue445/s3tiger
Slim3だと
public class SomeTest{
  @Test
  public void ignoreOnlyProduction(){
     if(AppEngineUtil.isProduction()){
        return;
     }
     // 本番サーバだけでは動かしたくないテスト
  }

    @Test
    public void ignoreOnlyDevelopment(){
      if(AppEngineUtil.isDevelopment()){
         return;
      }
      // 開発サーバだけでは動かしたくないテスト
    }
}
S3 Tigerだと
import net.sue445.s3tiger.Slim3;
@RunWith(Slim3.class)
public class SomeTest{
  @IgnoreProduction
  @Test
  public void ignoreOnlyProduction(){
     // 本番サーバだけでは動かしたくないテスト
  }

    @IgnoreDevelopment
    @Test
    public void ignoreOnlyDevelopment(){
      // 開発サーバだけでは動かしたくないテスト
    }
}
クラスにもOK
import net.sue445.s3tiger.Slim3;

// 本番サーバでは動かしたくないテストクラス
@RunWith(Slim3.class)
@IgnoreProduction
public class OtherTest{
   @Test
   public void someTest(){
     ~
   }
}
アノテーションでDRYを排除
ご清聴ありがとうございました!

Mais conteúdo relacionado

Mais procurados

Parse.comからの脱出
Parse.comからの脱出Parse.comからの脱出
Parse.comからの脱出Muta Yutaro
 
IPython notebookを使おう
IPython notebookを使おうIPython notebookを使おう
IPython notebookを使おうKazufumi Ohkawa
 
MySQL・PostgreSQL上で動かす全文検索エンジン「Groonga」セミナー
MySQL・PostgreSQL上で動かす全文検索エンジン「Groonga」セミナーMySQL・PostgreSQL上で動かす全文検索エンジン「Groonga」セミナー
MySQL・PostgreSQL上で動かす全文検索エンジン「Groonga」セミナーKouhei Sutou
 
MySQL・PostgreSQLだけで作る高速でリッチな全文検索システム
MySQL・PostgreSQLだけで作る高速でリッチな全文検索システムMySQL・PostgreSQLだけで作る高速でリッチな全文検索システム
MySQL・PostgreSQLだけで作る高速でリッチな全文検索システムKouhei Sutou
 
MySQLとPostgreSQLと日本語全文検索 - Azure DatabaseでMroonga・PGroongaを使いたいですよね!?
MySQLとPostgreSQLと日本語全文検索 - Azure DatabaseでMroonga・PGroongaを使いたいですよね!?MySQLとPostgreSQLと日本語全文検索 - Azure DatabaseでMroonga・PGroongaを使いたいですよね!?
MySQLとPostgreSQLと日本語全文検索 - Azure DatabaseでMroonga・PGroongaを使いたいですよね!?Kouhei Sutou
 
PostgreSQLとPGroongaで作るPHPマニュアル高速全文検索システム
PostgreSQLとPGroongaで作るPHPマニュアル高速全文検索システムPostgreSQLとPGroongaで作るPHPマニュアル高速全文検索システム
PostgreSQLとPGroongaで作るPHPマニュアル高速全文検索システムKouhei Sutou
 
Werkzeugを使ってみた #osakapy 2016/04
Werkzeugを使ってみた #osakapy 2016/04Werkzeugを使ってみた #osakapy 2016/04
Werkzeugを使ってみた #osakapy 2016/04敦志 金谷
 
「理論から学ぶデータベース実践入門」読書会スペシャル
「理論から学ぶデータベース実践入門」読書会スペシャル「理論から学ぶデータベース実践入門」読書会スペシャル
「理論から学ぶデータベース実践入門」読書会スペシャルMasahiro Tomita
 
Mroonga・PGroonga導入方法
Mroonga・PGroonga導入方法Mroonga・PGroonga導入方法
Mroonga・PGroonga導入方法Kouhei Sutou
 
Python twitter data_150709
Python twitter data_150709Python twitter data_150709
Python twitter data_150709BrainPad Inc.
 
Twitter API最新事情 - API Meetup Tokyo #1 #apijp
Twitter API最新事情 - API Meetup Tokyo #1 #apijpTwitter API最新事情 - API Meetup Tokyo #1 #apijp
Twitter API最新事情 - API Meetup Tokyo #1 #apijpYusuke Yamamoto
 
Webフレームワークを作ってる話 #osakapy
Webフレームワークを作ってる話 #osakapyWebフレームワークを作ってる話 #osakapy
Webフレームワークを作ってる話 #osakapyMasashi Shibata
 
MogileFS をバックエンドとしたPrivate S3の作り方 【後半】API 編
MogileFS をバックエンドとしたPrivate S3の作り方 【後半】API 編MogileFS をバックエンドとしたPrivate S3の作り方 【後半】API 編
MogileFS をバックエンドとしたPrivate S3の作り方 【後半】API 編hiboma
 
パッケージングの今と未来
パッケージングの今と未来パッケージングの今と未来
パッケージングの今と未来Atsushi Odagiri
 
捗るリコメンドシステムの裏事情(ハッカドール)
捗るリコメンドシステムの裏事情(ハッカドール)捗るリコメンドシステムの裏事情(ハッカドール)
捗るリコメンドシステムの裏事情(ハッカドール)mosa siru
 

Mais procurados (20)

Parse.comからの脱出
Parse.comからの脱出Parse.comからの脱出
Parse.comからの脱出
 
Django learning Part2
Django learning Part2Django learning Part2
Django learning Part2
 
IPython notebookを使おう
IPython notebookを使おうIPython notebookを使おう
IPython notebookを使おう
 
MySQL・PostgreSQL上で動かす全文検索エンジン「Groonga」セミナー
MySQL・PostgreSQL上で動かす全文検索エンジン「Groonga」セミナーMySQL・PostgreSQL上で動かす全文検索エンジン「Groonga」セミナー
MySQL・PostgreSQL上で動かす全文検索エンジン「Groonga」セミナー
 
MySQL・PostgreSQLだけで作る高速でリッチな全文検索システム
MySQL・PostgreSQLだけで作る高速でリッチな全文検索システムMySQL・PostgreSQLだけで作る高速でリッチな全文検索システム
MySQL・PostgreSQLだけで作る高速でリッチな全文検索システム
 
MySQLとPostgreSQLと日本語全文検索 - Azure DatabaseでMroonga・PGroongaを使いたいですよね!?
MySQLとPostgreSQLと日本語全文検索 - Azure DatabaseでMroonga・PGroongaを使いたいですよね!?MySQLとPostgreSQLと日本語全文検索 - Azure DatabaseでMroonga・PGroongaを使いたいですよね!?
MySQLとPostgreSQLと日本語全文検索 - Azure DatabaseでMroonga・PGroongaを使いたいですよね!?
 
Django learning
Django learningDjango learning
Django learning
 
PostgreSQLとPGroongaで作るPHPマニュアル高速全文検索システム
PostgreSQLとPGroongaで作るPHPマニュアル高速全文検索システムPostgreSQLとPGroongaで作るPHPマニュアル高速全文検索システム
PostgreSQLとPGroongaで作るPHPマニュアル高速全文検索システム
 
Werkzeugを使ってみた #osakapy 2016/04
Werkzeugを使ってみた #osakapy 2016/04Werkzeugを使ってみた #osakapy 2016/04
Werkzeugを使ってみた #osakapy 2016/04
 
Groonga族2015
Groonga族2015Groonga族2015
Groonga族2015
 
「理論から学ぶデータベース実践入門」読書会スペシャル
「理論から学ぶデータベース実践入門」読書会スペシャル「理論から学ぶデータベース実践入門」読書会スペシャル
「理論から学ぶデータベース実践入門」読書会スペシャル
 
PGroongaの実装
PGroongaの実装PGroongaの実装
PGroongaの実装
 
Mroonga・PGroonga導入方法
Mroonga・PGroonga導入方法Mroonga・PGroonga導入方法
Mroonga・PGroonga導入方法
 
Python twitter data_150709
Python twitter data_150709Python twitter data_150709
Python twitter data_150709
 
Pythonでpdfをいじってみる
PythonでpdfをいじってみるPythonでpdfをいじってみる
Pythonでpdfをいじってみる
 
Twitter API最新事情 - API Meetup Tokyo #1 #apijp
Twitter API最新事情 - API Meetup Tokyo #1 #apijpTwitter API最新事情 - API Meetup Tokyo #1 #apijp
Twitter API最新事情 - API Meetup Tokyo #1 #apijp
 
Webフレームワークを作ってる話 #osakapy
Webフレームワークを作ってる話 #osakapyWebフレームワークを作ってる話 #osakapy
Webフレームワークを作ってる話 #osakapy
 
MogileFS をバックエンドとしたPrivate S3の作り方 【後半】API 編
MogileFS をバックエンドとしたPrivate S3の作り方 【後半】API 編MogileFS をバックエンドとしたPrivate S3の作り方 【後半】API 編
MogileFS をバックエンドとしたPrivate S3の作り方 【後半】API 編
 
パッケージングの今と未来
パッケージングの今と未来パッケージングの今と未来
パッケージングの今と未来
 
捗るリコメンドシステムの裏事情(ハッカドール)
捗るリコメンドシステムの裏事情(ハッカドール)捗るリコメンドシステムの裏事情(ハッカドール)
捗るリコメンドシステムの裏事情(ハッカドール)
 

Destaque

Cig form moderna2
Cig form moderna2Cig form moderna2
Cig form moderna2labeques
 
中東のシリコンバレーイスラエルに関する資料
中東のシリコンバレーイスラエルに関する資料中東のシリコンバレーイスラエルに関する資料
中東のシリコンバレーイスラエルに関する資料01Booster
 
Animales domesticos
Animales domesticosAnimales domesticos
Animales domesticosBetsy Lastre
 
Anexo 1 índice dos nomes de plantas e das culturas de substituição
Anexo 1  índice dos nomes de plantas e das culturas de substituiçãoAnexo 1  índice dos nomes de plantas e das culturas de substituição
Anexo 1 índice dos nomes de plantas e das culturas de substituiçãoHélida Mesquita
 
Résultats annuels 2007
Résultats annuels 2007Résultats annuels 2007
Résultats annuels 2007ve-finance
 
Bresil presentation cooperation_france_bresil_20_12_2010_pt_br
Bresil presentation cooperation_france_bresil_20_12_2010_pt_brBresil presentation cooperation_france_bresil_20_12_2010_pt_br
Bresil presentation cooperation_france_bresil_20_12_2010_pt_brConfap
 
x-culture, US and Japan
x-culture, US and Japanx-culture, US and Japan
x-culture, US and Japan01Booster
 
Casi d'uso dei dati aperti nella Pubblica Amministrazione
Casi d'uso dei dati aperti nella Pubblica AmministrazioneCasi d'uso dei dati aperti nella Pubblica Amministrazione
Casi d'uso dei dati aperti nella Pubblica AmministrazioneSergio Agostinelli
 
EXPO RSE 2014 destacó compromisos ambientales de empresas e instituciones per...
EXPO RSE 2014 destacó compromisos ambientales de empresas e instituciones per...EXPO RSE 2014 destacó compromisos ambientales de empresas e instituciones per...
EXPO RSE 2014 destacó compromisos ambientales de empresas e instituciones per...Perú 2021
 

Destaque (13)

Mirza - HS diploma
Mirza - HS diplomaMirza - HS diploma
Mirza - HS diploma
 
Cig form moderna2
Cig form moderna2Cig form moderna2
Cig form moderna2
 
Escola aurea projetos 2012
Escola aurea projetos 2012Escola aurea projetos 2012
Escola aurea projetos 2012
 
中東のシリコンバレーイスラエルに関する資料
中東のシリコンバレーイスラエルに関する資料中東のシリコンバレーイスラエルに関する資料
中東のシリコンバレーイスラエルに関する資料
 
Animales domesticos
Animales domesticosAnimales domesticos
Animales domesticos
 
Anexo 1 índice dos nomes de plantas e das culturas de substituição
Anexo 1  índice dos nomes de plantas e das culturas de substituiçãoAnexo 1  índice dos nomes de plantas e das culturas de substituição
Anexo 1 índice dos nomes de plantas e das culturas de substituição
 
Résultats annuels 2007
Résultats annuels 2007Résultats annuels 2007
Résultats annuels 2007
 
Оштро перо 2.круг
Оштро перо 2.кругОштро перо 2.круг
Оштро перо 2.круг
 
L home parat_al_cant_salut
L home parat_al_cant_salutL home parat_al_cant_salut
L home parat_al_cant_salut
 
Bresil presentation cooperation_france_bresil_20_12_2010_pt_br
Bresil presentation cooperation_france_bresil_20_12_2010_pt_brBresil presentation cooperation_france_bresil_20_12_2010_pt_br
Bresil presentation cooperation_france_bresil_20_12_2010_pt_br
 
x-culture, US and Japan
x-culture, US and Japanx-culture, US and Japan
x-culture, US and Japan
 
Casi d'uso dei dati aperti nella Pubblica Amministrazione
Casi d'uso dei dati aperti nella Pubblica AmministrazioneCasi d'uso dei dati aperti nella Pubblica Amministrazione
Casi d'uso dei dati aperti nella Pubblica Amministrazione
 
EXPO RSE 2014 destacó compromisos ambientales de empresas e instituciones per...
EXPO RSE 2014 destacó compromisos ambientales de empresas e instituciones per...EXPO RSE 2014 destacó compromisos ambientales de empresas e instituciones per...
EXPO RSE 2014 destacó compromisos ambientales de empresas e instituciones per...
 

Semelhante a appengine活用事例資料@TDDBC札幌2.1

プログラミング生放送第7回 比べてみようPaaSクラウド~Azure VS GAE~
プログラミング生放送第7回 比べてみようPaaSクラウド~Azure VS GAE~プログラミング生放送第7回 比べてみようPaaSクラウド~Azure VS GAE~
プログラミング生放送第7回 比べてみようPaaSクラウド~Azure VS GAE~normalian
 
Azure Function GAした!Visual Studio Tools for Azure Functions もプレビューだ!
Azure Function GAした!Visual Studio Tools for Azure Functions もプレビューだ!Azure Function GAした!Visual Studio Tools for Azure Functions もプレビューだ!
Azure Function GAした!Visual Studio Tools for Azure Functions もプレビューだ!Yasuaki Matsuda
 
OSS奨励賞受賞プレゼン 活動紹介
OSS奨励賞受賞プレゼン 活動紹介OSS奨励賞受賞プレゼン 活動紹介
OSS奨励賞受賞プレゼン 活動紹介Hiromu Yakura
 
Programming camp Codereading
Programming camp CodereadingProgramming camp Codereading
Programming camp CodereadingHiro Yoshioka
 
AngularJS+TypeScript - AngularJS 1周年記念勉強会
AngularJS+TypeScript - AngularJS 1周年記念勉強会AngularJS+TypeScript - AngularJS 1周年記念勉強会
AngularJS+TypeScript - AngularJS 1周年記念勉強会Masahiro Wakame
 
今日から始める Go言語 と appengine
今日から始める Go言語 と appengine今日から始める Go言語 と appengine
今日から始める Go言語 と appenginea know
 
はてなのサービスの開発環境
はてなのサービスの開発環境はてなのサービスの開発環境
はてなのサービスの開発環境ast_j
 
Device Farm を使ったスマホアプリの自動テスト
Device Farm を使ったスマホアプリの自動テストDevice Farm を使ったスマホアプリの自動テスト
Device Farm を使ったスマホアプリの自動テスト健一 辰濱
 
EmbulkとDigdagとデータ分析基盤と
EmbulkとDigdagとデータ分析基盤とEmbulkとDigdagとデータ分析基盤と
EmbulkとDigdagとデータ分析基盤とToru Takahashi
 
EmbulkとDigdagとデータ分析基盤と
EmbulkとDigdagとデータ分析基盤とEmbulkとDigdagとデータ分析基盤と
EmbulkとDigdagとデータ分析基盤とToru Takahashi
 
インフラ構築とテストについて(ITインフラ業務自動化現状確認会)
インフラ構築とテストについて(ITインフラ業務自動化現状確認会)インフラ構築とテストについて(ITインフラ業務自動化現状確認会)
インフラ構築とテストについて(ITインフラ業務自動化現状確認会)Yosuke Hiraishi
 
今日から始めるGopher - スタートGo #0 @GDG名古屋
今日から始めるGopher - スタートGo #0 @GDG名古屋今日から始めるGopher - スタートGo #0 @GDG名古屋
今日から始めるGopher - スタートGo #0 @GDG名古屋Takuya Ueda
 
Gws 20140418 camel_groovy
Gws 20140418 camel_groovyGws 20140418 camel_groovy
Gws 20140418 camel_groovyNobuhiro Sue
 
Raspberry PiにUSBカメラを付けて撮影した写真をTwitterにアップする
Raspberry PiにUSBカメラを付けて撮影した写真をTwitterにアップするRaspberry PiにUSBカメラを付けて撮影した写真をTwitterにアップする
Raspberry PiにUSBカメラを付けて撮影した写真をTwitterにアップするKazuko Shikiya
 
Rubyによるお手軽分散処理
Rubyによるお手軽分散処理Rubyによるお手軽分散処理
Rubyによるお手軽分散処理maebashi
 
Introduction to Favmemo for Immature Engineers
Introduction to Favmemo for Immature EngineersIntroduction to Favmemo for Immature Engineers
Introduction to Favmemo for Immature EngineersTakeshi Arabiki
 
Deep learning reading club @ nimiri for SWEST
Deep learning reading club @ nimiri for SWESTDeep learning reading club @ nimiri for SWEST
Deep learning reading club @ nimiri for SWESTKiyoshi Ogawa
 

Semelhante a appengine活用事例資料@TDDBC札幌2.1 (20)

プログラミング生放送第7回 比べてみようPaaSクラウド~Azure VS GAE~
プログラミング生放送第7回 比べてみようPaaSクラウド~Azure VS GAE~プログラミング生放送第7回 比べてみようPaaSクラウド~Azure VS GAE~
プログラミング生放送第7回 比べてみようPaaSクラウド~Azure VS GAE~
 
Azure Function GAした!Visual Studio Tools for Azure Functions もプレビューだ!
Azure Function GAした!Visual Studio Tools for Azure Functions もプレビューだ!Azure Function GAした!Visual Studio Tools for Azure Functions もプレビューだ!
Azure Function GAした!Visual Studio Tools for Azure Functions もプレビューだ!
 
OSS奨励賞受賞プレゼン 活動紹介
OSS奨励賞受賞プレゼン 活動紹介OSS奨励賞受賞プレゼン 活動紹介
OSS奨励賞受賞プレゼン 活動紹介
 
Programming camp Codereading
Programming camp CodereadingProgramming camp Codereading
Programming camp Codereading
 
AngularJS+TypeScript - AngularJS 1周年記念勉強会
AngularJS+TypeScript - AngularJS 1周年記念勉強会AngularJS+TypeScript - AngularJS 1周年記念勉強会
AngularJS+TypeScript - AngularJS 1周年記念勉強会
 
今日から始める Go言語 と appengine
今日から始める Go言語 と appengine今日から始める Go言語 と appengine
今日から始める Go言語 と appengine
 
はてなのサービスの開発環境
はてなのサービスの開発環境はてなのサービスの開発環境
はてなのサービスの開発環境
 
Device Farm を使ったスマホアプリの自動テスト
Device Farm を使ったスマホアプリの自動テストDevice Farm を使ったスマホアプリの自動テスト
Device Farm を使ったスマホアプリの自動テスト
 
EmbulkとDigdagとデータ分析基盤と
EmbulkとDigdagとデータ分析基盤とEmbulkとDigdagとデータ分析基盤と
EmbulkとDigdagとデータ分析基盤と
 
EmbulkとDigdagとデータ分析基盤と
EmbulkとDigdagとデータ分析基盤とEmbulkとDigdagとデータ分析基盤と
EmbulkとDigdagとデータ分析基盤と
 
インフラ構築とテストについて(ITインフラ業務自動化現状確認会)
インフラ構築とテストについて(ITインフラ業務自動化現状確認会)インフラ構築とテストについて(ITインフラ業務自動化現状確認会)
インフラ構築とテストについて(ITインフラ業務自動化現状確認会)
 
今日から始めるGopher - スタートGo #0 @GDG名古屋
今日から始めるGopher - スタートGo #0 @GDG名古屋今日から始めるGopher - スタートGo #0 @GDG名古屋
今日から始めるGopher - スタートGo #0 @GDG名古屋
 
Gws 20140418 camel_groovy
Gws 20140418 camel_groovyGws 20140418 camel_groovy
Gws 20140418 camel_groovy
 
OSC福岡 20111203
OSC福岡 20111203OSC福岡 20111203
OSC福岡 20111203
 
Raspberry PiにUSBカメラを付けて撮影した写真をTwitterにアップする
Raspberry PiにUSBカメラを付けて撮影した写真をTwitterにアップするRaspberry PiにUSBカメラを付けて撮影した写真をTwitterにアップする
Raspberry PiにUSBカメラを付けて撮影した写真をTwitterにアップする
 
Rubyによるお手軽分散処理
Rubyによるお手軽分散処理Rubyによるお手軽分散処理
Rubyによるお手軽分散処理
 
Introduction to Favmemo for Immature Engineers
Introduction to Favmemo for Immature EngineersIntroduction to Favmemo for Immature Engineers
Introduction to Favmemo for Immature Engineers
 
Deep learning reading club @ nimiri for SWEST
Deep learning reading club @ nimiri for SWESTDeep learning reading club @ nimiri for SWEST
Deep learning reading club @ nimiri for SWEST
 
全文検索入門
全文検索入門全文検索入門
全文検索入門
 
Google Product
Google ProductGoogle Product
Google Product
 

Mais de Go Sueyoshi (a.k.a sue445)

社内ツールが支えるドリコムの社内勉強会文化 #metabenkyokai
社内ツールが支えるドリコムの社内勉強会文化 #metabenkyokai社内ツールが支えるドリコムの社内勉強会文化 #metabenkyokai
社内ツールが支えるドリコムの社内勉強会文化 #metabenkyokaiGo Sueyoshi (a.k.a sue445)
 
gemの複数バージョンカジュアルテスト #shibuyarb
gemの複数バージョンカジュアルテスト #shibuyarbgemの複数バージョンカジュアルテスト #shibuyarb
gemの複数バージョンカジュアルテスト #shibuyarbGo Sueyoshi (a.k.a sue445)
 
プリキュアのRuby実装の紹介 (2015 ver) #MeguroStartup
プリキュアのRuby実装の紹介 (2015 ver)  #MeguroStartupプリキュアのRuby実装の紹介 (2015 ver)  #MeguroStartup
プリキュアのRuby実装の紹介 (2015 ver) #MeguroStartupGo Sueyoshi (a.k.a sue445)
 
ドリコムを支える課金ライブラリを支えるJenkins
ドリコムを支える課金ライブラリを支えるJenkinsドリコムを支える課金ライブラリを支えるJenkins
ドリコムを支える課金ライブラリを支えるJenkinsGo Sueyoshi (a.k.a sue445)
 
itamae + Serverspecで テスト駆動インフラやってみた #shibuyarb
itamae + Serverspecで テスト駆動インフラやってみた #shibuyarbitamae + Serverspecで テスト駆動インフラやってみた #shibuyarb
itamae + Serverspecで テスト駆動インフラやってみた #shibuyarbGo Sueyoshi (a.k.a sue445)
 
サザエ実況を支える技術 #sst_history
サザエ実況を支える技術 #sst_historyサザエ実況を支える技術 #sst_history
サザエ実況を支える技術 #sst_historyGo Sueyoshi (a.k.a sue445)
 
Paraductをエクストリームリリースします #428rk01
Paraductをエクストリームリリースします #428rk01Paraductをエクストリームリリースします #428rk01
Paraductをエクストリームリリースします #428rk01Go Sueyoshi (a.k.a sue445)
 
GemoireというYARDホスティングアプリを作った #shibuyarb
GemoireというYARDホスティングアプリを作った #shibuyarbGemoireというYARDホスティングアプリを作った #shibuyarb
GemoireというYARDホスティングアプリを作った #shibuyarbGo Sueyoshi (a.k.a sue445)
 
Githubエコシステムを活用したイマドキの趣味開発
Githubエコシステムを活用したイマドキの趣味開発Githubエコシステムを活用したイマドキの趣味開発
Githubエコシステムを活用したイマドキの趣味開発Go Sueyoshi (a.k.a sue445)
 
プリキュアのRuby実装の紹介 #RubyHiroba
プリキュアのRuby実装の紹介 #RubyHirobaプリキュアのRuby実装の紹介 #RubyHiroba
プリキュアのRuby実装の紹介 #RubyHirobaGo Sueyoshi (a.k.a sue445)
 
プリキュアハッカソン2 参加者アンケート集計結果 #cure_hack
プリキュアハッカソン2 参加者アンケート集計結果 #cure_hackプリキュアハッカソン2 参加者アンケート集計結果 #cure_hack
プリキュアハッカソン2 参加者アンケート集計結果 #cure_hackGo Sueyoshi (a.k.a sue445)
 
Resemaraを支えた技術 フライングゲットガチャの舞台裏 #ksgstudy #ドリコム
Resemaraを支えた技術 フライングゲットガチャの舞台裏 #ksgstudy #ドリコムResemaraを支えた技術 フライングゲットガチャの舞台裏 #ksgstudy #ドリコム
Resemaraを支えた技術 フライングゲットガチャの舞台裏 #ksgstudy #ドリコムGo Sueyoshi (a.k.a sue445)
 
Rubyでプリキュアを作った #cure_advent #shibuyarb
Rubyでプリキュアを作った #cure_advent #shibuyarbRubyでプリキュアを作った #cure_advent #shibuyarb
Rubyでプリキュアを作った #cure_advent #shibuyarbGo Sueyoshi (a.k.a sue445)
 

Mais de Go Sueyoshi (a.k.a sue445) (20)

ドリコムのインフラCI
ドリコムのインフラCIドリコムのインフラCI
ドリコムのインフラCI
 
社内ツールが支えるドリコムの社内勉強会文化 #metabenkyokai
社内ツールが支えるドリコムの社内勉強会文化 #metabenkyokai社内ツールが支えるドリコムの社内勉強会文化 #metabenkyokai
社内ツールが支えるドリコムの社内勉強会文化 #metabenkyokai
 
gemの複数バージョンカジュアルテスト #shibuyarb
gemの複数バージョンカジュアルテスト #shibuyarbgemの複数バージョンカジュアルテスト #shibuyarb
gemの複数バージョンカジュアルテスト #shibuyarb
 
プリキュアのRuby実装の紹介 (2015 ver) #MeguroStartup
プリキュアのRuby実装の紹介 (2015 ver)  #MeguroStartupプリキュアのRuby実装の紹介 (2015 ver)  #MeguroStartup
プリキュアのRuby実装の紹介 (2015 ver) #MeguroStartup
 
ドリコムを支える課金ライブラリを支えるJenkins
ドリコムを支える課金ライブラリを支えるJenkinsドリコムを支える課金ライブラリを支えるJenkins
ドリコムを支える課金ライブラリを支えるJenkins
 
itamae + Serverspecで テスト駆動インフラやってみた #shibuyarb
itamae + Serverspecで テスト駆動インフラやってみた #shibuyarbitamae + Serverspecで テスト駆動インフラやってみた #shibuyarb
itamae + Serverspecで テスト駆動インフラやってみた #shibuyarb
 
社内テストファースト勉強会
社内テストファースト勉強会社内テストファースト勉強会
社内テストファースト勉強会
 
サザエ実況を支える技術 #sst_history
サザエ実況を支える技術 #sst_historyサザエ実況を支える技術 #sst_history
サザエ実況を支える技術 #sst_history
 
プリキュアのRuby実装の紹介 #tqrk08
プリキュアのRuby実装の紹介 #tqrk08プリキュアのRuby実装の紹介 #tqrk08
プリキュアのRuby実装の紹介 #tqrk08
 
Paraductをエクストリームリリースします #428rk01
Paraductをエクストリームリリースします #428rk01Paraductをエクストリームリリースします #428rk01
Paraductをエクストリームリリースします #428rk01
 
GemoireというYARDホスティングアプリを作った #shibuyarb
GemoireというYARDホスティングアプリを作った #shibuyarbGemoireというYARDホスティングアプリを作った #shibuyarb
GemoireというYARDホスティングアプリを作った #shibuyarb
 
Githubエコシステムを活用したイマドキの趣味開発
Githubエコシステムを活用したイマドキの趣味開発Githubエコシステムを活用したイマドキの趣味開発
Githubエコシステムを活用したイマドキの趣味開発
 
プリキュアのRuby実装の紹介 #RubyHiroba
プリキュアのRuby実装の紹介 #RubyHirobaプリキュアのRuby実装の紹介 #RubyHiroba
プリキュアのRuby実装の紹介 #RubyHiroba
 
プリキュアハッカソン2 参加者アンケート集計結果 #cure_hack
プリキュアハッカソン2 参加者アンケート集計結果 #cure_hackプリキュアハッカソン2 参加者アンケート集計結果 #cure_hack
プリキュアハッカソン2 参加者アンケート集計結果 #cure_hack
 
Resemaraを支えた技術 フライングゲットガチャの舞台裏 #ksgstudy #ドリコム
Resemaraを支えた技術 フライングゲットガチャの舞台裏 #ksgstudy #ドリコムResemaraを支えた技術 フライングゲットガチャの舞台裏 #ksgstudy #ドリコム
Resemaraを支えた技術 フライングゲットガチャの舞台裏 #ksgstudy #ドリコム
 
Rubyでプリキュアを作った #cure_advent #shibuyarb
Rubyでプリキュアを作った #cure_advent #shibuyarbRubyでプリキュアを作った #cure_advent #shibuyarb
Rubyでプリキュアを作った #cure_advent #shibuyarb
 
JavaScript TDD紹介 #agilesamurai
JavaScript TDD紹介 #agilesamuraiJavaScript TDD紹介 #agilesamurai
JavaScript TDD紹介 #agilesamurai
 
First step of Rails Contribute‎ #shibuyarb
First step of Rails Contribute‎ #shibuyarbFirst step of Rails Contribute‎ #shibuyarb
First step of Rails Contribute‎ #shibuyarb
 
勉強会を始めるまで #java_ja
勉強会を始めるまで #java_ja勉強会を始めるまで #java_ja
勉強会を始めるまで #java_ja
 
RSpec Performance Turning
RSpec Performance TurningRSpec Performance Turning
RSpec Performance Turning
 

Último

Utilizing Ballerina for Cloud Native Integrations
Utilizing Ballerina for Cloud Native IntegrationsUtilizing Ballerina for Cloud Native Integrations
Utilizing Ballerina for Cloud Native IntegrationsWSO2
 
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。iPride Co., Ltd.
 
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)Hiroshi Tomioka
 
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアルLoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアルCRI Japan, Inc.
 
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。iPride Co., Ltd.
 
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Gamesatsushi061452
 
新人研修 後半 2024/04/26の勉強会で発表されたものです。
新人研修 後半        2024/04/26の勉強会で発表されたものです。新人研修 後半        2024/04/26の勉強会で発表されたものです。
新人研修 後半 2024/04/26の勉強会で発表されたものです。iPride Co., Ltd.
 
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video UnderstandingToru Tamaki
 
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptxsn679259
 
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
LoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイスLoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイス
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイスCRI Japan, Inc.
 
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...Toru Tamaki
 

Último (11)

Utilizing Ballerina for Cloud Native Integrations
Utilizing Ballerina for Cloud Native IntegrationsUtilizing Ballerina for Cloud Native Integrations
Utilizing Ballerina for Cloud Native Integrations
 
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
 
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
 
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアルLoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
 
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
 
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
 
新人研修 後半 2024/04/26の勉強会で発表されたものです。
新人研修 後半        2024/04/26の勉強会で発表されたものです。新人研修 後半        2024/04/26の勉強会で発表されたものです。
新人研修 後半 2024/04/26の勉強会で発表されたものです。
 
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
 
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
 
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
LoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイスLoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイス
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
 
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
 

appengine活用事例資料@TDDBC札幌2.1