SlideShare a Scribd company logo
1 of 25
Download to read offline
ちっちゃくはじめて
おっきく育てる
sinataraアプリの作り方
SEO Naotoshi (@sonots)
自己紹介
describe Sonots do
its(:company) { should == :DeNA }
it_should_behave_like “DeNA employee”
end
shared_examples_for “DeNA employee” do
it { should write(:perl) } #=> fail
end
最近やってること
Haikanko
※ このロゴはフィクションであり(ry
誰かが言ってた
sinatraってアプリが小さ
い時はいいけど、大きく
なるとお辛いんでしょう?
そんなこと
ないよ
ちっちゃくはじめておっきく
育てる
俺の最強 Sinatra パターン
をお伝えします
ところで
ruby 2.0 で何の問題もな
く動いているので、ruby
2.0関連の話は何もなし...
さっそく
コード中心で><
基礎 ∼ クラシックスタイル
require 'sinatra'
 
get '/hello' do
'Hello World!'
end
 
get '/hello/:name' do
"Hello #{params[:name]}!"
end
$ ruby my_app.rb Gemfile
Gemfile.lock
my_app.rb
起動 ディレクトリ構造
my_app.rb
モジュラースタイル
require 'sinatra/base' 
class MyApp < Siantra::Base
get '/hello' do
'Hello World!'
end
 
get '/hello/:name' do
"Hello #{params[:name]}!"
end
end
$ rackup
Gemfile
Gemfile.lock
config.ru
my_app.rb
起動 ディレクトリ構造
# config.ru
require './my_app'
run MyApp
Controller
足したい
1. Sinatra.register を使う
# my_app.rb
require 'sinatra/base'
require_relative
'posts_controller'
class MyApp < Sinatra::Base
  register PostsController
  get '/hello' do
    'Hello World!'
  end
  
  get '/hello/:name' do
    "Hello #{params[:name]}!"
  end
end Gemfile
Gemfile.lock
config.ru
my_app.rb
posts_controller.rb
ディレクトリ
# posts_controller.rb
module PostsController
  def self.registered(app)
    app.get '/posts' do
    end
    app.get '/posts/:id' do
      "Post #{params[:id]}"
    end
  end
end
app.get とかキモい
2. use (Rack Middleware)
# my_app.rb
class MyApp < Sinatra::Base
  get '/hello' do
    'Hello World!'
  end
  
  get '/hello/:name' do
    "Hello #{params[:name]}!"
  end
end
Gemfile
Gemfile.lock
config.ru
my_app.rb
posts_controller.rb
ディレクトリ
# posts_controller.rb
class PostsController <
Sinatra::Base
  get '/posts' do
  end
  get '/posts/:id' do
    "Post #{params[:id]}"
  end
end
# config.ru
require 'sinatra/base'
require './my_app'
require './posts_controller'
use PostsController
run MyApp
まぁまぁ
本命: URLMap を使う
class HelloController <
Sinatra::Base
  get '/hello' do
    'Hello World!'
  end
  
  get '/hello/:name' do
    "Hello #{params[:name]}!"
  end
end
Gemfile
Gemfile.lock
config.ru
hello_controller.rb
posts_controller.rb
ディレクトリ
class PostsController <
Sinatra::Base
  get '/' do
  end
  get '/:id' do
    "Post #{params[:id]}"
  end
end
require 'sinatra/base'
require './hello_controller'
require './posts_controller'
ROUTES = {
  '/' => HelloController,
  '/posts' => PostsController,
}
run Rack::URLMap.new(ROUTES)
config.ru
View
足したい
View ∼ Sinatraにあるよ
class HelloController < Sinatra::Base
  set :views, File.expand_path('../views', File.dirname(__FILE__))
  
  get '/hello' do
    'Hello World!'
  end
  get '/hello/:name' do
    @name = params[:name]
    erb :hello
  end
end
Gemfile
Gemfile.lock
config.ru
controllers/
views/
ディレクトリ
<html>
  <b>Hello <%= @name %>!</b>
</html>
views/hello.erb
Model
足したい
Model ∼ ActiveRecordとか
source 'https://rubygems.org'
gem 'sinatra', require: 'sinatra/base'
gem 'activesupport'
gem 'activerecord'
gem 'sinatra-activerecord',:require => 'sinatra/activerecord'
gem 'sqlite3'
gem 'rake'
require 'active_record'
ActiveRecord::Base.establish_connection(
  :adapter => 'sqlite3',
  :host => 'localhost',
  :username => 'USERNAME', #or root
  :password => 'PASSWORD',
  :database => 'db/YOURDATABASE'
)
class Post < ActiveRecord::Base
end
models/post.rb
Gemfile
Gemfile
Gemfile.lock
config.ru
controllers/
views/
models/
ディレクトリ
MVC
った ^^
けど
Worker
欲しくなった
Worker
+ gem 'foreman’
ディレクトリ
web: bundle exec rackup web/config.ru
worker: bundle exec ruby worker/notification.rb
worker/notification.rb
Gemfile
Gemfile
Gemfile.lock
config.ru
web/
controllers/
views/
models/
worker/
require_relative '../models/post.rb'
class Notification
  def run
    while true
      sleep 1
      puts "hey! #{Post.all.first}"
    end
  end
end
Notification.new.run
Procfile
$ foreman start
起動
まとめ
• 最初はちっちゃくリーンスタートアップ
• おっきくなっても破綻しない!(Rails っぽくし
ていけば)
• いつ Sinatra やるの?今でしょ!
• コード https://github.com/sonots/sinatra-practice

More Related Content

What's hot

「指標」を支えるエンジニアリング: DataOpsNight #1
「指標」を支えるエンジニアリング: DataOpsNight #1「指標」を支えるエンジニアリング: DataOpsNight #1
「指標」を支えるエンジニアリング: DataOpsNight #1株式会社MonotaRO Tech Team
 
PWNの超入門 大和セキュリティ神戸 2018-03-25
PWNの超入門 大和セキュリティ神戸 2018-03-25PWNの超入門 大和セキュリティ神戸 2018-03-25
PWNの超入門 大和セキュリティ神戸 2018-03-25Isaac Mathis
 
やってはいけない空振りDelete
やってはいけない空振りDeleteやってはいけない空振りDelete
やってはいけない空振りDeleteYu Yamada
 
Fault, Error, Failure の違い
Fault, Error, Failure の違いFault, Error, Failure の違い
Fault, Error, Failure の違いMizuhiro Kaimai
 
Gangliaはじめました
GangliaはじめましたGangliaはじめました
Gangliaはじめましたyuzorock
 
Dockerfile を書くためのベストプラクティス解説編
Dockerfile を書くためのベストプラクティス解説編Dockerfile を書くためのベストプラクティス解説編
Dockerfile を書くためのベストプラクティス解説編Masahito Zembutsu
 
Spring I/O 2018 報告会 - Spring Cloud Gateway / Spring Cloud Pipelines
Spring I/O 2018 報告会 - Spring Cloud Gateway / Spring Cloud PipelinesSpring I/O 2018 報告会 - Spring Cloud Gateway / Spring Cloud Pipelines
Spring I/O 2018 報告会 - Spring Cloud Gateway / Spring Cloud PipelinesJunya Katada
 
RDB技術者のためのNoSQLガイド NoSQLの必要性と位置づけ
RDB技術者のためのNoSQLガイド NoSQLの必要性と位置づけRDB技術者のためのNoSQLガイド NoSQLの必要性と位置づけ
RDB技術者のためのNoSQLガイド NoSQLの必要性と位置づけRecruit Technologies
 
基幹システム RDRAモデル
基幹システム RDRAモデル基幹システム RDRAモデル
基幹システム RDRAモデルZenji Kanzaki
 
DBスキーマもバージョン管理したい!
DBスキーマもバージョン管理したい!DBスキーマもバージョン管理したい!
DBスキーマもバージョン管理したい!kwatch
 
PHP の GC の話
PHP の GC の話PHP の GC の話
PHP の GC の話y-uti
 
今からでも遅くないDBマイグレーション - Flyway と SchemaSpy の紹介 -
今からでも遅くないDBマイグレーション - Flyway と SchemaSpy の紹介 -今からでも遅くないDBマイグレーション - Flyway と SchemaSpy の紹介 -
今からでも遅くないDBマイグレーション - Flyway と SchemaSpy の紹介 -onozaty
 
SolrとElasticsearchを比べてみよう
SolrとElasticsearchを比べてみようSolrとElasticsearchを比べてみよう
SolrとElasticsearchを比べてみようShinsuke Sugaya
 
SIEMやログ監査で重要な事
SIEMやログ監査で重要な事SIEMやログ監査で重要な事
SIEMやログ監査で重要な事hogehuga
 
人は一ヶ月でエンジニアになれるのか - 詳細解説
人は一ヶ月でエンジニアになれるのか - 詳細解説人は一ヶ月でエンジニアになれるのか - 詳細解説
人は一ヶ月でエンジニアになれるのか - 詳細解説Livesense Inc.
 
Rails SQL Injection Examplesの紹介
Rails SQL Injection Examplesの紹介Rails SQL Injection Examplesの紹介
Rails SQL Injection Examplesの紹介Hiroshi Tokumaru
 
メルカリのデータベース戦略 / PHPとMySQLの怖い話 MyNA会2015年8月
メルカリのデータベース戦略 / PHPとMySQLの怖い話 MyNA会2015年8月メルカリのデータベース戦略 / PHPとMySQLの怖い話 MyNA会2015年8月
メルカリのデータベース戦略 / PHPとMySQLの怖い話 MyNA会2015年8月Masahiro Nagano
 
マネージドPostgreSQLの実現に向けたPostgreSQL機能向上(PostgreSQL Conference Japan 2023 発表資料)
マネージドPostgreSQLの実現に向けたPostgreSQL機能向上(PostgreSQL Conference Japan 2023 発表資料)マネージドPostgreSQLの実現に向けたPostgreSQL機能向上(PostgreSQL Conference Japan 2023 発表資料)
マネージドPostgreSQLの実現に向けたPostgreSQL機能向上(PostgreSQL Conference Japan 2023 発表資料)NTT DATA Technology & Innovation
 

What's hot (20)

「指標」を支えるエンジニアリング: DataOpsNight #1
「指標」を支えるエンジニアリング: DataOpsNight #1「指標」を支えるエンジニアリング: DataOpsNight #1
「指標」を支えるエンジニアリング: DataOpsNight #1
 
PWNの超入門 大和セキュリティ神戸 2018-03-25
PWNの超入門 大和セキュリティ神戸 2018-03-25PWNの超入門 大和セキュリティ神戸 2018-03-25
PWNの超入門 大和セキュリティ神戸 2018-03-25
 
やってはいけない空振りDelete
やってはいけない空振りDeleteやってはいけない空振りDelete
やってはいけない空振りDelete
 
PostgreSQLコミュニティに飛び込もう
PostgreSQLコミュニティに飛び込もうPostgreSQLコミュニティに飛び込もう
PostgreSQLコミュニティに飛び込もう
 
Fault, Error, Failure の違い
Fault, Error, Failure の違いFault, Error, Failure の違い
Fault, Error, Failure の違い
 
Gangliaはじめました
GangliaはじめましたGangliaはじめました
Gangliaはじめました
 
TLS, HTTP/2演習
TLS, HTTP/2演習TLS, HTTP/2演習
TLS, HTTP/2演習
 
Dockerfile を書くためのベストプラクティス解説編
Dockerfile を書くためのベストプラクティス解説編Dockerfile を書くためのベストプラクティス解説編
Dockerfile を書くためのベストプラクティス解説編
 
Spring I/O 2018 報告会 - Spring Cloud Gateway / Spring Cloud Pipelines
Spring I/O 2018 報告会 - Spring Cloud Gateway / Spring Cloud PipelinesSpring I/O 2018 報告会 - Spring Cloud Gateway / Spring Cloud Pipelines
Spring I/O 2018 報告会 - Spring Cloud Gateway / Spring Cloud Pipelines
 
RDB技術者のためのNoSQLガイド NoSQLの必要性と位置づけ
RDB技術者のためのNoSQLガイド NoSQLの必要性と位置づけRDB技術者のためのNoSQLガイド NoSQLの必要性と位置づけ
RDB技術者のためのNoSQLガイド NoSQLの必要性と位置づけ
 
基幹システム RDRAモデル
基幹システム RDRAモデル基幹システム RDRAモデル
基幹システム RDRAモデル
 
DBスキーマもバージョン管理したい!
DBスキーマもバージョン管理したい!DBスキーマもバージョン管理したい!
DBスキーマもバージョン管理したい!
 
PHP の GC の話
PHP の GC の話PHP の GC の話
PHP の GC の話
 
今からでも遅くないDBマイグレーション - Flyway と SchemaSpy の紹介 -
今からでも遅くないDBマイグレーション - Flyway と SchemaSpy の紹介 -今からでも遅くないDBマイグレーション - Flyway と SchemaSpy の紹介 -
今からでも遅くないDBマイグレーション - Flyway と SchemaSpy の紹介 -
 
SolrとElasticsearchを比べてみよう
SolrとElasticsearchを比べてみようSolrとElasticsearchを比べてみよう
SolrとElasticsearchを比べてみよう
 
SIEMやログ監査で重要な事
SIEMやログ監査で重要な事SIEMやログ監査で重要な事
SIEMやログ監査で重要な事
 
人は一ヶ月でエンジニアになれるのか - 詳細解説
人は一ヶ月でエンジニアになれるのか - 詳細解説人は一ヶ月でエンジニアになれるのか - 詳細解説
人は一ヶ月でエンジニアになれるのか - 詳細解説
 
Rails SQL Injection Examplesの紹介
Rails SQL Injection Examplesの紹介Rails SQL Injection Examplesの紹介
Rails SQL Injection Examplesの紹介
 
メルカリのデータベース戦略 / PHPとMySQLの怖い話 MyNA会2015年8月
メルカリのデータベース戦略 / PHPとMySQLの怖い話 MyNA会2015年8月メルカリのデータベース戦略 / PHPとMySQLの怖い話 MyNA会2015年8月
メルカリのデータベース戦略 / PHPとMySQLの怖い話 MyNA会2015年8月
 
マネージドPostgreSQLの実現に向けたPostgreSQL機能向上(PostgreSQL Conference Japan 2023 発表資料)
マネージドPostgreSQLの実現に向けたPostgreSQL機能向上(PostgreSQL Conference Japan 2023 発表資料)マネージドPostgreSQLの実現に向けたPostgreSQL機能向上(PostgreSQL Conference Japan 2023 発表資料)
マネージドPostgreSQLの実現に向けたPostgreSQL機能向上(PostgreSQL Conference Japan 2023 発表資料)
 

Viewers also liked

インフラエンジニアは死んだ Yapc -asia 2014
インフラエンジニアは死んだ Yapc -asia 2014 インフラエンジニアは死んだ Yapc -asia 2014
インフラエンジニアは死んだ Yapc -asia 2014 Satoshi Suzuki
 
初めてのPadrino
初めてのPadrino初めてのPadrino
初めてのPadrinoTakeshi Yabe
 
My sql casual talks vol.6
My sql casual talks vol.6My sql casual talks vol.6
My sql casual talks vol.6Satoshi Suzuki
 
Railsチュートリアルの歩き方 (第3版)
Railsチュートリアルの歩き方 (第3版)Railsチュートリアルの歩き方 (第3版)
Railsチュートリアルの歩き方 (第3版)Yohei Yasukawa
 
Unbreakable VPN using Vyatta/VyOS - HOW TO -
Unbreakable VPN using Vyatta/VyOS - HOW TO -Unbreakable VPN using Vyatta/VyOS - HOW TO -
Unbreakable VPN using Vyatta/VyOS - HOW TO -Naoto MATSUMOTO
 
データベース技術の羅針盤
データベース技術の羅針盤データベース技術の羅針盤
データベース技術の羅針盤Yoshinori Matsunobu
 
Railsチュートリアルの歩き方 (第4版)
Railsチュートリアルの歩き方 (第4版)Railsチュートリアルの歩き方 (第4版)
Railsチュートリアルの歩き方 (第4版)Yohei Yasukawa
 

Viewers also liked (8)

インフラエンジニアは死んだ Yapc -asia 2014
インフラエンジニアは死んだ Yapc -asia 2014 インフラエンジニアは死んだ Yapc -asia 2014
インフラエンジニアは死んだ Yapc -asia 2014
 
初めてのPadrino
初めてのPadrino初めてのPadrino
初めてのPadrino
 
Accept-language
Accept-languageAccept-language
Accept-language
 
My sql casual talks vol.6
My sql casual talks vol.6My sql casual talks vol.6
My sql casual talks vol.6
 
Railsチュートリアルの歩き方 (第3版)
Railsチュートリアルの歩き方 (第3版)Railsチュートリアルの歩き方 (第3版)
Railsチュートリアルの歩き方 (第3版)
 
Unbreakable VPN using Vyatta/VyOS - HOW TO -
Unbreakable VPN using Vyatta/VyOS - HOW TO -Unbreakable VPN using Vyatta/VyOS - HOW TO -
Unbreakable VPN using Vyatta/VyOS - HOW TO -
 
データベース技術の羅針盤
データベース技術の羅針盤データベース技術の羅針盤
データベース技術の羅針盤
 
Railsチュートリアルの歩き方 (第4版)
Railsチュートリアルの歩き方 (第4版)Railsチュートリアルの歩き方 (第4版)
Railsチュートリアルの歩き方 (第4版)
 

Similar to Sinatra Pattern 20130415

Sinatraの紹介
Sinatraの紹介Sinatraの紹介
Sinatraの紹介longkey1
 
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.
 
Nodeにしましょう
NodeにしましょうNodeにしましょう
NodeにしましょうYuzo Hebishima
 
Progressive visualization
Progressive visualizationProgressive visualization
Progressive visualizationnaoyuki miyata
 
コロナ時代を生き抜く(?) ひとつ上の Slack "コラ"ボレーション
コロナ時代を生き抜く(?) ひとつ上の Slack "コラ"ボレーションコロナ時代を生き抜く(?) ひとつ上の Slack "コラ"ボレーション
コロナ時代を生き抜く(?) ひとつ上の Slack "コラ"ボレーションMasayuki Uehara
 
コマンドライン使いもLibreOffice
コマンドライン使いもLibreOfficeコマンドライン使いもLibreOffice
コマンドライン使いもLibreOfficeKiwamu Okabe
 
サイボウズのリモートワーク・リモートチーム
サイボウズのリモートワーク・リモートチームサイボウズのリモートワーク・リモートチーム
サイボウズのリモートワーク・リモートチームRyo Mitoma
 
Web技術勉強会 第33回
Web技術勉強会 第33回Web技術勉強会 第33回
Web技術勉強会 第33回龍一 田中
 
まだまだ戦えるweb!mithril.js最初の1歩
まだまだ戦えるweb!mithril.js最初の1歩 まだまだ戦えるweb!mithril.js最初の1歩
まだまだ戦えるweb!mithril.js最初の1歩 Keisuke Mori
 
WebAppDev勉強会 #2 at cafe? IKAGAWA DO
WebAppDev勉強会 #2 at cafe? IKAGAWA DOWebAppDev勉強会 #2 at cafe? IKAGAWA DO
WebAppDev勉強会 #2 at cafe? IKAGAWA DOKohei Noda
 
インフラ部門で働くCプログラマの話
インフラ部門で働くCプログラマの話インフラ部門で働くCプログラマの話
インフラ部門で働くCプログラマの話雅也 山本
 
【勉強会】 はじめてのRuby on Rails 4入門
【勉強会】 はじめてのRuby on Rails 4入門【勉強会】 はじめてのRuby on Rails 4入門
【勉強会】 はじめてのRuby on Rails 4入門Yuta Nakamura
 
スクレイピングその後
スクレイピングその後スクレイピングその後
スクレイピングその後Tomoki Hasegawa
 
桐島、Rubyやめるってよ
桐島、Rubyやめるってよ桐島、Rubyやめるってよ
桐島、RubyやめるってよNarihiro Nakamura
 
インデントを減らそう
インデントを減らそうインデントを減らそう
インデントを減らそう知之 朝枝
 
○○したら受託開発が180°変わった
○○したら受託開発が180°変わった○○したら受託開発が180°変わった
○○したら受託開発が180°変わったAtsushi Harada
 
私に作る時間がないのはどう考えても仕事が悪い!? (Gunma.web #10 2012/09/08)
私に作る時間がないのはどう考えても仕事が悪い!? (Gunma.web #10 2012/09/08) 私に作る時間がないのはどう考えても仕事が悪い!? (Gunma.web #10 2012/09/08)
私に作る時間がないのはどう考えても仕事が悪い!? (Gunma.web #10 2012/09/08) parrotstudio
 
rake:money拡大版@Ruby会議2010 ~Rubyエンジニアと企業の幸せな関係~
rake:money拡大版@Ruby会議2010 ~Rubyエンジニアと企業の幸せな関係~rake:money拡大版@Ruby会議2010 ~Rubyエンジニアと企業の幸せな関係~
rake:money拡大版@Ruby会議2010 ~Rubyエンジニアと企業の幸せな関係~Ouka Yuka
 

Similar to Sinatra Pattern 20130415 (20)

Sinatraの紹介
Sinatraの紹介Sinatraの紹介
Sinatraの紹介
 
Rubyの会社でPythonistaが3ヶ月生き延びた話
Rubyの会社でPythonistaが3ヶ月生き延びた話Rubyの会社でPythonistaが3ヶ月生き延びた話
Rubyの会社でPythonistaが3ヶ月生き延びた話
 
Rubyの会社でPythonistaが三ヶ月生き延びた話
Rubyの会社でPythonistaが三ヶ月生き延びた話Rubyの会社でPythonistaが三ヶ月生き延びた話
Rubyの会社でPythonistaが三ヶ月生き延びた話
 
Nodeにしましょう
NodeにしましょうNodeにしましょう
Nodeにしましょう
 
Progressive visualization
Progressive visualizationProgressive visualization
Progressive visualization
 
コロナ時代を生き抜く(?) ひとつ上の Slack "コラ"ボレーション
コロナ時代を生き抜く(?) ひとつ上の Slack "コラ"ボレーションコロナ時代を生き抜く(?) ひとつ上の Slack "コラ"ボレーション
コロナ時代を生き抜く(?) ひとつ上の Slack "コラ"ボレーション
 
コマンドライン使いもLibreOffice
コマンドライン使いもLibreOfficeコマンドライン使いもLibreOffice
コマンドライン使いもLibreOffice
 
サイボウズのリモートワーク・リモートチーム
サイボウズのリモートワーク・リモートチームサイボウズのリモートワーク・リモートチーム
サイボウズのリモートワーク・リモートチーム
 
Web技術勉強会 第33回
Web技術勉強会 第33回Web技術勉強会 第33回
Web技術勉強会 第33回
 
まだまだ戦えるweb!mithril.js最初の1歩
まだまだ戦えるweb!mithril.js最初の1歩 まだまだ戦えるweb!mithril.js最初の1歩
まだまだ戦えるweb!mithril.js最初の1歩
 
WebAppDev勉強会 #2 at cafe? IKAGAWA DO
WebAppDev勉強会 #2 at cafe? IKAGAWA DOWebAppDev勉強会 #2 at cafe? IKAGAWA DO
WebAppDev勉強会 #2 at cafe? IKAGAWA DO
 
インフラ部門で働くCプログラマの話
インフラ部門で働くCプログラマの話インフラ部門で働くCプログラマの話
インフラ部門で働くCプログラマの話
 
Sinatra
SinatraSinatra
Sinatra
 
【勉強会】 はじめてのRuby on Rails 4入門
【勉強会】 はじめてのRuby on Rails 4入門【勉強会】 はじめてのRuby on Rails 4入門
【勉強会】 はじめてのRuby on Rails 4入門
 
スクレイピングその後
スクレイピングその後スクレイピングその後
スクレイピングその後
 
桐島、Rubyやめるってよ
桐島、Rubyやめるってよ桐島、Rubyやめるってよ
桐島、Rubyやめるってよ
 
インデントを減らそう
インデントを減らそうインデントを減らそう
インデントを減らそう
 
○○したら受託開発が180°変わった
○○したら受託開発が180°変わった○○したら受託開発が180°変わった
○○したら受託開発が180°変わった
 
私に作る時間がないのはどう考えても仕事が悪い!? (Gunma.web #10 2012/09/08)
私に作る時間がないのはどう考えても仕事が悪い!? (Gunma.web #10 2012/09/08) 私に作る時間がないのはどう考えても仕事が悪い!? (Gunma.web #10 2012/09/08)
私に作る時間がないのはどう考えても仕事が悪い!? (Gunma.web #10 2012/09/08)
 
rake:money拡大版@Ruby会議2010 ~Rubyエンジニアと企業の幸せな関係~
rake:money拡大版@Ruby会議2010 ~Rubyエンジニアと企業の幸せな関係~rake:money拡大版@Ruby会議2010 ~Rubyエンジニアと企業の幸せな関係~
rake:money拡大版@Ruby会議2010 ~Rubyエンジニアと企業の幸せな関係~
 

More from Naotoshi Seo

ぼくのかんがえた Itamae/Serverspec 構成フレームワーク 〜 Kondate 〜
ぼくのかんがえた Itamae/Serverspec 構成フレームワーク 〜 Kondate 〜ぼくのかんがえた Itamae/Serverspec 構成フレームワーク 〜 Kondate 〜
ぼくのかんがえた Itamae/Serverspec 構成フレームワーク 〜 Kondate 〜Naotoshi Seo
 
HTTP/2 でリバプロするだけでグラフツールを 高速化できた話
HTTP/2 でリバプロするだけでグラフツールを 高速化できた話HTTP/2 でリバプロするだけでグラフツールを 高速化できた話
HTTP/2 でリバプロするだけでグラフツールを 高速化できた話Naotoshi Seo
 
Mobage を支える Ruby の技術 ~ 複数DB編 ~
Mobage を支える Ruby の技術 ~ 複数DB編 ~Mobage を支える Ruby の技術 ~ 複数DB編 ~
Mobage を支える Ruby の技術 ~ 複数DB編 ~Naotoshi Seo
 
Fluentd Hacking Guide at RubyKaigi 2014
Fluentd Hacking Guide at RubyKaigi 2014Fluentd Hacking Guide at RubyKaigi 2014
Fluentd Hacking Guide at RubyKaigi 2014Naotoshi Seo
 
InfluxDB の概要 - sonots #tokyoinfluxdb
InfluxDB の概要 - sonots #tokyoinfluxdbInfluxDB の概要 - sonots #tokyoinfluxdb
InfluxDB の概要 - sonots #tokyoinfluxdbNaotoshi Seo
 
Serf という Orchestration ツール #immutableinfra
Serf という Orchestration ツール #immutableinfraSerf という Orchestration ツール #immutableinfra
Serf という Orchestration ツール #immutableinfraNaotoshi Seo
 
Shadow Server on Fluentd at Fluentd Casual Talks #3
Shadow Server on Fluentd at Fluentd Casual Talks #3Shadow Server on Fluentd at Fluentd Casual Talks #3
Shadow Server on Fluentd at Fluentd Casual Talks #3Naotoshi Seo
 
Is ruby logger thread(process)-safe? at RubyConf 2013
Is ruby logger thread(process)-safe? at RubyConf 2013Is ruby logger thread(process)-safe? at RubyConf 2013
Is ruby logger thread(process)-safe? at RubyConf 2013Naotoshi Seo
 
Haikanko rubykaigi 20130531
Haikanko rubykaigi 20130531Haikanko rubykaigi 20130531
Haikanko rubykaigi 20130531Naotoshi Seo
 
Fluentdcasual 02-haikanko
Fluentdcasual 02-haikankoFluentdcasual 02-haikanko
Fluentdcasual 02-haikankoNaotoshi Seo
 
capistrano-colorized-stream
capistrano-colorized-streamcapistrano-colorized-stream
capistrano-colorized-streamNaotoshi Seo
 

More from Naotoshi Seo (14)

ぼくのかんがえた Itamae/Serverspec 構成フレームワーク 〜 Kondate 〜
ぼくのかんがえた Itamae/Serverspec 構成フレームワーク 〜 Kondate 〜ぼくのかんがえた Itamae/Serverspec 構成フレームワーク 〜 Kondate 〜
ぼくのかんがえた Itamae/Serverspec 構成フレームワーク 〜 Kondate 〜
 
HTTP/2 でリバプロするだけでグラフツールを 高速化できた話
HTTP/2 でリバプロするだけでグラフツールを 高速化できた話HTTP/2 でリバプロするだけでグラフツールを 高速化できた話
HTTP/2 でリバプロするだけでグラフツールを 高速化できた話
 
Mobage を支える Ruby の技術 ~ 複数DB編 ~
Mobage を支える Ruby の技術 ~ 複数DB編 ~Mobage を支える Ruby の技術 ~ 複数DB編 ~
Mobage を支える Ruby の技術 ~ 複数DB編 ~
 
Fluentd Hacking Guide at RubyKaigi 2014
Fluentd Hacking Guide at RubyKaigi 2014Fluentd Hacking Guide at RubyKaigi 2014
Fluentd Hacking Guide at RubyKaigi 2014
 
InfluxDB の概要 - sonots #tokyoinfluxdb
InfluxDB の概要 - sonots #tokyoinfluxdbInfluxDB の概要 - sonots #tokyoinfluxdb
InfluxDB の概要 - sonots #tokyoinfluxdb
 
Serf という Orchestration ツール #immutableinfra
Serf という Orchestration ツール #immutableinfraSerf という Orchestration ツール #immutableinfra
Serf という Orchestration ツール #immutableinfra
 
Shadow Server on Fluentd at Fluentd Casual Talks #3
Shadow Server on Fluentd at Fluentd Casual Talks #3Shadow Server on Fluentd at Fluentd Casual Talks #3
Shadow Server on Fluentd at Fluentd Casual Talks #3
 
Is ruby logger thread(process)-safe? at RubyConf 2013
Is ruby logger thread(process)-safe? at RubyConf 2013Is ruby logger thread(process)-safe? at RubyConf 2013
Is ruby logger thread(process)-safe? at RubyConf 2013
 
Yohoushi
YohoushiYohoushi
Yohoushi
 
Haikanko rubykaigi 20130531
Haikanko rubykaigi 20130531Haikanko rubykaigi 20130531
Haikanko rubykaigi 20130531
 
Mina 20130417
Mina 20130417Mina 20130417
Mina 20130417
 
Fluentdcasual 02-haikanko
Fluentdcasual 02-haikankoFluentdcasual 02-haikanko
Fluentdcasual 02-haikanko
 
capistrano-colorized-stream
capistrano-colorized-streamcapistrano-colorized-stream
capistrano-colorized-stream
 
Ruby test double
Ruby test doubleRuby test double
Ruby test double
 

Recently uploaded

AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdfAWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdfFumieNakayama
 
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案sugiuralab
 
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)Hiroki Ichikura
 
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?akihisamiyanaga1
 
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineerYuki Kikuchi
 
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版) 2024年4月作成
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版) 2024年4月作成業務で生成AIを活用したい人のための生成AI入門講座(社外公開版) 2024年4月作成
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版) 2024年4月作成Hiroshi Tomioka
 
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)UEHARA, Tetsutaro
 
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察  ~Text-to-MusicとText-To-ImageかつImage-to-Music...モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察  ~Text-to-MusicとText-To-ImageかつImage-to-Music...
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...博三 太田
 
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdfクラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdfFumieNakayama
 

Recently uploaded (9)

AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdfAWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
 
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
 
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
 
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
 
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
 
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版) 2024年4月作成
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版) 2024年4月作成業務で生成AIを活用したい人のための生成AI入門講座(社外公開版) 2024年4月作成
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版) 2024年4月作成
 
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
 
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察  ~Text-to-MusicとText-To-ImageかつImage-to-Music...モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察  ~Text-to-MusicとText-To-ImageかつImage-to-Music...
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...
 
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdfクラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
 

Sinatra Pattern 20130415