2011/05/10

60min.第2回でエディタについて語り合いました

半年くらい間があいてしまいましたが、4/26に社内勉強会「60分一本勝負」改め「60min.」の第2回を行いました。
今回は、たまたま30過ぎてのVim入門中である@htkymtksの要望に答え、参加者が自分の使ってるエディタや開発環境について一言ずつ小ネタを披露するという会になりました。

それでは、簡単にどんな話があったか紹介します。

ctagとvim - htkymtks


Javascriptを書いてるときにタグジャンプ便利と思ったとのことで、入門的なところから、MacでVimでctagsの環境を整えるまでを紹介してくれました。

init.el - hsbt


自身のinit.elを解説しながら、anything.elやinstall-elispの紹介など。
また、auto-save-buffersと、Dropbox、Guard、Watchrなどの相性が悪すぎるんだけどみんなどうしてるんだろうという話も。

moccur-grep-find - kakutani


moccur-grep-findは、バッファに出てきたgrepの結果を置換すると、それが実ファイルに反映されるという感じに見えたけどあってるかな?
原稿や資料を作る際に便利ということで、kakutaniらしいお話でした。
また、秘伝の「make-font-big」や「my-ruby-tdiary」も披露してくれました。

vundle - kenchan


私は、この記事の事をだいたいなぞってから、今はgithubにあるプラグインは"vim-ruby/vim-ruby"みたいに指定できるよという話をしました。

unite.vim - moro


uniteの基本的な使い方から、outlineと自前のunite-cucumberを披露してくれました。
多言語対応できたら公開してくれるようなので期待していましょう。

Xcode 4 - emeitch


Xcode 4になってこんなに変わったよという紹介。
3のころを知らないのですが、だいぶ開発環境としてはいい感じに見えました。
Gitの連携とかもよくできるなーと。

おわり


普段使ってないエディタの話を聞くのも、いい刺激になって面白いですね。
発表している最中でも「今のそれどうやったの?」みたいな感じで思いもよらない発見があったりして、楽しい勉強会になったのではないかと思います。

2011/05/09

iPad2を買った、ような…

発売日のお昼休みに同僚と上野ヨドバシへ行ってうっかりしてしまいました。(うっかり仲間は@hsbtと@takkanm)
品物は黒の16Gで、フタはピンク、アンチグレアのフィルムも一緒に。



初のiOSデバイスですが、これは快適ですね。一先ずiBooksで積読状態の電子書籍を読んでます。

フィルムは下のやつで、クリーニングクロスからホコリ取り用のテープまで一式揃っているので、結構おすすめです。
Simplism iPad 2 液晶保護フィルム 非光沢 つや消しマット TR-PFIPD2-AG
Simplism iPad 2 液晶保護フィルム 非光沢 つや消しマット TR-PFIPD2-AG

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は、対象のパッケージが既にインストールされているように振る舞わせるらしいです。便利。