2011/04/22

2011年のVimプラグインの管理はVundleで

Vimをお使いの皆様の多くは、pathogenとgit-submoduleを駆使してプラグインを管理しているのではないかと思います。

pathogenとgit-submoduleの問題

私もこの方法を使っていたのですが、git-submoduleをVimプラグインの管理に使うのはオーバースペックだと感じていました。

私はプラグイン開発者ではないので、プラグインのバージョンを固定したいという欲求があるわけでもないですし、できるだけ新しい物を使いたいわけです。
そうすると、たとえば毎朝「git submodule update」とかやっちゃうともう大変です。
毎日「plugin version bump」みたいなコミットをしなきゃいけないわけですよ。

私は常に最新のプラグインを使いたいだけなのに、コミットログがどんどん汚れていきます。

また、外の環境でプラグインを管理しなきゃいけないというのが、どうにも気持ちわるかったのです。

そこでVundleですよ!

さぁ、そこでVundleですよ。( https://github.com/gmarik/vundle )

Vundleは、Rails 3 でも採用されている依存性を解決するためのライブラリであるBundlerにインスパイアされたVimプラグインマネージャです。

Vundleを使えば、あなたのVimプラグイン生活が一新します。
  • .vimrcの中でプラグインを一元管理できます
  • Vim上でプラグインの検索ができます
  • Vim上で再起動することなくプラグインのインストール、アップデートができます

Vundleのインストール

READMEだと「git clone」になっていますが、dotfilesをgitで管理しているならここだけはsubmoduleにしましょう。
あとは、.vimrcの一番上に以下の2行を足せば終わりです。

set rtp+=~/.vim/vundle.git/ 
call vundle#rc()

使うプラグインは.vimrcに宣言

百聞は一見に如かずということで、私のvimrcをおいておきます。
https://github.com/kenchan/dotfiles/blob/master/dot.vimrc

プラグインの宣言は、'Bundle'コマンドを使いますが、その引数には http://vim-scripts.org/vim/scripts.html で列挙されているプラグイン名を指定します。このプラグイン名は、後述の検索機能を使うことで、検索から記述までの手間を省くことができます。
一方で、そこに存在しないプラグインや、開発が活発なプラグイン、自分や他人がForkしたバージョンを使いたい場合のために、gitのリポジトリを指定する機能があります。(便利!)

プラグインの検索はBundleSearch

いちいちプラグインを検索するのにWebブラウザを開くのが億劫な方のために、BundleSearchというコマンドがあります。このコマンドを使うことで、分割された画面に検索結果が表示されます。しかも、その結果は「Bundle 'プラグイン名'」の形式になっているので、ヤンクしてそのまま.vimrcへ貼りつけれることができます。(便利!)
なお、BundleSearchコマンドは初回実行時に vim-scripts.org からプラグインの一覧をローカルにキャッシュします。このキャッシュをクリアするにはBundleSearch!コマンドを使います。エクスクラメーションマークを付けると、キャッシュを取りなおして検索を行います。もしお目当てのプラグインがでてこなかったらキャッシュが古い可能性を疑ってください。

プラグインのインストールはBundleInstall

プラグインのインストールはBundleInstallコマンドで行います。これを実行すると、.vim/bundle以下にプラグインをダウンロードし、プラグインを読み込み直します。(Vimの再起動は不要!便利!)

プラグインのアップデートはBundleInstall!

プラグインのアップデートはBundleInstall!コマンドです。これももちろん自動で読み込み直します。(便利!)

プラグインのアンインストールは.vimrcから消してBundleClean

不要になったプラグインは、.vimrcから削除すればロードされなくなります。しかし、.vim/bundle以下には残ってしまうので、BundleCleanコマンドできれいにしてあげましょう。

dotfilesをバージョン管理している人は.vim/bundle以下をignoreに

折角.vimrcでプラグインを一元管理し、常に最新版を使える環境ができたので、.vim/bundle以下はignoreにしておいたほうがいいでしょう。私は、pathogenから移行して一番すっきりしたのがこれだったりします。

おわりに

githubのblogでvundleが紹介されたのであわてて書いた記事ですが、これでみなさんのVimライフが一層充実すれば幸いです。
最後に、これを教えてくれた(そして実は先週まで使っていなかった)github watcherのursm先生に感謝します。

2011/04/19

アジャイルジャパン2011サテライトin富山:「はじめてがアジャイル」

アジャイルジャパン2011サテライトin富山で「はじめてがアジャイル」というタイトルでお話させていただきました。


富山には初めて行ったのですが、地元のエンジニアの方々のパワーと、おいしい料理でとても充実した時間を過ごすことができました。
北陸エンジニアグループの皆様、当日の参加者の皆様、本当にありがとうございました。

発表内容としては、私の日々の開発風景や、気を付けていること、大切にしていることを淡々とお話ししただけですが、なにか持って帰れるものがあったなら幸いです。

2011/04/11

Agile Japan 2011 富山で「はじめてがアジャイル」というお話をしてきます

概要はAgile Japan 2011 富山の公式サイトから引用。

私が永和システムマネジメントに入社して今年で5年目。今までのプロジェクトはすべてウォーターフォールとは言えないものでした。
夢中で駆け抜けてきた4年間をこの場を借りてふりかえりながら、日々の開発の様子を赤裸々にお伝えします。

「アジャイル、アジャイル言ってるけど、実際はどうやって開発してるのよ?本に書いてある通りなの?」というところを、今のプロジェクトの話を中心にざっくばらんにお話するつもりです。まだまだ残席もあるようなので、近隣の方がいましたら是非是非ご参加ください!

とりあえずタイトルスライドだけ置いておきます。

はじめてがアジャイル

みんなもAgile Japan 2011 富山 で僕と握手!

2011/03/10

Rails 3 技術者認定ブロンズ(ベータ試験)に合格していました

落ちるとはずかしいので、受ける前にTwitterでつぶやいただけだったのですが、先日結果が届き無事合格していました。
これからRubyに取り組もうという人や、企業の採用担当者にしてみれば、資格というのは、最低限のスキルがあることを示す良いシグナルになるように思います。
Rails Hub情報局: Ruby技術者認定試験シルバーを受けてみた
資格試験に関して私が思うところはだいたいこの通りです。この「最低限のスキル」をどこに置いているかがその試験の価値を決めると思っています。

そういう意味では、今回の試験はまだベータ試験ということもあるのか、ここが若干ぶれている気がしました。

(ちょっと偉そうですが)この資格を持っていますという人と初めて仕事をするときに、
  • これくらいはまかせて大丈夫だろう
  • これはわからないかもしれないから一緒にやろう
という判断基準にはできないなと感じました。(それがあたっているかはどうでもいいとして)

また私は、Rails 3はWEB+DBの特集を書くのに使ったくらいで、仕事ではRails 2を使っています。
正解率を見るとそれが如実に出ていて、3で変更の多かったコントローラ周りの点数があきらかに低かったのは興味深い結果でした。(Rails 3の試験だから当然と思うか、3固有の問題を出して意味があるのかという意味で)(ただの負け惜しみです)

そろそろ本試験も始まるようなお話でしたので、自分の知識を整理する意味でも、腕試しに受けてみるといいのではないでしょうか。

2011/03/03

GentooでFirefox4をインストールするとYelp(Gnome)のビルドが落ちる件

layman/mozillaのFirefox4をインストールしていると、Yelpのインストールに失敗します。

checking whether we have a gtk 2 gecko build... configure: error: This program needs a gtk 2 gecko build
原因はこの辺を参照。 http://bugs.gentoo.org/show_bug.cgi?id=330847
xulrunner2.0にYelpが対応できていないのと(まだベータだしね)、そもそも2.0はスロット別にするはずだからということらしいです。どうせYelpなんていらないので/etc/portage/profile/package.providedに以下の内容を書いて終わり。

gnome-extra/yelp-2.30.2-r1
package.providedは、対象のパッケージが既にインストールされているように振る舞わせるらしいです。便利。

2011/02/25

WEB+DB PRESS Vol.61が書店にならんだようです

初物なので、実家と大学でおせわになった教授に1冊ずつ送っておきました。
今年は採用のお手伝いで大学に行く予定もないので、元気の便りということで。

もしまだお買い求めでない方は下のリンクからどうぞ!

WEB+DB PRESS Vol.61

2011/02/24

PHPer.jpなるものを試してみた

人生は有限なので、可能なかぎりPHPには関わらないようにしていたのですが、ちょっとすごいサービスをTwitterで見かけてしまったのが運の尽き。

PHPer.jpは、PHP版Herokuと言っても差し支えないサービスです。

これがほんとにすごくて、WordPressを起動するデモがあるのですが、実際にやってみても本当に1、2分で出来てしまうんです。
  1. WordPressをダウンロードして展開
  2. git initして全部コミットする
  3. リモートリポジトリにphper.jpのリポジトリを追加
  4. git push origin master
あとは、ブラウザからWordPressの設定をするだけです!

何故かコンソールツールがRubyで出来ていたり、PHPer.jp自体はRailsで出来てたり、Railsアプリ診断士の@ursmによれば認証はどう見てもDeviceらしいし、ほんとにPHPをやりたかったのか疑問に思えてくる感じです。
サービス自体も、i18nがちょっとおかしいところがあったり、ローカルファイルシステムへの書き込みも普通にできるように見えたり、使っているこっちが色々心配してしまいます。

ホスト名は早い者勝ちのように見えるので、もし今後使う可能性のある人は取っておくといいと思います。私は、まずhtkymtks-ug用のWordPressを作ってみました。

http://htkymtks-ug.phper.jp