2013年11月6日水曜日

httpd.confの設定に関して

この記事がわかりやすいのでメモ。
httpd.confについて調べたのでまとめたよ

個人的に必要な部分をメモ。
httpd.confはCentOS系だと/etc/httpd/conf/httpd.confにある
ServerRoot:Apacheがあるパス





2013年10月14日月曜日

Github と Pull Request とコードレビューって当たり前じゃなかったのか...

メモ。
Webサービス開発現場から / 近頃の開発のやり方 ・・・ Github と Pull Request とコードレビュー

てっきり当たり前の開発手法だと思ってた。
この手法を導入するためにやることは2つ。リポジトリ管理をGithubにすることと
Jenkinsを導入し、テスト用サーバーを用意してテストを回し続けるようにすることだけだ。

開発者としてやることは
・開発をする
・テストを書く
・Pull Requestを飛ばして誰かにマージしてもらう
の3つだ。

Jenkins導入とテストを書くことのメリットだが、これをやることで糞コードが減る。
Jenkinsは特定ブランチにコードがコミットされるたびにテストが実行されるので、
テストが通らないおかしなコードがコミットされるとエラーを吐いて知らせてくれる役割をする。
テストを書くことでなぜ糞コードが減るかというと、テストが書きやすいようにコードを
分割するようになるので、メイン関数にすべてのコードをベタ書きするような、
あの誰も触れないコードを書くような事象を構造的に減らせるというわけだ。

重要なのはそこなので、カバレッジは別に100%じゃなくても構わないと思う。
最悪分岐の多い関数だけ書いておいてもいいわけだし。
バッチとかはメインロジックはそこに書かずにそこで呼び出すモジュールの方に
書いておけばテストもしやすい。

Pull Requestを飛ばしてだれかにマージしてもらうのは、コードレビューを構造的に
組み込むという意味で優れていると思う。これは本番用のブランチにマージする際に
自分でマージするのではなく、他の人にマージしてもらうということだ。
ここでレビューが入ることで、明らかにおかしなコードは入りにくくなるわけだ。

ちなみに設計などはwikiにドキュメントを残して開発チームでレビューを行う仕組み。
ここも属人化を避けるために複数人でミーティングを行っている。



2013年8月30日金曜日

git cloneしようとしたらBad owner or permissions on /home/ユーザー名/.ssh/configと出た

この手順に従ってやったら問題が解決した。
http://futuremix.org/2005/10/openssh-config-permission

どうも本人以外が~/.ssh/configを編集できるのがまずいということらしい。なので、
chmod 600 ~/.ssh/config
にして、本人以外は書き込み(w)ができない状態にしたら、表題の、
Bad owner or permissions on /home/ユーザー名/.ssh/config
はなくなりうまくいった。

ssh-addしようとしたらCould not open a connection to your authentication agentと出てきて困った

このサイトに書いてある通りにやったらとりあえずできるようになった。
http://www.geocities.jp/sugachan1973/doc/funto39.html

とりあえず
eval `ssh-agent`
と打った後に
ssh-add id_rsaファイルのフルパス
と打ったら
Could not open a connection to your authentication agent
は出なくなり、パスフレーズの要求がされ、うまくいった。
うまく行けば
ssh-add -l
と打ったときに
2048 2e:c0・・・
みたいな感じで鍵の内容が表示されるようだ。


どうもこの作業、手順に記載されているとおりおまじないとしてやっていたのだが、
ssh-addってのは認証エージェントにパスフレーズを登録する作業らしい。
gitでリモートサーバーとのやり取りをするとき、いちいち作業ごとにパスフレーズを打つのは
だるいので、認証エージェントという、認証作業を勝手にやってくれるプログラムに
パスフレーズを登録しているということかと。


2013年8月29日木曜日

Perlのテスト系モジュールまとめ

Test::***系の便利なモジュールをまとめて端的に説明しているサイトがあったのでメモ。
PerlでTDD(テスト駆動開発)するなら覚えておきたいCPANモジュール群

あー、なるほど。Test::Mock::Guardってのが何やっているのかよくわからなかったが、
Test::MockObjectみたいなモック化モジュールなのね。そっちに関してはこの説明がわかりやすい。
Test::Mock::Guard Released

あと
Test::MockTimeは便利。time()を固定できる。
Test::MockTime::set_fixed_time(1373954400);
のようにして使う。上記例だと2013-07-16 15:00に固定。




VMwareでLinux(CentOS)のキーボードを日本語キーボードにする

VMWareでLinux(CentOS)をインストールしたらキーボードが英語キーボードで困った。
「:」が該当場所にないのでvimで編集した結果を保存できなくて何が起きているのかわからず
かなりはまったし。

とりあえず暫定で必要そうな文字の出し方を下記に記載しておく。
む+shift:|
れ+shift::
6+shift:^
2+shift:@
この辺打てないとなんもできないだろうから・・。

あとは
ls /lib/kbd/keymaps/i386/qwerty/jp106.map.gz
で日本語キーボードの対応キーマップファイルがあるかどうかを確認し、
su
でrootになったら、
vim /etc/sysconfig/keyboard
で設定ファイルを開いて
KEYTABLE="us"
KEYTABLE="jp106"
に直して
reboot
で再起動したら直っているはず。


2013年8月28日水曜日