Stack Overflow Cloneの一つであるShapadoを職場に導入したので、その時の記憶を元にメモっておく(というわけで、記憶が曖昧なせいで間違っている部分もあるかもしれない)。
サーバーの準備
Fedora14に入れた。Fedora14はcd-romから起動してHDDにインストールしてSELinuxとか色々設定して、まぁそこら辺は普通に。
ShapadoはMongoDBとRoRで動くのでそっちも設定。Ruby関連はgemsを使ってshapadoのREADMEの通りにバージョンに気をつけながらインストールしていく。ライブラリのヘッダーつまり「develが無いdevelが無い」って言われ続けるので丁寧に入れていく。これがいつも面倒だなぁ。
fedora14はmongodbのrpmがあるのでyumで入れる
yum install mongodb-server chkconfig mongodb on /etc/init.d/rc.d/mongodb start
これでMongoDBの設定は終り。
shapadoのインストール
職場ではgitriousのソースをgit cloneできないので、GitHubのtar.gzをダウンロードしてきた。
あとはREADMEの通りにやればdevelopmentは動く。ただし、shapado.ymlを編集したらrake bootstrapをしないといけない。これはproductionでも同様。あとprodctionで動かす場合はもうひとつのymlファイル(model.ymlだったかな?)をきちんと設定する。
apacheでshapadoを動かす
developmentは妙に遅いのでproductionで動かしたい(というかそうでないとフラストレーションが溜まる)
ApacheでRoRを動かすにはpassengerを使うとよいらしいので、そうしてみた。これは実に簡単。足りないパッケージも教えてくれるのにプログラムの言いなりでOK
ただ実際に動かしてみると起動せずerror.log見たらメソッドがないらしいので修正した。
これで動いた。ApacheでRoRを動かすのは思ったより簡単だったということが分かったのは収穫
なぜイントラにStack Overflow Cloneが必要か?
An answer is always the stretch of road that's behind you. Only a question can point the way forward.ってのは名言だと思っていて、結局適切な問いを出し続けられるかというのが組織の強みなんだろうなぁと。(既に与えられた)問いに如何にはやく答えられるか?ってのはコスト競争というかそっちのほうに引っ張られて、製薬業みたいな探索なんだか工学なんだかわかんないような学際的な研究企業には本質的な強みでないよな(アウトソースなんていっぱいあるし)と、個人的に思っているし。
実際に、去年メガファーマから来た上司が真っ先に欲しがったシステムがQAシステムで、ノウハウ共有というかそういう文化を醸成したかったらしいんだけど、ITシステムがつくったものが、設計思想とかなんもなくてまぁ残念臭漂う感じで(よくあるパターンですね)、一年くらいでだれも使わなくなってしまったので、これじゃまずかろうと僕の手がちょっと空いたときにStack Overflow Cloneを入れてみたという次第。
自分でも、メールでいろいろ質問したりサジェストしたりしているんだけど、そもそもメールなんてその時に見て良く考えないと相手の言いたいこと理解しないまま二度と見なくなっちゃうし、相手(宛先)を指定しないといけないから、潜在的にそういう情報が有用な人間(Ccに入れるべきとか、未来にその情報が必要になるヒト)にリーチしないので、デメリット多いですな。
ま、そんなわけで春くらいまではShapadoがうまくまわるように少し手をかけてみようかなぁと思っている。
RoRの本を持っていないのでなんか買っておこうかなと思っているのだけど良書ってどれだろうか?
これとかどうですか?