nvm を upgrade する

node.js のバージョン管理する nvm が2年前くらいにインストールしたまま放置されてたので、 upgrade してみた。

方法があまり書いてなかったので、メモしておきます。

Upgrade 方法

自分が nvm をインストールしたディレクトリ(自分の場合は ~/.nvm)で

git pull

するだけ。

後は

source ~/.nvm/nvm.sh

してやれば、upgrade された nvm が使用できます。 簡単でした。

HTTPResponse#value は 2xx系の response でない場合、例外を返す

def expand(url)
  target_url = url
  loop do
    res = fetch(target_url)
    case res
    when Net::HTTPSuccess then
      return target_url
    when Net::HTTPRedirection then
      target_url = res["location"]
    else
      return res.value
    end
  end
end

省略されている URL (t.co など)を展開するために、上記の様な関数を書いたんだけども、response が 404 Not Found が出た時に処理がこけているという指摘をいただいた。

HTTPResponse#response の処理を確認

pry(main)> show-method Net::HTTPResponse#value

def value
  error! unless self.kind_of?(Net::HTTPSuccess)
end

2xx 系の response ではない場合に error! メソッドをコールしている。

HTTPResponse#error! メソッドを確認

pry(main)> show-method Net::HTTPResponse#error!

def error!   #:nodoc:
  raise error_type().new(@code + ' ' + @message.dump, self)
end

例外を raise してました。

参考

http://docs.ruby-lang.org/ja/2.0.0/method/Net=3a=3aHTTPResponse/i/value.html

マニュアルにも書いてある

kanazawa.rb meetup #22 に参加してきた

6/21 (sat) に kanazawa.rb meetup #22 に参加してきました。

今回は、「2014初夏のクラウド祭り。今度はHerokuだ!」ってことで、

@keiko713 さんをお迎えしての Heroku ハンズ・オンでした。

いやー楽しかった楽しかった。

http://kanazawarb.github.io/meetup/22/

http://togetter.com/li/683187

f:id:kkabetani:20140621133738j:plain

翌日まで

Heroku ってアカウントは持ってるけど、全然触ったことなかったなーって思ったので、 予習を兼ねて以下のものを作ってみてました。

これらを Heroku にデプロイして遊んでました。

(実は予習でしてたことを何か LT で話そうかなって思ってたんですが、 資料が間に合わず断念。。)

ハンズ・オン

  • カメラマンが多すぎて、記者会見みたいな感じになった

  • 黄色いTシャツのサポートおじさん現れた

  • CLO ( Command line Ojisan ) 現れた

もうおじさん大活躍のハンズ・オンでした。

自分は予習のおかげもあって、あまりつまづくことなく進めることができた。

もっと立ち上がっておじさんになるべきだったなと。

ハンズ・オンは初めてだったけど、みんなで学んで、みんなで解決していく、 団結感みたいな感じはすっげー良かった。

Heroku についての発見

懇親会

ガリガリ君サワー飲んで、騒いで、 ガリガリ君サワー飲んで、人をダメにして、 唐揚げ食べて、パスタ食べて、ガリガリ君サワー飲んで、 といった感じでいつも通り楽しかったです。

f:id:kkabetani:20140621202939j:plain

ってこれ二次会だな。

一次会はショットガン.rb でした。

f:id:kkabetani:20140621183733j:plain

まとめ

復習しつつ Heroku 触ってこ!!

Vagrant を Upgrade する

https://docs.vagrantup.com/v2/installation/upgrading.html

公式ページを確認すると、現在の最新版(1.6.2) をダウンロードして、インストールすれば自動的に upgrade される

現在のバージョン確認

☁  ~  vagrant -v
Vagrant version 1.2.6

ここから自分の OS の vagrant をダウンロードして実行 https://www.vagrantup.com/downloads

コマンドラインから確認

☁  ~  vagrant -v
Vagrant 1.6.2

出来てますね。

travis-ci のデフォルトのビルドサイクル

travis-ci のドキュメントには デフォルトのビルドサイクルは以下のように書かれています。(http://docs.travis-ci.com/user/build-configuration/#Build-Lifecycle)

  1. GitHub からプロジェクトのリポジトリを clone
  2. clone したディレクトリに移動
  3. 今回の commit をチェックアウトする
  4. before_install commands 実行
  5. install commands 実行
  6. before_script commands 実行
  7. test script commands 実行
  8. after_success or after_failure commands 実行
  9. after_script commands 実行

今回は、ほとんど初期状態のプロジェクト (https://github.com/kkabetani/travis_training) で、 travis を試したログを追ってみます。

.travis.yml ファイルのみプロジェクトにあって、hello.rb をコミットした時に動いた travis のログです。

Using worker: worker-linux-6-2.bb.travis-ci.org:travis-linux-15

$ git clone --depth=50 --branch=master git://github.com/kkabetani/travis_training.git kkabetani/travis_training
$ cd kkabetani/travis_training
$ git checkout -qf 0315be3ff38bfae1bfefee805f0fc50eb8db3e1c
$ rvm use 2.0.0 --install --binary --fuzzy
Using /home/travis/.rvm/gems/ruby-2.0.0-p353
$ ruby --version
ruby 2.0.0p353 (2013-11-22 revision 43784) [x86_64-linux]
$ rvm --version
rvm 1.25.14 (version) by Wayne E. Seguin <wayneeseguin@gmail.com>, Michal Papis <mpapis@gmail.com> [https://rvm.io/]
$ gem --version
2.2.2
$ bundle --version
Bundler version 1.5.3
$ rake
rake aborted!
No Rakefile found (looking for: rakefile, Rakefile, rakefile.rb, Rakefile.rb)
/home/travis/.rvm/gems/ruby-2.0.0-p353/bin/ruby_executable_hooks:15:in `eval'
/home/travis/.rvm/gems/ruby-2.0.0-p353/bin/ruby_executable_hooks:15:in `<main>'
(See full trace by running task with --trace)
The command "rake" exited with 1.
Done. Your build exited with 1.

このログを1つずつ追ってみたいと思います。

depth=50 オプションを付けることで取得するリビジョン数を 50 に指定する

$ git clone --depth=50 --branch=master git://github.com/kkabetani/travis_training.git kkabetani/travis_training
  • clone したディレクトリに移動
$ cd kkabetani/travis_training
  • 今回の commit をチェックアウトする
$ git checkout -qf 0315be3ff38bfae1bfefee805f0fc50eb8db3e1c
  • バージョン確認
$ rvm use 2.0.0 --install --binary --fuzzy
Using /home/travis/.rvm/gems/ruby-2.0.0-p353
$ ruby --version
ruby 2.0.0p353 (2013-11-22 revision 43784) [x86_64-linux]
$ rvm --version
rvm 1.25.14 (version) by Wayne E. Seguin <wayneeseguin@gmail.com>, Michal Papis <mpapis@gmail.com> [https://rvm.io/]
$ gem --version
2.2.2
$ bundle --version
Bundler version 1.5.3
  • Rake 実行
$ rake
rake aborted!
No Rakefile found (looking for: rakefile, Rakefile, rakefile.rb, Rakefile.rb)
/home/travis/.rvm/gems/ruby-2.0.0-p353/bin/ruby_executable_hooks:15:in `eval'
/home/travis/.rvm/gems/ruby-2.0.0-p353/bin/ruby_executable_hooks:15:in `<main>'
(See full trace by running task with --trace)
The command "rake" exited with 1.
Done. Your build exited with 1.

before_install とか after_sctipt とかは .travis.yml に指定した場合に実行される。

今回の場合は何も記述していないので実行されていない。

また、runtime に Ruby を指定している場合、 テストを実行するためにデフォルトで rake を実行する。

なので Gemfile に rake を追加しないといけないみたいですね。

参考 http://docs.travis-ci.com/user/languages/ruby/#Default-Test-Script

iTerm2-Color-Schemes を設定してみる

iTerm2-Color-Schemes を使用して、iTerm2 のテーマを変更してみます。

まず iTerm2-Color-Schemes のプロジェクトを clone します。

git clone git@github.com:mbadolato/iTerm2-Color-Schemes.git

次に

  1. Preferences 起動
  2. Colors タブ
  3. Load Presets
  4. Import
  5. iTerm2-Color-Schemes/schemes から 希望の .itermcolors を選択

選択したら、以下の用にテーマを選択出来るようになります。

自分は Teerb を使用しています。github のページにも Screenshots が色々あるので気に入ったのがあれば、試してみるといいと思います。

f:id:kkabetani:20140418222552p:plain

リモートの master 以外のブランチを clone する

git clone で master branch を clone した後に,

git branch -r

でリモートのブランチを確認

git checkout -b "ブランチ名" "リモートブランチ名"

で clone できる。

ローカルのブランチはブランチ名で指定した名前になる