SlideShare a Scribd company logo
UNICAST・ワークショップ vol.2

     Railsを使ったWebサービスの作り方
~Railsの環境でWebサービスを作ってみよう!
                ~


1
前回のおさらい
• WebSocket
    – サーバからブラウザへ好きなタイミングでデータを
      送信できる
    – Webブラウザによって対応状況がまちまち
• Ruby on Rails
    – MVCアーキテクチャ
    – アプリに必要な枠組みはRailsが生成
      • 開発が楽!




2
MVCアーキテクチャ




3
Ruby on Rails (Rails) とは?
• Ruby によるWebアプリケーション向
  けのMVCフレームワーク
• 37signalsのプログラマ、David
  Heinemeier Hansson が開発
• Railsを利用しているサービス
    – クックパッド
    – 食べログ
    – Twitter(~2008)




4
準備運動:Rails で Hello world!
(1) Railsプロジェクトを新規作成す
る work> rails new hello
    work> cd hello
    hello> rails generate scaffold greeting
    hello> rake db:migrate

(2) app/views/hello/index.html.erb    を編集し下行で置き換え
る <p>hello, world!</p>

(3) サーバを起動する
    hello> rails server

(4) ブラウザでサーバにアクセス
    http://localhost:3000/greetings


5
準備運動:Rails で Hello world!




6
ここまでのまとめ
• アプリに必要なものはRailsが用意してくれる
• railsコマンドはアプリに必要なものを生成する
    – モデル、ビュー、コントローラの生成
    – サーバの起動
•   rake db:migrateコマンドでデータベースのセット
    アップが行われる




7
今日の目標
• 実際にWebサービスを作ってWebアプリ開発を
  体験します
• 合宿に向けて、Railsの実践的な使い方を学びま
  す




8
お題
• iOSアプリレビューサイト あぷレビュ!(仮称)
    – App Storeからアプリのデータを取得し、レビューを
      投稿・共有するサービス
    – App Storeにもレビュー投稿機能がありますが、今回
      はオリジナルのレビューシステムをRailsで作ります




9
お題
• トップページ




10
お題
• 検索結果のページ




11
お題
• レビュー表示・投稿のページ




12
おことわり
• 今回の内容はRubyやHTMLの知識が必要になる部
  分が所々に出てきます
• ですが尺の都合上、RubyやHTMLについての説明
  は省きます
• よくわからないコードが出てきても、今回はと
  りあえずそういうものなのだと思って、後で自
  習してください(丸投げ)




13
1.アプリの設計
• 作りたいアプリの仕様をざっくりと決めます
• 紙と鉛筆を使って、絵や図を描きながら考えま
  しょう
• 開発に関わるメンバー全員で議論しながら考え
  ましょう




14
1.アプリの設計
• ページフロー
     – ページの見た目やページ間のつながりを考えます
     – 主にMVCの「ビュー」の部分




15
1.アプリの設計
• テーブルの設計
     – アプリが使うデータについて考えます
     – MVCの「モデル」の部分
     – どんなデータを扱うのかを、分類ごとに箇条書きで書きま
       す
     – モデル同士に関連があれば、それも描きこみます




16
1.アプリの設計
• モデルの関連
     – モデルには1対1、1対多、多対多などの関連がありま
       す
     – あぷレビュ!の場合、一つのアプリに複数のレ
       ビューがつくと考えられるので、アプリとレビュー
       は1対多の関係となります
        アプリ                1   0…*

                     アプリ             レビュー

レビュー    レビュー   ・・・




17
1.アプリの設計
• その他、開発に必要なことを色々考えておきま
  す
     – どのぐらいの期間で完成できる?
      • 今回は3時間。終わらなかったら次回にやるかも。
     – 必ず実装しなくてはいけない部分は?
      • iTunes Storeからデータを取得
      • アプリのデータとレビューの情報の紐づけ
     – 逆に、必ずしも実装しなくてもよい部分は?
      • 新着レビューの表示(なくても見栄えは悪いが一応動く)
     – 一番実装が難しい部分は?
      • iTunes Storeからレコードを取得する部分?
     – どんな技術や知識が必要?
      • Rails、Ruby、HTTP、データベース
18
2.プロジェクトの新規作成
• いよいよ実際にプログラムを書いていきます
• まずはプロジェクトの作成
 work> rails new appreview
       create
       create README.rdoc
       create Rakefile
 …
 中略
 …
 Using sqlite3 (1.3.6)
 Using uglifier (1.2.7)
 Your bundle is complete! Use `bundle show [gemname]` to
 see where a bundled gem is installed.

 work> cd appreview

19
2.Gemの追加
• Rubyのモジュールの単位をGemと呼びます
• たくさんのアプリやライブラリがGemとして公
  開されています
• 今回はApp Storeからアプリのデータを取得する
  ためにHTTPClientというGemを使います




20
2.Gemの追加
• Railsプロジェクトが使うGemはGemfileという
  ファイルに書かれています
• Gemfileの末尾にHTTPClientを追記します
• ファイルの文字コードはUTF-8を指定してくださ
  い
     …
     gem ‘httpclient’



• 終わったらGemをインストールします
     appreview> bundle install




21
3.サーバの起動
• 動作確認のためのサーバを起動します
• 新しいコマンドプロンプトを開いて、以下のコ
  マンドを実行します
appreview> rails server



• http://localhost:3000 にアクセスできますか?




22
4.トップページ(兼、検索ページ)
を作成
• 今度はトップページ(兼、検索ページ)を作り
  ます
• railsコマンドを使って、ページのひな形を生成
     します
appreview> rails generate controller Home index search




23
4.トップページ(兼、検索ページ)
を作成
• 先ほどのコマンドで以下のファイルが生成され
  ました
     – appcontrollershome_controller.rb
        • トップページのコントローラ
     – appviewshomeindex.html.erb
        • トップページのビュー
     – appviewshomesearch.html.erb
        • 検索ページのビュー
• 生成されたファイルを確認してみてください



24
5.ブラウザで確認
• 次のURLにアクセスして、生成したコントローラ
  とビューが無事動くことを確認してみてくださ
  い
     – http://localhost:3000/home/index
     – http://localhost:3000/home/search




25
6.トップページを変える
• まだ http://localhost:3000 はデフォルトのままです
• configroutes.rb を編集して、先ほど作成したトップペー
  ジに移動するようにします
Appreview::Application.routes.draw do
  get "home/index"

     get "home/search"

     root :to => 'home#index‘
…
• デフォルトのトップページである publicindex.html は削
  除します
appreview> del publicindex.html
• トップページは変わりましたか?

26
7.トップページのビューを書く
• トップページのビューを書いていきます
• RailsではERB (embedded Ruby)という形式で
  ビューを書きます
     – ERBでは <% … %>で囲った文字列がRubyの式として解
       釈されます
     – 例えば <%= 1+1 %> と書いた場合、ブラウザでは2と表
       示されます
     – つまり、HTMLの中にRubyのプログラムを埋め込める
       わけです



27
7.トップページのビューを書く
• appviewshomeindex.html.erb を編集して、タイト
  ルと検索窓を持つトップページを実装します
<div id=“top”>
  <h1>あぷレビュ!</h1>
  <p class=“search_field”>
    <%= form_tag "/search", :method => "get" do %>
       <%= search_field_tag "q", "アプリを検索" %>
       <%= submit_tag "検索", :name => nil %>
    <% end %>
  </p>
</div>

• ブラウザをリロードして、出来栄えを確認しましょ
  う
• 検索窓で何か検索してみてください(おそらく
  Routing Errorになりますが)
28
8.検索ページに移動するように
する
• Routing Errorのままでは使い物にならないので、
  configroutes.rb を編集して検索ページに飛ぶよ
  うにします
Appreview::Application.routes.draw do
  get "home/index"

     get "home/search"

 root :to => 'home#index‘
  match ‘/search’ => ‘home#search’
…

• 検索ページに飛ぶようになりましたか?

29
9.検索処理をコントローラに実装す
る
• 検索ページでは、App Storeからアプリデータを
  検索し、表示します
• App StoreにはWebアプリからアクセスするため
  の専用のAPIが公開されています
• 今回はHTTPClientでAPIにアクセスし、アプリの
  データを取得します
• 検索処理やDBへのアクセスといった仕事はコン
  トローラの役目です
• コントローラに検索処理を実装していきます


30
9.検索処理をコントローラに実装す
る
• appcontrollershomehome_controller.rbを編集し
  ます
     def search
       # 検索する文字列を取得
       @query = params[:q]

      content = HTTPClient.new.get_content(
                                   "http://itunes.apple.com/search",
                                   "term" => @query, # 検索キーワード
                                   "country" => "jp",
                                   "entity" => "software")
      # JSON形式のレスポンスを解析する
      json = JSON.parse(content)
      # 変数@resultsにアプリのリストを格納する
      @results = json["results"]

       # app/views/home/search.html.erb を表示
       render :action => "search"
     end


31
10.検索ページのビューを書く
• 検索処理を実装しましたが、まだビューを書い
  ていないので表示できません
• 変数@resultsに格納した検索結果を表形式で出力
  するようにします

• appviewshomesearch.html.erb を編集します




32
10.検索ページのビューを書く
<h2>検索結果</h2>
<%= form_tag "/search", :method => "get" do %>
  <%= search_field_tag "q", @query %>
  <%= submit_tag "検索", :name => nil %>
<% end %>
<hr />
<table class="results">
  <tr>
    <th></th><th>タイトル</th><th>ジャンル</th><th>開発者</th><th>価格</th>
  </tr>
  <% @results.each do |record| %>
    <tr>
       <td><%= image_tag record["artworkUrl60"] %></th>
       <td><%= record["trackName"] %></td>
       <td><%= record["genres"].join(', ') %></td>
       <td><%= record["artistName"] %></td>
       <td><%= record["formattedPrice"] %></td>
    </tr>
  <% end %>
</table>

<hr />
<%= link_to "トップ", "/" %>


33
10.検索ページのビューを書く
• ここまですべてがうまくいっていれば、検索窓
  から自由にアプリを検索できるようになってい
  るはずです




34
11.レビューのモデルを生成す
る
• トップページと検索ページが完成しました
• 次はレビュー機能を実装します
• 投稿されたレビューや、レビューされたアプリ
   の情報を保存するためのモデルを生成しましょ
   う
appreview> rails generate scaffold App store_id:integer
title:string developer:string price:decimal
appreview> rails generate scaffold Review name:string
comment:string rate:integer app:references
appreview> rake db:migrate




35
11.レビューのモデルを生成す
る
• 以下のファイルは生成されたでしょうか
     –   appmodelsapp.rb
     –   appmodelsreview.rb
     –   appcontrollersapps_controller.rb
     –   appcontrollersreviews_controller.rb
     –   appviewsappsshow.html.erb




36
12.1対多の関連を設定する
• さて、最初に設計したモデルでは、アプリとレ
  ビューは1対多の関連を持っているのでした
• 先ほどのレビューのモデルを生成するコマンド
  で、app:references と指定しているのは「Review
  はAppと関連している」ということをRailsに伝え
  るためだったのです
• 次に「Appは複数のReviewと関連している」とい
  うことをRailsに伝えるため、アプリのモデルを
  編集します


37
12.1対多の関連を設定する
• appmodelsapp.rb を開いて、以下のように編集
  します
class App < ActiveRecord::Base
  has_many :reviews
  attr_accessible :developer, :price, :store_id, :title
end

• :reviewではなく:reviewsです

• これで1対多の関連が構築されました




38
13.レビューページのビューを作成
する
• レビューを投稿・表示するページのビューを作
  成します

• appviewsappsshow.html.erb を編集します
• 長いので、入力が面倒な人はコピペで構いませ
  ん




39
13.レビューページのビューを作成
する
<h2><%= @app.title %> - レビュー</h2>
<p id="notice">
  <%= notice %>
</p>
<hr />
<table class="info">
  <tr><th>開発者</th><td><%= @app.developer %></td><th>価格</th><td><%= @app.price %>円</td></tr>
</table>
<table class="reviews">
  <tr><th>お名前</th><th>レート</th><th>レビュー</th></tr>
  <% @app.reviews.each do |r| %>
    <tr><td><%= r.name %></td><td><%= "★" * r.rate %></td><td><%= r.comment %></td></tr> <% end %>
</table>
<hr />
<h3>レビューを書く!</h3>
<%= form_for([@app.reviews.build]) do |f| %>
  <%= f.hidden_field :app_id, value: @app.id %>
  <div class="field">
    <%= f.label "お名前" %><br /> <%= f.text_field :name %>
  </div>
  <div class="field">
    <%= f.label "レート" %><br /> <%= f.select :rate,
    (0..5).to_a.collect {|i| ["★"*i, i]} %>
  </div>
  <div class="field">
    <%= f.label "レビュー" %><br /> <%= f.text_area :comment %>
  </div>
  <div class="actions">
    <%= f.submit "投稿" %>
  </div>
<% end %>
<hr />
<%= link_to "トップ", "/" %>




40
14.レビューページを新規作成する処理
を書く
• レビューはアプリに関連付けられて投稿されま
  す
• レビューを投稿するためには、あらかじめアプ
  リの情報がデータベースに登録されている必要
  があります
• 検索結果のページからアプリをクリックしたと
  き、そのアプリがDBに登録されていなければDB
  にアプリ情報を登録する処理を書きます



41
14.レビューページを新規作成する処理
を書く
• appcontrollersapps_controller.rb を編集し、index
  メソッドを以下で置き換えます
class AppsController < ApplicationController
  # GET /apps
  # GET /apps.json
  def index
    if params[:store_id]
      app = App.where("store_id = :store_id", params).first
      # もしアプリの情報がDBになければ新規作成する
      unless app
        app = App.new
        app.store_id = params[:store_id].to_i
        app.title = params[:title]
        app.developer = params[:developer]
        app.price = params[:price].to_f
        app.save
      end
      # レビューのページに飛ぶ
      redirect_to action: "show", id: app.id
    end
  end




42
15.レビューページに飛ぶリンクを追加
する
• これでレビューページを表示するために必要な
  ものが揃いました
• 次に、レビューページに飛ぶためのリンクを検
  索結果のページに追加しましょう




43
15.レビューページに飛ぶリンクを追加
する
• appviewshomesearch.html.erb を編集します
• アプリタイトルの所にレビューページへのリン
  クが張られるように、以下のように修正します
<% @results.each do |record| %>
   <tr>
     <td><%= image_tag record["artworkUrl60"] %>
     <td>
           <%= link_to record["trackName"], apps_path(
                   store_id: record["trackId"],
                   title: record["trackName"],
                   developer: record["artistName"],
                   price: record["price"]) %>
     </td>
     <td><%= record["genres"].join(', ') %></td>
     <td><%= record["artistName"] %></td>
     <td><%= record["formattedPrice"] %></td>
   </tr>
 <% end %>




44
15.レビューページに飛ぶリンクを追加
する
• これで検索結果のページからレビューのページ
  に行けるようになりました
• ブラウザで動作を確認してみてください




45
16.投稿したアプリのページに戻るよう
にする
• さて、いよいよ最後です
• レビューの投稿ボタンを押すと、Listing reviews
  と表示されるページに飛ぶと思います
• これをレビューの投稿時に、投稿したアプリの
  ページに戻るようにします
• これはReviewのコントローラが処理しています




46
16.レビューを投稿できるよう
にする
• appcontrollersreviews_controller.rb のcreateメ
  ソッドを以下のように編集します
def create
    @review = Review.new(params[:review])

   respond_to do |format|
     if @review.save
       format.html { redirect_to App.find(@review.app_id),
            notice: 'Review was successfully created.' }
       format.json { render json: @review, status: :created, location: @review }
     else
       format.html { render action: "new" }
       format.json { render json: @review.errors, status: :unprocessable_entity }
     end
   end
 end




47
16.レビューを投稿できるよう
にする
• @review.app_idはReviewオブジェクトの属性app_id
     にアクセスするという意味です
• デフォルトでは属性app_idにアクセスするための
  設定がReviewオブジェクトにされていないので、
  これを修正します
• appmodelsreview.rb を編集します
class Review < ActiveRecord::Base
  belongs_to :app
  attr_accessible :comment, :name, :rate, :app_id
end




48
16.レビューを投稿できるよう
にする
• これでレビューが投稿できるようになりまし
  た!
• すべてがうまくいっているか、ブラウザで確認
  してみてください




49
17.さらに拡張
• これで一通りの機能が揃いました
• しかし、まだ課題はあります
     – 見た目がまだ不細工です
      • HTMLやスタイルシートを工夫して見栄えをよくしてみま
        しょう
     – レビューが削除ができない
      • コントローラに削除の処理を追加してみましょう
     – 機能が少なくて、Webサービスとしてはまだまだしょ
       ぼい


• 改善点を見つけて、取り組んでみましょう
50
スキルアップのために
• Webアプリ開発は非常に広範な知識を要求され
  る分野です
• 今回の課題だけでも、Rails、Ruby、HTTP、デー
  タベース、HTMLといった知識が必要になりまし
  た
• Webアプリ開発を習得するためには、たくさん
  書籍を読んで、実際に手を動かしてみるほかあ
  りません



51
参考書籍
• 幸い、RubyやRailsは非常に参考になる書籍が出
  ています
     – たのしいRuby 第3版
       • 高橋征義、後藤裕蔵(著)、まつもとゆきひろ(監修)
       • 出版:ソフトバンククリエイティブ
     – RailsによるアジャイルWebアプリケーション開発第4
       版
       • Sam Ruby, et al.(著), 前田 修吾 (翻訳)
       • 出版:オーム社

• 合宿までの間、図書館で借りるなどして読んで
  おくこと良いと思います

52
まとめ
• Railsについておさらいしました
     – MVCアーキテクチャ
     – 自動生成で簡単に作れる
• RailsでWebサービスを作りました
     – アプリをざっくり設計し、図に起こしました
     – 設計をもとにRailsでモデル、ビュー、コントローラを
       生成し、中身を実装しました
     – App Storeの検索APIを使って、アプリのレビューサイ
       トを構築しました



53
おわり




54

More Related Content

Viewers also liked

Davis Langdon Ireland Review 2011
Davis Langdon Ireland Review 2011Davis Langdon Ireland Review 2011
Davis Langdon Ireland Review 2011
pmitchell6763
 
Davis Langdon Review 2012
Davis Langdon Review 2012Davis Langdon Review 2012
Davis Langdon Review 2012
pmitchell6763
 
Draft lite davis langdon national construction conference oct 2012
Draft lite davis langdon national construction conference oct 2012Draft lite davis langdon national construction conference oct 2012
Draft lite davis langdon national construction conference oct 2012
pmitchell6763
 
Government and media response to disaster gwestmoreland
Government and media response to disaster gwestmorelandGovernment and media response to disaster gwestmoreland
Government and media response to disaster gwestmorelandgwestmo
 
ユニキャストにおけるGitの運用方針 v0.9
ユニキャストにおけるGitの運用方針 v0.9ユニキャストにおけるGitの運用方針 v0.9
ユニキャストにおけるGitの運用方針 v0.9Unicast Inc.
 
Wi-Fi
Wi-FiWi-Fi
Wi-Fi
gsnair18
 
The Six Highest Performing B2B Blog Post Formats
The Six Highest Performing B2B Blog Post FormatsThe Six Highest Performing B2B Blog Post Formats
The Six Highest Performing B2B Blog Post Formats
Barry Feldman
 
The Outcome Economy
The Outcome EconomyThe Outcome Economy
The Outcome Economy
Helge Tennø
 

Viewers also liked (8)

Davis Langdon Ireland Review 2011
Davis Langdon Ireland Review 2011Davis Langdon Ireland Review 2011
Davis Langdon Ireland Review 2011
 
Davis Langdon Review 2012
Davis Langdon Review 2012Davis Langdon Review 2012
Davis Langdon Review 2012
 
Draft lite davis langdon national construction conference oct 2012
Draft lite davis langdon national construction conference oct 2012Draft lite davis langdon national construction conference oct 2012
Draft lite davis langdon national construction conference oct 2012
 
Government and media response to disaster gwestmoreland
Government and media response to disaster gwestmorelandGovernment and media response to disaster gwestmoreland
Government and media response to disaster gwestmoreland
 
ユニキャストにおけるGitの運用方針 v0.9
ユニキャストにおけるGitの運用方針 v0.9ユニキャストにおけるGitの運用方針 v0.9
ユニキャストにおけるGitの運用方針 v0.9
 
Wi-Fi
Wi-FiWi-Fi
Wi-Fi
 
The Six Highest Performing B2B Blog Post Formats
The Six Highest Performing B2B Blog Post FormatsThe Six Highest Performing B2B Blog Post Formats
The Six Highest Performing B2B Blog Post Formats
 
The Outcome Economy
The Outcome EconomyThe Outcome Economy
The Outcome Economy
 

Similar to UnicastWS vol.2

scala+liftで遊ぼう
scala+liftで遊ぼうscala+liftで遊ぼう
scala+liftで遊ぼう
youku
 
Rails初心者レッスン lesson3 3edition
Rails初心者レッスン lesson3 3editionRails初心者レッスン lesson3 3edition
Rails初心者レッスン lesson3 3editionSatomi Tsujita
 
Elixir入門「第3回:Phoenix 1.3で高速webアプリ & REST APIアプリをサクッと書いてみる」
Elixir入門「第3回:Phoenix 1.3で高速webアプリ & REST APIアプリをサクッと書いてみる」Elixir入門「第3回:Phoenix 1.3で高速webアプリ & REST APIアプリをサクッと書いてみる」
Elixir入門「第3回:Phoenix 1.3で高速webアプリ & REST APIアプリをサクッと書いてみる」
fukuoka.ex
 
Tech fun rails_workshop
Tech fun rails_workshopTech fun rails_workshop
Tech fun rails_workshop
OMEGA (@equal_001)
 
Elixir入門「第3回:Phoenix 1.2で高速Webアプリ & REST APIをサクッと書いてみる」【旧版】※新版あります
Elixir入門「第3回:Phoenix 1.2で高速Webアプリ & REST APIをサクッと書いてみる」【旧版】※新版ありますElixir入門「第3回:Phoenix 1.2で高速Webアプリ & REST APIをサクッと書いてみる」【旧版】※新版あります
Elixir入門「第3回:Phoenix 1.2で高速Webアプリ & REST APIをサクッと書いてみる」【旧版】※新版あります
fukuoka.ex
 
About rails 3
About rails 3About rails 3
About rails 3
issei126
 
はじめての ASP.NET MVC
はじめての ASP.NET MVCはじめての ASP.NET MVC
はじめての ASP.NET MVC
jz5 MATSUE
 
ASP.NET WEB API 開発体験
ASP.NET WEB API 開発体験ASP.NET WEB API 開発体験
ASP.NET WEB API 開発体験
miso- soup3
 
[公開用]Netラボ2012年2月勉強会 asp.netmvc4 beta新機能の紹介
[公開用]Netラボ2012年2月勉強会 asp.netmvc4 beta新機能の紹介[公開用]Netラボ2012年2月勉強会 asp.netmvc4 beta新機能の紹介
[公開用]Netラボ2012年2月勉強会 asp.netmvc4 beta新機能の紹介david9142
 
Rails初心者レッスン lesson1 3rd edition
Rails初心者レッスン lesson1 3rd editionRails初心者レッスン lesson1 3rd edition
Rails初心者レッスン lesson1 3rd edition
Goh Matsumoto
 
Pro aspnetmvc3framework chap15
Pro aspnetmvc3framework chap15Pro aspnetmvc3framework chap15
Pro aspnetmvc3framework chap15Hideki Hashizume
 
Appsody でnodejsのアプリを立ち上げよう!
Appsody でnodejsのアプリを立ち上げよう!Appsody でnodejsのアプリを立ち上げよう!
Appsody でnodejsのアプリを立ち上げよう!
Daisuke Hiraoka
 
ASP.NET Core 概要(2017年3月時点)
ASP.NET Core 概要(2017年3月時点)ASP.NET Core 概要(2017年3月時点)
ASP.NET Core 概要(2017年3月時点)
Atsushi Yokohama (BEACHSIDE)
 
20150207コデアルエンジニア学生向けハッカソン就活イベント発表資料
20150207コデアルエンジニア学生向けハッカソン就活イベント発表資料20150207コデアルエンジニア学生向けハッカソン就活イベント発表資料
20150207コデアルエンジニア学生向けハッカソン就活イベント発表資料
codeal
 
densan2014-late01
densan2014-late01densan2014-late01
densan2014-late01
Takenori Nakagawa
 
データマイニング+WEB勉強会資料第6回
データマイニング+WEB勉強会資料第6回データマイニング+WEB勉強会資料第6回
データマイニング+WEB勉強会資料第6回Naoyuki Yamada
 
Webフロントエンド開発の最新トレンド - HTML5, モバイル, オフライン
Webフロントエンド開発の最新トレンド - HTML5, モバイル, オフラインWebフロントエンド開発の最新トレンド - HTML5, モバイル, オフライン
Webフロントエンド開発の最新トレンド - HTML5, モバイル, オフライン
Shumpei Shiraishi
 
OpenWhisk - Docker action で MeCab を動かす
OpenWhisk - Docker action で MeCab を動かすOpenWhisk - Docker action で MeCab を動かす
OpenWhisk - Docker action で MeCab を動かす
KUNITO Atsunori
 
中規模Androidアプリ開発の過程に生じた問題と対策の紹介
中規模Androidアプリ開発の過程に生じた問題と対策の紹介中規模Androidアプリ開発の過程に生じた問題と対策の紹介
中規模Androidアプリ開発の過程に生じた問題と対策の紹介NilOne Ltd.
 
進化する Web ~ Progressive Web Apps の実装と応用 ~
進化する Web  ~ Progressive Web Apps の実装と応用 ~進化する Web  ~ Progressive Web Apps の実装と応用 ~
進化する Web ~ Progressive Web Apps の実装と応用 ~
Microsoft Azure Japan
 

Similar to UnicastWS vol.2 (20)

scala+liftで遊ぼう
scala+liftで遊ぼうscala+liftで遊ぼう
scala+liftで遊ぼう
 
Rails初心者レッスン lesson3 3edition
Rails初心者レッスン lesson3 3editionRails初心者レッスン lesson3 3edition
Rails初心者レッスン lesson3 3edition
 
Elixir入門「第3回:Phoenix 1.3で高速webアプリ & REST APIアプリをサクッと書いてみる」
Elixir入門「第3回:Phoenix 1.3で高速webアプリ & REST APIアプリをサクッと書いてみる」Elixir入門「第3回:Phoenix 1.3で高速webアプリ & REST APIアプリをサクッと書いてみる」
Elixir入門「第3回:Phoenix 1.3で高速webアプリ & REST APIアプリをサクッと書いてみる」
 
Tech fun rails_workshop
Tech fun rails_workshopTech fun rails_workshop
Tech fun rails_workshop
 
Elixir入門「第3回:Phoenix 1.2で高速Webアプリ & REST APIをサクッと書いてみる」【旧版】※新版あります
Elixir入門「第3回:Phoenix 1.2で高速Webアプリ & REST APIをサクッと書いてみる」【旧版】※新版ありますElixir入門「第3回:Phoenix 1.2で高速Webアプリ & REST APIをサクッと書いてみる」【旧版】※新版あります
Elixir入門「第3回:Phoenix 1.2で高速Webアプリ & REST APIをサクッと書いてみる」【旧版】※新版あります
 
About rails 3
About rails 3About rails 3
About rails 3
 
はじめての ASP.NET MVC
はじめての ASP.NET MVCはじめての ASP.NET MVC
はじめての ASP.NET MVC
 
ASP.NET WEB API 開発体験
ASP.NET WEB API 開発体験ASP.NET WEB API 開発体験
ASP.NET WEB API 開発体験
 
[公開用]Netラボ2012年2月勉強会 asp.netmvc4 beta新機能の紹介
[公開用]Netラボ2012年2月勉強会 asp.netmvc4 beta新機能の紹介[公開用]Netラボ2012年2月勉強会 asp.netmvc4 beta新機能の紹介
[公開用]Netラボ2012年2月勉強会 asp.netmvc4 beta新機能の紹介
 
Rails初心者レッスン lesson1 3rd edition
Rails初心者レッスン lesson1 3rd editionRails初心者レッスン lesson1 3rd edition
Rails初心者レッスン lesson1 3rd edition
 
Pro aspnetmvc3framework chap15
Pro aspnetmvc3framework chap15Pro aspnetmvc3framework chap15
Pro aspnetmvc3framework chap15
 
Appsody でnodejsのアプリを立ち上げよう!
Appsody でnodejsのアプリを立ち上げよう!Appsody でnodejsのアプリを立ち上げよう!
Appsody でnodejsのアプリを立ち上げよう!
 
ASP.NET Core 概要(2017年3月時点)
ASP.NET Core 概要(2017年3月時点)ASP.NET Core 概要(2017年3月時点)
ASP.NET Core 概要(2017年3月時点)
 
20150207コデアルエンジニア学生向けハッカソン就活イベント発表資料
20150207コデアルエンジニア学生向けハッカソン就活イベント発表資料20150207コデアルエンジニア学生向けハッカソン就活イベント発表資料
20150207コデアルエンジニア学生向けハッカソン就活イベント発表資料
 
densan2014-late01
densan2014-late01densan2014-late01
densan2014-late01
 
データマイニング+WEB勉強会資料第6回
データマイニング+WEB勉強会資料第6回データマイニング+WEB勉強会資料第6回
データマイニング+WEB勉強会資料第6回
 
Webフロントエンド開発の最新トレンド - HTML5, モバイル, オフライン
Webフロントエンド開発の最新トレンド - HTML5, モバイル, オフラインWebフロントエンド開発の最新トレンド - HTML5, モバイル, オフライン
Webフロントエンド開発の最新トレンド - HTML5, モバイル, オフライン
 
OpenWhisk - Docker action で MeCab を動かす
OpenWhisk - Docker action で MeCab を動かすOpenWhisk - Docker action で MeCab を動かす
OpenWhisk - Docker action で MeCab を動かす
 
中規模Androidアプリ開発の過程に生じた問題と対策の紹介
中規模Androidアプリ開発の過程に生じた問題と対策の紹介中規模Androidアプリ開発の過程に生じた問題と対策の紹介
中規模Androidアプリ開発の過程に生じた問題と対策の紹介
 
進化する Web ~ Progressive Web Apps の実装と応用 ~
進化する Web  ~ Progressive Web Apps の実装と応用 ~進化する Web  ~ Progressive Web Apps の実装と応用 ~
進化する Web ~ Progressive Web Apps の実装と応用 ~
 

Recently uploaded

FIDO Alliance Osaka Seminar: CloudGate.pdf
FIDO Alliance Osaka Seminar: CloudGate.pdfFIDO Alliance Osaka Seminar: CloudGate.pdf
FIDO Alliance Osaka Seminar: CloudGate.pdf
FIDO Alliance
 
論文紹介:When Visual Prompt Tuning Meets Source-Free Domain Adaptive Semantic Seg...
論文紹介:When Visual Prompt Tuning Meets Source-Free Domain Adaptive Semantic Seg...論文紹介:When Visual Prompt Tuning Meets Source-Free Domain Adaptive Semantic Seg...
論文紹介:When Visual Prompt Tuning Meets Source-Free Domain Adaptive Semantic Seg...
Toru Tamaki
 
YugabyteDB適用に向けた取り組みと隠れた魅力 (DSS Asia 2024 発表資料)
YugabyteDB適用に向けた取り組みと隠れた魅力 (DSS Asia 2024 発表資料)YugabyteDB適用に向けた取り組みと隠れた魅力 (DSS Asia 2024 発表資料)
YugabyteDB適用に向けた取り組みと隠れた魅力 (DSS Asia 2024 発表資料)
NTT DATA Technology & Innovation
 
FIDO Alliance Osaka Seminar: NEC & Yubico Panel.pdf
FIDO Alliance Osaka Seminar: NEC & Yubico Panel.pdfFIDO Alliance Osaka Seminar: NEC & Yubico Panel.pdf
FIDO Alliance Osaka Seminar: NEC & Yubico Panel.pdf
FIDO Alliance
 
FIDO Alliance Osaka Seminar: LY-DOCOMO-KDDI-Mercari Panel.pdf
FIDO Alliance Osaka Seminar: LY-DOCOMO-KDDI-Mercari Panel.pdfFIDO Alliance Osaka Seminar: LY-DOCOMO-KDDI-Mercari Panel.pdf
FIDO Alliance Osaka Seminar: LY-DOCOMO-KDDI-Mercari Panel.pdf
FIDO Alliance
 
CS集会#13_なるほどわからん通信技術 発表資料
CS集会#13_なるほどわからん通信技術 発表資料CS集会#13_なるほどわからん通信技術 発表資料
CS集会#13_なるほどわからん通信技術 発表資料
Yuuitirou528 default
 
単腕マニピュレータによる 複数物体の同時組み立ての 基礎的考察 / Basic Approach to Robotic Assembly of Multi...
単腕マニピュレータによる 複数物体の同時組み立ての 基礎的考察 / Basic Approach to Robotic Assembly of Multi...単腕マニピュレータによる 複数物体の同時組み立ての 基礎的考察 / Basic Approach to Robotic Assembly of Multi...
単腕マニピュレータによる 複数物体の同時組み立ての 基礎的考察 / Basic Approach to Robotic Assembly of Multi...
Fukuoka Institute of Technology
 
FIDO Alliance Osaka Seminar: PlayStation Passkey Deployment Case Study.pdf
FIDO Alliance Osaka Seminar: PlayStation Passkey Deployment Case Study.pdfFIDO Alliance Osaka Seminar: PlayStation Passkey Deployment Case Study.pdf
FIDO Alliance Osaka Seminar: PlayStation Passkey Deployment Case Study.pdf
FIDO Alliance
 
論文紹介: Offline Q-Learning on diverse Multi-Task data both scales and generalizes
論文紹介: Offline Q-Learning on diverse Multi-Task data both scales and generalizes論文紹介: Offline Q-Learning on diverse Multi-Task data both scales and generalizes
論文紹介: Offline Q-Learning on diverse Multi-Task data both scales and generalizes
atsushi061452
 
FIDO Alliance Osaka Seminar: Welcome Slides.pdf
FIDO Alliance Osaka Seminar: Welcome Slides.pdfFIDO Alliance Osaka Seminar: Welcome Slides.pdf
FIDO Alliance Osaka Seminar: Welcome Slides.pdf
FIDO Alliance
 
MPAなWebフレームワーク、Astroの紹介 (その2) 2024/05/24の勉強会で発表されたものです。
MPAなWebフレームワーク、Astroの紹介 (その2) 2024/05/24の勉強会で発表されたものです。MPAなWebフレームワーク、Astroの紹介 (その2) 2024/05/24の勉強会で発表されたものです。
MPAなWebフレームワーク、Astroの紹介 (その2) 2024/05/24の勉強会で発表されたものです。
iPride Co., Ltd.
 
2024年度_サイバーエージェント_新卒研修「データベースの歴史」.pptx
2024年度_サイバーエージェント_新卒研修「データベースの歴史」.pptx2024年度_サイバーエージェント_新卒研修「データベースの歴史」.pptx
2024年度_サイバーエージェント_新卒研修「データベースの歴史」.pptx
yassun7010
 
LoRaWAN 4チャンネル電流センサー・コンバーター CS01-LB 日本語マニュアル
LoRaWAN 4チャンネル電流センサー・コンバーター CS01-LB 日本語マニュアルLoRaWAN 4チャンネル電流センサー・コンバーター CS01-LB 日本語マニュアル
LoRaWAN 4チャンネル電流センサー・コンバーター CS01-LB 日本語マニュアル
CRI Japan, Inc.
 
TaketoFujikawa_物語のコンセプトに基づく情報アクセス手法の基礎検討_JSAI2024
TaketoFujikawa_物語のコンセプトに基づく情報アクセス手法の基礎検討_JSAI2024TaketoFujikawa_物語のコンセプトに基づく情報アクセス手法の基礎検討_JSAI2024
TaketoFujikawa_物語のコンセプトに基づく情報アクセス手法の基礎検討_JSAI2024
Matsushita Laboratory
 
【DLゼミ】XFeat: Accelerated Features for Lightweight Image Matching
【DLゼミ】XFeat: Accelerated Features for Lightweight Image Matching【DLゼミ】XFeat: Accelerated Features for Lightweight Image Matching
【DLゼミ】XFeat: Accelerated Features for Lightweight Image Matching
harmonylab
 
【AI論文解説】Consistency ModelとRectified Flow
【AI論文解説】Consistency ModelとRectified Flow【AI論文解説】Consistency ModelとRectified Flow
【AI論文解説】Consistency ModelとRectified Flow
Sony - Neural Network Libraries
 

Recently uploaded (16)

FIDO Alliance Osaka Seminar: CloudGate.pdf
FIDO Alliance Osaka Seminar: CloudGate.pdfFIDO Alliance Osaka Seminar: CloudGate.pdf
FIDO Alliance Osaka Seminar: CloudGate.pdf
 
論文紹介:When Visual Prompt Tuning Meets Source-Free Domain Adaptive Semantic Seg...
論文紹介:When Visual Prompt Tuning Meets Source-Free Domain Adaptive Semantic Seg...論文紹介:When Visual Prompt Tuning Meets Source-Free Domain Adaptive Semantic Seg...
論文紹介:When Visual Prompt Tuning Meets Source-Free Domain Adaptive Semantic Seg...
 
YugabyteDB適用に向けた取り組みと隠れた魅力 (DSS Asia 2024 発表資料)
YugabyteDB適用に向けた取り組みと隠れた魅力 (DSS Asia 2024 発表資料)YugabyteDB適用に向けた取り組みと隠れた魅力 (DSS Asia 2024 発表資料)
YugabyteDB適用に向けた取り組みと隠れた魅力 (DSS Asia 2024 発表資料)
 
FIDO Alliance Osaka Seminar: NEC & Yubico Panel.pdf
FIDO Alliance Osaka Seminar: NEC & Yubico Panel.pdfFIDO Alliance Osaka Seminar: NEC & Yubico Panel.pdf
FIDO Alliance Osaka Seminar: NEC & Yubico Panel.pdf
 
FIDO Alliance Osaka Seminar: LY-DOCOMO-KDDI-Mercari Panel.pdf
FIDO Alliance Osaka Seminar: LY-DOCOMO-KDDI-Mercari Panel.pdfFIDO Alliance Osaka Seminar: LY-DOCOMO-KDDI-Mercari Panel.pdf
FIDO Alliance Osaka Seminar: LY-DOCOMO-KDDI-Mercari Panel.pdf
 
CS集会#13_なるほどわからん通信技術 発表資料
CS集会#13_なるほどわからん通信技術 発表資料CS集会#13_なるほどわからん通信技術 発表資料
CS集会#13_なるほどわからん通信技術 発表資料
 
単腕マニピュレータによる 複数物体の同時組み立ての 基礎的考察 / Basic Approach to Robotic Assembly of Multi...
単腕マニピュレータによる 複数物体の同時組み立ての 基礎的考察 / Basic Approach to Robotic Assembly of Multi...単腕マニピュレータによる 複数物体の同時組み立ての 基礎的考察 / Basic Approach to Robotic Assembly of Multi...
単腕マニピュレータによる 複数物体の同時組み立ての 基礎的考察 / Basic Approach to Robotic Assembly of Multi...
 
FIDO Alliance Osaka Seminar: PlayStation Passkey Deployment Case Study.pdf
FIDO Alliance Osaka Seminar: PlayStation Passkey Deployment Case Study.pdfFIDO Alliance Osaka Seminar: PlayStation Passkey Deployment Case Study.pdf
FIDO Alliance Osaka Seminar: PlayStation Passkey Deployment Case Study.pdf
 
論文紹介: Offline Q-Learning on diverse Multi-Task data both scales and generalizes
論文紹介: Offline Q-Learning on diverse Multi-Task data both scales and generalizes論文紹介: Offline Q-Learning on diverse Multi-Task data both scales and generalizes
論文紹介: Offline Q-Learning on diverse Multi-Task data both scales and generalizes
 
FIDO Alliance Osaka Seminar: Welcome Slides.pdf
FIDO Alliance Osaka Seminar: Welcome Slides.pdfFIDO Alliance Osaka Seminar: Welcome Slides.pdf
FIDO Alliance Osaka Seminar: Welcome Slides.pdf
 
MPAなWebフレームワーク、Astroの紹介 (その2) 2024/05/24の勉強会で発表されたものです。
MPAなWebフレームワーク、Astroの紹介 (その2) 2024/05/24の勉強会で発表されたものです。MPAなWebフレームワーク、Astroの紹介 (その2) 2024/05/24の勉強会で発表されたものです。
MPAなWebフレームワーク、Astroの紹介 (その2) 2024/05/24の勉強会で発表されたものです。
 
2024年度_サイバーエージェント_新卒研修「データベースの歴史」.pptx
2024年度_サイバーエージェント_新卒研修「データベースの歴史」.pptx2024年度_サイバーエージェント_新卒研修「データベースの歴史」.pptx
2024年度_サイバーエージェント_新卒研修「データベースの歴史」.pptx
 
LoRaWAN 4チャンネル電流センサー・コンバーター CS01-LB 日本語マニュアル
LoRaWAN 4チャンネル電流センサー・コンバーター CS01-LB 日本語マニュアルLoRaWAN 4チャンネル電流センサー・コンバーター CS01-LB 日本語マニュアル
LoRaWAN 4チャンネル電流センサー・コンバーター CS01-LB 日本語マニュアル
 
TaketoFujikawa_物語のコンセプトに基づく情報アクセス手法の基礎検討_JSAI2024
TaketoFujikawa_物語のコンセプトに基づく情報アクセス手法の基礎検討_JSAI2024TaketoFujikawa_物語のコンセプトに基づく情報アクセス手法の基礎検討_JSAI2024
TaketoFujikawa_物語のコンセプトに基づく情報アクセス手法の基礎検討_JSAI2024
 
【DLゼミ】XFeat: Accelerated Features for Lightweight Image Matching
【DLゼミ】XFeat: Accelerated Features for Lightweight Image Matching【DLゼミ】XFeat: Accelerated Features for Lightweight Image Matching
【DLゼミ】XFeat: Accelerated Features for Lightweight Image Matching
 
【AI論文解説】Consistency ModelとRectified Flow
【AI論文解説】Consistency ModelとRectified Flow【AI論文解説】Consistency ModelとRectified Flow
【AI論文解説】Consistency ModelとRectified Flow
 

UnicastWS vol.2