SlideShare una empresa de Scribd logo
1 de 47
Bundler
 Next SeeD 黒川 仁 (@krhitoshi)


2012/09/22 Kanazawa.rb meetup #2
       @ITビジネスプラザ武蔵
自己紹介
黒川 仁 (@krhitoshi)

プログラマ/サーバエンジニア

Next SeeD (個人事業)
http://www.nextseed.jp/

黒川仁の文具堂ブログ三昧
http://blog.bungu-do.jp/
iOSアプリ開発
祝日カレンダー iPhone
170円 約360DL

冥想(座禅)タイマー iPhone/iPad (英語対応)
無料 約5,000DL
iPad App ヘルスケア/フィットネス
最高18位(日本) 最高122位(アメリカ)

i便所 ジョークアプリ
Trychestと共同開発
約3万5,000DL (2011年8月)
iPhone App ライフスタイル 最高9位
最初にご質問
普段、Rubyを使っている人?

 Rubyを触ったことある人?

Rails触ったことある人?

普段、gitを使っている人?

 subversionは?

githubを使ってる人?
今日のお話

bundler, gemについて

gemはコマンドラインツールの配布に便利

bundle gemでgemを自作しよう

まとめ
bundler, gemについて
∼ Redmineを例に ∼
RubyGems(gem)とは
Rubyのライブラリ、ツールのパッケージを
管理(公開)するツール

RubyGems.org

gem コマンド

gem install rails

gem install json
require 'json'

Perl: CPAN, PHP: PEAR   RubyGems.org
railsだけでこれだけのバー
               ジョンがある
/Users/hitoshi% gem list rails -ra

*** REMOTE GEMS ***

rails (3.2.8, 3.2.7, 3.2.6, 3.2.5, 3.2.4, 3.2.3, 3.2.2,
3.2.1, 3.2.0, 3.1.8, 3.1.7, 3.1.6, 3.1.5, 3.1.4, 3.1.3,
3.1.2, 3.1.1, 3.1.0, 3.0.17, 3.0.16, 3.0.15, 3.0.14,
3.0.13, 3.0.12, 3.0.11, 3.0.10, 3.0.9, 3.0.8, 3.0.7,
3.0.6, 3.0.5, 3.0.4, 3.0.3, 3.0.2, 3.0.1, 3.0.0,
2.3.14, 2.3.12, 2.3.11, 2.3.10, 2.3.9, 2.3.8, 2.3.7,
2.3.6, 2.3.5, 2.3.4, 2.3.3, 2.3.2, 2.2.3, 2.2.2, 2.1.2,
2.1.1, 2.1.0, 2.0.5, 2.0.4, 2.0.2, 2.0.1, 2.0.0, 1.2.6,
1.2.5, 1.2.4, 1.2.3, 1.2.2, 1.2.1, 1.2.0, 1.1.6, 1.1.5,
1.1.4, 1.1.3, 1.1.2, 1.1.1, 1.1.0, 1.0.0, 0.14.4,
0.14.3, 0.14.2, 0.14.1, 0.13.1, 0.13.0, 0.12.1, 0.12.0,
0.11.1, 0.11.0, 0.10.1, 0.10.0, 0.9.5, 0.9.4.1, 0.9.4,
0.9.3, 0.9.2, 0.9.1, 0.9.0, 0.8.5, 0.8.0)
アプリとgemのバージョン


アプリによって必要なgemのバージョンが違う

アプリ配布側はバージョンの指定

ユーザは指定されたバージョンをインストール
Bundlerとは

環境でも動作するようにアプリケーションが使用する
gemのバージョンを面倒みてくれるツール

Rails 3.0.0リリース時にBundler 1.0.0リリース

gem install bundler

Gemfileに指定されたgemがインストールされてない
場合はアプリケーションが動作しない
Redmineの例




Ruby on Railsで作られたプロジェクト管理システム
         (バグトラッキングシステム)
  Rubyの開発にも利用されている http://bugs.ruby-lang.org/
Redmineの例
現行バージョン 2.1.0 (2012/09/22 現在)

1.4以降はBundler対応

1.4系 Gemfile有り (Bundler対応)

  Ruby 1.8.7, 1.9.2 or 1.9.3

  Ruby on Rails 2.3.14

1.3系 Gemfile無し

  Ruby 1.8.6 or 1.8.7

  Ruby on Rails 2.3.14
Redmineのインストール

Redmine 1.3をCentOS 6にインストールする
手順


Redmine 2.1をCentOS 6.3にインストールす
る手順


       Redmine.jp
Redmine 1.3
Redmine 2.1
gemについてはあまり気にする必要がなくなった




アプリ配布側:「bundle installしてね」
        必要なgemとそのバージョンの指定が必要ない
        (Gemfileに書いてある)

ユーザ側  :「bundle installするよ」
        必要なgemとそのバージョンのインストール作業が簡単
bundlerについてその他
bundle check

bundle update

bundle install --path vendor/bundler

bundle exec (Gemfileで指定されたgemで実行)


Rails3だけでなくRails2, Sinatraへの対応



      http://gembundler.com/
昔は大変だったけど
Bundlerで楽になったよね
gemはコマンドラインツー
  ルの配布に便利
サーバ管理ツール
Ruby(Perl)スクリプトでサーバ管理ツール

 Apacheバーチャルドメイン追加・削除

 Postfixバーチャルドメイン追加・削除

管理しているサーバにそれぞれインストール

 昔作ったツールでPerlと混在

 バージョンもバラバラ
複数台のサーバへ簡単にインストールできる
         仕組みが欲しい
gemでの配布がよさそう
 gemでコマンドラインツールを配布するのは難し
 いと思っていた

 実はgemパッケージのbin/以下にスクリプトを配
 置しておくだけ

 あとはインストールの際にgemがいいようにして
 くれる

各サーバでgem install 〇〇を実行すればよい
gemなのでインストールしたいバージョンが選べる
パスワード生成コマンド
     pass




最初は簡単なスクリプトから
pass
/Users/hitoshi% gem install pass
Successfully installed pass-0.0.2
1 gem installed

/Users/hitoshi% rehash (シェルによってはrehash)


/Users/hitoshi% pass
VZ3JR9yQkRTA

/Users/hitoshi% pass 5
cN7TNtFV5MHZ
ifrVMG3x5qtK
pfYq7N3Xk6Qu
y3VMRLDBAJwL
                             パスワード5個生成
sme6DSMD2bCV

/Users/hitoshi% pass 5 20
AJ9xeNvJuPayrVuJJKUf
dGmncPJAuhX2EVnN4DfP
xuuePtux7GN97p5Y5Cfm        20文字パスワード5個生成
NryDyJxAyWaWbAtvg3Su
EAFx9SQ7iiag59HpnBei
Perlスクリプトも配布できる(たぶん)


  ローカルの環境ではOKだった
gem install pass

どんなサーバにもすぐにインストールできる
bundle gemでgemを自作
      しよう
gem作成支援ツール

gem作成支援ツール jeweler, hoe, ore

新しいgemを作る際にjewelerが最近の環境で
すんなり動かなかった

もしかして古くなってるかも

最近は何が使われてるのか?
http://qa.atmarkit.co.jp/q/54
http://qa.atmarkit.co.jp/q/54




bundle gemは安定してて、書くこと少なく
      て、コマンド一発で便利

    bundle gemよさそう!!
bundle gem
/Users/hitoshi% (master) bundle gem my_gem -bV
      create my_gem/Gemfile
      create my_gem/Rakefile
      create my_gem/LICENSE
      create my_gem/README.md
      create my_gem/.gitignore
      create my_gem/my_gem.gemspec
      create my_gem/lib/my_gem.rb
      create my_gem/lib/my_gem/version.rb
      create my_gem/bin/my_gem
Initializating git repo in /Users/hitoshi/hoge/my_gem
gemspecの編集
my_gem.gemspec
# -*- encoding: utf-8 -*-
require File.expand_path('../lib/my_gem/version', __FILE__)

Gem::Specification.new do |gem|
  gem.authors       = ["Hitoshi Kurokawa"]
  gem.email         = ["hitoshi@nextseed.jp"]
  gem.description   = %q{TODO: Write a gem description}
  gem.summary       = %q{TODO: Write a gem summary}
  gem.homepage      = ""
                                    とりあえず説明文だけ修正
  gem.files           = `git ls-files`.split($)
  gem.executables     = gem.files.grep(%r{^bin/}).map{ |f|
File.basename(f) }
  gem.test_files      =   gem.files.grep(%r{^(test|spec|features)/})
  gem.name            =   "my_gem"
  gem.require_paths   =   ["lib"]
  gem.version         =   MyGem::VERSION
end
gemファイルをビルドするには
rakeタスクリスト
/Users/hitoshi/my_gem% rake -T
rake build    # Build my_gem-0.0.1.gem into the pkg directory
rake install # Build and install my_gem-0.0.1.gem into system gems
rake release # Create tag v0.0.1 and build and push my_gem-0.0.1.gem to Rubygems

gemファイルのビルド
/Users/hitoshi/my_gem% rake build
my_gem 0.0.1 built to pkg/my_gem-0.0.1.gem

gemの手動インストール
/Users/hitoshi/my_gem% gem install pkg/my_gem-0.0.1.gem
Successfully installed my_gem-0.0.1
1 gem installed

gemのビルドとインストール
/Users/hitoshi/my_gem% rake install
my_gem 0.0.1 built to pkg/my_gem-0.0.1.gem
my_gem (0.0.1) installed

gemのリリース(配布,公開) gemのアカウント登録などの作業は必要
/Users/hitoshi/my_gem% rake release
Demo
gemのリリース
gemのリリース(配布, 公開)
/Users/hitoshi/my_gem% rake release

RubyGems.orgのアカウント登録は必要




                                      https://rubygems.org/users/new
gemのアップデート リリース

lib/my_gem/version.rb
module MyGem
- VERSION = "0.0.1"
+ VERSION = "0.0.2"
end


      lib/my_gem/version.rb
        バージョン番号上げる




            rake release
GUI: GitX http://gitx.frim.nl/




リリース時に自動でtagも打ってくれる
公開後のルーチン

                  gitで管理
 コード修正



   lib/my_gem/version.rb
     バージョン番号上げる            GitHub


rake release
gemの中身の参考例
  lib/以下のファイル構成


  gemspecの書き方


  テストの書き方              https://github.com/wycats/thor




自分はThorを参考にした

   普段よく使うgem、似たようなツール、ライブラリがあるなら
            git cloneして参考にするとよい
postfixのバーチャルドメイン管理
             Postfix Admin(PHP)のCLI
                   DataMapper


            バーチャルドメイン管理
             Apache, Postfix




公開すればダウンロードはされるみたい
使われてるかは分からないけど・・・
まとめ
bundlerでアプリのgem依存管理がシンプル

gemはコマンドラインツールの配布に便利

bundle gemで自作gemの公開が簡単
まとめ
  bundlerでアプリのgem依存管理がシンプル

  gemはコマンドラインツールの配布に便利

  bundle gemで自作gemの公開が簡単

簡単・便利なツールがそろっているので
自分が普段使っているコマンドラインツールを
gem(+GitHub)で公開してみよう!!
ご静聴ありがとうございました
Redmineの例
現行バージョン 2.1.0 (2012/09/22 現在)
Gemfile有り

1.4系 Gemfile有り

   ver. 1.4.0 2012年4月14日リリース

   Ruby 1.8.7, 1.9.2 or 1.9.3

   Bundler >= 1.0.21

   Ruby on Rails 2.3.14

1.3系 Gemfile無し

   ver. 1.3.0 2011年12月10日リリース

   Ruby 1.8.6 or 1.8.7

   Ruby on Rails 2.3.14
rails new
/Users/hitoshi% rails new hoge
      create
      create README.rdoc
      create Rakefile
      create config.ru
      create .gitignore
      create Gemfile
      create app
.................

      create   vendor/plugins
      create   vendor/plugins/.gitkeep
         run   bundle install
利用ケース

Gemfileを1から書く機会はあまりないのでは?

rails アプリ

配布されたアプリ!bundle install

自作アプリ!Gemfileに使用するgemを追加
!bundle install
gemバージョン指定

gem install rack -v=1.1.2

gem install rake -v=0.9.2



gem 'mygem', "> 1.1"

gem 'yourgem', "= 4.56.4"

Más contenido relacionado

La actualidad más candente

人間たちとsystemd
人間たちとsystemd人間たちとsystemd
人間たちとsystemdUchio Kondo
 
20120706-readablecode
20120706-readablecode20120706-readablecode
20120706-readablecodeMasanori Kado
 
やさしいGitの内部構造 - yapcasia2013
やさしいGitの内部構造 - yapcasia2013やさしいGitの内部構造 - yapcasia2013
やさしいGitの内部構造 - yapcasia2013DQNEO
 
Jenkins に XFD を追加してみると
Jenkins に XFD を追加してみるとJenkins に XFD を追加してみると
Jenkins に XFD を追加してみるとKiro Harada
 
Pelicanによる www.python.jpの構築
Pelicanによる www.python.jpの構築Pelicanによる www.python.jpの構築
Pelicanによる www.python.jpの構築Atsuo Ishimoto
 
2014年を振り返る 今年の技術トレンドとDockerについて
2014年を振り返る 今年の技術トレンドとDockerについて2014年を振り返る 今年の技術トレンドとDockerについて
2014年を振り返る 今年の技術トレンドとDockerについてMasahito Zembutsu
 
プラガブル Play20 Scala
プラガブル Play20 Scalaプラガブル Play20 Scala
プラガブル Play20 ScalaKazuhiro Sera
 
What makes pyramid unique
What makes pyramid uniqueWhat makes pyramid unique
What makes pyramid uniqueAtsushi Odagiri
 
PlayFramework 2.0 Javaと WebSocketでつくる リアルタイムMVC Webアプリケーション
PlayFramework 2.0 Javaと WebSocketでつくる リアルタイムMVC WebアプリケーションPlayFramework 2.0 Javaと WebSocketでつくる リアルタイムMVC Webアプリケーション
PlayFramework 2.0 Javaと WebSocketでつくる リアルタイムMVC WebアプリケーションKazuhiro Hara
 
Pelican の紹介 / World Plone Day 2017 Tokyo
Pelican の紹介 / World Plone Day 2017 TokyoPelican の紹介 / World Plone Day 2017 Tokyo
Pelican の紹介 / World Plone Day 2017 TokyoKei IWASAKI
 
ヒカルのGo 資料 Webアプリケーションの作り方
ヒカルのGo 資料 Webアプリケーションの作り方ヒカルのGo 資料 Webアプリケーションの作り方
ヒカルのGo 資料 Webアプリケーションの作り方Yosuke Furukawa
 
Git flowの活用事例
Git flowの活用事例Git flowの活用事例
Git flowの活用事例Hirohito Kato
 
Meteor kitchen で楽々ウェブアプリ開発
Meteor kitchen で楽々ウェブアプリ開発Meteor kitchen で楽々ウェブアプリ開発
Meteor kitchen で楽々ウェブアプリ開発Junji Yamada
 

La actualidad más candente (20)

人間たちとsystemd
人間たちとsystemd人間たちとsystemd
人間たちとsystemd
 
20120706-readablecode
20120706-readablecode20120706-readablecode
20120706-readablecode
 
やさしいGitの内部構造 - yapcasia2013
やさしいGitの内部構造 - yapcasia2013やさしいGitの内部構造 - yapcasia2013
やさしいGitの内部構造 - yapcasia2013
 
Jenkins に XFD を追加してみると
Jenkins に XFD を追加してみるとJenkins に XFD を追加してみると
Jenkins に XFD を追加してみると
 
Pelicanによる www.python.jpの構築
Pelicanによる www.python.jpの構築Pelicanによる www.python.jpの構築
Pelicanによる www.python.jpの構築
 
Niigata.pm #1
Niigata.pm #1Niigata.pm #1
Niigata.pm #1
 
真Drone入門
真Drone入門真Drone入門
真Drone入門
 
2014年を振り返る 今年の技術トレンドとDockerについて
2014年を振り返る 今年の技術トレンドとDockerについて2014年を振り返る 今年の技術トレンドとDockerについて
2014年を振り返る 今年の技術トレンドとDockerについて
 
プラガブル Play20 Scala
プラガブル Play20 Scalaプラガブル Play20 Scala
プラガブル Play20 Scala
 
Play勉強会 第3回
Play勉強会 第3回Play勉強会 第3回
Play勉強会 第3回
 
What makes pyramid unique
What makes pyramid uniqueWhat makes pyramid unique
What makes pyramid unique
 
PlayFramework 2.0 Javaと WebSocketでつくる リアルタイムMVC Webアプリケーション
PlayFramework 2.0 Javaと WebSocketでつくる リアルタイムMVC WebアプリケーションPlayFramework 2.0 Javaと WebSocketでつくる リアルタイムMVC Webアプリケーション
PlayFramework 2.0 Javaと WebSocketでつくる リアルタイムMVC Webアプリケーション
 
Gitの使い方あれこれ
Gitの使い方あれこれGitの使い方あれこれ
Gitの使い方あれこれ
 
Pelican の紹介 / World Plone Day 2017 Tokyo
Pelican の紹介 / World Plone Day 2017 TokyoPelican の紹介 / World Plone Day 2017 Tokyo
Pelican の紹介 / World Plone Day 2017 Tokyo
 
NDS#31
NDS#31NDS#31
NDS#31
 
ヒカルのGo 資料 Webアプリケーションの作り方
ヒカルのGo 資料 Webアプリケーションの作り方ヒカルのGo 資料 Webアプリケーションの作り方
ヒカルのGo 資料 Webアプリケーションの作り方
 
Git flowの活用事例
Git flowの活用事例Git flowの活用事例
Git flowの活用事例
 
Bot Framework v4 開発 Tips 2018-11
Bot Framework v4  開発 Tips 2018-11Bot Framework v4  開発 Tips 2018-11
Bot Framework v4 開発 Tips 2018-11
 
Git (実践入門編)
Git (実践入門編)Git (実践入門編)
Git (実践入門編)
 
Meteor kitchen で楽々ウェブアプリ開発
Meteor kitchen で楽々ウェブアプリ開発Meteor kitchen で楽々ウェブアプリ開発
Meteor kitchen で楽々ウェブアプリ開発
 

Destacado

Country report[1]
Country report[1]Country report[1]
Country report[1]84tommy
 
Kelsey lincoln sp 111 introduction
Kelsey lincoln sp 111 introductionKelsey lincoln sp 111 introduction
Kelsey lincoln sp 111 introductionkvlincoln
 
Library resources and services updated
Library resources and services updatedLibrary resources and services updated
Library resources and services updatedcarrillomcguire
 
H22職業調べ
H22職業調べH22職業調べ
H22職業調べMasaki3981
 
6 essential components of an order device
6 essential components of an order device6 essential components of an order device
6 essential components of an order deviceSadiyya Patel
 

Destacado (10)

Country report[1]
Country report[1]Country report[1]
Country report[1]
 
Kelsey lincoln sp 111 introduction
Kelsey lincoln sp 111 introductionKelsey lincoln sp 111 introduction
Kelsey lincoln sp 111 introduction
 
Library resources and services updated
Library resources and services updatedLibrary resources and services updated
Library resources and services updated
 
Big data and hadoop
Big data and hadoopBig data and hadoop
Big data and hadoop
 
Dc rda-rdat-low
Dc rda-rdat-lowDc rda-rdat-low
Dc rda-rdat-low
 
STEVE JOB
STEVE JOBSTEVE JOB
STEVE JOB
 
Lp Intrommercial
Lp IntrommercialLp Intrommercial
Lp Intrommercial
 
CURIOSIDADES
CURIOSIDADESCURIOSIDADES
CURIOSIDADES
 
H22職業調べ
H22職業調べH22職業調べ
H22職業調べ
 
6 essential components of an order device
6 essential components of an order device6 essential components of an order device
6 essential components of an order device
 

Similar a Bundler kanazawa.rb meetup #2 2012/09/19

Ruby on Rails3 Tutorial Chapter3
Ruby on Rails3 Tutorial Chapter3Ruby on Rails3 Tutorial Chapter3
Ruby on Rails3 Tutorial Chapter3Sea Mountain
 
Sflt17 meteorではじめる最速ウェブアプリ開発
Sflt17 meteorではじめる最速ウェブアプリ開発Sflt17 meteorではじめる最速ウェブアプリ開発
Sflt17 meteorではじめる最速ウェブアプリ開発Hironao Sekine
 
Nseg20120929
Nseg20120929Nseg20120929
Nseg20120929hiro345
 
MakeGoodで快適なテスト駆動開発を
MakeGoodで快適なテスト駆動開発をMakeGoodで快適なテスト駆動開発を
MakeGoodで快適なテスト駆動開発をAtsuhiro Kubo
 
Nseg20120825
Nseg20120825Nseg20120825
Nseg20120825hiro345
 
Rails解説セミナー: リリースノート解説編
Rails解説セミナー: リリースノート解説編Rails解説セミナー: リリースノート解説編
Rails解説セミナー: リリースノート解説編Yohei Yasukawa
 
Al mininum 47redmine-2nd
Al mininum 47redmine-2ndAl mininum 47redmine-2nd
Al mininum 47redmine-2ndmikoto20000
 
Ruby向け帳票ソリューション「ThinReports」の開発で知るOSSの威力
Ruby向け帳票ソリューション「ThinReports」の開発で知るOSSの威力Ruby向け帳票ソリューション「ThinReports」の開発で知るOSSの威力
Ruby向け帳票ソリューション「ThinReports」の開発で知るOSSの威力ThinReports
 
いまさら聞けないRake入門
いまさら聞けないRake入門いまさら聞けないRake入門
いまさら聞けないRake入門Tomoya Kawanishi
 
go.mobile で Android 開発
go.mobile で Android 開発go.mobile で Android 開発
go.mobile で Android 開発Hiroshi Kurokawa
 
Appsody でnodejsのアプリを立ち上げよう!
Appsody でnodejsのアプリを立ち上げよう!Appsody でnodejsのアプリを立ち上げよう!
Appsody でnodejsのアプリを立ち上げよう!Daisuke Hiraoka
 
Jpmobileを使ってみる
Jpmobileを使ってみるJpmobileを使ってみる
Jpmobileを使ってみるHiromu Shioya
 
小規模個人アプリをRails 7.xにバージョンアップした話
小規模個人アプリをRails 7.xにバージョンアップした話小規模個人アプリをRails 7.xにバージョンアップした話
小規模個人アプリをRails 7.xにバージョンアップした話Kazuhiro Nishiyama
 
Playbay Play 2.0 plugin イロハのイ
Playbay Play 2.0 plugin イロハのイPlaybay Play 2.0 plugin イロハのイ
Playbay Play 2.0 plugin イロハのイKazuhiro Hara
 
VC6によるRuby拡張ライブラリ開発環境について
VC6によるRuby拡張ライブラリ開発環境についてVC6によるRuby拡張ライブラリ開発環境について
VC6によるRuby拡張ライブラリ開発環境についてgoritto
 

Similar a Bundler kanazawa.rb meetup #2 2012/09/19 (20)

Ruby In Wheezy
Ruby In WheezyRuby In Wheezy
Ruby In Wheezy
 
Ruby on Rails3 Tutorial Chapter3
Ruby on Rails3 Tutorial Chapter3Ruby on Rails3 Tutorial Chapter3
Ruby on Rails3 Tutorial Chapter3
 
RubyGemsの落とし穴
RubyGemsの落とし穴RubyGemsの落とし穴
RubyGemsの落とし穴
 
Sflt17 meteorではじめる最速ウェブアプリ開発
Sflt17 meteorではじめる最速ウェブアプリ開発Sflt17 meteorではじめる最速ウェブアプリ開発
Sflt17 meteorではじめる最速ウェブアプリ開発
 
Nseg20120929
Nseg20120929Nseg20120929
Nseg20120929
 
MakeGoodで快適なテスト駆動開発を
MakeGoodで快適なテスト駆動開発をMakeGoodで快適なテスト駆動開発を
MakeGoodで快適なテスト駆動開発を
 
実は怖くないDevOps
実は怖くないDevOps実は怖くないDevOps
実は怖くないDevOps
 
Nseg20120825
Nseg20120825Nseg20120825
Nseg20120825
 
Rails解説セミナー: リリースノート解説編
Rails解説セミナー: リリースノート解説編Rails解説セミナー: リリースノート解説編
Rails解説セミナー: リリースノート解説編
 
Al mininum 47redmine-2nd
Al mininum 47redmine-2ndAl mininum 47redmine-2nd
Al mininum 47redmine-2nd
 
Ruby向け帳票ソリューション「ThinReports」の開発で知るOSSの威力
Ruby向け帳票ソリューション「ThinReports」の開発で知るOSSの威力Ruby向け帳票ソリューション「ThinReports」の開発で知るOSSの威力
Ruby向け帳票ソリューション「ThinReports」の開発で知るOSSの威力
 
Sinatra and heroku for mac
Sinatra and heroku for macSinatra and heroku for mac
Sinatra and heroku for mac
 
いまさら聞けないRake入門
いまさら聞けないRake入門いまさら聞けないRake入門
いまさら聞けないRake入門
 
go.mobile で Android 開発
go.mobile で Android 開発go.mobile で Android 開発
go.mobile で Android 開発
 
Appsody でnodejsのアプリを立ち上げよう!
Appsody でnodejsのアプリを立ち上げよう!Appsody でnodejsのアプリを立ち上げよう!
Appsody でnodejsのアプリを立ち上げよう!
 
Jpmobileを使ってみる
Jpmobileを使ってみるJpmobileを使ってみる
Jpmobileを使ってみる
 
小規模個人アプリをRails 7.xにバージョンアップした話
小規模個人アプリをRails 7.xにバージョンアップした話小規模個人アプリをRails 7.xにバージョンアップした話
小規模個人アプリをRails 7.xにバージョンアップした話
 
Yesod on Heroku
Yesod on HerokuYesod on Heroku
Yesod on Heroku
 
Playbay Play 2.0 plugin イロハのイ
Playbay Play 2.0 plugin イロハのイPlaybay Play 2.0 plugin イロハのイ
Playbay Play 2.0 plugin イロハのイ
 
VC6によるRuby拡張ライブラリ開発環境について
VC6によるRuby拡張ライブラリ開発環境についてVC6によるRuby拡張ライブラリ開発環境について
VC6によるRuby拡張ライブラリ開発環境について
 

Bundler kanazawa.rb meetup #2 2012/09/19

Notas del editor

  1. \n
  2. \n
  3. \n
  4. \n
  5. \n
  6. \n
  7. \n
  8. \n
  9. \n
  10. \n
  11. \n
  12. \n
  13. \n
  14. \n
  15. \n
  16. \n
  17. \n
  18. \n
  19. \n
  20. \n
  21. \n
  22. \n
  23. \n
  24. \n
  25. \n
  26. \n
  27. \n
  28. \n
  29. \n
  30. \n
  31. \n
  32. \n
  33. \n
  34. \n
  35. \n
  36. \n
  37. \n
  38. \n
  39. \n
  40. \n
  41. \n
  42. \n
  43. \n
  44. \n
  45. \n
  46. \n