rvm で Ruby2.0 をインストールしてみた。

Ruby 2.0 が正式に発表なってたのでrvmで利用できるようにしてみます。

Ruby 2.0.0-p0 リリース

環境

  • OS: Ubuntu 12.04 64bit
  • Ruby: ruby 2.0.0p0 (2013-02-24 revision 39474) [x86_64-linux]
  • rvm: rvm 1.14.3 (stable)

rvm 経由で Ruby 2.0.0 をインストール

rvm list known でインストールできるパッケージ一覧が取得できるのですが、Ruby 2.0はそのリストには出てこないようです。
ですが、動き見ると引数をもとに公式のパッケージを取ってきてるだけっぽいので、パッケージ名を引数にのコマンド叩いてみました。

Terminal
1
$ rvm install ruby-2.0.0-p0

インストールできたか確認。

Terminal
1
2
3
4
5
6
7
8
9
10
11
$ rvm list

rvm rubies

ruby-1.8.7-p358 [ x86_64 ]
=* ruby-1.9.3-p194 [ x86_64 ]
ruby-2.0.0-p0 [ x86_64 ]

# => - current
# =* - current && default
# * - default

無事インストールはできたようです。

ruby 2.0.0 を利用してみる

rvmで2.0を指定。

Terminal
1
2
$ rvm use 2.0.0
Version '2.0.0' is to confusing to select ruby interpreter.

バージョンのみだと、上記のようなエラーが発生して利用できないので

Terminal
1
2
3
4
$ rvm use ruby-2.0.0-p0
Using /home/nanigashi/.rvm/gems/ruby-2.0.0-p0
$ ruby -v
ruby 2.0.0p0 (2013-02-24 revision 39474) [x86_64-linux]

上記のように ruby-2.0.0-p0 を指定して設定する。

とりあえずサンプルコードを動かしてみる

深く考えずに動くかどうかだけとりあえず試す。

http://jp.rubyist.net/magazine/?0041-200Special#l5

ここに乗ってるコードをコピペして動かしてみます。

sample.rb
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#!/usr/bin/env ruby
# -*- encoding: utf-8 -*-
# -*- coding: utf-8 -*-

APP_OPTS = { name: 'play', author: 'dave' }
LOG_OPTS = { level: 2, color: 'blue', line: "3pt" }

def log(msg, options)
p msg
p options
end

log("Starting", **APP_OPTS)
log("Connected", **APP_OPTS, **LOG_OPTS)
log("Giving up", **APP_OPTS, **LOG_OPTS, color: "VERY RED")

Ruby 2.0.0 での実行結果

Terminal
1
2
3
4
5
6
7
$ ruby sample.rb
"Starting"
{:name=>"play", :author=>"dave"}
"Connected"
{:name=>"play", :author=>"dave", :level=>2, :color=>"blue", :line=>"3pt"}
"Giving up"
{:name=>"play", :author=>"dave", :level=>2, :color=>"VERY RED", :line=>"3pt"}

ちなみに、Ruby 1.9.3 での実行結果はエラーになります。

Terminal
1
2
3
4
$ ruby sample.rb
/home/nanigashi/ruby2/sample.rb:13: syntax error, unexpected tPOW, expecting ')'
log("Starting", **APP_OPTS)
^

とりあえずは問題なく動いてるようです。

以上です。

一眼レフを買ってみたので工場を撮りに行ってみた。

また散財。何某です。こんばんは。

一眼レフ買っちゃった。

買ったのはこれ。

安かったので。今だと思いましたね。はい。
新型が出てるので在庫処分なんですかね。

というわけで、買った話をカメラが趣味の友人にする。

「三脚とリモコン持ってる?」

『一応買ったけど。』

「じゃ工場撮りに行くから。カメラ買ったら工場かビル撮らないと駄目だから。」

そうだったのか。。。

というわけで行ってきました。しかし、難しいですね。

  • 安中製錬所。

安中製錬所_20130209

なんか日本一有名な工場だとかなんとか。

  • 高崎の夜景。

高崎_20130209

通りかかったら綺麗だったので。

とりあえず一眼初心者なので適当に50枚以上撮って、よさげなのをPixelmatorで、コソコソっとホワイトバランスいじってみました。

どうでしょうか。うちの母が観たら感動するくらいには撮れてる気がします。

面白いね一眼。人並みに撮れるようセンス磨いていければなと思いました。

以上です。

Rubyのcombinationを利用して全通りの組み合わせを出してみた

膨大な組み合わせを考えるの面倒だったのでなんとかならんかと思ってたら、Rubyに自動で全ての組み合わせを出力してくれる機能があったのでやってみました。

環境

  • OS: Ubuntu 12.04 64bit
  • Ruby: ruby 1.9.3p194 (2012-04-20 revision 35410) [x86_64-linux]

combination とは

instance method Array#combination

サイズ n の組み合わせをすべて生成し、それを引数としてブロックを実行します。

試しに使ってみる

なんとなく新幹線とバスの組み合わせを書いてみました。

comb.rb
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
# 数値を3桁でカンマ区切りする
# http://blade.nagaokaut.ac.jp/cgi-bin/scat.rb/ruby/ruby-list/37580
def num_fmt(num)
num.to_s.reverse.gsub( /(\d{3})(?=\d)/, '\1,' ).reverse
end

# 新幹線とバス
data = {
1 => {:name => "新幹線(名古屋) ", :price => 10780},
2 => {:name => "高速バス(名古屋)", :price => 3500},
3 => {:name => "新幹線(新大阪) ", :price => 14050},
4 => {:name => "高速バス(大阪) ", :price => 5500}
}
num = [1, 2, 3, 4]
num.combination(2){|a, b|
str = "#{data[a][:name]}: ¥#{num_fmt(data[a][:price]).to_s}"
str << " + "
str << "#{data[b][:name]}: ¥#{num_fmt(data[b][:price]).to_s}"
str << " = "
str << "¥#{num_fmt((data[a][:price].to_i + data[b][:price].to_i)).to_s}"
puts str
}
Terminal
1
2
3
4
5
6
新幹線(名古屋)  : ¥10,780 + 高速バス(名古屋): ¥3,500 = ¥14,280
新幹線(名古屋) : ¥10,780 + 新幹線(新大阪) : ¥14,050 = ¥24,830
新幹線(名古屋) : ¥10,780 + 高速バス(大阪) : ¥5,500 = ¥16,280
高速バス(名古屋): ¥3,500 + 新幹線(新大阪) : ¥14,050 = ¥17,550
高速バス(名古屋): ¥3,500 + 高速バス(大阪) : ¥5,500 = ¥9,000
新幹線(新大阪) : ¥14,050 + 高速バス(大阪) : ¥5,500 = ¥19,550

これは便利。処理の他にもCSVとかにしてExcelで読み込ませるとかで使えそう。

以上です。

© 2019 磁力式駆動 All Rights Reserved.
Theme by hiero