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/
翌日まで
Heroku ってアカウントは持ってるけど、全然触ったことなかったなーって思ったので、 予習を兼ねて以下のものを作ってみてました。
- 1時間毎に時間をつぶやく twitter bot (https://github.com/kkabetani/time_bot)
- kanazawa.rb の meetup ページを Heroku で動かす
これらを Heroku にデプロイして遊んでました。
(実は予習でしてたことを何か LT で話そうかなって思ってたんですが、 資料が間に合わず断念。。)
ハンズ・オン
カメラマンが多すぎて、記者会見みたいな感じになった
黄色いTシャツのサポートおじさん現れた
CLO ( Command line Ojisan ) 現れた
もうおじさん大活躍のハンズ・オンでした。
自分は予習のおかげもあって、あまりつまづくことなく進めることができた。
もっと立ち上がっておじさんになるべきだったなと。
ハンズ・オンは初めてだったけど、みんなで学んで、みんなで解決していく、 団結感みたいな感じはすっげー良かった。
Heroku についての発見
- dyno = Heroku で走るインスタンスの単位
- 一ヶ月あたり 750 dyno-hours が無料
- これはアカウントにあるアプリケーション別に適用される
- foreman start でローカルで試せる
- サードパーティの Buildpack もたくさんある
- https://devcenter.heroku.com/articles/third-party-buildpacks
- 予習で jekyll の Buildpack 使ったんだけどうまくいかなかった。。
- addon もたくさんある
- heroku releases でリリース履歴確認
- heroku releases:rollback ver で指定した ver にロールバック出来る
懇親会
ガリガリ君サワー飲んで、騒いで、 ガリガリ君サワー飲んで、人をダメにして、 唐揚げ食べて、パスタ食べて、ガリガリ君サワー飲んで、 といった感じでいつも通り楽しかったです。
ってこれ二次会だな。
一次会はショットガン.rb でした。
まとめ
復習しつつ 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)
- GitHub からプロジェクトのリポジトリを clone
- clone したディレクトリに移動
- 今回の commit をチェックアウトする
- before_install commands 実行
- install commands 実行
- before_script commands 実行
- test script commands 実行
- after_success or after_failure commands 実行
- 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
次に
- Preferences 起動
- Colors タブ
- Load Presets
- Import
- iTerm2-Color-Schemes/schemes から 希望の .itermcolors を選択
選択したら、以下の用にテーマを選択出来るようになります。
自分は Teerb を使用しています。github のページにも Screenshots が色々あるので気に入ったのがあれば、試してみるといいと思います。
リモートの master 以外のブランチを clone する
git clone で master branch を clone した後に,
git branch -r
でリモートのブランチを確認
git checkout -b "ブランチ名" "リモートブランチ名"
で clone できる。
ローカルのブランチはブランチ名で指定した名前になる