仮想マシンのネットワーク設定

仮想マシンのネットワーク設定
#03 ネットワークの設定をしていこう
http://dotinstall.com/lessons/basic_local_development_v2/24803
を参考に
vagrant で作成したCentOS のネットワークを設定
まずシステムアップデート
sudo yum -y update
アップデートできたら
ネットワークの設定
sudo yum -y install vim
で vim をインストール
sudo vim /etc/resolv.conf
ちなみに、ディレクトリパスは
tab キーで補完するとミスしにくい
で、開いたファイルで
一番上に
options single-request-reopen
を追記して保存
これの意味はいまいちわからないので検索
http://www.kunitake.org/chalow/2012-11-02-1.html
にこのあたりの解説が載っているので参考に
どうやら名前解決の遅さ解決のためのようです
そして、開発環境でファイアウォールの解除
sudo service iptables stop
sudo chkconfig iptables off
自分で iptables 設定してもいいけど
なれないうちはこのほうが楽
ちなみに、FW解除しないと
PHPとかでつくってもなにもみれないので注意

vagrant でローカル開発環境構築

vagrant でローカル開発環境構築
ローカル開発環境の構築
http://dotinstall.com/lessons/basic_local_development_v2

今回 vagrant でローカル開発環境構築がでていたので実践
今回は
Python
Ruby / Ruby on Rails の
環境も追加されている
使用する仮想環境は VirtualBox を使用
まず
cd /media/bdec1869-7820-4557-a76e-a8b130293019/
でHDDへ移動
これは私の環境の場合
SSD+HDDのため
vagrant box add centos64box http://developer.nrel.gov/downloads/vagrant-boxes/CentOS-6.4-x86_64-v20130427.box
で追加するけど、すでに以前追加しているので
今回は
mkdir localdev
cd localdev/
でディレクトリを作って、そこに移動
過去に仮想マシンを追加したなら
ls ~/.vagrant.d/boxes/
で追加した仮想マシンを確認できる
vagrant init centos64

Vagrantfile
を作成
ネットワーク設定をするため
vim Vagrantfile
でファイルを開き
/config
で探して
26行めあたりの
# config.vm.network :private_network, ip: “192.168.33.10”
を探し
config.vm.network :private_network, ip: “192.168.33.56”
へ変更
保存したら
vagrant up
で仮想マシンの作成
仮想マシンの作成ができたら
vagrant ssh
で接続して
pwd という現在のディレクトリを示すコマンドで
/home/vagrant
となっているなら成功

ruby でクラスからインスタンス作成

ruby でクラスからインスタンス作成
クラスからインスタンスを作成し
メソッドで呼ぶようにする
インスタンスを作るには
クラス名.new(引数)
.new をつけることで
def initialize が呼ばれる
今回、クラスで
def initialize(name)
@name = name
@hp = 100 + rand(100)
end
となっているので
まず、モンスターのスライムを作成
スライムのインスタンスを作るには
slime = Moster.new(“slime”)
これで、
スライムのインスタンスが作成され初期設定がされる
このスライムにダメージを与えるには
def damage を実行すればいいので
slime.damage
とすれば実行できる
実行すると
slime appeared. His HP is 109
slime’s HP is now 92
というように表示される
さらに、スライムだけでなくマミーも追加
そして、
マミーの回復も追加してみた
mummy = Monster.new(“munmmy”)
mummy.heal
これで実行すると
slime appeared. His HP is 187
slime’s HP is now 170
munmmy appeared. His HP is 150
munmmy’s HP is now 165
というように追加されたのがわかる

ruby の自作クラス

ruby の自作クラス
ruby でクラスを作成するには
class クラス名
def initialize
初期化処理
end
def メソッド名
行う処理
end
end
となる
クラス名は大文字で始まるので注意
initialize は必須で
インスタンス作成のときの初期化につかう
この解説でわかりやすいのがドットインストール
今回は、ゲームの処理を想定
class Monster
def initialize(name)
@name = name
@hp = 100 +rand(100)
end
def damage
@hp -=10 + rand(10)
printf(“%s’s HP is now %d\n”,@name,@hp)
end
end
このメモを書いてみると
def initialize(name)
@name = name
@hp = 100 +rand(100)
end
の部分が initialize メソッドによる初期化処理
@name は名前
@hp はRPGのHPを意味している
def damage
@hp -=10 + rand(10)
printf(“%s’s HP is now %d\n”,@name,@hp)
end

ダメージを受けたときの処理を行うメソッド
@hp -=10 + rand(10)
でHPが減る仕組み
printf(“%s’s HP is now %d\n”,@name,@hp)

名前と現在のHPを表示している
続いて、HPが0になったら死亡メッセージ表示
printf(“%s is dead ….\n”,@name) if @hp < 0 ruby の場合、後に if 判定を書くやりかたをするので 他の言語からくるとちょっとわかりにくい さらに、回復時のメソッド heal も追記 def heal @hp += 10 + rand(10) printf("%s's HP is now %d\n",@name,@hp) end これで、回復時の処理もつくれる また initialize メソッドへ printf("%s appeared. His HP is %d\n"@name,@hp) とすれば初期化したときに 名前とHPが表示されるようになる @がついた変数、今回なら @name @hp これらは、インスタンス変数と呼ばれ 作成したメソッドだけでなく class から生まれたインスタンスの中なら使える変数 になる つまり 通常は、メソッドの中 def initialize の中だけになるけど @ がつくことで 今回なら class Monster の中でなら使える変数になる このため、 def damage とか def heal という別のメソッドでも使えるようになっている

ruby のメソッドの引数、返り値について

ruby のメソッドの引数、返り値について
def で設定したユーザ関数の引数は
2つにすることもできる
def sing(word=”uryyy!”)
puts word + word + word +”-”
end
sing()
sing(“hu”)
へ繰り返し処理を追加するには
def sing(word=”uryy!”, num=1)
for i in 1..num do
print word
end
puts “-”
end
というように
num を引数に追加して
for で繰り返す数値に利用している
1,,num とすれば
1~numで指定した回数という条件にできる
これを関数で使うには
sing()
とか
sing(“good!!”,2)
というように繰り返し回数を引数で指定する
実行すると
uryyy!-
huhuhuhuhuhuhuhuhuhu-
というように繰り返し表示される
次に、メソッドの返り値について
ここまでは関数の結果を画面表示したけど
結果を変数に格納することができる
この格納することで、後で代入して表示したり
計算に使ったりと様々な応用ができる
今回はソースを変えて
返り値を表示するようにした
def sing(word=”uryyy!”,num=1)
s =””
for i in 1..num do
s += word
end
s += “-”
return s
end
res = sing(“hu”,10)
puts res
この結果は
huhuhuhuhuhuhuhuhuhu-
となる
まず、 s=”” で変数を空文字で初期化
for ループの中で
s += word
により、指定したループ回数だけ文字が += により
追加されていく
今回なら
最初は
hu
だけど
hu
huhuhu
というように
+= で追加されていく
最後に for ループを抜けたら
s += “-”
で文字列の一番後ろに – がついて
huhuhuhuhuhuhuhuhuhu-
となっている
return s は結果を格納した変数
これが関係しているのが
res = sing(“hu”,10)
通常、この結果は画面にでてくるけど
res = になっているので結果は
res に格納され、
puts s で画面表示されている
返り値と引数については
他の言語でも多々使うため
一回覚えると学習効率がよくなる

ruby のメソッドの定義

ruby のメソッドの定義
#28 メソッドを定義しよう
http://dotinstall.com/lessons/basic_ruby/4728
を元に
ruby でのユーザ関数作成について学習
ユーザ関数のメリットは
自分で便利な関数を作成したり
よくつかう処理をまとめて関数にして実行する
ということができるということ
ユーザ関数の作り方は
def ユーザ関数名
 行う処理
end
となる
自作でつくった関数を使うには
他の言語のように
関数名()
とすればOK
注意点としては
関数名は、数字からではつくれない
ということ
これは、他のPHPなどでもよくあるルールなので
名前の付け方を覚えておくと応用がきく
とりあえず実践
ef sing
puts “Hi”
end
sing()
これを実行すると Hi と表示される
また、ruby のユーザ関数も、ほかの言語同様
引数を設定できる
これは関数に、引数の値を渡して
関数内で処理するのにつかう
この引数を設定したユーザ関数を使うには
関数名(引数)
というように使う
引数には、初期値を設定することもできる
こうすれば
何も指定していないときのデフォルト値が設定できるので
引数なしの場合には
デフォルトの値で実行されるということになる
とりあえず実践
def sing(word=”uryyy!”)
puts word + word + word +”-”
end
sing()
sing(“hu”)
で実行すると
uryyy!uryyy!uryyy!-
huhuhu-
となる
最初の
uryyy!uryyy!uryyy!-

sing()で引数なしで実行した結果ため
これは
word=”uryyy!
というように初期値を設定してある
huhuhu-

sing(“hu”)
で引数を “hu” で指定した結果になる